Generate Context for Contract code # Aliases self = record partner = self.partner_id # res.partner partner_bank = partner.bank_ids and partner.bank_ids[0] # res.partner.bank seller = self.company_id seller_bank = seller.bank_ids and seller.bank_ids[0] # 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_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_email": seller.email, "partner_name": partner.name_write, "partner_inn": partner.vat, "partner_business_address": partner.full_address, "partner_phone": partner.phone, "partner_email": partner.email, } if partner_bank: ctx.update({ "partner_bank": partner_bank.name, "partner_rs": partner_bank.acc_number, "partner_ks": partner_bank.bank_id.corr_account, "partner_bic": partner_bank.bank_id.bic, }) if seller_bank: ctx.update({ "seller_bank": partner_bank.name, "seller_rs": seller_bank.acc_number, "seller_ks": seller_bank.bank_id.corr_account, "seller_bic": seller_bank.bank_id.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_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 Generate Context for Contract code # Aliases self = record seller = self.contract_id.company_id partner = self.contract_id.partner_id seller_bank = seller.bank_ids and seller.bank_ids[0] partner_bank = partner.bank_ids and partner.bank_ids[0] # 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) # 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, "order_name": self.order_id.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_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, } if partner_bank: ctx.update({ "partner_rs": partner_bank.acc_number, "partner_ks": partner_bank.bank_id.corr_account, "partner_bic": partner_bank.bank_id.bic, }) if seller_bank: ctx.update({ "seller_rs": seller_bank.acc_number, "seller_ks": seller_bank.bank_id.corr_account, "seller_bic": seller_bank.bank_id.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, }) 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 Contract Number contract_number 1 Annex Name annex_name 2 Order Name order_name 3 Day dd Number 8 Month mm Number 16 False Month MM Word 24 Year yy Short 40 False Year yyyy Full 32 Amount Whole Part amount_whole Amount Fractional Part amount_fractional Delivery Time delivery_time Payment Term payment_term Name seller_name Seller 48 Institutional-Legal Form seller_company_form Seller 56 IP Number seller_ip_number Seller IP Certificate 64 IP Issued on seller_ip_date Seller IP Certificate 72 Name seller_representer_name Seller Representative 80 Name Genitive seller_representer_name_parent Seller Representative 88 Name Initials seller_representer_name_initials Seller Representative 96 Function seller_representer_function Seller Representative 104 Function Genitive seller_representer_function_parent Seller Representative 112 Document Genitive seller_representer_document_parent Seller Representative 120 Passport № seller_representer_passport_number Seller Representative 128 Passport Issued on seller_representer_passport_date Seller Representative 136 Passport Issued by seller_representer_passport_department Seller Representative 144 Passport Department Code seller_representer_passport_department_code Seller Representative 146 INN seller_inn Seller 152 PSRN seller_ogrn Seller 160 PSRN-IP seller_ogrnip Seller 168 KPP seller_kpp Seller 176 OKPO seller_okpo Seller 184 Bank Name seller_bank Seller 192 Bank Payment Account seller_rs Seller 200 Bank Corresponding Account seller_ks Seller 208 BIC seller_bic Seller 216 Business Address seller_business_address Seller 224 Phone seller_phone Seller 232 Email seller_email Seller 240 Name partner_name Partner 248 Institutional-Legal Form partner_company_form Partner 256 IP Number partner_ip_number Partner IP Certificate 264 IP Issued on partner_ip_date Partner IP Certificate 272 Name partner_representer_name Partner Representative 280 Name Genitive partner_representer_name_parent Partner Representative 288 Name Initials partner_representer_name_initials Partner Representative 296 Function partner_representer_function Partner Representative 304 Function Genitive partner_representer_function_parent Partner Representative 312 Document Genitive partner_representer_document_parent Partner Representative 320 Passport № partner_representer_passport_number Partner Representative 328 Passport Issued on partner_representer_passport_date Partner Representative 336 Passport Issued by partner_representer_passport_department Partner Representative 344 Passport Department Code partner_representer_passport_department_code Partner Representative 346 INN partner_inn Partner 352 PSRN partner_ogrn Partner 360 PSRN-IP partner_ogrnip Partner 368 KPP partner_kpp Partner 376 OKPO partner_okpo Partner 384 Bank partner_bank Partner 392 Bank Payment Account partner_rs Partner 400 Bank Corresponding Account partner_ks Partner 408 BIC partner_bic Partner 416 Business Address partner_business_address Partner 424 Phone partner_phone Partner 432 Email partner_email Partner 440