Upgrade to 6.x
This commit is contained in:
parent
1a9e9f57f8
commit
31bb31d7de
|
@ -9,7 +9,7 @@ from . import sale
|
|||
def register():
|
||||
Pool.register(
|
||||
configuration.Configuration,
|
||||
configuration.ConfigurationCompany,
|
||||
configuration.ConfigurationSequence,
|
||||
sale.SaleInvoiceGroup,
|
||||
sale.Sale,
|
||||
sale.SaleLine,
|
||||
|
|
|
@ -1,72 +1,59 @@
|
|||
#The COPYRIGHT file at the top level of
|
||||
#this repository contains the full copyright notices and license terms.
|
||||
from trytond.model import Model, ModelSQL, fields
|
||||
from trytond.model import fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.pyson import Eval, Id
|
||||
|
||||
__all__ = ['Configuration', 'ConfigurationCompany']
|
||||
__all__ = ['Configuration', 'ConfigurationSequence']
|
||||
|
||||
|
||||
def default_func(field_name):
|
||||
@classmethod
|
||||
def default(cls, **pattern):
|
||||
return getattr(
|
||||
cls.multivalue_model(field_name),
|
||||
'default_%s' % field_name, lambda: None)()
|
||||
return default
|
||||
|
||||
|
||||
class Configuration(metaclass=PoolMeta):
|
||||
__name__ = 'sale.configuration'
|
||||
|
||||
invoice_group_sequence = fields.Function(fields.Many2One(
|
||||
'ir.sequence', 'Invoice group sequence', required=True,
|
||||
invoice_group_sequence = fields.MultiValue(fields.Many2One(
|
||||
'ir.sequence', "Invoice Group Sequence", required=True,
|
||||
domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'sale.invoice.group'),
|
||||
]), 'get_company_config', 'set_company_config')
|
||||
('sequence_type', '=', Id('sale_invoice_complete_line_grouping',
|
||||
'sequence_type_invoice_group')),
|
||||
]))
|
||||
|
||||
@classmethod
|
||||
def get_company_config(self, configs, names):
|
||||
def multivalue_model(cls, field):
|
||||
pool = Pool()
|
||||
CompanyConfig = pool.get('sale.configuration.company')
|
||||
if field == 'invoice_group_sequence':
|
||||
return pool.get('sale.configuration.sequence')
|
||||
return super(Configuration, cls).multivalue_model(field)
|
||||
|
||||
company_id = Transaction().context.get('company')
|
||||
company_configs = CompanyConfig.search([
|
||||
('company', '=', company_id),
|
||||
])
|
||||
default_invoice_group_sequence = default_func('invoice_group_sequence')
|
||||
|
||||
res = {}
|
||||
for fname in names:
|
||||
res[fname] = {
|
||||
configs[0].id: None,
|
||||
}
|
||||
if company_configs:
|
||||
val = getattr(company_configs[0], fname)
|
||||
if isinstance(val, Model):
|
||||
val = val.id
|
||||
res[fname][configs[0].id] = val
|
||||
return res
|
||||
|
||||
class ConfigurationSequence(metaclass=PoolMeta):
|
||||
__name__ = 'sale.configuration.sequence'
|
||||
invoice_group_sequence = fields.Many2One(
|
||||
'ir.sequence', "Invoice Group Sequence", required=True,
|
||||
domain=[
|
||||
('company', 'in', [Eval('company', -1), None]),
|
||||
('sequence_type', '=', Id('sale_invoice_complete_line_grouping',
|
||||
'sequence_type_invoice_group')),
|
||||
],
|
||||
depends=['company'])
|
||||
|
||||
@classmethod
|
||||
def set_company_config(self, configs, name, value):
|
||||
def default_invoice_group_sequence(cls):
|
||||
pool = Pool()
|
||||
CompanyConfig = pool.get('sale.configuration.company')
|
||||
|
||||
company_id = Transaction().context.get('company')
|
||||
company_configs = CompanyConfig.search([
|
||||
('company', '=', company_id),
|
||||
])
|
||||
if company_configs:
|
||||
company_config = company_configs[0]
|
||||
else:
|
||||
company_config = CompanyConfig(company=company_id)
|
||||
setattr(company_config, name, value)
|
||||
company_config.save()
|
||||
|
||||
|
||||
class ConfigurationCompany(ModelSQL):
|
||||
'Sale Configuration by Company'
|
||||
__name__ = 'sale.configuration.company'
|
||||
|
||||
company = fields.Many2One('company.company', 'Company', required=True,
|
||||
ondelete='CASCADE', select=True)
|
||||
invoice_group_sequence = fields.Many2One('ir.sequence',
|
||||
'Invoice group sequence', domain=[
|
||||
('company', 'in',
|
||||
[Eval('context', {}).get('company', -1), None]),
|
||||
('code', '=', 'sale.invoice.group'),
|
||||
])
|
||||
ModelData = pool.get('ir.model.data')
|
||||
try:
|
||||
return ModelData.get_id('sale_invoice_complete_line_grouping',
|
||||
'sequence_invoice_group')
|
||||
except KeyError:
|
||||
return None
|
||||
|
|
|
@ -5,12 +5,15 @@
|
|||
<data>
|
||||
<record model="ir.sequence.type" id="sequence_type_invoice_group">
|
||||
<field name="name">Sale Invoice Group</field>
|
||||
<field name="code">sale.invoice.group</field>
|
||||
</record>
|
||||
<record model="ir.sequence.type-res.group" id="sequence_type_invoice_group_group_admin">
|
||||
<field name="sequence_type" ref="sequence_type_invoice_group"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.sequence" id="sequence_invoice_group">
|
||||
<field name="name">Sale Invoice Group</field>
|
||||
<field name="code">sale.invoice.group</field>
|
||||
<field name="sequence_type" ref="sequence_type_invoice_group"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_configuration_view_form">
|
||||
|
|
66
locale/ca.po
66
locale/ca.po
|
@ -3,73 +3,21 @@ msgid ""
|
|||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.configuration,invoice_group_sequence:"
|
||||
msgid "Invoice group sequence"
|
||||
msgstr "Seqüencia de grups de facturació"
|
||||
msgid "Invoice Group Sequence"
|
||||
msgstr "Seqüència agrupació factures"
|
||||
|
||||
msgctxt "field:sale.configuration.company,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:sale.configuration.company,create_date:"
|
||||
msgid "Create Date"
|
||||
msgstr "Data de creació"
|
||||
|
||||
msgctxt "field:sale.configuration.company,create_uid:"
|
||||
msgid "Create User"
|
||||
msgstr "Usuari de creació"
|
||||
|
||||
msgctxt "field:sale.configuration.company,id:"
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgctxt "field:sale.configuration.company,invoice_group_sequence:"
|
||||
msgid "Invoice group sequence"
|
||||
msgstr "Seqüencia de grups de facturació"
|
||||
|
||||
msgctxt "field:sale.configuration.company,rec_name:"
|
||||
msgid "Record Name"
|
||||
msgstr "Nom registre"
|
||||
|
||||
msgctxt "field:sale.configuration.company,write_date:"
|
||||
msgid "Write Date"
|
||||
msgstr "Usuari de creació"
|
||||
|
||||
msgctxt "field:sale.configuration.company,write_uid:"
|
||||
msgid "Write User"
|
||||
msgstr "Usuari de modificació"
|
||||
msgctxt "field:sale.configuration.sequence,invoice_group_sequence:"
|
||||
msgid "Invoice Group Sequence"
|
||||
msgstr "Seqüència agrupació factures"
|
||||
|
||||
msgctxt "field:sale.invoice.group,code:"
|
||||
msgid "Code"
|
||||
msgstr "Codi"
|
||||
|
||||
msgctxt "field:sale.invoice.group,create_date:"
|
||||
msgid "Create Date"
|
||||
msgstr "Data de creació"
|
||||
|
||||
msgctxt "field:sale.invoice.group,create_uid:"
|
||||
msgid "Create User"
|
||||
msgstr "Usuari de creació"
|
||||
|
||||
msgctxt "field:sale.invoice.group,id:"
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgctxt "field:sale.invoice.group,name:"
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
msgctxt "field:sale.invoice.group,rec_name:"
|
||||
msgid "Record Name"
|
||||
msgstr "Nom"
|
||||
|
||||
msgctxt "field:sale.invoice.group,write_date:"
|
||||
msgid "Write Date"
|
||||
msgstr "Data modificació"
|
||||
|
||||
msgctxt "field:sale.invoice.group,write_uid:"
|
||||
msgid "Write User"
|
||||
msgstr "Usuari modificació"
|
||||
|
||||
msgctxt "field:sale.line,invoice_group:"
|
||||
msgid "Invoice Grouping"
|
||||
msgstr "Agrupació de facturació"
|
||||
|
@ -86,10 +34,6 @@ msgctxt "model:ir.sequence.type,name:sequence_type_invoice_group"
|
|||
msgid "Sale Invoice Group"
|
||||
msgstr "Grup de facturació per a vendes"
|
||||
|
||||
msgctxt "model:sale.configuration.company,name:"
|
||||
msgid "Sale Configuration by Company"
|
||||
msgstr "Configuració de la venda per empresa"
|
||||
|
||||
msgctxt "model:sale.invoice.group,name:"
|
||||
msgid "Sale Invoice Group"
|
||||
msgstr "Grup de facturació per a vendes"
|
||||
|
|
66
locale/es.po
66
locale/es.po
|
@ -3,73 +3,21 @@ msgid ""
|
|||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.configuration,invoice_group_sequence:"
|
||||
msgid "Invoice group sequence"
|
||||
msgstr "Sequencia de grupos de facturación"
|
||||
msgid "Invoice Group Sequence"
|
||||
msgstr "Secuencia agrupación facturas"
|
||||
|
||||
msgctxt "field:sale.configuration.company,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:sale.configuration.company,create_date:"
|
||||
msgid "Create Date"
|
||||
msgstr "Fecha de creación"
|
||||
|
||||
msgctxt "field:sale.configuration.company,create_uid:"
|
||||
msgid "Create User"
|
||||
msgstr "Usuario de creación"
|
||||
|
||||
msgctxt "field:sale.configuration.company,id:"
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgctxt "field:sale.configuration.company,invoice_group_sequence:"
|
||||
msgid "Invoice group sequence"
|
||||
msgstr "Sequencia de grupos de facturación"
|
||||
|
||||
msgctxt "field:sale.configuration.company,rec_name:"
|
||||
msgid "Record Name"
|
||||
msgstr "Nombre registro"
|
||||
|
||||
msgctxt "field:sale.configuration.company,write_date:"
|
||||
msgid "Write Date"
|
||||
msgstr "Fecha de modificación"
|
||||
|
||||
msgctxt "field:sale.configuration.company,write_uid:"
|
||||
msgid "Write User"
|
||||
msgstr "Usuario de modificación"
|
||||
msgctxt "field:sale.configuration.sequence,invoice_group_sequence:"
|
||||
msgid "Invoice Group Sequence"
|
||||
msgstr "Secuencia agrupación facturas"
|
||||
|
||||
msgctxt "field:sale.invoice.group,code:"
|
||||
msgid "Code"
|
||||
msgstr "Código"
|
||||
|
||||
msgctxt "field:sale.invoice.group,create_date:"
|
||||
msgid "Create Date"
|
||||
msgstr "Fecha de creación"
|
||||
|
||||
msgctxt "field:sale.invoice.group,create_uid:"
|
||||
msgid "Create User"
|
||||
msgstr "Usuario de creación"
|
||||
|
||||
msgctxt "field:sale.invoice.group,id:"
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
msgctxt "field:sale.invoice.group,name:"
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
msgctxt "field:sale.invoice.group,rec_name:"
|
||||
msgid "Record Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
msgctxt "field:sale.invoice.group,write_date:"
|
||||
msgid "Write Date"
|
||||
msgstr "Fecha modificación"
|
||||
|
||||
msgctxt "field:sale.invoice.group,write_uid:"
|
||||
msgid "Write User"
|
||||
msgstr "Usuario modificación"
|
||||
|
||||
msgctxt "field:sale.line,invoice_group:"
|
||||
msgid "Invoice Grouping"
|
||||
msgstr "Agrupación de facturación"
|
||||
|
@ -86,10 +34,6 @@ msgctxt "model:ir.sequence.type,name:sequence_type_invoice_group"
|
|||
msgid "Sale Invoice Group"
|
||||
msgstr "Grupo de facturación para ventas"
|
||||
|
||||
msgctxt "model:sale.configuration.company,name:"
|
||||
msgid "Sale Configuration by Company"
|
||||
msgstr "Configuración de la venta por empresa"
|
||||
|
||||
msgctxt "model:sale.invoice.group,name:"
|
||||
msgid "Sale Invoice Group"
|
||||
msgstr "Grupo de facturación para ventas"
|
||||
|
|
12
sale.py
12
sale.py
|
@ -3,28 +3,29 @@
|
|||
from trytond.model import ModelView, ModelSQL, fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
__all__ = ['SaleInvoiceGroup', 'Sale', 'SaleLine']
|
||||
|
||||
|
||||
class SaleInvoiceGroup(ModelSQL, ModelView, metaclass=PoolMeta):
|
||||
class SaleInvoiceGroup(ModelSQL, ModelView):
|
||||
'Sale Invoice Group'
|
||||
__name__ = 'sale.invoice.group'
|
||||
|
||||
code = fields.Char('Code', required=True, readonly=True)
|
||||
name = fields.Char('Name')
|
||||
|
||||
@classmethod
|
||||
def create(cls, vlist):
|
||||
pool = Pool()
|
||||
Sequence = pool.get('ir.sequence')
|
||||
Config = pool.get('sale.configuration')
|
||||
|
||||
company_id = Transaction().context.get('company')
|
||||
|
||||
config = Config(1)
|
||||
for value in vlist:
|
||||
if not 'code' in value:
|
||||
value['code'] = Sequence.get_id(
|
||||
config.invoice_group_sequence.id)
|
||||
value['code'] = config.get_multivalue(
|
||||
'invoice_group_sequence', company=company_id).get()
|
||||
return super(SaleInvoiceGroup, cls).create(vlist)
|
||||
|
||||
def get_rec_name(self, name):
|
||||
|
@ -72,7 +73,6 @@ class Sale(metaclass=PoolMeta):
|
|||
|
||||
class SaleLine(metaclass=PoolMeta):
|
||||
__name__ = 'sale.line'
|
||||
|
||||
invoice_group = fields.Many2One('sale.invoice.group', 'Invoice Grouping',
|
||||
ondelete='RESTRICT', depends=['type'], states={
|
||||
'invisible': Eval('type') != 'line',
|
||||
|
|
|
@ -56,7 +56,6 @@ Create account user::
|
|||
>>> account_user.groups.append(account_group)
|
||||
>>> account_user.save()
|
||||
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = set_fiscalyear_invoice_sequences(
|
||||
|
@ -82,9 +81,6 @@ Configure sale::
|
|||
>>> sale_config = SaleConfig(1)
|
||||
>>> sale_config.sale_shipment_method = 'order'
|
||||
>>> sale_config.sale_invoice_method = 'shipment'
|
||||
>>> invoice_group_sequence, = Sequence.find([
|
||||
... ('code', '=', 'sale.invoice.group')])
|
||||
>>> sale_config.invoice_group_sequence = invoice_group_sequence
|
||||
>>> sale_config.save()
|
||||
|
||||
Create parties::
|
||||
|
@ -211,11 +207,11 @@ Validate Shipments::
|
|||
|
||||
>>> shipment, = sale.shipments
|
||||
>>> config.user = stock_user.id
|
||||
>>> ShipmentOut = Model.get('stock.shipment.out')
|
||||
>>> ShipmentOut.assign_try([shipment.id], config.context)
|
||||
>>> shipment.click('assign_try')
|
||||
True
|
||||
>>> ShipmentOut.pack([shipment.id], config.context)
|
||||
>>> ShipmentOut.done([shipment.id], config.context)
|
||||
>>> shipment.click('pick')
|
||||
>>> shipment.click('pack')
|
||||
>>> shipment.click('done')
|
||||
>>> config.user = sale_user.id
|
||||
>>> sale.reload()
|
||||
>>> len(sale.shipments), len(sale.shipment_returns), len(sale.invoices)
|
||||
|
@ -266,10 +262,11 @@ Validate Shipments::
|
|||
... move.quantity = 2.0
|
||||
... move.save()
|
||||
>>> shipment.save()
|
||||
>>> ShipmentOut.assign_try([shipment.id], config.context)
|
||||
>>> shipment.click('assign_try')
|
||||
True
|
||||
>>> ShipmentOut.pack([shipment.id], config.context)
|
||||
>>> ShipmentOut.done([shipment.id], config.context)
|
||||
>>> shipment.click('pick')
|
||||
>>> shipment.click('pack')
|
||||
>>> shipment.click('done')
|
||||
>>> config.user = sale_user.id
|
||||
>>> sale.reload()
|
||||
>>> len(sale.shipments), len(sale.shipment_returns), len(sale.invoices)
|
||||
|
@ -284,29 +281,27 @@ Validate Shipments::
|
|||
>>> for move in moves_to_remove:
|
||||
... shipment2.moves.remove(move)
|
||||
>>> shipment2.save()
|
||||
>>> ShipmentOut.assign_try([shipment2.id], config.context)
|
||||
>>> shipment2.click('assign_try')
|
||||
True
|
||||
>>> ShipmentOut.pack([shipment2.id], config.context)
|
||||
>>> ShipmentOut.done([shipment2.id], config.context)
|
||||
>>> shipment2.click('pick')
|
||||
>>> shipment2.click('pack')
|
||||
>>> shipment2.click('done')
|
||||
>>> config.user = sale_user.id
|
||||
>>> sale.reload()
|
||||
>>> len(sale.shipments), len(sale.shipment_returns), len(sale.invoices)
|
||||
(3, 0, 1)
|
||||
>>> invoice, = sale.invoices
|
||||
|
||||
|
||||
|
||||
>>> len(invoice.lines) == 1
|
||||
True
|
||||
|
||||
|
||||
|
||||
>>> shipment3, = sale.shipments.find([('state', '=', 'waiting')])
|
||||
>>> config.user = stock_user.id
|
||||
>>> ShipmentOut.assign_try([shipment3.id], config.context)
|
||||
>>> shipment3.click('assign_try')
|
||||
True
|
||||
>>> ShipmentOut.pack([shipment3.id], config.context)
|
||||
>>> ShipmentOut.done([shipment3.id], config.context)
|
||||
>>> shipment3.click('pick')
|
||||
>>> shipment3.click('pack')
|
||||
>>> shipment3.click('done')
|
||||
>>> config.user = sale_user.id
|
||||
>>> sale.reload()
|
||||
>>> len(sale.shipments), len(sale.shipment_returns), len(sale.invoices)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[tryton]
|
||||
version=5.5.0
|
||||
version=6.0.0
|
||||
depends:
|
||||
sale_invoice_complete
|
||||
xml:
|
||||
|
|
Loading…
Reference in New Issue