[ADD] tree view of transient fields in contract view is editable, fields are filled, passport series inside res_partner view

This commit is contained in:
Stepan Savelyev 2019-12-10 19:07:43 +05:00
parent 18b5cef827
commit c13a240770
4 changed files with 63 additions and 34 deletions

View File

@ -6,44 +6,64 @@
<record id="action_get_context" model="ir.actions.server">
<field name="name">Generate Context for Contract</field>
<field name="model_id" ref="client_contracts.model_res_partner_contract_wizard"/>
<field name="binding_model_id" ref="client_contracts.model_res_partner_contract_wizard" />
<field name="state">code</field>
<field name="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_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":"",
"seller_inn":"",
"seller_kpp":"",
"seller_bic":"",
"seller_representer_function": partner.function,
"seller_inn": partner.inn,
"seller_kpp": partner.kpp,
"seller_bic": partner.bank_account.bank_bic,
"seller_ogrn": "",
"seller_bank":"",
"seller_bank_account":"",
"seller_phone":"",
"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_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":"",
"partner_inn":"",
"partner_kpp":"",
"partner_bic":"",
"partner_representer_function": seller.function,
"partner_inn": seller.inn,
"partner_kpp": seller.kpp,
"partner_bic": seller.bank_account.bank_bic,
"partner_ogrn": "",
"partner_bank":"",
"partner_bank_account":"",
"partner_phone":"",
"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
</field>
</record>

View File

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

View File

@ -71,7 +71,7 @@
</field>
<group string="Contract values">
<field name="transient_field_ids">
<tree>
<tree editable="1">
<field name="technical_name"/>
<field name="name"/>
<field name="value"/>

View File

@ -24,7 +24,7 @@
<field name="name"/>
<field name="function"/>
<field name="representative_id" domain="[('id', 'in', child_ids)]" attrs="{'invisible': [('company_type', '!=', 'company')]}"/>
<!-- <field name="passport_series" attrs="{'invisible': [('company_type', '=', 'company')]}"/> -->
<field name="passport_series" attrs="{'invisible': [('company_type', '=', 'company')]}"/>
<field name="passport_number" attrs="{'invisible': [('company_type', '=', 'company')]}"/>
<field name="bank_account"/>
<field name="signature" widget="image"/>