diff --git a/data/fields_default.xml b/data/fields_default.xml index 33cacb1..235cd66 100644 --- a/data/fields_default.xml +++ b/data/fields_default.xml @@ -6,44 +6,64 @@ Generate Context for Contract + code -self = records + +# Aliases +self = record +partner = self.partner_id +seller = self.company_id + +# Functions +modf = self.modf # ctx keys must be decalared in this xml ctx = { - "contract_number":"--1", - "amount_whole":"", - "amount_fractional":"", + "contract_number": self.contract_id.name, + "amount_whole": 0.0, + "amount_fractional": 0.0, - "seller_company_name":"Test Company Name", - "seller_business_address":"", - "seller_representer_name":"", - "seller_representer_name_parent":"", - "seller_representer_name_initials":"", - "seller_representer_function":"", - "seller_inn":"", - "seller_kpp":"", - "seller_bic":"", - "seller_ogrn":"", - "seller_bank":"", - "seller_bank_account":"", - "seller_phone":"", + "seller_company_name": partner.name, + "seller_business_address": partner.full_adress, + "seller_representer_name": partner.representative_id.name, + "seller_representer_name_parent": "", + "seller_representer_name_initials": "", + "seller_representer_function": partner.function, + "seller_inn": partner.inn, + "seller_kpp": partner.kpp, + "seller_bic": partner.bank_account.bank_bic, + "seller_ogrn": "", + "seller_bank": partner.bank_account.bank_id.name, # Зачем нам bank_account, если есть bank_ids + "seller_bank_account": partner.bank_account.acc_number, # Расчётный счёт + "seller_phone": partner.phone, - "partner_company_name":"", - "partner_business_address":"", - "partner_representer_name":"", - "partner_representer_name_parent":"", - "partner_representer_name_initials":"", - "partner_representer_function":"", - "partner_inn":"", - "partner_kpp":"", - "partner_bic":"", - "partner_ogrn":"", - "partner_bank":"", - "partner_bank_account":"", - "partner_phone":"", + "partner_company_name": seller.name, + "partner_business_address": seller.full_adress, + "partner_representer_name": seller.representative_id.name, + "partner_representer_name_parent": "", + "partner_representer_name_initials": "", + "partner_representer_function": seller.function, + "partner_inn": seller.inn, + "partner_kpp": seller.kpp, + "partner_bic": seller.bank_account.bank_bic, + "partner_ogrn": "", + "partner_bank": seller.bank_account.bank_id.name, + "partner_bank_account": seller.bank_account.acc_number, + "partner_phone": seller.phone, } + +if self.order_id: + order = self.order_id + + amount = modf(order.amount_total) + fractional, whole = amount + + ctx.update({ + "amount_whole": whole, + "amount_fractional": fractional, + }) + action = ctx diff --git a/models/contract_wizard.py b/models/contract_wizard.py index a63e428..8319c1d 100644 --- a/models/contract_wizard.py +++ b/models/contract_wizard.py @@ -518,7 +518,9 @@ class ContractWizard(models.TransientModel): ]) contract_context_values = self.env.ref( - 'client_contracts.action_get_context').run() + 'client_contracts.action_get_context').with_context({ + "onchange_self": self, + }).run() self.transient_field_ids = [ # one2many ( @@ -531,6 +533,7 @@ class ContractWizard(models.TransientModel): ) for field, value in contract_context_values.items() ] + @api.multi def get_docx_contract(self): template = self.template.attachment_id if not template: @@ -542,7 +545,7 @@ class ContractWizard(models.TransientModel): transient_field.technical_name: transient_field.value for transient_field in self.transient_field_ids - if transient_field.technical_name + if transient_field.technical_name and transient_field.value } binary_data = get_document_from_values_stream( @@ -570,6 +573,12 @@ class ContractWizard(models.TransientModel): return document_as_attachment + def modf(self, arg): + """Math.modf function for using in XML ir.action.server code + Uses in data/fields_default.xml + """ + return math.modf(arg) + class AnnexLine(models.TransientModel): _name = 'res.partner.contract.annex.line' diff --git a/views/contract_wizard.xml b/views/contract_wizard.xml index 9b9350f..956f13f 100644 --- a/views/contract_wizard.xml +++ b/views/contract_wizard.xml @@ -71,7 +71,7 @@ - + diff --git a/views/res_partner.xml b/views/res_partner.xml index c4096a2..a785a0c 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -24,7 +24,7 @@ - +