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 @@
-
+