[IMP] rework res_partner model and dependencies of this

This commit is contained in:
Stepan Savelyev 2019-12-04 19:38:00 +05:00
parent 2cd8412cb0
commit e0d4f43402
4 changed files with 67 additions and 54 deletions

View File

@ -257,7 +257,7 @@ class ContractWizard(models.TransientModel):
@api.depends('partner_id') @api.depends('partner_id')
def _compute_context_partner_contract_name(self): def _compute_context_partner_contract_name(self):
self._context_partner_contract_name = self.partner_id.contract_name self._context_partner_contract_name = self.partner_id.name
@api.depends('partner_id') @api.depends('partner_id')
def _compute_context_partner_adress(self): def _compute_context_partner_adress(self):
@ -265,11 +265,9 @@ class ContractWizard(models.TransientModel):
@api.depends('partner_id') @api.depends('partner_id')
def _compute_context_partner_representer_contract_name(self): def _compute_context_partner_representer_contract_name(self):
# TODO: lite refactor
if self.partner_id.representative_id:
partner_representer_contract_name = self.partner_id.representative_id.contract_name
else:
partner_representer_contract_name = '' partner_representer_contract_name = ''
if self.partner_id.representative_id:
partner_representer_contract_name = self.partner_id.representative_id.name
self._context_partner_representer_contract_name = partner_representer_contract_name self._context_partner_representer_contract_name = partner_representer_contract_name
@api.depends('partner_id') @api.depends('partner_id')
@ -302,7 +300,7 @@ class ContractWizard(models.TransientModel):
@api.depends('company_id') @api.depends('company_id')
def _compute_context_seller_contract_name(self): def _compute_context_seller_contract_name(self):
self._context_seller_contract_name = self.company_id.contract_name self._context_seller_contract_name = self.company_id.name
@api.depends('company_id') @api.depends('company_id')
def _compute_context_seller_adress(self): def _compute_context_seller_adress(self):
@ -310,20 +308,16 @@ class ContractWizard(models.TransientModel):
@api.depends('company_id') @api.depends('company_id')
def _compute_context_seller_representer_contract_job_name(self): def _compute_context_seller_representer_contract_job_name(self):
# TODO: lite refactor seller_represent_job_function = ''
if self.company_id.representative_id: if self.company_id.representative_id:
seller_represent_contract_job_name = self.company_id.representative_id.contract_job_name seller_represent_job_function = self.company_id.representative_id.function
else: self._context_seller_representer_contract_job_name = seller_represent_job_function
seller_represent_contract_job_name = ''
self._context_seller_representer_contract_job_name = seller_represent_contract_job_name
@api.depends('company_id') @api.depends('company_id')
def _compute_context_seller_representer_contract_name(self): def _compute_context_seller_representer_contract_name(self):
# TODO: lite refactor
if self.company_id.representative_id:
seller_represent_contract_name = self.company_id.representative_id.contract_name
else:
seller_represent_contract_name = '' seller_represent_contract_name = ''
if self.company_id.representative_id:
seller_represent_contract_name = self.company_id.representative_id.name
self._context_seller_representer_contract_name = seller_represent_contract_name self._context_seller_representer_contract_name = seller_represent_contract_name
@api.depends('company_id') @api.depends('company_id')
@ -418,7 +412,7 @@ class ContractWizard(models.TransientModel):
@api.onchange('partner_id') @api.onchange('partner_id')
def _compute_partner_passport_data(self): def _compute_partner_passport_data(self):
return self.partner_id.passport_data return self.partner_id.passport_series + self.partner_id.passport_number
@api.onchange('partner_id') @api.onchange('partner_id')
def _set_order_domain(self): def _set_order_domain(self):
@ -437,11 +431,11 @@ class ContractWizard(models.TransientModel):
seller_represent_job_name = '' seller_represent_job_name = ''
if self.partner_id.representative_id: if self.partner_id.representative_id:
partner_representer_contract_name = self.partner_id.representative_id.contract_name partner_representer_contract_name = self.partner_id.representative_id.name
if self.company_id.representative_id: if self.company_id.representative_id:
seller_represent_contract_name = self.company_id.representative_id.contract_name seller_represent_contract_name = self.company_id.representative_id.name
seller_represent_contract_job_name = self.company_id.representative_id.contract_job_name seller_represent_contract_job_name = self.company_id.representative_id.function
seller_represent_name = self.company_id.representative_id.name seller_represent_name = self.company_id.representative_id.name
seller_represent_job_name = self.company_id.representative_id.function seller_represent_job_name = self.company_id.representative_id.function
@ -472,7 +466,7 @@ class ContractWizard(models.TransientModel):
'name': self.contract_id.name, 'name': self.contract_id.name,
'current_date': contract_date.strftime('%d %b %Y'), 'current_date': contract_date.strftime('%d %b %Y'),
'partner_contract_name': self.partner_id.contract_name, 'partner_contract_name': self.partner_id.name,
'partner_adress': self.partner_id.full_adress, 'partner_adress': self.partner_id.full_adress,
'partner_representer_contract_name': partner_representer_contract_name, 'partner_representer_contract_name': partner_representer_contract_name,
'partner_inn': self.partner_id.inn, 'partner_inn': self.partner_id.inn,
@ -480,11 +474,11 @@ class ContractWizard(models.TransientModel):
'partner_rs': self.partner_id.bank_account.acc_number, 'partner_rs': self.partner_id.bank_account.acc_number,
'partner_bik': self.partner_id.bank_account.bank_id.bic, 'partner_bik': self.partner_id.bank_account.bank_id.bic,
'partner_bank': self.partner_id.bank_account.bank_id.name, 'partner_bank': self.partner_id.bank_account.bank_id.name,
'partner_passport_data': self.partner_id.passport_data, 'partner_passport_data': self.partner_id.passport_series + self.partner_id.passport_number,
'partner_phone': self.partner_id.phone, 'partner_phone': self.partner_id.phone,
'partner_representer_name': self.partner_id.representative_id.name, 'partner_representer_name': self.partner_id.representative_id.name,
'seller_contract_name': self.company_id.contract_name, 'seller_contract_name': self.company_id.name,
'seller_adress': self.company_id.full_adress, 'seller_adress': self.company_id.full_adress,
'seller_representer_contract_job_name': seller_represent_contract_job_name, 'seller_representer_contract_job_name': seller_represent_contract_job_name,
'seller_representer_contract_name': seller_represent_contract_name, 'seller_representer_contract_name': seller_represent_contract_name,

