add traductions modules contracts

This commit is contained in:
sinergia 2022-09-18 01:23:12 -05:00
parent 9b09080ae8
commit 4d09b42324
7 changed files with 339 additions and 59 deletions

View File

@ -362,14 +362,6 @@ msgctxt "field:purchase.line,health_register:"
msgid "Health Register" msgid "Health Register"
msgstr "Registro Invima" msgstr "Registro Invima"
msgctxt "field:sale.line,product_equipment:"
msgid "Product Equipment"
msgstr "Es Equipo"
msgctxt "field:sale.line,equipment:"
msgid "Equipment"
msgstr "Equipo"
msgctxt "model:ir.ui.menu,name:sale_subscription.menu_service_form" msgctxt "model:ir.ui.menu,name:sale_subscription.menu_service_form"
msgid "Subscription Services" msgid "Subscription Services"
msgstr "Servicios de Contrato" msgstr "Servicios de Contrato"
@ -391,10 +383,247 @@ msgctxt "view:sale.subscription:"
msgid "Equipments" msgid "Equipments"
msgstr "Equipos" msgstr "Equipos"
msgctxt "field:sale.subscription.line,subscription_start_date:" msgctxt "field:sale.subscription.line,subscription_start_date:"
msgid "Subscription Start Date" msgid "Subscription Start Date"
msgstr "Fecha inicial del contrato" msgstr "Fecha inicial del contrato"
msgctxt "field:sale.subscription.line,subscription_end_date:" msgctxt "field:sale.subscription.line,subscription_end_date:"
msgid "Subscription End Date" msgid "Subscription End Date"
msgstr "Fecha final del Contrato" msgstr "Fecha final del Contrato"
msgctxt "model:ir.ui.menu,name:menu_contracts"
msgid "Contracts Management"
msgstr "Gestión de Contratos"
msgctxt "model:ir.ui.menu,name:menu_create_contract_initial"
msgid "Initial Contract"
msgstr "Generar Primer Contrato"
msgctxt "model:ir.ui.menu,name:menu_create_prorogue"
msgid "Prorogue to Contract"
msgstr "Generar Prorroga"
msgctxt "model:ir.ui.menu,name:menu_contract_form"
msgid "Contracts"
msgstr "Contratos"
msgctxt "model:ir.ui.menu,name:sale_subscription.menu_subscription_form"
msgid "Subscriptions"
msgstr "Prorrogas y Contratos"
msgctxt "field:optical_equipment.contract,company:"
msgid "Company"
msgstr "Compañia"
msgctxt "field:optical_equipment.contract,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:optical_equipment.contract,reference:"
msgid "Reference"
msgstr "Referencia"
msgctxt "field:optical_equipment.contract,description:"
msgid "Description"
msgstr "Descripción"
msgctxt "field:optical_equipment.contract,party:"
msgid "Party"
msgstr "Tercero"
msgctxt "field:optical_equipment.contract,contact:"
msgid "Contact"
msgstr "Contacto"
msgctxt "field:optical_equipment.contract,invoice_address:"
msgid "Invoice Address"
msgstr "Dirección de Facturación"
msgctxt "field:optical_equipment.contract,invoice_recurrence:"
msgid "Invoice Recurrence"
msgstr "Recurrencia de Facturación"
msgctxt "field:optical_equipment.contract,start_date:"
msgid "Start Date"
msgstr "Fecha Inicio"
msgctxt "field:optical_equipment.contract,end_date:"
msgid "End Date"
msgstr "Fecha Final"
msgctxt "field:optical_equipment.contract,state:"
msgid "State"
msgstr "Estado"
msgctxt "field:optical_equipment.contract,contract:"
msgid "Contract"
msgstr "Contracto Inicial"
msgctxt "field:optical_equipment.contract,prorogues:"
msgid "Prorrogation"
msgstr "Prorrogaciones"
msgctxt "view:optical_equipment.contract:"
msgid "Contracts and Prorogues"
msgstr "Contratos y Prorrogas"
msgctxt "view:optical_equipment.contract:"
msgid "Equipments"
msgstr "Equipos"
msgctxt "field:optical_equipment.contract,equipments:"
msgid "Equipments"
msgstr "Equipos"
msgctxt "view:optical_equipment.contract:"
msgid "Other Info"
msgstr "Otra Información"
msgctxt "view:optical_equipment.contract:"
msgid "Current Contract"
msgstr "Contrato Principal"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Draft"
msgstr "Borrador"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Draft"
msgstr "Borrador"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Quotation"
msgstr "Presupuesto"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Running"
msgstr "En Ejecución"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Closed"
msgstr "Cerrado"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Cancelled"
msgstr "Cancelado"
msgctxt "selection:optical_equipment.contract,state:"
msgid "Cancelled"
msgstr "Cancelado"
msgctxt "field:optical_equipment.contract,prorogues:"
msgid "Prorrogation"
msgstr "Prorrogaciones"
msgctxt "field:optical_equipment_prorogue.next,initial_contract:"
msgid "Initial Contract"
msgstr "Contrato Inicial"
msgctxt "field:optical_equipment_prorogue.next,contact:"
msgid "Contact"
msgstr "Contacto"
msgctxt "field:optical_equipment_prorogue.next,invoice_address:"
msgid "Invoice Address"
msgstr "Dirección de Facturación"
msgctxt "field:optical_equipment_prorogue.next,invoice_recurrence:"
msgid "Invoice Recurrence"
msgstr "Recurrencia de Facturación"
msgctxt "field:optical_equipment_prorogue.next,payment_term:"
msgid "Payment Term"
msgstr "Plazo de Pago"
msgctxt "field:optical_equipment_prorogue.next,start_date:"
msgid "Start Date"
msgstr "Fecha Inicial"
msgctxt "field:optical_equipment_prorogue.next,end_date:"
msgid "End Date"
msgstr "Fecha Final"
msgctxt "field:optical_equipment_prorogue.next,invoice_start_date:"
msgid "Invoice Start Date"
msgstr "Fecha Inicio Facturación"
msgctxt "field:optical_equipment_prorogue.next,service:"
msgid "Service"
msgstr "Servicio"
msgctxt "field:optical_equipment_prorogue.next,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:optical_equipment_prorogue.next,unit_price:"
msgid "Unit Price"
msgstr "Precio Unitario"
msgctxt "field:optical_equipment_prorogue.next,equipments:"
msgid "Equipments"
msgstr "Equipos"
msgctxt "field:optical_equipment_contract.initial,party:"
msgid "Party"
msgstr "Tercero"
msgctxt "field:optical_equipment_contract.initial,contact:"
msgid "Contact"
msgstr "Contacto"
msgctxt "field:optical_equipment_contract.initial,invoice_address:"
msgid "Invoice Address"
msgstr "Dirección de Facturación"
msgctxt "field:optical_equipment_contract.initial,invoice_recurrence:"
msgid "Invoice Recurrence"
msgstr "Recurrencia de Facturación"
msgctxt "field:optical_equipment_contract.initial,payment_term:"
msgid "Payment Term"
msgstr "Plazo de Pago"
msgctxt "field:optical_equipment_contract.initial,start_date:"
msgid "Start Date"
msgstr "Fecha Inicial"
msgctxt "field:optical_equipment_contract.initial,end_date:"
msgid "End Date"
msgstr "Fecha Final"
msgctxt "field:optical_equipment_contract.initial,invoice_start_date:"
msgid "Invoice Start Date"
msgstr "Fecha Inicio Facturación"
msgctxt "field:optical_equipment_contract.initial,service:"
msgid "Service"
msgstr "Servicio"
msgctxt "field:optical_equipment_contract.initial,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:optical_equipment_contract.initial,unit_price:"
msgid "Unit Price"
msgstr "Precio Unitario"
msgctxt "field:optical_equipment_contract.initial,equipments:"
msgid "Equipments"
msgstr "Equipos"
msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_draft"
msgid "Draft"
msgstr "Borrador"
msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_quotation"
msgid "Quotation"
msgstr "Presupuesto"
msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_running"
msgid "Running"
msgstr "En Ejecución"
msgctxt "model:ir.action.act_window.domain,name:act_contract_form_domain_all"
msgid "All"
msgstr "Todo"

