new problems debug

This commit is contained in:
alexandr.uritskiy 2021-05-04 19:27:16 +05:00
parent 60d415192b
commit 9289cb6ea2
3 changed files with 317 additions and 2 deletions

View File

@ -1,11 +1,12 @@
import math
import logging
from odoo import _, api, fields, models
from ..utils import MODULE_NAME
# from ..utils.misc import Extension, IDocument
_logger = logging.getLogger(__name__)
class ContractOrderAnnex(models.Model): # , IDocument, Extension):
_name = "res.partner.contract.annex"
@ -141,6 +142,7 @@ class ContractOrderAnnex(models.Model): # , IDocument, Extension):
@api.model
def create(self, values):
_logger.debug("\n\n Values: %s\n\n", values)
record = super().create(values)
# Fill annex_id to domain it in future
record.order_id.contract_annex_id = record.id

View File

@ -0,0 +1,312 @@
# Aliases
self = record # res.partner.contract
partner = self.partner_id # res.partner
seller = self.company_id
# Functions
_ = self._
get_date = self.get_date
# Parse date
months = ["",
"января", "февраля", "марта", "апреля",
"мая", "июня", "июля", "августа",
"сентября", "октября", "ноября", "декабря",
]
date = get_date()
dd = date.day
mm = date.month
yyyy = date.year
yy = yyyy % 100
MM = months[mm]
dd = dd if dd // 10 else '0{}'.format(dd)
mm = mm if mm // 10 else '0{}'.format(mm)
# ctx keys must be decalared in this xml with id equal to "contract_field_{technical_name}"
ctx = {
"contract_number": self.name,
"dd": dd,
"mm": mm,
"MM": MM,
"yy": yy,
"yyyy": yyyy,
"seller_name": seller.name_write,
"seller_company_form": _(dict(seller._fields['company_form'].selection).get(seller.company_form)),
"seller_representer_name": seller.representative_id.name,
"seller_representer_name_parent": seller.representative_id.name_genitive,
"seller_representer_name_initials": seller.representative_id.name_initials,
"seller_representer_function": seller.representative_id.function,
"seller_representer_function_parent": seller.representative_id.function_genitive,
"seller_representer_document_parent": seller.representative_document,
"seller_inn": seller.vat,
"seller_kpp": seller.iec,
"seller_ogrn": seller.psrn,
"seller_business_address": seller.full_address,
"seller_phone": seller.phone,
"seller_whatsapp": seller.whatsapp,
"seller_telegram": seller.telegram,
"seller_email": seller.email,
"partner_name": partner.name_write,
"partner_inn": partner.vat,
"partner_business_address": partner.full_address,
"partner_phone": partner.phone,
"partner_whatsapp": partner.whatsapp,
"partner_telegram": partner.telegram,
"partner_email": partner.email,
}
seller_bank = seller.bank_ids and seller.bank_ids[0]
if seller_bank:
bank = seller_bank.bank_id
bank_name = bank and bank.name or ""
bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
seller_bank_name = "{} {}".format(bank_name, bank_city).strip()
ctx.update({
"seller_bank": seller_bank_name,
"seller_rs": seller_bank.acc_number,
"seller_ks": bank.corr_account,
"seller_bic": bank.bic,
})
partner_bank = partner.bank_ids and partner.bank_ids[0]
if partner_bank:
bank = partner_bank.bank_id
bank_name = bank and bank.name or ""
bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
partner_bank_name = "{} {}".format(bank_name, bank_city).strip()
ctx.update({
"partner_bank": partner_bank_name,
"partner_rs": partner_bank.acc_number,
"partner_ks": bank.corr_account,
"partner_bic": bank.bic,
})
# Person
if not partner.is_company:
ctx.update({
"partner_representer_name": partner.name_write,
"partner_representer_name_initials": partner.name_initials,
"partner_representer_passport_number": partner.passport_number,
"partner_representer_passport_date": partner.passport_date,
"partner_representer_passport_department": partner.passport_department,
"partner_representer_passport_department_code": partner.passport_department_code,
})
if not partner.name_write:
ctx.update({
"partner_name": partner.name,
"partner_representer_name": partner.name,
})
else:
# Company
ctx.update({
"partner_company_form": _(dict(partner._fields['company_form'].selection).get(partner.company_form)),
"partner_representer_name": partner.representative_id.name,
"partner_representer_name_parent": partner.representative_id.name_genitive,
"partner_representer_name_initials": partner.representative_id.name_initials,
"partner_representer_function": partner.representative_id.function,
"partner_representer_function_parent": partner.representative_id.function_genitive,
"partner_representer_document_parent": partner.representative_document,
})
if partner.company_form == 'sp':
# Sole Proprietor
ctx.update({
"partner_ip_number": partner.sp_register_number,
"partner_ip_date": partner.sp_register_date,
"partner_ogrnip": partner.psrn_sp,
"partner_representer_passport_number": partner.representative_id.passport_number,
"partner_representer_passport_date": partner.representative_id.passport_date,
"partner_representer_passport_department": partner.representative_id.passport_department,
"partner_representer_passport_department_code": partner.representative_id.passport_department_code,
})
if partner.company_form == 'plc':
# Private Limited Company
ctx.update({
"partner_kpp": partner.iec,
"partner_ogrn": partner.psrn,
})
action = ctx
< / field >
< / record >
< !-- Action -->
< record
id = "action_get_annex_context"
model = "ir.actions.server" >
< field
name = "name" > Generate
Context
for Annex </ 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" >
# Aliases
self = record # res.partner.contract.annex
seller = self.company_id
partner = self.partner_id
# Functions
_ = self.contract_id._
get_date = self.contract_id.get_date
# Parse date
months = ["",
"января", "февраля", "марта", "апреля",
"мая", "июня", "июля", "августа",
"сентября", "октября", "ноября", "декабря",
]
date = get_date()
dd = date.day
mm = date.month
yyyy = date.year
yy = yyyy % 100
MM = months[mm]
dd = dd if dd // 10 else '0{}'.format(dd)
mm = mm if mm // 10 else '0{}'.format(mm)
order_date = self.order_id.date_order
# ctx keys must be decalared in this xml with id equal to "contract_field_{technical_name}"
ctx = {
"contract_number": self.contract_id.name,
"annex_name": self.name,
"annex_number": self.counter,
"order_name": self.order_id.name,
"order_date": "{} {} {}".format(order_date.day, months[order_date.month], order_date.year),
"design_cost": self.to_fixed(self.design_cost),
"design_period": self.design_period,
"design_doc_cost": self.to_fixed(self.design_doc_cost),
"design_doc_period": self.design_doc_period,
"delivery_address": self.delivery_address,
"delivery_period": self.delivery_period,
"installation_address": self.installation_address,
"installation_cost": self.to_fixed(self.installation_cost),
"installation_period": self.installation_period,
"total_cost": self.to_fixed(self.total_cost),
"payment_part_one": self.payment_part_one,
"payment_part_two": self.payment_part_two,
"payment_part_three": self.payment_part_three,
"delivery_period": self.delivery_period,
"dd": dd,
"mm": mm,
"MM": MM,
"yy": yy,
"yyyy": yyyy,
"seller_name": seller.name_write,
"seller_company_form": _(dict(seller._fields['company_form'].selection).get(seller.company_form)),
"seller_representer_name": seller.representative_id.name,
"seller_representer_name_parent": seller.representative_id.name_genitive,
"seller_representer_name_initials": seller.representative_id.name_initials,
"seller_representer_function": seller.representative_id.function,
"seller_representer_function_parent": seller.representative_id.function_genitive,
"seller_inn": seller.vat,
"seller_kpp": seller.iec,
"seller_ogrn": seller.psrn,
"seller_business_address": seller.full_address,
"seller_phone": seller.phone,
"seller_email": seller.email,
"partner_name": partner.name_write,
"partner_representer_name": partner.representative_id.name,
"partner_representer_name_initials": partner.representative_id.name_initials,
"partner_inn": partner.vat,
"partner_business_address": partner.full_address,
"partner_phone": partner.phone,
"partner_email": partner.email,
}
seller_bank = seller.bank_ids and seller.bank_ids[0]
if seller_bank:
bank = seller_bank.bank_id
bank_name = bank and bank.name or ""
bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
seller_bank_name = "{} {}".format(bank_name, bank_city).strip()
ctx.update({
"seller_bank": seller_bank_name,
"seller_rs": seller_bank.acc_number,
"seller_ks": bank.corr_account,
"seller_bic": bank.bic,
})
partner_bank = partner.bank_ids and partner.bank_ids[0]
if partner_bank:
bank = partner_bank.bank_id
bank_name = bank and bank.name or ""
bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
partner_bank_name = "{} {}".format(bank_name, bank_city).strip()
ctx.update({
"partner_bank": partner_bank_name,
"partner_rs": partner_bank.acc_number,
"partner_ks": bank.corr_account,
"partner_bic": bank.bic,
})
# Person
if not partner.is_company:
ctx.update({
"partner_representer_name": partner.name_write,
"partner_representer_name_initials": partner.name_initials,
"partner_representer_passport_number": partner.passport_number,
"partner_representer_passport_date": partner.passport_date,
"partner_representer_passport_department": partner.passport_department,
})
if not partner.name_write:
ctx.update({
"partner_name": partner.name,
"partner_representer_name": partner.name,
})
else:
# Company
ctx.update({
"partner_company_form": _(dict(partner._fields['company_form'].selection).get(partner.company_form)),
"partner_representer_name_parent": partner.representative_id.name_genitive,
"partner_representer_document_parent": partner.representative_document,
"partner_representer_function": partner.representative_id.function,
"partner_representer_function_parent": partner.representative_id.function_genitive,
})
if partner.company_form == 'sp':
# Sole Proprietor
ctx.update({
"partner_ip_number": partner.sp_register_number,
"partner_ip_date": partner.sp_register_date,
"partner_ogrnip": partner.psrn_sp,
"partner_representer_passport_number": partner.representative_id.passport_number,
"partner_representer_passport_date": partner.representative_id.passport_date,
"partner_representer_passport_department": partner.representative_id.passport_department,
})
if partner.company_form == 'plc':
# Private Limited Company
ctx.update({
"partner_kpp": partner.iec,
"partner_ogrn": partner.psrn,
})
action = ctx

View File

@ -10,11 +10,12 @@
<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>