Skip to content
Snippets Groups Projects

V1 imrpvements to CompanyEasyCreation wizard (CRM Lead execution):raising_hand:

Merged Benjamí Ramos requested to merge feature/create_company_from_crm into dev
9 unresolved threads
3 files
+ 114
64
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -234,9 +234,7 @@ class CrmLead(models.Model):
if not lead.community_company_id:
# Create the new company using very basic starting Data
company = self.env["res.company"].create(
lead._get_company_create_vals()
)
company = self.env['res.company'].create(lead._get_default_community_wizard())
# Update Lead & Map Place (if exist) fields accordingly
lead.community_company_id = company.id
@@ -253,80 +251,50 @@ class CrmLead(models.Model):
lead.community_company_id._create_keycloak_realm()
lead.community_company_id._community_post_keycloak_creation_tasks()
def _get_company_create_vals(self):
def _get_default_community_wizard(self):
self.ensure_one()
m_dict = {m.key: m.value for m in self.form_submission_metadata_ids}
metadata = {m.key: m.value for m in self.metadata_line_ids}
foundation_date = None
if (
m_dict.get("partner_foundation_date", False)
and m_dict["partner_foundation_date"]
):
date_formats = ["%Y-%m-%d", "%d-%m-%Y", "%Y/%m/%d", "%d/%m/%Y"]
if metadata.get('ce_creation_date', False) and metadata['ce_creation_date']:
date_formats = ['%Y-%m-%d','%d-%m-%Y','%Y/%m/%d','%d/%m/%Y']
for date_format in date_formats:
try:
foundation_date = datetime.strptime(
m_dict["partner_foundation_date"], date_format
)
foundation_date = datetime.strptime(metadata['ce_creation_date'], date_format)
except:
pass
if not foundation_date:
raise UserError(
_(
"The Foundation Date value {} have a non valid format. It must be: yyyy-mm-dd or dd-mm-yyyy or yyyy/mm/dd or dd/mm/yyyy"
).format(m_dict["partner_foundation_date"])
)
initial_share_amount = 0.00
if (
m_dict.get("partner_initial_share_amount", False)
and m_dict["partner_initial_share_amount"]
or None
):
try:
initial_share_amount = float(m_dict["partner_initial_share_amount"])
except:
pass
_("The Foundation Date value {} have a non valid format. It must be: yyyy-mm-dd or dd-mm-yyyy or yyyy/mm/dd or dd/mm/yyyy").format(metadata['partner_foundation_date']))
lang_id = None
if m_dict.get("partner_language", False) and m_dict["partner_language"] or None:
lang_id = self.env["res.lang"].search(
[("code", "=", m_dict["partner_language"])], limit=1
)
if metadata.get('current_lang',False) and metadata['current_lang'] or None:
lang_id = self.env['res.lang'].search([('code','=',metadata['current_lang'])],limit=1)
create_vals = {
"name": self.name,
"street": self.street,
"street2": self.street2,
"city": self.city,
"zip": self.zip,
"state_id": self.state_id.id,
"country_id": self.country_id.id,
"website": self.website,
"phone": self.phone,
"email": self.email_from
or (m_dict.get("contact_email", False) and m_dict["contact_email"])
or None,
"vat": m_dict.get("partner_vat", False) and m_dict["partner_vat"] or None,
"social_twitter": m_dict.get("partner_twitter", False)
and m_dict["partner_twitter"]
or None,
"social_facebook": m_dict.get("partner_facebook", False)
and m_dict["partner_facebook"]
or None,
"social_instagram": m_dict.get("partner_instagram", False)
and m_dict["partner_instagram"]
or None,
"social_telegram": m_dict.get("partner_telegram", False)
and m_dict["partner_telegram"]
or None,
"create_user": True,
"foundation_date": foundation_date,
"initial_subscription_share_amount": initial_share_amount,
"default_lang_id": lang_id and lang_id.id or None,
}
users = [user.id for user in self.company_id.get_users()]
return create_vals
return {
'name': self.name,
'parent_id': self.company_id.id,
'crm_lead_id': self.id,
'user_ids': users,
'street': metadata.get('ce_address',False) and metadata['ce_address'] or None,
'city': metadata.get('ce_city',False) and metadata['ce_city'] or None,
'zip_code': metadata.get('ce_zip',False) and metadata['ce_zip'] or None,
'phone': metadata.get('contact_phone',False) and metadata['contact_phone'] or None,
'email': metadata.get('email_from',False) and metadata['email_from'] or None,
'vat': metadata.get('ce_vat',False) and metadata['ce_vat'] or None,
'foundation_date': foundation_date,
'default_lang_id': lang_id and lang_id.id or None,
'hierarchy_level': 'community' if self.source_id == self.env.ref("energy_communities.ce_source_creation_ce_proposal") else None,
'chart_template_id': self.env["account.chart.template"].search([("name", "=", "PGCE PYMEs 2008")])[0].id,
'update_default_taxes': True,
'default_sale_tax_id': self.env["account.tax.template"].search([("name", "=", "IVA 21% (Servicios)")])[0].id,
'default_purchase_tax_id': self.env["account.tax.template"].search([("name", "=", "21% IVA soportado (bienes corrientes)")])[0].id,
'property_cooperator_account': self.env.ref("l10n_es.account_common_4400").id,
'create_user': False,
}
def _create_keycloak_realm(self):
for lead in self:
Loading