View File

@ -16,10 +16,10 @@ import datetime
class Contract(ModelSQL, ModelView): class Contract(ModelSQL, ModelView):
'Contracts' 'Contracts'
__name__ = 'sale.subscription.contract' __name__ = 'optical_equipment.contract'
company = fields.Many2One( company = fields.Many2One(
'company.company', "Company", required=True, select=True, 'company.company', "Company", readonly=True, required=True, select=True,
states={ states={
'readonly': (Eval('state') != 'draft') | Eval('party', True), 'readonly': (Eval('state') != 'draft') | Eval('party', True),
},help="Make the subscription belong to the company.") },help="Make the subscription belong to the company.")
@ -34,21 +34,20 @@ class Contract(ModelSQL, ModelView):
'readonly': Eval('state') != 'draft', 'readonly': Eval('state') != 'draft',
}) })
party = fields.Many2One( party = fields.Many2One(
'party.party', "Party", required=True, 'party.party', "Party", readonly=True, required=True,
help="The party who subscribes.") help="The party who subscribes.")
contact = fields.Many2One( contact = fields.Many2One(
'party.contact_mechanism', "Contact") 'party.contact_mechanism', "Contact", readonly=True)
invoice_address = fields.Many2One('party.address', 'Invoice Address', invoice_address = fields.Many2One('party.address', 'Invoice Address', readonly=True,
required=True, domain=[('party', '=', Eval('party'))]) required=True, domain=[('party', '=', Eval('party'))])
invoice_recurrence = fields.Many2One( invoice_recurrence = fields.Many2One(
'sale.subscription.recurrence.rule.set', "Invoice Recurrence", 'sale.subscription.recurrence.rule.set', "Invoice Recurrence", readonly=True,
required=True) required=True)
start_date = fields.Date( start_date = fields.Date("Start Date", readonly=True, required=False,)
"Start Date", required=False,)
end_date = fields.Date( end_date = fields.Date(
"End Date", "End Date", readonly=True,
domain=['OR', domain=['OR',
('end_date', '>=', If( ('end_date', '>=', If(
Bool(Eval('start_date')), Bool(Eval('start_date')),
Eval('start_date', datetime.date.min), Eval('start_date', datetime.date.min),
datetime.date.min)), datetime.date.min)),
@ -64,32 +63,41 @@ class Contract(ModelSQL, ModelView):
('running', "Running"), ('running', "Running"),
('closed', "Closed"), ('closed', "Closed"),
('cancelled', "Cancelled"), ('cancelled', "Cancelled"),
], "State", readonly=False, required=False, sort=False, ], "State", readonly=True, required=False, sort=False,
help="The current state of the subscription.") help="The current state of the subscription.")
contract = fields.Many2One('sale.subscription', "Contract") contract = fields.Many2One('sale.subscription', "Contract", readonly=True)
prorogues = fields.Many2Many('sale.subscription-sale.subscription.contract', prorogues = fields.Many2Many('sale.subscription-optical_equipment.contract',
'contract', 'subscription', 'Prorrogation') 'contract', 'subscription', 'Prorrogation', readonly=True)
equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription', equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription',
'equipment', "Equipments") 'equipment', "Equipments", readonly=True,
domain=[['OR',
('state', '=', 'registred'),
('state', '=', 'uncontrated')]
])
@staticmethod @staticmethod
def default_company(): def default_company():
return Transaction().context.get('company') return Transaction().context.get('company')
@staticmethod
def default_state():
return 'draft'
class CreateNextProrogue(ModelView): class CreateNextProrogue(ModelView):
'Create Next Prorogue' 'Create Next Prorogue'
__name__ = 'sale.create.prorogue.next' __name__ = 'optical_equipment_prorogue.next'
initial_contract = fields.Many2One('sale.subscription.contract', "Initial Contract") initial_contract = fields.Many2One('optical_equipment.contract', "Initial Contract")
party = fields.Many2One('party.party', "Party", required=True, party = fields.Many2One('party.party', "Party", required=True,
help="The party who subscribes.") help="The party who subscribes.")
contact = fields.Many2One( contact = fields.Many2One('party.contact_mechanism', "Contact")
'party.contact_mechanism', "Contact")
invoice_address = fields.Many2One('party.address', 'Invoice Address', invoice_address = fields.Many2One('party.address', 'Invoice Address',
required=True, domain=[('party', '=', Eval('party'))]) required=True, domain=[('party', '=', Eval('party'))])
invoice_recurrence = fields.Many2One( invoice_recurrence = fields.Many2One('sale.subscription.recurrence.rule.set', "Invoice Recurrence",
'sale.subscription.recurrence.rule.set', "Invoice Recurrence",
required=True) required=True)
payment_term = fields.Many2One(
'account.invoice.payment_term', "Payment Term")
start_date = fields.Date("Start Date", required=True,) start_date = fields.Date("Start Date", required=True,)
end_date = fields.Date("End Date", required=True, end_date = fields.Date("End Date", required=True,
domain=['OR', domain=['OR',
@ -101,6 +109,11 @@ class CreateNextProrogue(ModelView):
]) ])
invoice_start_date = fields.Date("Invoice Start Date", required=True, invoice_start_date = fields.Date("Invoice Start Date", required=True,
help='Billing start date') help='Billing start date')
service = fields.Many2One('sale.subscription.service', "Service", required=True)
quantity = fields.Float("Quantity", digits='unit', required=True)
unit_price = Monetary("Unit Price", currency='currency',
digits=price_digits,required=True
)
equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription', equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription',
'equipment', "Equipments", required=True, 'equipment', "Equipments", required=True,
domain=[['OR', domain=[['OR',
@ -129,9 +142,9 @@ class CreateNextProrogue(ModelView):
class CreateProrogue(Wizard): class CreateProrogue(Wizard):
'Create Prorogue' 'Create Prorogue'
__name__ = 'sale.create.prorogue' __name__ = 'optical_equipment.prorogue'
start = StateView('sale.create.prorogue.next', start = StateView('optical_equipment_prorogue.next',
'optical_equipment.create_prorogue_view_form', 'optical_equipment.create_prorogue_view_form',
[Button('Cancel', 'end', 'tryton-cancel'), [Button('Cancel', 'end', 'tryton-cancel'),
Button('Create', 'create_prorogue', 'tryton-ok', default=True), Button('Create', 'create_prorogue', 'tryton-ok', default=True),
@ -139,7 +152,7 @@ class CreateProrogue(Wizard):
create_prorogue = StateAction('sale_subscription.act_subscription_form') create_prorogue = StateAction('sale_subscription.act_subscription_form')
done_ = StateView('sale.create.prorogue.next', done_ = StateView('optical_equipment_prorogue.next',
'optical_equipment.create_prorogue_view_form',[ 'optical_equipment.create_prorogue_view_form',[
Button('Done', 'end', 'tryton-cancel'), Button('Done', 'end', 'tryton-cancel'),
]) ])
@ -167,7 +180,8 @@ class CreateProrogue(Wizard):
a = self._subscription_start a = self._subscription_start
equipments_to_subscription=self.start.equipments subscription_lines = [SubscriptionLine( equipments_to_subscription=self.start.equipments
subscription_lines = [SubscriptionLine(
start_date=a['start_date'], start_date=a['start_date'],
end_date=a['end_date'], end_date=a['end_date'],
consumption_recurrence=a['invoice_recurrence'], consumption_recurrence=a['invoice_recurrence'],
@ -192,13 +206,30 @@ class CreateProrogue(Wizard):
lines=subscription_lines, lines=subscription_lines,
equipments=equipments_to_subscription, equipments=equipments_to_subscription,
) )
subscription.save() subscription.save()
self.initial_contract.prorogues.append(subscription.id)
self.initial_contract.save() contract.start_date = a['start_date']
contract.end_date = a['end_date']
contract.invoice_addres = a['invoice_address']
contract.contact = a['contact']
contract.contact = a['invoice.recurrence']
contract.state = subscription.state
IdInitialContract = self.start.initial_contract.id
pool = Pool()
Contract = pool.get('optical_equipment.contract')
contract = Contract.search(['id', '=', IdInitialContract])[0]
contract.prorogues += (contract,)
contract.equipments = equipment_to_subscription
contract.save()
class CreateInitialContract(ModelView): class CreateInitialContract(ModelView):
'Create Initial Contract' 'Create Initial Contract'
__name__ = 'sale.create.contract.initial' __name__ = 'optical_equipment_contract.initial'
party = fields.Many2One( party = fields.Many2One(
'party.party', "Party", required=True, 'party.party', "Party", required=True,
@ -243,14 +274,14 @@ class CreateContract(Wizard):
'Create Contract' 'Create Contract'
__name__ = 'sale.create.contract' __name__ = 'sale.create.contract'
start = StateView('sale.create.contract.initial', start = StateView('optical_equipment_contract.initial',
'optical_equipment.create_contract_view_form',[ 'optical_equipment.create_contract_view_form',[
Button('Cancel', 'end', 'tryton-cancel'), Button('Cancel', 'end', 'tryton-cancel'),
Button('Create', 'create_contract', 'tryton-ok', default=True), Button('Create', 'create_contract', 'tryton-ok', default=True),
]) ])
create_contract = StateAction('sale_subscription.act_subscription_form') create_contract = StateAction('sale_subscription.act_subscription_form')
done_ = StateView('sale.create.contract.initial', done_ = StateView('optical_equipment_contract.initial',
'optical_equipment.create_contract_view_form',[ 'optical_equipment.create_contract_view_form',[
Button('Done', 'end', 'tryton-cancel'), Button('Done', 'end', 'tryton-cancel'),
]) ])
@ -273,7 +304,7 @@ class CreateContract(Wizard):
def _create_contract_base(self,dates, subscription): def _create_contract_base(self,dates, subscription):
pool = Pool() pool = Pool()
ContractBase = pool.get('sale.subscription.contract') ContractBase = pool.get('optical_equipment.contract')
a = self._subscription_start a = self._subscription_start
@ -324,8 +355,8 @@ class CreateContract(Wizard):
equipments=equipments_to_subscription, equipments=equipments_to_subscription,
) )
subscription.save() subscription.save()
self._create_contract_base(a, subscription.id) self._create_contract_base(a, subscription.id)
class Subscription(metaclass=PoolMeta): class Subscription(metaclass=PoolMeta):
__name__ = 'sale.subscription' __name__ = 'sale.subscription'
@ -441,7 +472,7 @@ class SubscriptionEquipment(ModelSQL):
class ContractSupscription(ModelSQL): class ContractSupscription(ModelSQL):
'Prorrogation to the Contract' 'Prorrogation to the Contract'
__name__='sale.subscription-sale.subscription.contract' __name__='sale.subscription-optical_equipment.contract'
contract = fields.Many2One('sale.subscription.contract', 'Contract', select=True) contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
subscription = fields.Many2One('sale.subscription', 'Subscription', select=True) subscription = fields.Many2One('sale.subscription', 'Subscription', select=True)

View File

@ -2,18 +2,18 @@
<!--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. --> <!--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> <tryton>
<record model="ir.ui.view" id="contract_view_form"> <record model="ir.ui.view" id="contract_view_form">
<field name="model">sale.subscription.contract</field> <field name="model">optical_equipment.contract</field>
<field name="type">form</field> <field name="type">form</field>
<field name="name">contract_form</field> <field name="name">contract_form</field>
</record> </record>
<record model="ir.ui.view" id="contract_view_list"> <record model="ir.ui.view" id="contract_view_list">
<field name="model">sale.subscription.contract</field> <field name="model">optical_equipment.contract</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="name">contract_list</field> <field name="name">contract_list</field>
</record> </record>
<record model="ir.action.act_window" id="act_contract_form"> <record model="ir.action.act_window" id="act_contract_form">
<field name="name">Contracts</field> <field name="name">Contracts</field>
<field name="res_model">sale.subscription.contract</field> <field name="res_model">optical_equipment.contract</field>
</record> </record>
<record model="ir.action.act_window.view" <record model="ir.action.act_window.view"
id="act_contract_form_view1"> id="act_contract_form_view1">
@ -92,7 +92,7 @@
<field name="action" ref="report_contract"/> <field name="action" ref="report_contract"/>
</record> </record>
<record model="ir.ui.view" id="create_contract_view_form"> <record model="ir.ui.view" id="create_contract_view_form">
<field name="model">sale.create.contract.initial</field> <field name="model">optical_equipment_contract.initial</field>
<field name="type">form</field> <field name="type">form</field>
<field name="name">create_subscription_form</field> <field name="name">create_subscription_form</field>
</record> </record>
@ -101,13 +101,13 @@
<field name="wiz_name">sale.create.contract</field> <field name="wiz_name">sale.create.contract</field>
</record> </record>
<record model="ir.ui.view" id="create_prorogue_view_form"> <record model="ir.ui.view" id="create_prorogue_view_form">
<field name="model">sale.create.prorogue.next</field> <field name="model">optical_equipment_prorogue.next</field>
<field name="type">form</field> <field name="type">form</field>
<field name="name">create_prorogue_form</field> <field name="name">create_prorogue_form</field>
</record> </record>
<record model="ir.action.wizard" id="act_create_prorogue"> <record model="ir.action.wizard" id="act_create_prorogue">
<field name="name">Prorogue to Contract</field> <field name="name">Prorogue to Contract</field>
<field name="wiz_name">sale.create.prorogue</field> <field name="wiz_name">optical_equipment.prorogue</field>
</record> </record>
<menuitem <menuitem
name="Contracts Management" name="Contracts Management"

View File

@ -4,6 +4,10 @@ depends:
ir ir
party party
company company
account_co_co
account_co_pyme
account_invoice
account_stock_continental
product product
product_measurements product_measurements
purchase purchase
@ -11,8 +15,9 @@ depends:
stock stock
country country
sale_subscription sale_subscription
account_stock_continental sale_history
account_invoice sale_advance_payment
sale_amendment
xml: xml:
address.xml address.xml
party.xml party.xml

View File

@ -9,17 +9,24 @@ this repository contains the full copyright notices and license terms. -->
<field name="party"/> <field name="party"/>
<label name="invoice_address"/> <label name="invoice_address"/>
<field name="invoice_address"/> <field name="invoice_address"/>
<label name="payment_term"/>
<field name="payment_term"/>
<label name="contact"/> <label name="contact"/>
<field name="contact"/> <field name="contact"/>
<newline/>
<label name="start_date"/> <label name="start_date"/>
<field name="start_date"/> <field name="start_date"/>
<label name="end_date"/> <label name="end_date"/>
<field name="end_date"/> <field name="end_date"/>
<label name="invoice_start_date"/> <label name="invoice_start_date"/>
<field name="invoice_start_date"/>> <field name="invoice_start_date"/>
<label name="invoice_recurrence"/> <label name="invoice_recurrence"/>
<field name="invoice_recurrence"/> <field name="invoice_recurrence"/>
<label name="service"/>
<field name="service"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit_price"/>
<field name="unit_price"/>
</group> </group>
<newline/> <newline/>
<field name="equipments"/> <field name="equipments"/>

View File

@ -3,8 +3,6 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<form> <form>
<group id="create_subscription"> <group id="create_subscription">
<label name="initial_contract"/>
<field name="initial_contract"/>
<label name="party"/> <label name="party"/>
<field name="party"/> <field name="party"/>
<label name="contact"/> <label name="contact"/>
@ -19,6 +17,14 @@ this repository contains the full copyright notices and license terms. -->
<field name="end_date"/> <field name="end_date"/>
<label name="invoice_start_date"/> <label name="invoice_start_date"/>
<field name="invoice_start_date"/> <field name="invoice_start_date"/>
<label name="service"/>
<field name="service"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit_price"/>
<field name="unit_price"/>
<label name="payment_term"/>
<field name="payment_term"/>
</group> </group>
<newline/> <newline/>
<field name="equipments"/> <field name="equipments"/>

View File

@ -1,10 +1,12 @@
<?xml version="1.0"?> <?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. --> <!--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. -->
<data> <data>
<!-- <xpath
<xpath expr="/form/group[@id='header']/field[@name='party']" position="before"> expr="//label[@name='party']" position="before">
<label name="type"/>
<field name="type"/> <field name="type"/>
</xpath> --> <newline/>
</xpath>
<xpath <xpath
expr="/form/notebook/page[@id='subscription']" position="after"> expr="/form/notebook/page[@id='subscription']" position="after">
<page string="Equipments" id="equipments_subscription"> <page string="Equipments" id="equipments_subscription">