diff --git a/__manifest__.py b/__manifest__.py index ccb55d5..11aa091 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -18,5 +18,6 @@ "views/res_partner.xml", "wizard/res_partner_contract_wizard.xml", "data/fields_default.xml", + "data/payment_terms.xml", ], } diff --git a/data/fields_default.xml b/data/fields_default.xml index 8c44c75..082d7a3 100644 --- a/data/fields_default.xml +++ b/data/fields_default.xml @@ -81,8 +81,6 @@ action = ctx # Aliases self = record -partner = self.contract_id.partner_id # res.partner -seller = self.contract_id.company_id order = self.order_id # Functions @@ -92,11 +90,11 @@ modf = self.modf ctx = { "contract_number": self.contract_id.name, - "seller_inn": seller.inn, - "seller_kpp": seller.kpp, + "amount_whole": 0, + "amount_fractional": 0, - "partner_inn": partner.inn, - "partner_kpp": partner.kpp, + "delivery_term": False, + "delivery_time": False, } if order: @@ -106,6 +104,9 @@ if order: ctx.update({ "amount_whole": whole, "amount_fractional": fractional, + + "delivery_term": order.payment_term_id.name, + "delivery_time": order.delivery_time, }) action = ctx diff --git a/data/payment_terms.xml b/data/payment_terms.xml new file mode 100644 index 0000000..cbbca98 --- /dev/null +++ b/data/payment_terms.xml @@ -0,0 +1,27 @@ + + + + + + Prepaid + Payment terms: 100% Prepaid + 1 + + + Postpaid + Payment terms: Postpaid + 2 + + + 2 stages + Payment terms: Partial 2 Stages + 3 + + + 3 stages + Payment terms: Partial 3 Stages + 4 + + + + \ No newline at end of file diff --git a/models/__init__.py b/models/__init__.py index 0699022..9be2ae2 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -3,3 +3,4 @@ from . import res_partner_contract from . import res_partner_contract_annex from . import res_partner_contract_field from . import res_partner_contract_field_transient +from . import sale_order diff --git a/models/sale_order.py b/models/sale_order.py new file mode 100644 index 0000000..78102c7 --- /dev/null +++ b/models/sale_order.py @@ -0,0 +1,26 @@ +from odoo import api, fields, models + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + delivery_time = fields.Integer( + string='Delivery Time', + default=45, + ) + # Extend default field + payment_term_id = fields.Many2one( + 'account.payment.term', + domain=lambda self: [('id', 'in', self._get_payment_terms())] + ) + + @api.multi + def _get_payment_terms(self): + ref = self.env.ref + terms = ( + ref('client_contracts.payment_term_prepaid').id, + ref('client_contracts.payment_term_postpayment').id, + ref('client_contracts.payment_term_partial_2').id, + ref('client_contracts.payment_term_partial_3').id, + ) + return terms