add payments, quote_number in sale
This commit is contained in:
parent
5dd4826e1d
commit
42b2438fa0
16
account.xml
Normal file
16
account.xml
Normal 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>
|
@ -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'))
|
||||
])
|
||||
|
@ -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
BIN
report/Payment.fodt
Normal file
Binary file not shown.
761
report/Sale.fodt
761
report/Sale.fodt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
31
sale.py
31
sale.py
@ -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)):
|
||||
|
9
sale.xml
9
sale.xml
@ -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>
|
||||
|
@ -20,6 +20,7 @@ depends:
|
||||
xml:
|
||||
address.xml
|
||||
party.xml
|
||||
account.xml
|
||||
product.xml
|
||||
equipment.xml
|
||||
contract.xml
|
||||
|
@ -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"/>
|
||||
|
@ -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
11
view/sale_tree.xml
Normal 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>
|
Loading…
Reference in New Issue
Block a user