[ADD] sale.order: delivery time, payment terms

This commit is contained in:
Stepan Savelyev 2019-12-18 17:18:00 +05:00
parent 3e0e724986
commit cf38fcb1b6
5 changed files with 62 additions and 6 deletions

View File

@ -18,5 +18,6 @@
"views/res_partner.xml",
"wizard/res_partner_contract_wizard.xml",
"data/fields_default.xml",
"data/payment_terms.xml",
],
}

View File

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

27
data/payment_terms.xml Normal file
View File

@ -0,0 +1,27 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data noupdate="0">
<record id="payment_term_prepaid" model="account.payment.term">
<field name="name">Prepaid</field>
<field name="note">Payment terms: 100% Prepaid</field>
<field name="sequence">1</field>
</record>
<record id="payment_term_postpayment" model="account.payment.term">
<field name="name">Postpaid</field>
<field name="note">Payment terms: Postpaid</field>
<field name="sequence">2</field>
</record>
<record id="payment_term_partial_2" model="account.payment.term">
<field name="name">2 stages</field>
<field name="note">Payment terms: Partial 2 Stages</field>
<field name="sequence">3</field>
</record>
<record id="payment_term_partial_3" model="account.payment.term">
<field name="name">3 stages</field>
<field name="note">Payment terms: Partial 3 Stages</field>
<field name="sequence">4</field>
</record>
</data>
</odoo>

View File

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

26
models/sale_order.py Normal file
View File

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