some debug and clearance

This commit is contained in:
alexandr.uritskiy 2021-05-07 19:44:03 +05:00
parent 299fd4116f
commit 3cd78e91fc
7 changed files with 48 additions and 61 deletions

View File

@ -14,7 +14,7 @@
self = record # res.partner.contract
partner = self.partner_id # res.partner
seller = self.company_id
seller = self.company_id.partner_id
# Functions
_ = self._
@ -164,7 +164,7 @@ action = ctx
# Aliases
self = record # res.partner.contract.annex
seller = self.company_id
seller = self.company_id.partner_id
partner = self.partner_id
# Functions

View File

@ -48,9 +48,9 @@ class PartnerContract(models.Model): # , IDocument, Extension):
required=True,
)
company_id = fields.Many2one(
"res.partner",
"res.company",
string="Company",
default=lambda self: self.env.company.partner_id,
default=lambda self: self.env.company,
)
create_date_ts = fields.Char(default=_get_default_create_date_ts)
res_model = fields.Char(default=lambda self: self._name)

View File

@ -30,17 +30,17 @@ class ContractOrderAnnex(models.Model): # , IDocument, Extension):
readonly=True,
)
company_id = fields.Many2one(
"res.partner",
comodel_name="res.company",
related="contract_id.company_id",
)
partner_id = fields.Many2one(
"res.partner",
comodel_name="res.partner",
related="contract_id.partner_id",
)
order_id = fields.Many2one(
"sale.order",
string="Order",
help="This partner's orders which are not used in annexes yet",
comodel_name="sale.order",
string="Sale order",
help="Sale order for this annex.",
required=True,
)
date_conclusion = fields.Date(

View File

@ -12,25 +12,39 @@ class SaleOrder(models.Model):
default=45,
)
contract_annex_id = fields.Many2one(
"res.partner.contract.annex",
comodel_name="res.partner.contract.annex",
string="Contract Annex",
readonly=True,
compute="get_contract_annex_id",
)
contract_annex_ids = fields.One2many(
comodel_name="res.partner.contract.annex",
inverse_name="order_id",
string="Annex for this Sale order",
help="Technical field for binding with contract annex\n"
"In form this link showed in 'contract_annex_id' field.",
)
# Extend default field for showing payment terms created by this module only.
payment_term_id = fields.Many2one(
"account.payment.term",
comodel_name="account.payment.term",
domain=lambda self: [("id", "in", self._get_payment_terms())],
)
def _get_payment_terms(self):
ref = self.env.ref
terms = (
ref("{}.{}".format(MODULE_NAME, external_id)).id
terms = [
self.env.ref("{}.{}".format(MODULE_NAME, external_id)).id
for external_id in (
"payment_term_prepaid",
"payment_term_postpayment",
"payment_term_partial_2",
"payment_term_partial_3",
)
)
return list(terms)
]
return terms
@api.onchange("contract_annex_ids")
def get_contract_annex_id(self):
if self.contract_annex_ids:
self.contract_annex_id = self.contract_annex_ids[0].id
else:
self.contract_annex_id = False

View File

@ -10,7 +10,7 @@
<xpath expr="//field[@name='payment_term_id']" position="after">
<field name="delivery_time"/>
<field name="contract_annex_id"/>
<field name="contract_annex_id" readonly="1"/>
</xpath>
</field>

View File

@ -10,7 +10,7 @@ from ..utils.docxtpl import get_document_from_values_stream
_logger = logging.getLogger(__name__)
class ContractWizard(models.TransientModel): # , Extension):
class ContractWizard(models.TransientModel):
_name = "res.partner.contract.wizard"
_inherit = ["client_contracts.utils"]
@ -31,7 +31,6 @@ class ContractWizard(models.TransientModel): # , Extension):
"res.partner.contract.annex": "annex",
}.get(self.active_model, False)
company_type = self.env.context.get("company_form", False)
document_template_domain = [
("template_type", "=", template_type),
("company_type", "=", company_type),
@ -45,14 +44,15 @@ class ContractWizard(models.TransientModel): # , Extension):
],
string="Target",
default=_default_target,
help="Record of contract or annex entity, from where wizard has been called",
)
company_id = fields.Many2one(
"res.partner",
comodel_name="res.partner",
string="Company",
compute="_compute_company_id",
)
partner_id = fields.Many2one(
"res.partner",
comodel_name="res.partner",
string="Partner",
compute="_compute_partner_id",
)
@ -60,7 +60,7 @@ class ContractWizard(models.TransientModel): # , Extension):
string="Document Name", compute="_compute_document_name"
)
document_template = fields.Many2one(
"res.partner.document.template",
comodel_name="res.partner.document.template",
string="Document Template",
default=_default_document_template,
domain=lambda self: self._get_template_domain(),
@ -78,8 +78,10 @@ class ContractWizard(models.TransientModel): # , Extension):
@api.depends("target")
def _compute_company_id(self):
if self.target:
self.company_id = self.target.company_id
if self.target and self.target.company_id:
self.company_id = self.target.company_id.id
else:
self.company_id = self.env.company.id
@api.depends("target")
def _compute_partner_id(self):
@ -176,37 +178,7 @@ class ContractWizard(models.TransientModel): # , Extension):
)
]
"""
self.transient_field_ids = [ # one2many
(
4,
self.env["res.partner.contract.field.transient"]
.create(
{
"contract_field_id": get_contract_field(field).id,
"value": value,
}
)
.id,
0,
)
for field, value in sorted(
contract_context_values.items(),
key=lambda tpl: self.env.ref(
"{}.contract_field_{}".format(MODULE_NAME, tpl[0])
).sequence,
)
]
self.transient_field_ids_hidden = (
self.transient_field_ids - self.transient_field_ids.filtered("visible")
)
self.transient_field_ids = (
self.transient_field_ids - self.transient_field_ids_hidden
)
"""
# Other
def get_docx_contract(self):
template = self.document_template.attachment_id
template_path = template._full_path(template.store_fname)
@ -297,11 +269,14 @@ class ContractWizard(models.TransientModel): # , Extension):
"attachment_ids": [(4, result.id, False)],
}
)
return result
def middleware_fields(self, kv):
@staticmethod
def middleware_fields(kv):
"""
Removes items without values from dictionary.
:kv: dict.
"""
# Debug False values
empty = []
for k, v in list(kv.items()):
@ -309,7 +284,6 @@ class ContractWizard(models.TransientModel): # , Extension):
empty.append(k)
kv.pop(k)
_logger.debug("Empty fields: {}".format(empty))
return kv
@property

View File

@ -10,12 +10,11 @@
<group string="Template">
<field name="document_template"></field>
<field name="target"/>
</group>
<group invisible="1">
<!-- Need for generate a document -->
<field name="target"/>
<field name="partner_id"/>
<field name="company_id"/>
</group>