add payments, quote_number in sale

This commit is contained in:
raskolnikov 2023-02-27 10:46:56 -05:00
parent 5dd4826e1d
commit 42b2438fa0
12 changed files with 1084 additions and 943 deletions

16
account.xml Normal file
View File

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<record model="ir.action.report" id="report_payment">
<field name="name">Pagos</field>
<field name="model">account.move.line</field>
<field name="report_name">account.move.line</field>
<field name="report">optical_equipment/report/Payment.fodt</field>
<field name="single" eval="True"/>
</record>
<record model="ir.action.keyword" id="report_payment_keyword">
<field name="keyword">form_print</field>
<field name="model">account.move.line,-1</field>
<field name="action" ref="report_payment"/>
</record></tryton>

View File

@ -1,8 +1,10 @@
from trytond.model import (
ModelSingleton, ModelSQL, ModelView, fields)
from trytond.pyson import Id
from trytond.modules.company.model import (
CompanyMultiValueMixin, CompanyValueMixin)
class Configuration(ModelSingleton, ModelSQL, ModelView):
class Configuration(ModelSingleton, ModelSQL, ModelView, CompanyMultiValueMixin):
'Equipment Configuration'
__name__='optical_equipment.configuration'
@ -28,3 +30,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
depends=['moisture_min'])
sale_quote_number = fields.Many2One('ir.sequence', "Sale Quote Number",
domain=[
('sequence_type', '=', Id('sale','sequence_type_sale'))
])

View File

@ -698,6 +698,10 @@ msgctxt "field:optical_equipment_maintenance.service,description:"
msgid "Description"
msgstr "Descripción"
msgctxt "field:sale.sale,quote_number:"
msgid "Quote Number"
msgstr "Cotización #"
msgctxt "field:sale.sale,description:sale."
msgid "Description"
msgstr "Tiempo de Entrega"

BIN
report/Payment.fodt Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

31
sale.py
View File

@ -19,7 +19,7 @@ class Sale(metaclass=PoolMeta):
'Sale'
__name__ = 'sale.sale'
quote_number = fields.Char("Quote Number", readonly=True)
sale_type = fields.Selection([('maintenance', 'Maintenance'),
('equipments', 'Equipments'),
('replaces', 'Replaces')], "Sale Type", required=True,
@ -112,14 +112,36 @@ class Sale(metaclass=PoolMeta):
return Shipment(**values)
@classmethod
def set_quote_number(cls, sales):
'''
Fill the number field with the sale sequence
'''
pool = Pool()
Config = pool.get('optical_equipment.configuration')
config = Config(1)
for sale in sales:
if config.equipment_sequence != None:
if not sale.quote_number:
try:
sale.quote_number = config.sale_quote_number.get()
cls.save(sales)
except UserError:
raise UserError(str('Validation Error'))
else:
raise UserError(gettext('optical_equipment.msg_not_sequence_quote'))
@classmethod
@ModelView.button
@Workflow.transition('quotation')
def quote(cls, sales):
pool = Pool()
AdvancePaymentCondition = pool.get('sale.advance_payment.condition')
super(Sale, cls).quote(sales)
for sale in sales:
sale.check_for_quotation()
cls.set_quote_number(sales)
for sale in sales:
sale.set_advance_payment_term()
cls.save(sales)
@ -156,7 +178,8 @@ class Sale(metaclass=PoolMeta):
maintenanceService.save()
sale.agended = True
sale.save()
cls.set_number(sales)
with transaction.set_context(
queue_scheduled_at=config.sale_process_after,
queue_batch=context.get('queue_batch', True)):

View File

@ -1,6 +1,11 @@
<?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. -->
<tryton>
<record model="ir.ui.view" id="sale_view_tree">
<field name="model">sale.sale</field>
<field name="inherit" ref="sale.sale_view_tree"/>
<field name="name">sale_tree</field>
</record>
<record model="ir.ui.view" id="sale_view_form">
<field name="model">sale.sale</field>
<field name="inherit" ref="sale.sale_view_form"/>
@ -11,6 +16,10 @@
<field name="inherit" ref="sale.product_view_list_sale_line"/>
<field name="name">product_list_sale_line</field>
</record>
<record model="ir.sequence" id="sequence_quote_sale">
<field name="name">Sale Quote</field>
<field name="sequence_type" ref="sale.sequence_type_sale"/>
</record>
<record model="ir.action.report" id="report_sale">
<field name="name">Sale Equipments</field>
<field name="model">sale.sale</field>

View File

@ -20,6 +20,7 @@ depends:
xml:
address.xml
party.xml
account.xml
product.xml
equipment.xml
contract.xml

View File

@ -16,6 +16,9 @@ this repository contains the full copyright notices and license terms. -->
<label name="contract_sequence"/>
<field name="contract_sequence"/>
<newline/>
<label name="sale_quote_number"/>
<field name="sale_quote_number"/>
<newline/>
<separator id="environmental_conditions" string="Environmental Conditions" colspan="4"/>
<label name="temperature_min"/>
<field name="temperature_min"/>

View File

@ -2,6 +2,10 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//label[@name='number']" position="before">
<label name="quote_number"/>
<field name="quote_number"/>
</xpath>
<xpath expr="//field[@name='reference']" position="after">
<newline/>
<label name="sale_type"/>

11
view/sale_tree.xml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="//field[@name='number']" position="before">
<field name="quote_number"/>
</xpath>
<xpath expr="//field[@name='number']" position="replace">
<field name="number"/>
</xpath>
</data>