# 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 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