Naming convention for code, number and reference
issue1479 review17171002
This commit is contained in:
1 parent
a315c6e56f
commit
2192353cdb
6 files changed
+33
-21
No files matched your search
@@ -1,3 +1,4 @@
|
||||
* Rename Sale reference into number and add reference
|
||||
* Add Python3 support
|
||||
* Replace Delivery Time by Lead Time on Product Template
|
||||
* Rename Delivery Date of Sale Line into Shipping Date
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
|
||||
'Sale Configuration'
|
||||
__name__ = 'sale.configuration'
|
||||
sale_sequence = fields.Property(fields.Many2One('ir.sequence',
|
||||
'Sale Reference Sequence', domain=[
|
||||
'Sale Sequence', domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'sale.sale'),
|
||||
|
||||
@@ -34,7 +34,7 @@ _ZERO = Decimal(0)
|
||||
class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
'Sale'
|
||||
__name__ = 'sale.sale'
|
||||
_rec_name = 'reference'
|
||||
_rec_name = 'number'
|
||||
company = fields.Many2One('company.company', 'Company', required=True,
|
||||
states={
|
||||
'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
|
||||
@@ -44,7 +44,8 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
Eval('context', {}).get('company', -1)),
|
||||
],
|
||||
depends=['state'], select=True)
|
||||
reference = fields.Char('Reference', readonly=True, select=True)
|
||||
number = fields.Char('Number', readonly=True, select=True)
|
||||
reference = fields.Char('Reference', select=True)
|
||||
description = fields.Char('Description',
|
||||
states={
|
||||
'readonly': Eval('state') != 'draft',
|
||||
@@ -291,6 +292,11 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
table.column_rename('packing_method', 'shipment_method')
|
||||
table.column_rename('packing_address', 'shipment_address')
|
||||
|
||||
# Migration from 3.8: rename reference into number
|
||||
if (table.column_exist('reference')
|
||||
and not table.column_exist('number')):
|
||||
table.column_rename('reference', 'number')
|
||||
|
||||
super(Sale, cls).__register__(module_name)
|
||||
|
||||
# Migration from 1.2
|
||||
@@ -635,20 +641,24 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
self.raise_user_error('invalid_method', (self.rec_name,))
|
||||
|
||||
def get_rec_name(self, name):
|
||||
return (self.reference or str(self.id)
|
||||
return (self.number or str(self.id)
|
||||
+ ' - ' + self.party.rec_name)
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
if clause[1].startswith('!') or clause[1].startswith('not '):
|
||||
_, operator, value = clause
|
||||
if operator.startswith('!') or operator.startswith('not '):
|
||||
bool_op = 'AND'
|
||||
else:
|
||||
bool_op = 'OR'
|
||||
names = clause[2].split(' - ', 1)
|
||||
res = [bool_op, ('reference', clause[1], names[0])]
|
||||
names = value.split(' - ', 1)
|
||||
domain = [bool_op,
|
||||
('number', operator, names[0]),
|
||||
('reference', operator, names[0]),
|
||||
]
|
||||
if len(names) != 1 and names[1]:
|
||||
res.append(('party', clause[1], names[1]))
|
||||
return res
|
||||
domain = [bool_op, domain, ('party', operator, names[1])]
|
||||
return domain
|
||||
|
||||
@classmethod
|
||||
def view_attributes(cls):
|
||||
@@ -660,7 +670,7 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
default = {}
|
||||
default = default.copy()
|
||||
default['state'] = 'draft'
|
||||
default['reference'] = None
|
||||
default['number'] = None
|
||||
default['invoice_state'] = 'none'
|
||||
default['invoices_ignored'] = None
|
||||
default['moves'] = None
|
||||
@@ -683,9 +693,9 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
(self.rec_name,))
|
||||
|
||||
@classmethod
|
||||
def set_reference(cls, sales):
|
||||
def set_number(cls, sales):
|
||||
'''
|
||||
Fill the reference field with the sale sequence
|
||||
Fill the number field with the sale sequence
|
||||
'''
|
||||
pool = Pool()
|
||||
Sequence = pool.get('ir.sequence')
|
||||
@@ -693,12 +703,10 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
|
||||
config = Config(1)
|
||||
for sale in sales:
|
||||
if sale.reference:
|
||||
if sale.number:
|
||||
continue
|
||||
reference = Sequence.get_id(config.sale_sequence.id)
|
||||
cls.write([sale], {
|
||||
'reference': reference,
|
||||
})
|
||||
sale.number = Sequence.get_id(config.sale_sequence.id)
|
||||
cls.save(sales)
|
||||
|
||||
@classmethod
|
||||
def set_sale_date(cls, sales):
|
||||
@@ -862,7 +870,7 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
|
||||
def quote(cls, sales):
|
||||
for sale in sales:
|
||||
sale.check_for_quotation()
|
||||
cls.set_reference(sales)
|
||||
cls.set_number(sales)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
|
||||
+5
-3
@@ -6,15 +6,17 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="party"/>
|
||||
<label name="invoice_address"/>
|
||||
<field name="invoice_address"/>
|
||||
<label name="reference"/>
|
||||
<field name="reference"/>
|
||||
<label name="number"/>
|
||||
<field name="number"/>
|
||||
<label name="shipment_party"/>
|
||||
<field name="shipment_party"/>
|
||||
<label name="shipment_address"/>
|
||||
<field name="shipment_address"/>
|
||||
<newline/>
|
||||
<label name="description"/>
|
||||
<field name="description" colspan="5"/>
|
||||
<field name="description" colspan="3"/>
|
||||
<label name="reference"/>
|
||||
<field name="reference"/>
|
||||
<notebook colspan="6">
|
||||
<page string="Sale" id="sale">
|
||||
<label name="sale_date"/>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree string="Sales">
|
||||
<field name="number"/>
|
||||
<field name="reference"/>
|
||||
<field name="sale_date"/>
|
||||
<field name="party"/>
|
||||
|
||||
Reference in new issue
Block a user