View File

@ -18,20 +18,37 @@ class ResPartner(models.Model):
compute='_compute_contract_count', compute='_compute_contract_count',
string='# of contracts' string='# of contracts'
) )
contract_job_name = fields.Char( # contract_job_name = fields.Char(
string='Contract job name', # string='Contract job name',
help='Job position as it would be in contract' # help='Job position as it would be in contract'
) # ) # res.partner.function
contract_name = fields.Char( # contract_name = fields.Char(
string='Contract name', # string='Contract name',
help='Name, as it would be in contract' # help='Name, as it would be in contract'
) # ) # res.partner.name
full_adress = fields.Char( full_adress = fields.Char(
compute='_compute_full_adress' compute='_compute_full_adress'
) # Check for res.partner.contact_address in base/res
address_actual = fields.Char(
string='Actual Address',
) )
passport_data = fields.Char( passport_authority = fields.Char(
string='Passport', string='Passport Authority',
help='Passport data' help='What Department issued the passport',
)
passport_date = fields.Date(
string='Passport Issue Date',
help='Date when receive a passport',
)
passport_number = fields.Char(
string='Passport Number',
)
passport_series = fields.Char(
string='Passport Series',
)
psrn = fields.Char(
string='PSRN',
help='Primary State Registration Number',
) )
representative_id = fields.Many2one( representative_id = fields.Many2one(
'res.partner', 'res.partner',
@ -45,18 +62,20 @@ class ResPartner(models.Model):
@api.one @api.one
@api.depends('street', 'street2', 'city', 'state_id', 'zip', 'country_id') @api.depends('street', 'street2', 'city', 'state_id', 'zip', 'country_id')
def _compute_full_adress(self): def _compute_full_adress(self):
# TODO: lite rewrite address = ""
full_street = "{} {}".format(
self.street or "", self.street2 or "").strip()
if self.zip: if self.zip:
full_adress = '{}, {}, {}, {} {}'.format( address += "{}, ".format(self.zip)
self.zip, self.country_id.name, self.city,
self.street, self.street2 address += ", ".join(map(lambda el: el,
) (
else: self.country_id.name or "",
full_adress = '{}, {}, {} {}'.format( self.city or "",
self.country_id.name, self.city, full_street or ""
self.street, self.street2 )))
) self.full_adress = address
self.full_adress = full_adress
@api.one @api.one
@api.depends('self.client_contract_ids') @api.depends('self.client_contract_ids')

View File

@ -1,11 +1,11 @@
from datetime import datetime import datetime
from odoo import api, fields, models from odoo import api, fields, models
class PartnerContract(models.Model): class PartnerContract(models.Model):
_name = 'res.partner.contract' _name = 'res.partner.contract'
_inherit = 'mail.thread'
name = fields.Char( name = fields.Char(
string='Contract number', string='Contract number',
@ -14,7 +14,7 @@ class PartnerContract(models.Model):
date = fields.Date( date = fields.Date(
string='Date of conclusion', string='Date of conclusion',
help='Date, when contract was concluded', help='Date, when contract was concluded',
default=datetime.now().date(), default=datetime.date.today(),
required=True required=True
) )
order_ids = fields.One2many( order_ids = fields.One2many(

View File

@ -28,10 +28,9 @@
<field name="model">res.partner.contract</field> <field name="model">res.partner.contract</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Contract"> <form string="Contract">
<header> <!-- <header>
<button name="do_toggle_active" type="object" <button name="do_toggle_active" type="object" string="Active" class="oe_highlight" />
string="Active" class="oe_highlight" /> </header> -->
</header>
<sheet> <sheet>
<group string="Contract parameters" name="single_params"> <group string="Contract parameters" name="single_params">
<field name="name" readonly="1"/> <field name="name" readonly="1"/>
@ -90,10 +89,11 @@
<field name="priority" eval="25"/> <field name="priority" eval="25"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//field[@name='category_id']" position="after"> <xpath expr="//field[@name='category_id']" position="after">
<field name="contract_name"/> <field name="name"/>
<field name="contract_job_name"/> <field name="function"/>
<field name="representative_id" domain="[('id', 'in', child_ids)]" attrs="{'invisible': [('company_type', '!=', 'company')]}"/> <field name="representative_id" domain="[('id', 'in', child_ids)]" attrs="{'invisible': [('company_type', '!=', 'company')]}"/>
<field name="passport_data" 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="bank_account"/>
<field name="signature" widget="image"/> <field name="signature" widget="image"/>
</xpath> </xpath>