Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 202e27aac8 | |||
| a6baf2ee59 | |||
| 00b2898408 | |||
| cbc273be00 | |||
| 0c306a8574 | |||
| c247a4720a | |||
| 111e19a33d | |||
|
|
b6e3ff5bc1 | ||
| b981dcd670 | |||
| 224c2d65e9 | |||
|
|
84cf02962a | ||
| 35eaa0554b | |||
| eb466555a0 | |||
| e5d77c2f89 | |||
| 5442a7cb0e | |||
| d040c2560e | |||
| 92113f32cf | |||
| 4019750629 | |||
| 97281a351b | |||
| b7dd21f7a6 | |||
| 659f08cbf6 | |||
| 6e40402b99 | |||
| 2538a8716c | |||
| 4bbcbec88e | |||
| a90840111b | |||
| 042ea6c796 | |||
| 6a8ebf7215 | |||
|
|
0aace73d54 | ||
| d69283f90e | |||
| 53a51aeb75 | |||
| 1c73640e95 | |||
| f3dba62675 | |||
| 65ac48edaa | |||
| bbd7f691e4 | |||
| dbcd054b3b | |||
| e1de811be3 | |||
| 216a297752 | |||
| b4e6cf0936 | |||
| c0291a0c11 | |||
| 7803f6402c | |||
| cadb113039 | |||
| 0a60a455cf | |||
| 0cb98f7622 | |||
| e1604e5e72 | |||
| 53403ba227 | |||
| 75d37438e7 | |||
| 89fc98bc01 | |||
| 3fa095f003 | |||
| fd871a8039 | |||
| 97c7d0db0c | |||
| f0d9576391 | |||
| cb9141c431 | |||
| d7a189110d | |||
| c48c49e55a | |||
| fe958b90f4 | |||
| 02e75ea907 | |||
| 52e57af7d8 | |||
| 4032460588 | |||
| 8c878949f2 | |||
| 477651227e | |||
| f372d8d496 | |||
| db8615b7a0 | |||
| ea6d5ebcbd | |||
| b3e07eff1b | |||
| fa0df0bb99 | |||
| 3551cf4f43 | |||
| dae8317b24 | |||
| e363262f49 | |||
| 2c9aba7bdc | |||
| 58cb1d7246 | |||
| 73b66669a5 | |||
| 4a92021f1f | |||
| 7cab021a5e | |||
| b387f2b10b | |||
| 35c74076b5 | |||
| 4a5f756dbe | |||
| 5818090bbf | |||
| 63f4f24f53 | |||
| 95e6ed60f3 | |||
| 48ef146c44 | |||
| b766a9ceda | |||
| f0faa4058f | |||
| 5f73e49550 | |||
| 23a6450be0 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -28,11 +28,6 @@ share/python-wheels/
|
|||||||
.installed.cfg
|
.installed.cfg
|
||||||
*.egg
|
*.egg
|
||||||
MANIFEST
|
MANIFEST
|
||||||
GPATH
|
|
||||||
GRTAGS
|
|
||||||
GTAGS
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# PyInstaller
|
# PyInstaller
|
||||||
# Usually these files are written by a python script from a template
|
# Usually these files are written by a python script from a template
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Copyright (C) 2022 trytondo-smart-vision
|
Copyright (C) 2023
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -2,4 +2,5 @@ include CHANGELOG
|
|||||||
include COPYRIGHT
|
include COPYRIGHT
|
||||||
include LICENSE
|
include LICENSE
|
||||||
include README.rst
|
include README.rst
|
||||||
|
include icons/LICENSE
|
||||||
graft doc
|
graft doc
|
||||||
|
|||||||
77
__init__.py
77
__init__.py
@@ -1,56 +1,73 @@
|
|||||||
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
# this repository contains the full copyright notices and license terms.
|
||||||
from trytond.pool import Pool
|
from trytond.pool import Pool
|
||||||
from . import (address, diary, party, product, purchase, sale,
|
from . import (agended, balance_sale_party, calibration, configuration,
|
||||||
equipment, configuration_equipment, contract, maintenance, move, exceptions)
|
contract, company, diary, equipment, party, product,
|
||||||
|
maintenance, move, purchase, sale)
|
||||||
|
|
||||||
|
__all__ = ['register']
|
||||||
|
|
||||||
|
|
||||||
def register():
|
def register():
|
||||||
Pool.register(
|
Pool.register(
|
||||||
address.Address,
|
company.Employee,
|
||||||
|
equipment.OpticalEquipment,
|
||||||
|
equipment.EquipmentParty,
|
||||||
|
contract.Contract,
|
||||||
|
contract.ContractMaintenanceServices,
|
||||||
|
equipment.EquipmentContract,
|
||||||
|
equipment.EquipmentMaintenance,
|
||||||
|
equipment.ChangePropietary,
|
||||||
|
equipment.ChangeEquipment,
|
||||||
|
agended.AgendedInitial,
|
||||||
|
agended.ReAgended,
|
||||||
|
agended.ServiceMaintenanceAgended,
|
||||||
|
calibration.Calibration,
|
||||||
|
calibration.CalibrationSample,
|
||||||
|
configuration.Configuration,
|
||||||
diary.Diary,
|
diary.Diary,
|
||||||
|
contract.Cron,
|
||||||
|
contract.ContractEquipment,
|
||||||
|
contract.CreateContractInitial,
|
||||||
|
party.Address,
|
||||||
party.Party,
|
party.Party,
|
||||||
product.Template,
|
product.Template,
|
||||||
product.Product,
|
product.Product,
|
||||||
product.Pattern,
|
product.Pattern,
|
||||||
|
product.UsePattern,
|
||||||
|
product.Image,
|
||||||
purchase.Purchase,
|
purchase.Purchase,
|
||||||
purchase.Line,
|
purchase.Line,
|
||||||
equipment.OpticalEquipment,
|
sale.Sale,
|
||||||
equipment.EquipmentMaintenance,
|
sale.SaleDate,
|
||||||
equipment.EquipmentParty,
|
sale.SaleLine,
|
||||||
equipment.ChangePropietary,
|
|
||||||
equipment.ChangeEquipment,
|
|
||||||
configuration_equipment.Configuration,
|
|
||||||
maintenance.Calibration,
|
|
||||||
maintenance.CreateContractInitial,
|
|
||||||
maintenance.CalibrationSample,
|
|
||||||
maintenance.Maintenance,
|
|
||||||
maintenance.MaintenanceService,
|
maintenance.MaintenanceService,
|
||||||
maintenance.MaintenanceActivity,
|
maintenance.MaintenanceServiceLine,
|
||||||
maintenance.MaintenanceLine,
|
maintenance.MaintenanceLine,
|
||||||
maintenance.AgendedInitial,
|
maintenance.MaintenanceActivity,
|
||||||
maintenance.ReAgended,
|
|
||||||
maintenance.ServiceMaintenanceAgended,
|
|
||||||
maintenance.ChangePropietaryMaintenance,
|
maintenance.ChangePropietaryMaintenance,
|
||||||
move.Move,
|
move.Move,
|
||||||
move.ShipmentOut,
|
move.ShipmentOut,
|
||||||
move.ShipmentOutReturn,
|
|
||||||
move.ShipmentInternal,
|
move.ShipmentInternal,
|
||||||
sale.Sale,
|
move.ShipmentOutReturn,
|
||||||
sale.SaleLine,
|
balance_sale_party.BalanceSalePartyStart,
|
||||||
contract.Contract,
|
module='optical_equipment', type_='model'
|
||||||
contract.ContractEquipment,
|
)
|
||||||
contract.ContractMaintenanceServices,
|
|
||||||
module='optical_equipment', type_='model')
|
|
||||||
Pool.register(
|
Pool.register(
|
||||||
maintenance.AssingAgended,
|
agended.AssingAgended,
|
||||||
maintenance.ReAssingAgended,
|
agended.ReAssingAgended,
|
||||||
maintenance.CreateContract,
|
contract.CreateContract,
|
||||||
maintenance.NewPropietaryMaintenance,
|
|
||||||
equipment.NewPropietary,
|
equipment.NewPropietary,
|
||||||
|
maintenance.NewPropietaryMaintenance,
|
||||||
|
balance_sale_party.PrintBalanceSaleParty,
|
||||||
|
sale.ConfirmSaleDate,
|
||||||
module='optical_equipment', type_='wizard')
|
module='optical_equipment', type_='wizard')
|
||||||
Pool.register(
|
Pool.register(
|
||||||
maintenance.CalibrationReport,
|
calibration.CalibrationReport,
|
||||||
maintenance.MaintenanceServiceReport,
|
|
||||||
contract.ContractReport,
|
contract.ContractReport,
|
||||||
equipment.EquipmentReport,
|
equipment.EquipmentReport,
|
||||||
|
maintenance.MaintenanceServiceReport,
|
||||||
move.PickingListDeliveryReport,
|
move.PickingListDeliveryReport,
|
||||||
move.CapacitationReport,
|
move.CapacitationReport,
|
||||||
|
balance_sale_party.BalanceSaleParty,
|
||||||
module='optical_equipment', type_='report')
|
module='optical_equipment', type_='report')
|
||||||
|
|||||||
16
account.xml
16
account.xml
@@ -1,16 +0,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. -->
|
|
||||||
<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>
|
|
||||||
11
address.py
11
address.py
@@ -1,11 +0,0 @@
|
|||||||
from trytond.pool import PoolMeta
|
|
||||||
from trytond.model import fields
|
|
||||||
from trytond.pyson import Eval, If
|
|
||||||
|
|
||||||
|
|
||||||
class Address(metaclass=PoolMeta):
|
|
||||||
__name__ = 'party.address'
|
|
||||||
|
|
||||||
campus = fields.Boolean("Campus")
|
|
||||||
party_related = fields.Many2One('party.party', "Party Related",
|
|
||||||
states ={ 'invisible': (~Eval("campus"))})
|
|
||||||
15
address.xml
15
address.xml
@@ -1,15 +0,0 @@
|
|||||||
<?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. -->
|
|
||||||
<tryton>
|
|
||||||
<record model="ir.ui.view" id="address_view_tree">
|
|
||||||
<field name="model">party.address</field>
|
|
||||||
<field name="inherit" ref="party.address_view_tree"/>
|
|
||||||
<field name="name">address_tree</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="address_view_form">
|
|
||||||
<field name="model">party.address</field>
|
|
||||||
<field name="inherit" ref="party.address_view_form"/>
|
|
||||||
<field name="name">address_form</field>
|
|
||||||
</record>
|
|
||||||
</tryton>
|
|
||||||
144
agended.py
Normal file
144
agended.py
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
# this repository contains the full copyright notices and license terms.
|
||||||
|
from trytond.model import ModelSQL, ModelView, fields
|
||||||
|
from trytond.wizard import Button, StateAction, StateView, Wizard
|
||||||
|
from trytond.pool import Pool
|
||||||
|
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
|
||||||
|
class AgendedInitial(ModelView):
|
||||||
|
'Agended maintenance service'
|
||||||
|
__name__ = 'optical_equipment_maintenance.agended'
|
||||||
|
|
||||||
|
maintenance_service = fields.Many2One(
|
||||||
|
'optical_equipment_maintenance.service',
|
||||||
|
'Maintenaince Service',
|
||||||
|
required=True,
|
||||||
|
domain=[('state', '=', 'draft')],
|
||||||
|
)
|
||||||
|
|
||||||
|
estimated_agended = fields.DateTime('Date Maintenance', required=True)
|
||||||
|
|
||||||
|
technical = fields.Many2One('company.employee', 'Technical', required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class AssingAgended(Wizard):
|
||||||
|
'Assing Agended'
|
||||||
|
__name__ = 'optical_equipment_maintenance.assing_agended'
|
||||||
|
|
||||||
|
start = StateView(
|
||||||
|
'optical_equipment_maintenance.agended',
|
||||||
|
'optical_equipment.assing_agended_view_form',
|
||||||
|
[
|
||||||
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
|
Button('Assing', 'assing_agended', 'tryton-ok', default=True),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assing_agended = StateAction(
|
||||||
|
'optical_equipment.act_maintenance_service_form')
|
||||||
|
|
||||||
|
def default_start(self, fields):
|
||||||
|
if len(self.records) > 0:
|
||||||
|
default = {'maintenance_service': self.records[0].id}
|
||||||
|
else:
|
||||||
|
default = {'maintenance_service': None}
|
||||||
|
return default
|
||||||
|
|
||||||
|
def do_assing_agended(self, action):
|
||||||
|
pool = Pool()
|
||||||
|
Diary = pool.get('optical_equipment_maintenance.diary')
|
||||||
|
Config = pool.get('optical_equipment.configuration')
|
||||||
|
config = Config(3)
|
||||||
|
|
||||||
|
diary = Diary(
|
||||||
|
code=config.agended_sequence.get(),
|
||||||
|
maintenance_service=self.start.maintenance_service,
|
||||||
|
date_expected=self.start.estimated_agended,
|
||||||
|
date_estimated=self.start.estimated_agended + timedelta(days=15),
|
||||||
|
date_end=self.start.estimated_agended + timedelta(days=15),
|
||||||
|
technical=self.start.technical.id,
|
||||||
|
state='agended',
|
||||||
|
)
|
||||||
|
diary.save()
|
||||||
|
|
||||||
|
maintenanceService = self.start.maintenance_service
|
||||||
|
maintenanceService.estimated_agended = self.start.estimated_agended
|
||||||
|
maintenanceService.technical = self.start.technical
|
||||||
|
maintenanceService.state_agended = 'agended'
|
||||||
|
maintenanceService.state = 'agended'
|
||||||
|
maintenanceService.current_agended = diary.id
|
||||||
|
maintenanceService.history_agended += (diary.id,)
|
||||||
|
maintenanceService.set_code(maintenanceService)
|
||||||
|
maintenanceService.save()
|
||||||
|
|
||||||
|
|
||||||
|
class ReAgended(ModelView):
|
||||||
|
'Agended maintenance service'
|
||||||
|
__name__ = 'optical_equipment_maintenance.reagended'
|
||||||
|
|
||||||
|
maintenance_service = fields.Many2One(
|
||||||
|
'optical_equipment_maintenance.service',
|
||||||
|
'Maintenaince Service',
|
||||||
|
required=True,
|
||||||
|
domain=[('state', '=', 'failed')],
|
||||||
|
)
|
||||||
|
estimated_agended = fields.DateTime('Date Maintenance', required=True)
|
||||||
|
technical = fields.Many2One('company.employee', 'Technical', required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class ReAssingAgended(Wizard):
|
||||||
|
'Assing Agended'
|
||||||
|
__name__ = 'optical_equipment_maintenance.reassing_agended'
|
||||||
|
|
||||||
|
start = StateView(
|
||||||
|
'optical_equipment_maintenance.reagended',
|
||||||
|
'optical_equipment.reassing_agended_view_form',
|
||||||
|
[
|
||||||
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
|
Button('Assing', 'assing_agended', 'tryton-ok', default=True),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assing_agended = StateAction(
|
||||||
|
'optical_equipment.act_maintenance_service_form')
|
||||||
|
|
||||||
|
def default_start(self, fields):
|
||||||
|
if len(self.records) > 0:
|
||||||
|
default = {'maintenance_service': self.records[0].id}
|
||||||
|
else:
|
||||||
|
default = {'maintenance_service': None}
|
||||||
|
return default
|
||||||
|
|
||||||
|
def do_assing_agended(self, action):
|
||||||
|
pool = Pool()
|
||||||
|
Diary = pool.get('optical_equipment_maintenance.diary')
|
||||||
|
|
||||||
|
diary = Diary(
|
||||||
|
maintenance_service=self.start.maintenance_service,
|
||||||
|
date_expected=self.start.estimated_agended,
|
||||||
|
date_estimated=self.start.estimated_agended + timedelta(days=15),
|
||||||
|
date_end=self.start.estimated_agended + timedelta(days=15),
|
||||||
|
technical=self.start.technical.id,
|
||||||
|
state='agended',
|
||||||
|
)
|
||||||
|
diary.save()
|
||||||
|
|
||||||
|
maintenanceService = self.start.maintenance_service
|
||||||
|
maintenanceService.estimated_agended = self.start.estimated_agended
|
||||||
|
maintenanceService.technical = self.start.technical
|
||||||
|
maintenanceService.state_agended = 'agended'
|
||||||
|
maintenanceService.state = 'agended'
|
||||||
|
maintenanceService.history_agended += (diary.id,)
|
||||||
|
maintenanceService.save()
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceMaintenanceAgended(ModelSQL):
|
||||||
|
'Service Maintenance - Agended'
|
||||||
|
__name__ = 'optical_equipment_maintenance.service-maintenance.diary'
|
||||||
|
|
||||||
|
maintenance_service = fields.Many2One(
|
||||||
|
'optical_equipment_maintenance.service', 'Maintenance Service'
|
||||||
|
)
|
||||||
|
agended = fields.Many2One('optical_equipment_maintenance.diary', 'Agended')
|
||||||
33
agended.xml
Normal file
33
agended.xml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?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. -->
|
||||||
|
<tryton>
|
||||||
|
<data>
|
||||||
|
<record model="ir.ui.view" id="assing_agended_view_form">
|
||||||
|
<field name="model">optical_equipment_maintenance.agended</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">assing_agended_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.wizard" id="act_assing_agended">
|
||||||
|
<field name="name">Assing Agended</field>
|
||||||
|
<field name="wiz_name">optical_equipment_maintenance.assing_agended</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="reassing_agended_view_form">
|
||||||
|
<field name="model">optical_equipment_maintenance.reagended</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">reassing_agended_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.wizard" id="act_reassing_agended">
|
||||||
|
<field name="name">ReAssing Agended</field>
|
||||||
|
<field name="wiz_name">optical_equipment_maintenance.reassing_agended</field>
|
||||||
|
</record>
|
||||||
|
<menuitem parent="menu_diary"
|
||||||
|
action="act_assing_agended"
|
||||||
|
sequence="30"
|
||||||
|
id="menu_assing_agended_form"/>
|
||||||
|
<menuitem parent="menu_diary"
|
||||||
|
action="act_reassing_agended"
|
||||||
|
sequence="40"
|
||||||
|
id="menu_reassing_agended_form"/>
|
||||||
|
</data>
|
||||||
|
</tryton>
|
||||||
163
balance_sale_party.py
Normal file
163
balance_sale_party.py
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
# The COPYRIGHT file at the top level of this repository contains the full
|
||||||
|
# copyright notices and license terms.
|
||||||
|
from trytond.model import ModelView, fields
|
||||||
|
from trytond.wizard import Wizard, StateView, Button, StateReport
|
||||||
|
from trytond.report import Report
|
||||||
|
from trytond.pool import Pool
|
||||||
|
from trytond.transaction import Transaction
|
||||||
|
from trytond.pyson import Eval
|
||||||
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
|
__all__ = ['BalanceSalePartyStart',
|
||||||
|
'PrintBalanceSaleParty', 'BalanceSaleParty']
|
||||||
|
|
||||||
|
|
||||||
|
class BalanceSalePartyStart(ModelView):
|
||||||
|
'Balance Party Start'
|
||||||
|
__name__ = 'optical_equipment.print_balance_sale_party.start'
|
||||||
|
|
||||||
|
fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year',
|
||||||
|
required=True)
|
||||||
|
party = fields.Many2One('party.party', 'Party', required=True)
|
||||||
|
start_period = fields.Many2One(
|
||||||
|
'account.period',
|
||||||
|
'Start Period',
|
||||||
|
domain=[
|
||||||
|
('start_date', '<=', (Eval('end_period'), 'start_date')),
|
||||||
|
],
|
||||||
|
depends=['fiscalyear', 'end_period'],
|
||||||
|
)
|
||||||
|
end_period = fields.Many2One(
|
||||||
|
'account.period',
|
||||||
|
'End Period',
|
||||||
|
domain=[('start_date', '>=', (Eval('start_period'), 'start_date'))],
|
||||||
|
depends=['start_period'],
|
||||||
|
)
|
||||||
|
company = fields.Many2One('company.company', 'Company', required=True)
|
||||||
|
party_type = fields.Selection(
|
||||||
|
[('out', 'Customer')], 'Party Type', required=True)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def default_company():
|
||||||
|
return Transaction().context.get('company')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def default_party_type():
|
||||||
|
return 'out'
|
||||||
|
|
||||||
|
|
||||||
|
class PrintBalanceSaleParty(Wizard):
|
||||||
|
'Print Balance Sale Party'
|
||||||
|
__name__ = 'optical_equipment.print_balance_sale_party'
|
||||||
|
|
||||||
|
start = StateView(
|
||||||
|
'optical_equipment.print_balance_sale_party.start',
|
||||||
|
'optical_equipment.print_balance_sale_party_start_view_form',
|
||||||
|
[
|
||||||
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
|
Button('Print', 'print_', 'tryton-print', default=True),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
print_ = StateReport('optical_equipment.balance_sale_party')
|
||||||
|
|
||||||
|
def default_start(self, fields):
|
||||||
|
if len(self.records) > 0:
|
||||||
|
default = {'party': self.records[0].party.id}
|
||||||
|
else:
|
||||||
|
default = {'party': None}
|
||||||
|
return default
|
||||||
|
|
||||||
|
def do_print_(self, action):
|
||||||
|
party = None
|
||||||
|
party_type = None
|
||||||
|
|
||||||
|
if self.start.party:
|
||||||
|
party = self.start.party.id
|
||||||
|
if self.start.party_type:
|
||||||
|
party_type = self.start.party_type
|
||||||
|
|
||||||
|
data = {
|
||||||
|
'company': self.start.company.id,
|
||||||
|
'party': party,
|
||||||
|
'party_type': party_type,
|
||||||
|
'start_period': (
|
||||||
|
self.start.start_period.id if self.start.start_period else None
|
||||||
|
),
|
||||||
|
'end_period':
|
||||||
|
self.start.end_period.id if self.start.end_period else None,
|
||||||
|
}
|
||||||
|
return action, data
|
||||||
|
|
||||||
|
def transition_print_(self):
|
||||||
|
return 'end'
|
||||||
|
|
||||||
|
|
||||||
|
class BalanceSaleParty(Report):
|
||||||
|
__name__ = 'optical_equipment.balance_sale_party'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_context(cls, records, header, data):
|
||||||
|
report_context = super(BalanceSaleParty, cls).get_context(
|
||||||
|
records, header, data)
|
||||||
|
pool = Pool()
|
||||||
|
Company = pool.get('company.company')
|
||||||
|
Period = pool.get('account.period')
|
||||||
|
Sale = pool.get('sale.sale')
|
||||||
|
Party = pool.get('party.party')
|
||||||
|
start_period = None
|
||||||
|
end_period = None
|
||||||
|
party = None
|
||||||
|
company = Company(data['company'])
|
||||||
|
dom_sale = [('state', 'in', ['processing', 'done'])]
|
||||||
|
|
||||||
|
if data.get('party'):
|
||||||
|
party = data['party']
|
||||||
|
dom_sale.append(('party', '=', party))
|
||||||
|
|
||||||
|
if data.get('start_period'):
|
||||||
|
start_period = Period(data['start_period'])
|
||||||
|
dom_sale.append(('sale_date', '>=', start_period.start_date))
|
||||||
|
if data.get('end_period'):
|
||||||
|
end_period = Period(data['end_period'])
|
||||||
|
dom_sale.append(('sale_date', '<=', end_period.start_date))
|
||||||
|
|
||||||
|
sales = Sale.search(
|
||||||
|
dom_sale,
|
||||||
|
order=[('sale_date', 'DESC'), ('id', 'DESC')],
|
||||||
|
)
|
||||||
|
|
||||||
|
res = {}
|
||||||
|
|
||||||
|
id_ = party
|
||||||
|
party_ = Party.search(['id', '=', party])[0]
|
||||||
|
name = party_.rec_name
|
||||||
|
|
||||||
|
try:
|
||||||
|
if party_.identifiers:
|
||||||
|
id_number = party_.identifiers[0].code
|
||||||
|
else:
|
||||||
|
id_number = ''
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
res[id_] = {'name': name, 'id_number': id_number, 'party': party_}
|
||||||
|
|
||||||
|
if (not sales):
|
||||||
|
err = 'Este Tercero no Cuenta Con Ventas en Proceso ó Confirmadas.'
|
||||||
|
raise UserError(str(err))
|
||||||
|
|
||||||
|
res[id_]['sales'] = sales
|
||||||
|
|
||||||
|
report_context['records'] = res.values()
|
||||||
|
report_context['start_period'] =\
|
||||||
|
start_period.name if start_period else '*'
|
||||||
|
report_context['end_period'] = end_period.name if end_period else '*'
|
||||||
|
report_context['company'] = company
|
||||||
|
|
||||||
|
residual_amount = 0
|
||||||
|
for sale in sales:
|
||||||
|
residual_amount += sale.residual_amount
|
||||||
|
report_context['residual_amount'] = residual_amount
|
||||||
|
|
||||||
|
return report_context
|
||||||
28
balance_sale_party.xml
Normal file
28
balance_sale_party.xml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?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. -->
|
||||||
|
<tryton>
|
||||||
|
<data>
|
||||||
|
<record model="ir.action.report" id="report_balance_sale_party">
|
||||||
|
<field name="name">Balance by Party</field>
|
||||||
|
<field name="model"></field>
|
||||||
|
<field name="report_name">optical_equipment.balance_sale_party</field>
|
||||||
|
<field name="report">optical_equipment/report/balance_sale_party.fods</field>
|
||||||
|
<field name="template_extension">ods</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="print_balance_sale_party_start_view_form">
|
||||||
|
<field name="model">optical_equipment.print_balance_sale_party.start</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">print_balance_sale_party_start_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.wizard" id="wizard_print_balance_sale_party">
|
||||||
|
<field name="name">Print Balance Sale by Party</field>
|
||||||
|
<field name="wiz_name">optical_equipment.print_balance_sale_party</field>
|
||||||
|
</record>
|
||||||
|
<menuitem
|
||||||
|
parent="sale.menu_reporting"
|
||||||
|
action="wizard_print_balance_sale_party"
|
||||||
|
id="menu_print_balance_sale_party"
|
||||||
|
icon="tryton-print"/>
|
||||||
|
</data>
|
||||||
|
</tryton>
|
||||||
113
calibration.py
Normal file
113
calibration.py
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
# this repository contains the full copyright notices and license terms.
|
||||||
|
from trytond.model import ModelSQL, ModelView, fields, sequence_ordered
|
||||||
|
from trytond.pyson import Eval, If
|
||||||
|
from trytond.pool import Pool
|
||||||
|
from trytond.modules.company import CompanyReport
|
||||||
|
from trytond.transaction import Transaction
|
||||||
|
|
||||||
|
_digits = (16, 2)
|
||||||
|
_states = {'readonly': If(Eval('state') != 'draft', True)}
|
||||||
|
|
||||||
|
|
||||||
|
class Calibration(ModelSQL, ModelView):
|
||||||
|
'Calibration of Maintenance'
|
||||||
|
__name__ = 'optical_equipment.maintenance.calibration'
|
||||||
|
|
||||||
|
_states = {'readonly': True}
|
||||||
|
|
||||||
|
maintenance = fields.Many2One(
|
||||||
|
'optical_equipment.maintenance',
|
||||||
|
'Maintenance',
|
||||||
|
ondelete='CASCADE',
|
||||||
|
required=True,
|
||||||
|
)
|
||||||
|
graph_dates = fields.Char('Graph Dates', readonly=True)
|
||||||
|
diopter = fields.Float('Diopter', states=_states)
|
||||||
|
mean = fields.Float('Mean', states=_states)
|
||||||
|
dev_std = fields.Float('Standart Desviation', states=_states)
|
||||||
|
uncertain_type_A = fields.Float('Uncertain Type A', states=_states)
|
||||||
|
uncertain_pattern = fields.Float('Uncertain Pattern', states=_states)
|
||||||
|
k_c_calibration = fields.Float('K Crt Calibration', states=_states)
|
||||||
|
uncertain_U_b1 = fields.Float('U_b1', states=_states)
|
||||||
|
d_resolution = fields.Float('d_resolution', states=_states)
|
||||||
|
uncertain_U_b2_dig = fields.Float('U_b2', states=_states)
|
||||||
|
uncertain_U_b2_ana = fields.Float('U_b2', states=_states)
|
||||||
|
uncertain_combinated = fields.Float('U_combinated', states=_states)
|
||||||
|
uncertain_eff = fields.Float('U eff', states=_states)
|
||||||
|
t_student = fields.Float('T Student', states=_states)
|
||||||
|
|
||||||
|
uncertain_expanded = fields.Float('Uexpand', _digits, states=_states)
|
||||||
|
|
||||||
|
state = fields.Char('State')
|
||||||
|
|
||||||
|
|
||||||
|
class CalibrationSample(sequence_ordered(), ModelView, ModelSQL):
|
||||||
|
'Samples of Calibration'
|
||||||
|
__name__ = 'optical_equipment.maintenance.calibration_sample'
|
||||||
|
|
||||||
|
maintenance = fields.Many2One(
|
||||||
|
'optical_equipment.maintenance', 'Maintenance')
|
||||||
|
product = fields.Function(fields.Integer(
|
||||||
|
'Product ID'), 'on_change_with_product')
|
||||||
|
number_sample = fields.Float('Sample #', _digits)
|
||||||
|
value_patterns = fields.Many2One(
|
||||||
|
'optical_equipment.product_pattern',
|
||||||
|
'Value Pattern',
|
||||||
|
ondelete='RESTRICT',
|
||||||
|
required=True,
|
||||||
|
domain=[('product', '=', Eval('product'))],
|
||||||
|
depends=['product'],
|
||||||
|
)
|
||||||
|
value_equipment = fields.Float(
|
||||||
|
'Value in Equipment',
|
||||||
|
_digits,
|
||||||
|
required=True,
|
||||||
|
states={'readonly': Eval('value_patterns') is None},
|
||||||
|
)
|
||||||
|
mistake = fields.Float('Mistake', _digits)
|
||||||
|
mistake_rate = fields.Float(
|
||||||
|
'% Mistake', _digits, states={'readonly': True}, depends=['mistake']
|
||||||
|
)
|
||||||
|
|
||||||
|
@fields.depends('maintenance', '_parent_maintenance.equipment')
|
||||||
|
def on_change_with_product(self, name=None):
|
||||||
|
if self.maintenance:
|
||||||
|
return self.maintenance.equipment.product.template.id
|
||||||
|
|
||||||
|
@fields.depends(
|
||||||
|
'value_patterns', 'value_equipment', 'mistake', 'mistake_rate')
|
||||||
|
def on_change_value_equipment(self):
|
||||||
|
if self.value_patterns:
|
||||||
|
pattern = self.value_patterns.pattern
|
||||||
|
if float(pattern) < 0:
|
||||||
|
self.mistake = pattern - self.value_equipment
|
||||||
|
else:
|
||||||
|
if pattern > self.value_equipment:
|
||||||
|
self.mistake = pattern - self.value_equipment
|
||||||
|
else:
|
||||||
|
self.mistake = -pattern + self.value_equipment
|
||||||
|
|
||||||
|
if pattern == self.value_equipment:
|
||||||
|
self.mistake_rate = 0
|
||||||
|
else:
|
||||||
|
self.mistake_rate = abs(
|
||||||
|
self.mistake / pattern) * 100
|
||||||
|
|
||||||
|
|
||||||
|
class CalibrationReport(CompanyReport):
|
||||||
|
__name__ = 'optical_equipment.maintenance'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def execute(cls, ids, data):
|
||||||
|
with Transaction().set_context(address_with_party=True):
|
||||||
|
return super(CalibrationReport, cls).execute(ids, data)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_context(cls, records, header, data):
|
||||||
|
pool = Pool()
|
||||||
|
Date = pool.get('ir.date')
|
||||||
|
context = super().get_context(records, header, data)
|
||||||
|
context['today'] = Date.today()
|
||||||
|
|
||||||
|
return context
|
||||||
52
calibration.xml
Normal file
52
calibration.xml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<?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. -->
|
||||||
|
<tryton>
|
||||||
|
<data>
|
||||||
|
<record model="ir.ui.view" id="maintenance_calibration_view_form">
|
||||||
|
<field name="model">optical_equipment.maintenance.calibration_sample</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">maintenance_sample_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="maintenance_calibration_view_tree">
|
||||||
|
<field name="model">optical_equipment.maintenance.calibration_sample</field>
|
||||||
|
<field name="type">tree</field>
|
||||||
|
<field name="priority" eval="10"/>
|
||||||
|
<field name="name">maintenance_calibration_tree</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="calibration_total_view_tree">
|
||||||
|
<field name="model">optical_equipment.maintenance.calibration</field>
|
||||||
|
<field name="type">tree</field>
|
||||||
|
<field name="name">calibration_total_tree</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="calibration_total_view_form">
|
||||||
|
<field name="model">optical_equipment.maintenance.calibration</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">calibration_total_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.report" id="report_calibration">
|
||||||
|
<field name="name">Calibration</field>
|
||||||
|
<field name="model">optical_equipment.maintenance</field>
|
||||||
|
<field name="report_name">optical_equipment.maintenance</field>
|
||||||
|
<field name="report">optical_equipment/report/Calibration.fodt</field>
|
||||||
|
<field name="single" eval="True"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="report_calibration_keyword">
|
||||||
|
<field name="keyword">form_print</field>
|
||||||
|
<field name="model">optical_equipment.maintenance,-1</field>
|
||||||
|
<field name="action" ref="report_calibration"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.report" id="report_calibrations">
|
||||||
|
<field name="name">Calibrations</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
|
<field name="report_name">optical_equipment_maintenance.service</field>
|
||||||
|
<field name="report">optical_equipment/report/Calibrations.fodt</field>
|
||||||
|
<field name="single" eval="True"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="report_calibrations_keyword">
|
||||||
|
<field name="keyword">form_print</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
|
<field name="action" ref="report_calibrations"/>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</tryton>
|
||||||
9
company.py
Normal file
9
company.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from trytond.pool import PoolMeta
|
||||||
|
from trytond.model import fields
|
||||||
|
|
||||||
|
|
||||||
|
class Employee(metaclass=PoolMeta):
|
||||||
|
'Company'
|
||||||
|
__name__ = 'company.employee'
|
||||||
|
|
||||||
|
invima = fields.Char('Invima')
|
||||||
12
company.xml
Normal file
12
company.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?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>
|
||||||
|
<data>
|
||||||
|
<record model="ir.ui.view" id="employee_view_form">
|
||||||
|
<field name="model">company.employee</field>
|
||||||
|
<field name="inherit" ref="company.employee_view_form"/>
|
||||||
|
<field name="name">employee_form</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</tryton>
|
||||||
83
configuration.py
Normal file
83
configuration.py
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
from trytond.model import ModelSingleton, ModelSQL, ModelView, fields
|
||||||
|
from trytond.pyson import Id, Eval
|
||||||
|
|
||||||
|
|
||||||
|
class Configuration(ModelSingleton, ModelSQL, ModelView):
|
||||||
|
"Equipment Configuration"
|
||||||
|
__name__ = "optical_equipment.configuration"
|
||||||
|
|
||||||
|
equipment_sequence = fields.Many2One(
|
||||||
|
"ir.sequence",
|
||||||
|
"Equipment Sequence",
|
||||||
|
domain=[
|
||||||
|
("sequence_type", "=", Id(
|
||||||
|
"optical_equipment", "sequence_type_equipment"))
|
||||||
|
],
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
maintenance_sequence = fields.Many2One(
|
||||||
|
"ir.sequence",
|
||||||
|
"Maintenance Sequence",
|
||||||
|
domain=[
|
||||||
|
(
|
||||||
|
"sequence_type",
|
||||||
|
"=",
|
||||||
|
Id("optical_equipment", "sequence_type_maintenances"),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
sale_quote_number = fields.Many2One(
|
||||||
|
"ir.sequence",
|
||||||
|
"Sale Quote Number",
|
||||||
|
domain=[("sequence_type", "=", Id("sale", "sequence_type_sale"))],
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
agended_sequence = fields.Many2One(
|
||||||
|
"ir.sequence",
|
||||||
|
"Agended Sequence",
|
||||||
|
domain=[
|
||||||
|
("sequence_type", "=", Id(
|
||||||
|
"optical_equipment", "sequence_type_agended"))
|
||||||
|
],
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
contract_sequence = fields.Many2One(
|
||||||
|
"ir.sequence",
|
||||||
|
"Contract Sequence",
|
||||||
|
domain=[
|
||||||
|
("sequence_type", "=", Id(
|
||||||
|
"optical_equipment", "sequence_type_contract"))
|
||||||
|
],
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
temperature_min = fields.Float("Temp Min", required=True)
|
||||||
|
temperature_max = fields.Float("Temp Max", required=True)
|
||||||
|
temperature_uom = fields.Many2One(
|
||||||
|
"product.uom",
|
||||||
|
"Temperature UOM", required=True,
|
||||||
|
domain=[("category", "=", Id(
|
||||||
|
"optical_equipment", "uom_cat_temperature"))],
|
||||||
|
depends={"temperature_min"},
|
||||||
|
)
|
||||||
|
moisture_min = fields.Float("Moisture Min", required=True)
|
||||||
|
moisture_max = fields.Float("Moisture Max", required=True)
|
||||||
|
moisture_uom = fields.Many2One(
|
||||||
|
"product.uom",
|
||||||
|
"Moisture UOM",
|
||||||
|
required=True,
|
||||||
|
domain=[
|
||||||
|
("category", "=", Id(
|
||||||
|
"optical_equipment", "uom_cat_relative_humedity"))
|
||||||
|
],
|
||||||
|
depends={"moisture_min"},
|
||||||
|
)
|
||||||
|
technician_responsible = fields.Many2One(
|
||||||
|
"company.employee", "Technician Responsible",
|
||||||
|
required=True
|
||||||
|
)
|
||||||
|
invima = fields.Char(
|
||||||
|
"Invima", states={"required": Eval("technician_responsible", True)}
|
||||||
|
)
|
||||||
|
technician_signature = fields.Binary("Technician Signature",
|
||||||
|
required=True)
|
||||||
81
configuration.xml
Normal file
81
configuration.xml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
<?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. -->
|
||||||
|
<tryton>
|
||||||
|
<data>
|
||||||
|
<record model="ir.action.act_window" id="act_optical_equipment_configuration_form">
|
||||||
|
<field name="name">Configuration</field>
|
||||||
|
<field name="res_model">optical_equipment.configuration</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="optical_equipment_configuration_view_form">
|
||||||
|
<field name="model">optical_equipment.configuration</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">configuration_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.view" id="act_optical_equipment_configuration_form_view1">
|
||||||
|
<field name="sequence" eval="10"/>
|
||||||
|
<field name="view" ref="optical_equipment_configuration_view_form"/>
|
||||||
|
<field name="act_window" ref="act_optical_equipment_configuration_form"/>
|
||||||
|
</record>
|
||||||
|
<menuitem
|
||||||
|
name="Configuration"
|
||||||
|
parent="menu_equipment"
|
||||||
|
sequence="0"
|
||||||
|
id="menu_equipment_configuration"
|
||||||
|
icon="tryton-settings"/>
|
||||||
|
<menuitem
|
||||||
|
parent="menu_equipment_configuration"
|
||||||
|
action="act_optical_equipment_configuration_form"
|
||||||
|
sequence="10"
|
||||||
|
id="menu_optical_equipment_configuration"
|
||||||
|
icon="tryton-list"/>
|
||||||
|
|
||||||
|
<record model="res.group" id="group_maintenance_admin">
|
||||||
|
<field name="name">Maintenance Administration</field>
|
||||||
|
</record>
|
||||||
|
<record model="res.user-res.group"
|
||||||
|
id="user_admin_group_maintenance_admin">
|
||||||
|
<field name="user" ref="res.user_admin"/>
|
||||||
|
<field name="group" ref="group_maintenance_admin"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.menu-res.group"
|
||||||
|
id="menu_party_group_equipment_admin">
|
||||||
|
<field name="menu" ref="menu_equipment"/>
|
||||||
|
<field name="group" ref="group_equipment_admin"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence.type" id="sequence_type_equipment">
|
||||||
|
<field name="name">Equipment</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence.type-res.group"
|
||||||
|
id="sequence_type_equipment_group_admin">
|
||||||
|
<field name="sequence_type" ref="sequence_type_equipment"/>
|
||||||
|
<field name="group" ref="res.group_admin"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence.type-res.group"
|
||||||
|
id="sequence_type_equipment_group_equipment_admin">
|
||||||
|
<field name="sequence_type" ref="sequence_type_equipment"/>
|
||||||
|
<field name="group" ref="group_equipment_admin"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence" id="sequence_equipment">
|
||||||
|
<field name="name">Equipment</field>
|
||||||
|
<field name="sequence_type" ref="sequence_type_equipment"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence.type" id="sequence_type_maintenances">
|
||||||
|
<field name="name">Maintenances</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence.type-res.group"
|
||||||
|
id="sequence_type_maintenance_group_admin">
|
||||||
|
<field name="sequence_type" ref="sequence_type_maintenances"/>
|
||||||
|
<field name="group" ref="res.group_admin"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence.type-res.group"
|
||||||
|
id="sequence_type_maintenance_group_maintenance_admin">
|
||||||
|
<field name="sequence_type" ref="sequence_type_maintenances"/>
|
||||||
|
<field name="group" ref="group_maintenance_admin"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.sequence" id="sequence_maintenances">
|
||||||
|
<field name="name">Maintenance</field>
|
||||||
|
<field name="sequence_type" ref="sequence_type_maintenances"/>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</tryton>
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
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, CompanyMultiValueMixin):
|
|
||||||
'Equipment Configuration'
|
|
||||||
__name__='optical_equipment.configuration'
|
|
||||||
|
|
||||||
equipment_sequence = fields.Many2One('ir.sequence', "Equipment Sequence",
|
|
||||||
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_equipment'))
|
|
||||||
])
|
|
||||||
maintenance_sequence = fields.Many2One('ir.sequence', "Maintenance Sequence",
|
|
||||||
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_maintenances'))
|
|
||||||
])
|
|
||||||
agended_sequence = fields.Many2One('ir.sequence', "Agended Sequence",
|
|
||||||
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_agended'))
|
|
||||||
])
|
|
||||||
contract_sequence = fields.Many2One('ir.sequence', "Contract Sequence",
|
|
||||||
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_contract'))
|
|
||||||
])
|
|
||||||
temperature_min = fields.Float("Temp Min")
|
|
||||||
temperature_max = fields.Float("Temp Max")
|
|
||||||
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
|
|
||||||
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
|
|
||||||
depends=['itemperature_min'])
|
|
||||||
moisture_min = fields.Float("Moisture Min")
|
|
||||||
moisture_max = fields.Float("Moisture Max")
|
|
||||||
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'))
|
|
||||||
])
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?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. -->
|
|
||||||
<tryton>
|
|
||||||
<data>
|
|
||||||
<record model="ir.ui.view" id="optical_equipment_configuration_view_form">
|
|
||||||
<field name="model">optical_equipment.configuration</field>
|
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="name">optical_equipment_configuration_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.act_window" id="act_optical_equipment_configuration_form">
|
|
||||||
<field name="name">Configuration</field>
|
|
||||||
<field name="res_model">optical_equipment.configuration</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.act_window.view" id="act_optical_equipment_configuration_form_view1">
|
|
||||||
<field name="sequence" eval="10"/>
|
|
||||||
<field name="view" ref="optical_equipment_configuration_view_form"/>
|
|
||||||
<field name="act_window" ref="act_optical_equipment_configuration_form"/>
|
|
||||||
</record>
|
|
||||||
<menuitem
|
|
||||||
name="Configuration"
|
|
||||||
parent="menu_equipment"
|
|
||||||
sequence="0"
|
|
||||||
id="menu_equipment_configuration"
|
|
||||||
icon="tryton-settings"/>
|
|
||||||
<menuitem
|
|
||||||
parent="menu_equipment_configuration"
|
|
||||||
action="act_optical_equipment_configuration_form"
|
|
||||||
sequence="10"
|
|
||||||
id="menu_optical_equipment_configuration"
|
|
||||||
icon="tryton-list"/>
|
|
||||||
</data>
|
|
||||||
</tryton>
|
|
||||||
390
contract.py
390
contract.py
@@ -1,19 +1,29 @@
|
|||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import (
|
from trytond.model import ModelSQL, ModelView, Workflow, fields
|
||||||
ModelSQL, ModelView, Workflow, fields)
|
|
||||||
from trytond.modules.company import CompanyReport
|
from trytond.modules.company import CompanyReport
|
||||||
from trytond.pyson import Eval, If, Bool
|
from trytond.pyson import Eval, If, Bool
|
||||||
from trytond.modules.company.model import set_employee
|
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
from trytond.wizard import (
|
from trytond.wizard import Button, StateAction, StateView, Wizard
|
||||||
Button, StateAction, StateTransition, StateView, Wizard)
|
|
||||||
|
|
||||||
from trytond.modules.currency.fields import Monetary
|
from trytond.modules.currency.fields import Monetary
|
||||||
from trytond.modules.product import price_digits
|
from trytond.modules.product import price_digits
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
from datetime import timedelta
|
from datetime import timedelta, date
|
||||||
|
from trytond.i18n import gettext
|
||||||
|
|
||||||
|
|
||||||
|
class Cron(metaclass=PoolMeta):
|
||||||
|
__name__ = 'ir.cron'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __setup__(cls):
|
||||||
|
super().__setup__()
|
||||||
|
cls.method.selection.append((
|
||||||
|
'optical_equipment.contract|contract_expiration',
|
||||||
|
'Contract Expiration'
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
class Contract(Workflow, ModelSQL, ModelView):
|
class Contract(Workflow, ModelSQL, ModelView):
|
||||||
@@ -22,60 +32,113 @@ class Contract(Workflow, ModelSQL, ModelView):
|
|||||||
_rec_name = 'number'
|
_rec_name = 'number'
|
||||||
_order_name = 'number'
|
_order_name = 'number'
|
||||||
|
|
||||||
|
|
||||||
company = fields.Many2One(
|
company = fields.Many2One(
|
||||||
'company.company', "Company", required=True, select=True,
|
'company.company',
|
||||||
|
'Company',
|
||||||
|
required=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.',
|
||||||
|
)
|
||||||
number = fields.Char(
|
number = fields.Char(
|
||||||
"Number", readonly=True, select=True,
|
'Number', readonly=True,
|
||||||
help="The main identification of the subscription.")
|
help='The main identification of the subscription.'
|
||||||
|
)
|
||||||
reference = fields.Char(
|
reference = fields.Char(
|
||||||
"Reference", select=True,
|
'Reference',
|
||||||
help="The identification of an external origin.")
|
help='The identification of an external origin.'
|
||||||
description = fields.Char("Description",
|
)
|
||||||
|
description = fields.Char(
|
||||||
|
'Description',
|
||||||
states={
|
states={
|
||||||
'readonly': Eval('state') != 'draft',
|
'readonly': Eval('state') != 'draft',
|
||||||
})
|
},
|
||||||
|
)
|
||||||
party = fields.Many2One(
|
party = fields.Many2One(
|
||||||
'party.party', "Party", required=True,
|
'party.party',
|
||||||
|
'Party',
|
||||||
|
required=True,
|
||||||
states={
|
states={
|
||||||
'readonly': (Eval('state') != 'draft') | Eval('party', True),
|
'readonly': (Eval('state') != 'draft') | Eval('party', True),
|
||||||
},help="The party who subscribes.")
|
},
|
||||||
contact = fields.Many2One('party.contact_mechanism', "Contact", required=True)
|
help='The party who subscribes.',
|
||||||
invoice_address = fields.Many2One('party.address', 'Invoice Address',
|
)
|
||||||
required=True, domain=[('party', '=', Eval('party'))],
|
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
|
||||||
|
contact = fields.Many2One(
|
||||||
|
'party.contact_mechanism', 'Contact', required=True)
|
||||||
|
invoice_address = fields.Many2One(
|
||||||
|
'party.address',
|
||||||
|
'Invoice Address',
|
||||||
|
required=True,
|
||||||
|
domain=[('party', '=', Eval('party'))],
|
||||||
states={
|
states={
|
||||||
'readonly': (Eval('state') != 'draft') | Eval('party', True),
|
'readonly': (Eval('state') != 'draft') | Eval('party', True),
|
||||||
})
|
},
|
||||||
start_date = fields.Date("Start Date", required=True,)
|
)
|
||||||
end_date = fields.Date("End Date",
|
start_date = fields.Date(
|
||||||
domain=['OR',
|
'Start Date',
|
||||||
('end_date', '>=', If(
|
required=True,
|
||||||
|
)
|
||||||
|
end_date = fields.Date(
|
||||||
|
'End Date',
|
||||||
|
domain=[
|
||||||
|
'OR',
|
||||||
|
(
|
||||||
|
'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,
|
||||||
|
),
|
||||||
|
),
|
||||||
('end_date', '=', None),
|
('end_date', '=', None),
|
||||||
],
|
],
|
||||||
states={
|
states={
|
||||||
'readonly': Eval('state') != 'draft',
|
'readonly': Eval('state') != 'draft',
|
||||||
})
|
},
|
||||||
maintenance_services = fields.Many2Many('optical_equipment_maintenance.service-equipment.contract',
|
)
|
||||||
'contract', 'maintenance_services', "Prorogues",
|
|
||||||
states={'readonly': Eval('state') != 'draft'})
|
|
||||||
equipments = fields.One2Many('optical_equipment.equipment', 'contract', "Equipments",
|
|
||||||
states={'readonly': Eval('state') != 'draft'})
|
|
||||||
price_contract = Monetary("Price Contract", digits=price_digits, currency='currency', required=True,
|
|
||||||
states={'readonly': Eval('state') != 'draft'})
|
|
||||||
state = fields.Selection([
|
|
||||||
('draft', "Draft"),
|
|
||||||
('running', "Running"),
|
|
||||||
('closed', "Closed"),
|
|
||||||
('cancelled', "Cancelled"),
|
|
||||||
], "State", readonly=True, required=False, sort=False,
|
|
||||||
help="The current state of the subscription.")
|
|
||||||
|
|
||||||
|
maintenance_services = fields.Many2Many(
|
||||||
|
'optical_equipment_maintenance.service-equipment.contract',
|
||||||
|
'contract',
|
||||||
|
'maintenance_services',
|
||||||
|
'Prorogues',
|
||||||
|
states={'readonly': Eval('state') != 'draft'},
|
||||||
|
)
|
||||||
|
|
||||||
|
current_equipments = fields.Many2Many(
|
||||||
|
'optical_equipment.contract-optical_equipment.equipment',
|
||||||
|
'contract',
|
||||||
|
'equipment',
|
||||||
|
'Current Equipments',
|
||||||
|
states={'readonly': Eval('state') != 'draft'},
|
||||||
|
)
|
||||||
|
history_equipments = fields.One2Many(
|
||||||
|
'optical_equipment.equipment',
|
||||||
|
'contract',
|
||||||
|
'Equipments',
|
||||||
|
states={'readonly': Eval('state') != 'draft'},
|
||||||
|
)
|
||||||
|
currency = fields.Many2One('currency.currency', 'Currency', required=True)
|
||||||
|
price_contract = Monetary(
|
||||||
|
'Price Contract',
|
||||||
|
digits=price_digits,
|
||||||
|
required=True,
|
||||||
|
states={'readonly': Eval('state') != 'draft'},
|
||||||
|
)
|
||||||
|
state = fields.Selection(
|
||||||
|
[('draft', 'Draft'),
|
||||||
|
('running', 'Running'),
|
||||||
|
('closed', 'Closed'),
|
||||||
|
('cancelled', 'Cancelled')],
|
||||||
|
'State',
|
||||||
|
readonly=True,
|
||||||
|
required=False,
|
||||||
|
sort=False,
|
||||||
|
help='The current state of the subscription.',
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
@@ -84,18 +147,33 @@ class Contract(Workflow, ModelSQL, ModelView):
|
|||||||
('number', 'DESC NULLS FIRST'),
|
('number', 'DESC NULLS FIRST'),
|
||||||
('id', 'DESC'),
|
('id', 'DESC'),
|
||||||
]
|
]
|
||||||
cls._transitions = ({
|
cls._transitions = {
|
||||||
('draft', 'running'),
|
('draft', 'running'),
|
||||||
('running', 'draft'),
|
('running', 'draft'),
|
||||||
('running', 'closed'),
|
('running', 'closed'),
|
||||||
('running', 'cancelled'),
|
('running', 'cancelled'),
|
||||||
})
|
('cancelled', 'draft'),
|
||||||
cls._buttons.update({
|
}
|
||||||
'draft': {'invisible': Eval('state').in_(['draft','closed'])},
|
cls._buttons.update(
|
||||||
'running': {'invisible': Eval('state').in_(['cancelled', 'running'])},
|
{
|
||||||
'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])}
|
'draft': {
|
||||||
})
|
'invisible':
|
||||||
|
Eval('state').in_(['draft', 'closed'])
|
||||||
|
},
|
||||||
|
'running': {
|
||||||
|
'invisible':
|
||||||
|
Eval('state').in_(['cancelled', 'running'])
|
||||||
|
},
|
||||||
|
'closed': {
|
||||||
|
'invisible':
|
||||||
|
Eval('state').in_(['draft', 'cancelled'])
|
||||||
|
},
|
||||||
|
'cancelled': {
|
||||||
|
'invisible':
|
||||||
|
Eval('state').in_(['draft', 'cancelled'])
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def default_company():
|
def default_company():
|
||||||
@@ -111,7 +189,7 @@ class Contract(Workflow, ModelSQL, ModelView):
|
|||||||
Config = pool.get('optical_equipment.configuration')
|
Config = pool.get('optical_equipment.configuration')
|
||||||
config = Config(4)
|
config = Config(4)
|
||||||
|
|
||||||
if config.contract_sequence != None:
|
if config.contract_sequence is not None:
|
||||||
if not contracts[0].number:
|
if not contracts[0].number:
|
||||||
try:
|
try:
|
||||||
contracts[0].number = config.contract_sequence.get()
|
contracts[0].number = config.contract_sequence.get()
|
||||||
@@ -119,54 +197,87 @@ class Contract(Workflow, ModelSQL, ModelView):
|
|||||||
except UserError:
|
except UserError:
|
||||||
raise UserError(str('Validation Error'))
|
raise UserError(str('Validation Error'))
|
||||||
else:
|
else:
|
||||||
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
|
raise UserError(
|
||||||
|
gettext('optical_equipment.msg_not_sequence_equipment'))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def contract_expiration(cls):
|
||||||
|
contracts_to_expire = cls.search(
|
||||||
|
[('state', '=', 'running'), ('end_date', '<=', date.today())]
|
||||||
|
)
|
||||||
|
|
||||||
|
if contracts_to_expire != []:
|
||||||
|
for contract in contracts_to_expire:
|
||||||
|
cls.closed([contract])
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('draft')
|
@Workflow.transition('draft')
|
||||||
def draft(cls, contracts):
|
def draft(cls, contracts):
|
||||||
contract = contracts[0]
|
contract = contracts[0]
|
||||||
for equipment in contract.equipments:
|
for equipment in contract.current_equipments:
|
||||||
equipment.state = "uncontrated"
|
equipment.state = 'uncontrated'
|
||||||
equipment.contract_history += (contract.id,)
|
equipment.contract_history += (contract.id,)
|
||||||
equipment.save()
|
equipment.save()
|
||||||
|
contract.save()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button
|
||||||
|
@Workflow.transition('closed')
|
||||||
|
def closed(cls, contracts):
|
||||||
|
contract = contracts[0]
|
||||||
|
for equipment in contract.current_equipments:
|
||||||
|
equipment.state = 'uncontrated'
|
||||||
|
equipment.save()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('running')
|
@Workflow.transition('running')
|
||||||
def running(cls, contracts):
|
def running(cls, contracts):
|
||||||
contract = contracts[0]
|
contract = contracts[0]
|
||||||
for equipment in contract.equipments:
|
for equipment in contract.current_equipments:
|
||||||
equipment.state = "contrated"
|
equipment.state = 'contrated'
|
||||||
equipment.contract_history += (contract.id,)
|
equipment.contract_history += (contract.id,)
|
||||||
equipment.save()
|
equipment.save()
|
||||||
|
|
||||||
cls.set_number(contracts)
|
cls.set_number(contracts)
|
||||||
contract.state='running'
|
contract.state = 'running'
|
||||||
contract.save()
|
contract.save()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('cancelled')
|
@Workflow.transition('cancelled')
|
||||||
def cancelled(cls, contracts):
|
def cancelled(cls, contracts):
|
||||||
pass
|
contract = contracts[0]
|
||||||
|
for equipment in contract.current_equipments:
|
||||||
|
equipment.state = 'uncontrated'
|
||||||
|
equipment.save()
|
||||||
|
|
||||||
|
|
||||||
class ContractMaintenanceServices(ModelSQL):
|
class ContractMaintenanceServices(ModelSQL):
|
||||||
'Contract - Maintenance Services'
|
'Contract - Maintenance Services'
|
||||||
__name__ = 'optical_equipment_maintenance.service-equipment.contract'
|
__name__ = 'optical_equipment_maintenance.service-equipment.contract'
|
||||||
|
|
||||||
maintenance_services = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", select=True)
|
maintenance_services = fields.Many2One(
|
||||||
contract = fields.Many2One('optical_equipment.contract', "Contract")
|
'optical_equipment_maintenance.service',
|
||||||
|
'Maintenance Service',
|
||||||
|
)
|
||||||
|
contract = fields.Many2One('optical_equipment.contract', 'Contract')
|
||||||
|
|
||||||
|
|
||||||
class ContractEquipment(ModelSQL):
|
class ContractEquipment(ModelSQL):
|
||||||
'Optical Equipment - Contract'
|
'Optical Equipment - Contract'
|
||||||
__name__ = 'optical_equipment.contract-optical_equipment.equipment'
|
__name__ = 'optical_equipment.contract-optical_equipment.equipment'
|
||||||
|
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
equipment = fields.Many2One(
|
||||||
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
|
'optical_equipment.equipment',
|
||||||
|
'Equipment',
|
||||||
|
)
|
||||||
|
contract = fields.Many2One(
|
||||||
|
'optical_equipment.contract',
|
||||||
|
'Contract',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ContractReport(CompanyReport):
|
class ContractReport(CompanyReport):
|
||||||
__name__ = 'optical_equipment.contract'
|
__name__ = 'optical_equipment.contract'
|
||||||
@@ -184,3 +295,160 @@ class ContractReport(CompanyReport):
|
|||||||
context['today'] = Date.today()
|
context['today'] = Date.today()
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
class CreateContractInitial(ModelView, ModelSQL):
|
||||||
|
'Create Contract Inicial'
|
||||||
|
__name__ = 'optical_equipment_create.contract'
|
||||||
|
|
||||||
|
currency = fields.Many2One('currency.currency', 'Currency', required=True)
|
||||||
|
company = fields.Many2One(
|
||||||
|
'company.company',
|
||||||
|
'Company',
|
||||||
|
readonly=True,
|
||||||
|
required=True,
|
||||||
|
help='Make the subscription belong to the company.',
|
||||||
|
)
|
||||||
|
party = fields.Many2One(
|
||||||
|
'party.party', 'Party', required=True, help='The party who subscribes.'
|
||||||
|
)
|
||||||
|
invoice_address = fields.Many2One(
|
||||||
|
'party.address',
|
||||||
|
'Invoice Address',
|
||||||
|
required=True,
|
||||||
|
domain=[('party', '=', Eval('party'))],
|
||||||
|
)
|
||||||
|
payment_term = fields.Many2One(
|
||||||
|
'account.invoice.payment_term', 'Payment Term')
|
||||||
|
contact = fields.Many2One(
|
||||||
|
'party.contact_mechanism',
|
||||||
|
'Contact',
|
||||||
|
required=True,
|
||||||
|
domain=[('party', '=', Eval('party'))],
|
||||||
|
context={
|
||||||
|
'company': Eval('company', -1),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
start_date = fields.Date('Start Date', required=True)
|
||||||
|
end_date = fields.Date(
|
||||||
|
'End Date',
|
||||||
|
domain=[
|
||||||
|
'OR',
|
||||||
|
(
|
||||||
|
'end_date',
|
||||||
|
'>=',
|
||||||
|
If(
|
||||||
|
Bool(Eval('start_date')),
|
||||||
|
Eval('start_date', datetime.date.min),
|
||||||
|
datetime.date.min,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
('end_date', '=', None),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
unit_price = Monetary(
|
||||||
|
'Unit Price', digits=price_digits, currency='currency', required=True
|
||||||
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def default_company():
|
||||||
|
return Transaction().context.get('company')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def default_currency():
|
||||||
|
Company = Pool().get('company.company')
|
||||||
|
if Transaction().context.get('company'):
|
||||||
|
company = Company(Transaction().context['company'])
|
||||||
|
return company.currency.id
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_start_date(cls):
|
||||||
|
pool = Pool()
|
||||||
|
Date = pool.get('ir.date')
|
||||||
|
return Date.today()
|
||||||
|
|
||||||
|
@fields.depends('party')
|
||||||
|
def on_change_party(self):
|
||||||
|
pool = Pool()
|
||||||
|
Date = pool.get('ir.date')
|
||||||
|
if self.party:
|
||||||
|
self.invoice_address = self.party.address_get(type='invoice')
|
||||||
|
if self.party.customer_type == 'ips':
|
||||||
|
self.end_date = Date.today() + timedelta(days=182)
|
||||||
|
else:
|
||||||
|
self.end_date = Date.today() + timedelta(days=365)
|
||||||
|
|
||||||
|
|
||||||
|
class CreateContract(Wizard):
|
||||||
|
__name__ = 'optical_equipment.maintenance.contract'
|
||||||
|
|
||||||
|
start = StateView(
|
||||||
|
'optical_equipment_create.contract',
|
||||||
|
'optical_equipment.create_contract_view_form',
|
||||||
|
[
|
||||||
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
|
Button('Create', 'create_contract', 'tryton-ok', default=True),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
create_contract = StateAction('optical_equipment.act_contract_form')
|
||||||
|
|
||||||
|
def default_start(self, fields):
|
||||||
|
if self.record:
|
||||||
|
default = {
|
||||||
|
'party': self.record.propietary.id,
|
||||||
|
'invoice_address': self.record.propietary_address.id,
|
||||||
|
'unit_price': (
|
||||||
|
self.record.sale_origin.amount
|
||||||
|
if self.record.sale_origin.__name__ == 'sale.line'
|
||||||
|
else self.record.sale_origin.total_amount
|
||||||
|
),
|
||||||
|
}
|
||||||
|
return default
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _subscription_start(self):
|
||||||
|
return dict(
|
||||||
|
party=self.start.party,
|
||||||
|
contact=self.start.contact,
|
||||||
|
start_date=self.start.start_date,
|
||||||
|
end_date=self.start.end_date,
|
||||||
|
invoice_address=self.start.invoice_address,
|
||||||
|
unit_price=self.start.unit_price,
|
||||||
|
)
|
||||||
|
|
||||||
|
def do_create_contract(self, action):
|
||||||
|
maintenance_service = self.records[0]
|
||||||
|
pool = Pool()
|
||||||
|
Contract = pool.get('optical_equipment.contract')
|
||||||
|
|
||||||
|
dates = self._subscription_start
|
||||||
|
|
||||||
|
prorogues = (maintenance_service,)
|
||||||
|
equipments = []
|
||||||
|
for line in maintenance_service.lines:
|
||||||
|
equipments.append(line.equipment.id)
|
||||||
|
|
||||||
|
if maintenance_service.contract_origin:
|
||||||
|
contract = maintenance_service.contract_origin
|
||||||
|
contract.history_equipments += tuple(equipments)
|
||||||
|
contract.current_equipments = equipments
|
||||||
|
contract.invoice_address = dates['invoice_address']
|
||||||
|
contract.contact = dates['contact']
|
||||||
|
contract.start_date = dates['start_date']
|
||||||
|
contract.end_date = dates['end_date']
|
||||||
|
contract.maintenance_services += prorogues
|
||||||
|
contract.state = 'draft'
|
||||||
|
contract.price_contract = dates['unit_price']
|
||||||
|
else:
|
||||||
|
contract = Contract(
|
||||||
|
party=dates['party'],
|
||||||
|
invoice_address=dates['invoice_address'],
|
||||||
|
contact=dates['contact'],
|
||||||
|
start_date=dates['start_date'],
|
||||||
|
end_date=dates['end_date'],
|
||||||
|
maintenance_services=prorogues,
|
||||||
|
current_equipments=equipments,
|
||||||
|
state='draft',
|
||||||
|
price_contract=dates['unit_price'],
|
||||||
|
)
|
||||||
|
contract.save()
|
||||||
|
|||||||
42
contract.xml
42
contract.xml
@@ -1,6 +1,8 @@
|
|||||||
<?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 is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
|
<data>
|
||||||
<record model="ir.ui.view" id="contract_view_form">
|
<record model="ir.ui.view" id="contract_view_form">
|
||||||
<field name="model">optical_equipment.contract</field>
|
<field name="model">optical_equipment.contract</field>
|
||||||
<field name="type">form</field>
|
<field name="type">form</field>
|
||||||
@@ -68,6 +70,11 @@
|
|||||||
<field name="string">Run</field>
|
<field name="string">Run</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
|
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.model.button" id="contract_closed_button">
|
||||||
|
<field name="name">closed</field>
|
||||||
|
<field name="string">Closed</field>
|
||||||
|
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
|
||||||
|
</record>
|
||||||
<record model="ir.model.button" id="contract_cancelled_button">
|
<record model="ir.model.button" id="contract_cancelled_button">
|
||||||
<field name="name">cancelled</field>
|
<field name="name">cancelled</field>
|
||||||
<field name="string">Cancel</field>
|
<field name="string">Cancel</field>
|
||||||
@@ -98,6 +105,21 @@
|
|||||||
<field name="name">Contract</field>
|
<field name="name">Contract</field>
|
||||||
<field name="sequence_type" ref="sequence_type_contract"/>
|
<field name="sequence_type" ref="sequence_type_contract"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.ui.view" id="create_contract_view_form">
|
||||||
|
<field name="model">optical_equipment_create.contract</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">create_contract_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.wizard" id="maintenance_create_contract">
|
||||||
|
<field name="name">Create Contract</field>
|
||||||
|
<field name="wiz_name">optical_equipment.maintenance.contract</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="maintenance_create_contract_keyword">
|
||||||
|
<field name="keyword">form_action</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
|
<field name="action" ref="maintenance_create_contract"/>
|
||||||
|
</record>
|
||||||
<record model="ir.action.report" id="report_contract">
|
<record model="ir.action.report" id="report_contract">
|
||||||
<field name="name">Contract</field>
|
<field name="name">Contract</field>
|
||||||
<field name="model">optical_equipment.contract</field>
|
<field name="model">optical_equipment.contract</field>
|
||||||
@@ -122,14 +144,28 @@
|
|||||||
<field name="model">optical_equipment.contract,-1</field>
|
<field name="model">optical_equipment.contract,-1</field>
|
||||||
<field name="action" ref="report_prorrogation"/>
|
<field name="action" ref="report_prorrogation"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.ui.icon" id="optical_equipment_contract_icon">
|
||||||
|
<field name="name">equipment_contract</field>
|
||||||
|
<field name="path">icons/file-contract-solid.svg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<menuitem
|
<menuitem
|
||||||
parent="menu_equipment"
|
parent="menu_equipment"
|
||||||
name="Contracts Management"
|
name="Contracts Management"
|
||||||
sequence="50"
|
sequence="50"
|
||||||
id="menu_contracts"/>
|
id="menu_contracts"
|
||||||
|
icon="equipment_contract"/>
|
||||||
<menuitem
|
<menuitem
|
||||||
parent="menu_contracts"
|
parent="menu_contracts"
|
||||||
action="act_contract_form"
|
action="act_contract_form"
|
||||||
sequence="30"
|
sequence="30"
|
||||||
id="menu_contract_form"/>
|
id="menu_contract_form"
|
||||||
|
icon="equipment_contract"/>
|
||||||
|
<record model="ir.cron" id="cron_fe_delivery">
|
||||||
|
<field name="method">optical_equipment.contract|contract_expiration</field>
|
||||||
|
<field name="interval_number" eval="1"/>
|
||||||
|
<field name="interval_type">hours</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
10
diary.py
10
diary.py
@@ -1,23 +1,27 @@
|
|||||||
from trytond.model import (
|
from trytond.model import (
|
||||||
ModelSQL, ModelView, fields)
|
ModelSQL, ModelView, fields)
|
||||||
|
|
||||||
|
|
||||||
class Diary(ModelSQL, ModelView):
|
class Diary(ModelSQL, ModelView):
|
||||||
'Diary'
|
'Diary'
|
||||||
__name__ = 'optical_equipment_maintenance.diary'
|
__name__ = 'optical_equipment_maintenance.diary'
|
||||||
_rec_name = 'code'
|
_rec_name = 'code'
|
||||||
|
|
||||||
code = fields.Char("Code", select=True,states={'readonly': True })
|
code = fields.Char("Code", states={'readonly': True})
|
||||||
date_expected = fields.DateTime("Expected Date", required=True)
|
date_expected = fields.DateTime("Expected Date", required=True)
|
||||||
date_estimated = fields.DateTime("Estimated Date")
|
date_estimated = fields.DateTime("Estimated Date")
|
||||||
date_end = fields.DateTime("Date End")
|
date_end = fields.DateTime("Date End")
|
||||||
maintenance_service = fields.Many2One('optical_equipment_maintenance.service', 'Maintenance Service', required=True)
|
maintenance_service = fields.Many2One(
|
||||||
|
'optical_equipment_maintenance.service', 'Maintenance Service',
|
||||||
|
required=True)
|
||||||
technical = fields.Many2One('company.employee', "Technical", required=True)
|
technical = fields.Many2One('company.employee', "Technical", required=True)
|
||||||
state = fields.Selection([('draft', "Draft"),
|
state = fields.Selection([('draft', "Draft"),
|
||||||
('agended', "Agended"),
|
('agended', "Agended"),
|
||||||
('in_progress', "In Progress"),
|
('in_progress', "In Progress"),
|
||||||
('failed', "Failed"),
|
('failed', "Failed"),
|
||||||
('finished', "Finished")
|
('finished', "Finished")
|
||||||
], "State", required=True, readonly=True, sort=True)
|
], "State",
|
||||||
|
required=True, readonly=True, sort=True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_state(self):
|
def default_state(self):
|
||||||
|
|||||||
10
diary.xml
10
diary.xml
@@ -94,13 +94,19 @@
|
|||||||
<field name="name">Agended</field>
|
<field name="name">Agended</field>
|
||||||
<field name="sequence_type" ref="sequence_type_agended"/>
|
<field name="sequence_type" ref="sequence_type_agended"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.ui.icon" id="optical_equipment_schedule_icon">
|
||||||
|
<field name="name">equipment_schedule</field>
|
||||||
|
<field name="path">icons/calendar-days-solid.svg</field>
|
||||||
|
</record>
|
||||||
<menuitem parent="menu_equipment"
|
<menuitem parent="menu_equipment"
|
||||||
name="Diary"
|
name="Diary"
|
||||||
sequence="10"
|
sequence="10"
|
||||||
id="menu_diary"/>
|
id="menu_diary"
|
||||||
|
icon="equipment_schedule"/>
|
||||||
<menuitem parent="menu_diary"
|
<menuitem parent="menu_diary"
|
||||||
action="act_agended_list_form"
|
action="act_agended_list_form"
|
||||||
sequence="20"
|
sequence="20"
|
||||||
id="menu_agended_list_form"/>
|
id="menu_agended_list_form"
|
||||||
|
icon="equipment_schedule"/>
|
||||||
</data>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
###################
|
########################
|
||||||
Smart Vision Module
|
Optical Equipment Module
|
||||||
###################
|
########################
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
usage
|
usage
|
||||||
design
|
design
|
||||||
|
releases
|
||||||
|
|||||||
7
doc/releases.rst
Normal file
7
doc/releases.rst
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.. _releases-index:
|
||||||
|
|
||||||
|
=============
|
||||||
|
Release notes
|
||||||
|
=============
|
||||||
|
|
||||||
|
.. include:: ../CHANGELOG
|
||||||
470
equipment.py
470
equipment.py
@@ -1,23 +1,20 @@
|
|||||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
# this repository contains the full copyright notices and license terms.
|
# this repository contains the full copyright notices and license terms.
|
||||||
import datetime
|
|
||||||
from collections import defaultdict
|
|
||||||
from trytond.pool import Pool
|
from trytond.pool import Pool
|
||||||
from trytond.model import (
|
from trytond.model import \
|
||||||
DeactivableMixin, Workflow, ModelSQL, ModelView, Unique, fields)
|
DeactivableMixin, Workflow, ModelSQL, ModelView, fields
|
||||||
from trytond.pyson import Eval, If
|
from trytond.pyson import Eval
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
from trytond.i18n import gettext
|
from trytond.i18n import gettext
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
from trytond.model.exceptions import AccessError
|
from trytond.model.exceptions import AccessError
|
||||||
from trytond.wizard import (
|
from trytond.wizard import Button, StateAction, StateView, Wizard
|
||||||
Button, StateAction, StateTransition, StateView, Wizard)
|
|
||||||
from trytond.modules.company import CompanyReport
|
from trytond.modules.company import CompanyReport
|
||||||
|
|
||||||
|
|
||||||
_MAINTENANCE_FREQUENCY = [("none", ''),
|
_MAINTENANCE_FREQUENCY = [
|
||||||
("6", 'Seis Meses'),
|
('none', ''), ('6', 'Seis Meses'), ('12', 'Doce Meses')]
|
||||||
("12", 'Doce Meses')]
|
|
||||||
|
|
||||||
class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
||||||
'Optical Equipment'
|
'Optical Equipment'
|
||||||
@@ -25,100 +22,190 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
_rec_name = 'rec_name'
|
_rec_name = 'rec_name'
|
||||||
_order_name = 'code'
|
_order_name = 'code'
|
||||||
|
|
||||||
_states={
|
_states = {
|
||||||
'readonly': Eval('state') != 'draft',
|
'readonly': Eval('state') != 'draft',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_states_product = {'readonly': Eval('product', True)}
|
||||||
|
|
||||||
_depends = ['state']
|
_depends = ['state']
|
||||||
|
|
||||||
_states_serial={
|
_states_serial = {
|
||||||
'readonly': Eval('state') != 'draft',
|
'readonly': Eval('state') != 'draft',
|
||||||
}
|
}
|
||||||
|
|
||||||
code = fields.Char(
|
code = fields.Char('Code', states={'readonly': True})
|
||||||
"Code", select=True,states={'readonly': True })
|
|
||||||
|
|
||||||
state = fields.Selection([('draft', "Draft"),
|
state = fields.Selection(
|
||||||
('registred', "Registred"),
|
[
|
||||||
('uncontrated', "UnContrated"),
|
('draft', 'Draft'),
|
||||||
('contrated', "Contrated")
|
('registred', 'Registred'),
|
||||||
], "State",
|
('uncontrated', 'UnContrated'),
|
||||||
required=True, readonly=True, sort=False)
|
('contrated', 'Contrated'),
|
||||||
contract = fields.Many2One('optical_equipment.contract', "Contract", ondelete='CASCADE')
|
],
|
||||||
company = fields.Many2One('company.company', "Company", readonly=True)
|
'State',
|
||||||
location = fields.Many2One('stock.location', "Location",
|
required=True,
|
||||||
states=_states,)
|
readonly=True,
|
||||||
propietary = fields.Many2One('party.party',"Propietary", required=True,
|
sort=False,
|
||||||
states=_states,)
|
|
||||||
propietary_address = fields.Many2One('party.address', "Propietary Address", required=True,
|
|
||||||
domain=[('party', '=', Eval('propietary'))],
|
|
||||||
states=_states
|
|
||||||
)
|
)
|
||||||
propietarys = fields.Many2Many('optical_equipment.equipment-party.party', 'equipment', 'party', "Propietarys")
|
|
||||||
product = fields.Many2One('product.product', "Product",
|
company = fields.Many2One('company.company', 'Company', readonly=True)
|
||||||
|
contract = fields.Many2One(
|
||||||
|
'optical_equipment.contract', 'Contract', ondelete='CASCADE'
|
||||||
|
)
|
||||||
|
location = fields.Many2One(
|
||||||
|
'stock.location',
|
||||||
|
'Location',
|
||||||
|
states=_states,
|
||||||
|
)
|
||||||
|
propietary = fields.Many2One(
|
||||||
|
'party.party',
|
||||||
|
'Propietary',
|
||||||
|
required=True,
|
||||||
|
states=_states,
|
||||||
|
)
|
||||||
|
propietary_address = fields.Many2One(
|
||||||
|
'party.address',
|
||||||
|
'Propietary Address',
|
||||||
|
required=True,
|
||||||
|
domain=[('party', '=', Eval('propietary'))],
|
||||||
|
states=_states,
|
||||||
|
)
|
||||||
|
propietarys = fields.Many2Many(
|
||||||
|
'optical_equipment.equipment-party.party',
|
||||||
|
'equipment', 'party', 'Propietarys'
|
||||||
|
)
|
||||||
|
product = fields.Many2One(
|
||||||
|
'product.product',
|
||||||
|
'Product',
|
||||||
domain=[('equipment', '=', True)],
|
domain=[('equipment', '=', True)],
|
||||||
states=_states,
|
states=_states,
|
||||||
depends=['equipment']
|
|
||||||
)
|
)
|
||||||
refurbish = fields.Boolean("Refurbish",
|
refurbish = fields.Boolean(
|
||||||
states=_states,)
|
'Refurbish',
|
||||||
equipment_type = fields.Char('type', states={'readonly': If('product', True)})
|
states=_states,
|
||||||
risk = fields.Char('Type risk',states={'readonly': If('product', True)})
|
|
||||||
use = fields.Char('Use', states={'readonly': If('product', True)})
|
|
||||||
biomedical_class = fields.Char('Biomedical Class', states={'readonly': If('product', True)})
|
|
||||||
main_tecnology = fields.Char('Main tecnology', states={'readonly': If('product', True)})
|
|
||||||
calibration = fields.Boolean("Apply calibration", states={'readonly': If('product', True)})
|
|
||||||
mark_category = fields.Many2One('product.category', 'Mark', required=True,
|
|
||||||
domain=[('parent', '=', None),
|
|
||||||
('accounting', '=', False)],
|
|
||||||
states=_states
|
|
||||||
)
|
)
|
||||||
model_category = fields.Many2One('product.category', "Model", required=True,
|
equipment_type = fields.Char('type', states=_states_product)
|
||||||
|
risk = fields.Char('Type risk', states=_states_product)
|
||||||
|
use = fields.Char('Use', states=_states_product)
|
||||||
|
biomedical_class = fields.Char('Biomedical Class', states=_states_product)
|
||||||
|
main_tecnology = fields.Char('Main tecnology', states=_states_product)
|
||||||
|
calibration = fields.Boolean('Apply calibration', states=_states_product)
|
||||||
|
mark_category = fields.Many2One(
|
||||||
|
'product.category',
|
||||||
|
'Mark',
|
||||||
|
required=True,
|
||||||
|
domain=[('parent', '=', None), ('accounting', '=', False)],
|
||||||
|
states=_states,
|
||||||
|
)
|
||||||
|
model_category = fields.Many2One(
|
||||||
|
'product.category',
|
||||||
|
'Model',
|
||||||
|
required=True,
|
||||||
domain=[('parent', '=', Eval('mark_category')),
|
domain=[('parent', '=', Eval('mark_category')),
|
||||||
('accounting', '=', False)],
|
('accounting', '=', False)],
|
||||||
states=_states,)
|
states=_states,
|
||||||
reference_category = fields.Many2One('product.category', "Reference",
|
)
|
||||||
|
reference_category = fields.Many2One(
|
||||||
|
'product.category',
|
||||||
|
'Reference',
|
||||||
domain=[('parent', '=', Eval('model_category'))],
|
domain=[('parent', '=', Eval('model_category'))],
|
||||||
states=_states,
|
states=_states,
|
||||||
depends=['model_category']
|
depends=['model_category'],
|
||||||
|
)
|
||||||
|
origin_country = fields.Many2One(
|
||||||
|
'country.country',
|
||||||
|
'Origin Country',
|
||||||
|
states=_states,
|
||||||
)
|
)
|
||||||
origin_country = fields.Many2One('country.country',"Origin Country",
|
|
||||||
states=_states,)
|
|
||||||
|
|
||||||
software_version = fields.Char("Software version", size=None,
|
software_version = fields.Char(
|
||||||
states=_states,)
|
'Software version',
|
||||||
useful_life = fields.Integer("Useful life",
|
size=None,
|
||||||
states=_states,)
|
states=_states,
|
||||||
warranty = fields.Integer("Warranty",
|
)
|
||||||
states=_states,)
|
useful_life = fields.Integer(
|
||||||
serial = fields.Char("Serial", size=None,
|
'Useful life',
|
||||||
states=_states_serial,
|
states=_states,
|
||||||
depends=_depends)
|
)
|
||||||
health_register = fields.Char("Health Register", size=None,
|
warranty = fields.Integer(
|
||||||
states=_states,)
|
'Warranty',
|
||||||
contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'equipment','contract', "Contracts", states={'readonly': True})
|
states=_states,
|
||||||
|
)
|
||||||
|
serial = fields.Char('Serial', size=None,
|
||||||
|
states=_states_serial, depends=_depends)
|
||||||
|
health_register = fields.Char(
|
||||||
|
'Health Register',
|
||||||
|
size=None,
|
||||||
|
states=_states,
|
||||||
|
)
|
||||||
|
# contract_history =
|
||||||
|
# fields.Many2Many('optical_equipment.contract-optical_equipment.equipment',
|
||||||
|
# 'equipment','contract', 'Contracts', states={'readonly': True})
|
||||||
|
contract_history = fields.Function(
|
||||||
|
fields.One2Many('optical_equipment.contract',
|
||||||
|
'equipment', 'Contracts'),
|
||||||
|
'get_contracts_of_equipment',
|
||||||
|
)
|
||||||
maintenance_history = fields.Function(
|
maintenance_history = fields.Function(
|
||||||
fields.Many2Many('optical_equipment.maintenance-optical_equipment.equipment',
|
fields.Many2Many(
|
||||||
'equipment', 'maintenance',"Maintenances"), 'get_maintenances_of_equipment')
|
'optical_equipment.maintenance-optical_equipment.equipment',
|
||||||
software_version = fields.Char("Software version", size=None,
|
'equipment',
|
||||||
states=_states,)
|
'maintenance',
|
||||||
|
'Maintenances',
|
||||||
|
),
|
||||||
|
'get_maintenances_of_equipment',
|
||||||
|
)
|
||||||
|
software_version = fields.Char(
|
||||||
|
'Software version',
|
||||||
|
size=None,
|
||||||
|
states=_states,
|
||||||
|
)
|
||||||
|
|
||||||
maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency",
|
maintenance_frequency = fields.Selection(
|
||||||
depends=['propietary'])
|
_MAINTENANCE_FREQUENCY, 'Maintenance Frequency',
|
||||||
purchase_origin = fields.Reference("Purchase Origin", selection='get_origin',select=True,
|
depends=['propietary']
|
||||||
states={'readonly': True})
|
)
|
||||||
sale_destination = fields.Reference("Sale Destination", selection='get_destination',select=True,
|
purchase_origin = fields.Reference(
|
||||||
states={'readonly': True})
|
'Purchase Origin',
|
||||||
shipment_destination = fields.Reference("Stock Move", selection='get_shipment', select=True,
|
selection='get_origin', states={'readonly': True}
|
||||||
states={'readonly': True})
|
)
|
||||||
rec_name = fields.Function(fields.Char("rec_name"), 'get_rec_name')
|
sale_destination = fields.Reference(
|
||||||
|
'Sale Destination',
|
||||||
|
selection='get_destination', states={'readonly': True}
|
||||||
|
)
|
||||||
|
shipment_destination = fields.Reference(
|
||||||
|
'Stock Move', selection='get_shipment', states={'readonly': True}
|
||||||
|
)
|
||||||
|
rec_name = fields.Function(fields.Char('rec_name'), 'get_rec_name')
|
||||||
|
|
||||||
|
technician_responsible = fields.Function(
|
||||||
|
fields.Char('Technician Responsible'), 'get_technical'
|
||||||
|
)
|
||||||
|
invima = fields.Function(fields.Char('Invima'), 'get_invima')
|
||||||
|
|
||||||
del _states_serial, _states, _depends
|
del _states_serial, _states, _depends
|
||||||
|
|
||||||
|
def get_technical(self, name):
|
||||||
|
pool = Pool()
|
||||||
|
ConfigurationEquipment = pool.get('optical_equipment.configuration')
|
||||||
|
config = ConfigurationEquipment(1)
|
||||||
|
|
||||||
|
if config.technician_responsible:
|
||||||
|
technician_responsible = config.technician_responsible
|
||||||
|
return technician_responsible.party.name
|
||||||
|
|
||||||
|
def get_invima(self, name):
|
||||||
|
pool = Pool()
|
||||||
|
ConfigurationEquipment = pool.get('optical_equipment.configuration')
|
||||||
|
config = ConfigurationEquipment(1)
|
||||||
|
if config.technician_responsible.invima:
|
||||||
|
return config.technician_responsible.invima
|
||||||
|
|
||||||
@fields.depends('product', 'serial', 'code')
|
@fields.depends('product', 'serial', 'code')
|
||||||
def get_rec_name(self, name):
|
def get_rec_name(self, name):
|
||||||
name = str(self.product.name) + '@' + str(self.serial) + '/' + str(self.code)
|
name = str(self.product.name) + '@' + \
|
||||||
|
str(self.serial) + '/' + str(self.code)
|
||||||
|
|
||||||
return name
|
return name
|
||||||
|
|
||||||
@@ -165,7 +252,6 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
|
|
||||||
return [Sale.__name__]
|
return [Sale.__name__]
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_destination(cls):
|
def get_destination(cls):
|
||||||
Model = Pool().get('ir.model')
|
Model = Pool().get('ir.model')
|
||||||
@@ -174,21 +260,24 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
|
|
||||||
return [(None, '')] + [(m, get_name(m)) for m in models]
|
return [(None, '')] + [(m, get_name(m)) for m in models]
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
super(OpticalEquipment, cls).__setup__()
|
super(OpticalEquipment, cls).__setup__()
|
||||||
cls._transitions = ({
|
cls._transitions = {
|
||||||
('draft', 'registred'),
|
('draft', 'registred'),
|
||||||
('registred', 'draft'),
|
('registred', 'draft'),
|
||||||
('registred', 'uncontrated'),
|
('registred', 'uncontrated'),
|
||||||
('uncontrated', 'contrated'),
|
('uncontrated', 'contrated'),
|
||||||
})
|
}
|
||||||
cls._buttons.update({
|
cls._buttons.update(
|
||||||
'draft': {
|
{
|
||||||
'invisible': Eval('state') != 'registred'},
|
'draft': {'invisible': Eval('state') != 'registred'},
|
||||||
'registred': {
|
'registred': {
|
||||||
'invisible': Eval('state').in_(['registred', 'uncontrated', 'contrated'])}}
|
'invisible': Eval('state').in_(
|
||||||
|
['registred', 'uncontrated', 'contrated']
|
||||||
|
)
|
||||||
|
},
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -198,7 +287,7 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
config = Config(1)
|
config = Config(1)
|
||||||
|
|
||||||
for equipment in equipments:
|
for equipment in equipments:
|
||||||
if config.equipment_sequence != None:
|
if config.equipment_sequence is not None:
|
||||||
if not equipment.code:
|
if not equipment.code:
|
||||||
try:
|
try:
|
||||||
equipment.code = config.equipment_sequence.get()
|
equipment.code = config.equipment_sequence.get()
|
||||||
@@ -206,14 +295,33 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
except UserError:
|
except UserError:
|
||||||
raise UserError(str('Validation Error'))
|
raise UserError(str('Validation Error'))
|
||||||
else:
|
else:
|
||||||
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
|
raise UserError(
|
||||||
|
gettext('optical_equipment.msg_not_sequence_equipment'))
|
||||||
|
|
||||||
|
def get_contracts_of_equipment(self, records):
|
||||||
|
pool = Pool()
|
||||||
|
ContractsEquipment = pool.get('optical_equipment.contract')
|
||||||
|
contractsEquipment = set()
|
||||||
|
|
||||||
|
contractsEquipment = ContractsEquipment.search(
|
||||||
|
[('party', '=', self.propietary),
|
||||||
|
('history_equipments', 'in', [self.id])]
|
||||||
|
)
|
||||||
|
contracts = []
|
||||||
|
|
||||||
|
for key in contractsEquipment:
|
||||||
|
contracts.append(key.id)
|
||||||
|
|
||||||
|
return contracts
|
||||||
|
|
||||||
def get_maintenances_of_equipment(self, records):
|
def get_maintenances_of_equipment(self, records):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
MaintenancesEquipment = pool.get('optical_equipment.maintenance')
|
MaintenancesEquipment = pool.get('optical_equipment.maintenance')
|
||||||
maintenancesEquipment = set()
|
maintenancesEquipment = set()
|
||||||
|
|
||||||
maintenancesEquipment = MaintenancesEquipment.search(['equipment', '=', self.id])
|
maintenancesEquipment = MaintenancesEquipment.search(
|
||||||
|
['equipment', '=', self.id]
|
||||||
|
)
|
||||||
maintenances = []
|
maintenances = []
|
||||||
|
|
||||||
for key in maintenancesEquipment:
|
for key in maintenancesEquipment:
|
||||||
@@ -221,6 +329,13 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
|
|
||||||
return maintenances
|
return maintenances
|
||||||
|
|
||||||
|
def get_technician_signature(self):
|
||||||
|
pool = Pool()
|
||||||
|
ConfigurationEquipment = pool.get('optical_equipment.configuration')
|
||||||
|
config = ConfigurationEquipment(1)
|
||||||
|
if config.technician_signature:
|
||||||
|
return config.technician_signature
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_state(cls):
|
def default_state(cls):
|
||||||
return 'draft'
|
return 'draft'
|
||||||
@@ -232,61 +347,63 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
@fields.depends('propietary', 'maintenance_frequency')
|
@fields.depends('propietary', 'maintenance_frequency')
|
||||||
def on_change_propietary(self):
|
def on_change_propietary(self):
|
||||||
if self.propietary:
|
if self.propietary:
|
||||||
if self.propietary.client_type == 'ips':
|
if self.propietary.customer_type == 'ips':
|
||||||
self.maintenance_frequency = "6"
|
self.maintenance_frequency = '6'
|
||||||
else:
|
else:
|
||||||
self.maintenance_frequency = "12"
|
self.maintenance_frequency = '12'
|
||||||
else:
|
else:
|
||||||
self.maintenance_frequency = "none"
|
self.maintenance_frequency = 'none'
|
||||||
|
|
||||||
@fields.depends('product', 'equipment_type','use',
|
@fields.depends('product', 'equipment_type',
|
||||||
'biomedical_class', 'calibration',
|
'use', 'biomedical_class', 'calibration',
|
||||||
'mark_category', 'model_category')
|
'mark_category', 'model_category')
|
||||||
def on_change_product(self):
|
def on_change_product(self):
|
||||||
if self.product:
|
if self.product:
|
||||||
self.equipment_type=self.product.equipment_type
|
self.equipment_type = self.product.equipment_type
|
||||||
self.use=self.product.use
|
self.use = self.product.use
|
||||||
self.biomedical_class=self.product.biomedical_class
|
self.biomedical_class = self.product.biomedical_class
|
||||||
self.calibration=self.product.calibration
|
self.calibration = self.product.calibration
|
||||||
self.mark_category=self.product.mark_category
|
self.mark_category = self.product.mark_category
|
||||||
self.model_category=self.product.model_category
|
self.model_category = self.product.model_category
|
||||||
self.reference_category=self.product.reference_category
|
self.reference_category = self.product.reference_category
|
||||||
self.useful_life=self.product.useful_life if self.product.useful_life else int(0)
|
self.useful_life = (
|
||||||
self.calibration=True if self.product.calibration else False
|
self.product.useful_life if self.product.useful_life else int(
|
||||||
self.warranty=self.product.warranty if self.product.warranty else int(0)
|
0)
|
||||||
self.risk=self.product.risk
|
)
|
||||||
self.origin_country=self.product.origin_country
|
self.calibration = True if self.product.calibration else False
|
||||||
self.use=self.product.use
|
self.warranty =\
|
||||||
self.biomedical_class=self.product.biomedical_class
|
self.product.warranty if self.product.warranty else int(0)
|
||||||
|
self.risk = self.product.risk
|
||||||
|
self.origin_country = self.product.origin_country
|
||||||
|
self.use = self.product.use
|
||||||
|
self.biomedical_class = self.product.biomedical_class
|
||||||
else:
|
else:
|
||||||
self.equipment_type=None
|
self.equipment_type = None
|
||||||
self.use=None
|
self.use = None
|
||||||
self.biomedical_class=None
|
self.biomedical_class = None
|
||||||
self.calibration=None
|
self.calibration = None
|
||||||
self.mark_category=None
|
self.mark_category = None
|
||||||
self.model_category=None
|
self.model_category = None
|
||||||
self.reference_category=None
|
self.reference_category = None
|
||||||
self.useful_life=None
|
self.useful_life = None
|
||||||
self.calibration=False
|
self.calibration = False
|
||||||
self.warranty=None
|
self.warranty = None
|
||||||
self.risk=None
|
self.risk = None
|
||||||
self.origin_country=None
|
self.origin_country = None
|
||||||
self.use=None
|
self.use = None
|
||||||
self.biomedical_class=None
|
self.biomedical_class = None
|
||||||
self.refurbish=None
|
self.refurbish = None
|
||||||
self.serial=None
|
self.serial = None
|
||||||
self.health_register=None
|
self.health_register = None
|
||||||
self.software_version=None
|
self.software_version = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def delete(cls, equipments):
|
def delete(cls, equipments):
|
||||||
for equipment in equipments:
|
for equipment in equipments:
|
||||||
if equipment.purchase_origin:
|
if equipment.purchase_origin:
|
||||||
raise AccessError(
|
raise AccessError(gettext('estos equipos no se pueden borrar'))
|
||||||
gettext('estos equipos no se pueden borrar'))
|
elif equipment.state != 'draft' and equipment.serial is not None:
|
||||||
elif equipment.state != 'draft' and equipment.serial != None:
|
raise AccessError(gettext('estos equipos no se pueden borrar'))
|
||||||
raise AccessError(
|
|
||||||
gettext('estos equipos no se pueden borrar'))
|
|
||||||
super(OpticalEquipment, cls).delete(equipments)
|
super(OpticalEquipment, cls).delete(equipments)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -300,48 +417,80 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
@Workflow.transition('registred')
|
@Workflow.transition('registred')
|
||||||
def registred(cls, equipments):
|
def registred(cls, equipments):
|
||||||
for i in equipments:
|
for i in equipments:
|
||||||
if i.serial == None:
|
if i.serial is None:
|
||||||
raise UserError(str("El Equipo no cuenta con un Serial"))
|
raise UserError(str('El Equipo no cuenta con un Serial'))
|
||||||
else:
|
else:
|
||||||
cls.set_code(equipments)
|
cls.set_code(equipments)
|
||||||
|
|
||||||
|
|
||||||
class EquipmentMaintenance(ModelSQL, ModelView):
|
class EquipmentMaintenance(ModelSQL, ModelView):
|
||||||
'Optical Equipment - Equipment - Maintenance'
|
'Optical Equipment - Equipment - Maintenance'
|
||||||
__name__ ='optical_equipment.maintenance-optical_equipment.equipment'
|
__name__ = 'optical_equipment.maintenance-optical_equipment.equipment'
|
||||||
|
|
||||||
|
equipment = fields.Many2One(
|
||||||
|
'optical_equipment.equipment',
|
||||||
|
'Equipment',
|
||||||
|
)
|
||||||
|
maintenance = fields.Many2One(
|
||||||
|
'optical_equipment.maintenance',
|
||||||
|
'Maintenances',
|
||||||
|
)
|
||||||
|
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
|
||||||
maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenances', select=True)
|
|
||||||
|
|
||||||
class EquipmentContract(ModelSQL, ModelView):
|
class EquipmentContract(ModelSQL, ModelView):
|
||||||
'Optical Equipment - Contracs Equipment'
|
'Optical Equipment - Contracs Equipment'
|
||||||
__name__ = 'optical_equipment.contract-optical_equipment.equipment'
|
__name__ = 'optical_equipment.contract-optical_equipment.equipment'
|
||||||
|
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
equipment = fields.Many2One(
|
||||||
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
|
'optical_equipment.equipment',
|
||||||
|
'Equipment',
|
||||||
|
)
|
||||||
|
contract = fields.Many2One(
|
||||||
|
'optical_equipment.contract',
|
||||||
|
'Contract',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class EquipmentParty(ModelSQL, ModelView):
|
class EquipmentParty(ModelSQL, ModelView):
|
||||||
'Optical Equipment - Party'
|
'Optical Equipment - Party'
|
||||||
__name__ = 'optical_equipment.equipment-party.party'
|
__name__ = 'optical_equipment.equipment-party.party'
|
||||||
|
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", select=True)
|
equipment = fields.Many2One(
|
||||||
party = fields.Many2One('party.party', "Party", select=True)
|
'optical_equipment.equipment',
|
||||||
|
'Equipment',
|
||||||
|
)
|
||||||
|
party = fields.Many2One(
|
||||||
|
'party.party',
|
||||||
|
'Party',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ChangePropietary(ModelView):
|
class ChangePropietary(ModelView):
|
||||||
'Change of Propietary Equipment'
|
'Change of Propietary Equipment'
|
||||||
__name__ = 'optical_equipment.change_propietary.form'
|
__name__ = 'optical_equipment.change_propietary.form'
|
||||||
|
|
||||||
old_propietary = fields.Many2One('party.party', 'Old Propietary',
|
old_propietary = fields.Many2One(
|
||||||
states={'required': True})
|
'party.party', 'Old Propietary', states={'required': True}
|
||||||
equipments = fields.Many2Many('optical_equipment.equipment', None, None, "Equipments",
|
)
|
||||||
|
equipments = fields.Many2Many(
|
||||||
|
'optical_equipment.equipment',
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
'Equipments',
|
||||||
domain=[('propietary', '=', Eval('old_propietary'))],
|
domain=[('propietary', '=', Eval('old_propietary'))],
|
||||||
depends=['old_propietary'])
|
depends=['old_propietary'],
|
||||||
new_propietary = fields.Many2One('party.party', "New Propietary",
|
)
|
||||||
states={'required': True})
|
new_propietary = fields.Many2One(
|
||||||
new_address = fields.Many2One('party.address', "New Address", required=True,
|
'party.party', 'New Propietary', states={'required': True}
|
||||||
|
)
|
||||||
|
new_address = fields.Many2One(
|
||||||
|
'party.address',
|
||||||
|
'New Address',
|
||||||
|
required=True,
|
||||||
domain=[('party', '=', Eval('new_propietary'))],
|
domain=[('party', '=', Eval('new_propietary'))],
|
||||||
states={'required': True})
|
states={'required': True},
|
||||||
change_date = fields.Date("Change Date", readonly=True)
|
)
|
||||||
|
change_date = fields.Date('Change Date', readonly=True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_change_date(cls):
|
def default_change_date(cls):
|
||||||
@@ -354,15 +503,18 @@ class NewPropietary(Wizard):
|
|||||||
'Change Propietary'
|
'Change Propietary'
|
||||||
__name__ = 'optical_equipment.change_propietary'
|
__name__ = 'optical_equipment.change_propietary'
|
||||||
|
|
||||||
start = StateView('optical_equipment.change_propietary.form',
|
start = StateView(
|
||||||
'optical_equipment.change_propietary_view_form',[
|
'optical_equipment.change_propietary.form',
|
||||||
|
'optical_equipment.change_propietary_view_form',
|
||||||
|
[
|
||||||
Button('Cancel', 'end', 'tryton-cancel'),
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
Button('Create', 'change_propietary', 'tryton-ok', default=True),
|
Button('Create', 'change_propietary', 'tryton-ok', default=True),
|
||||||
])
|
],
|
||||||
change_propietary = StateAction('optical_equipment.act_optical_equipment_form')
|
)
|
||||||
|
change_propietary = StateAction(
|
||||||
|
'optical_equipment.act_optical_equipment_form')
|
||||||
|
|
||||||
def do_change_propietary(self, action):
|
def do_change_propietary(self, action):
|
||||||
old_propietary = self.start.old_propietary
|
|
||||||
equipments = self.start.equipments
|
equipments = self.start.equipments
|
||||||
new_propietary = self.start.new_propietary
|
new_propietary = self.start.new_propietary
|
||||||
new_address = self.start.new_address
|
new_address = self.start.new_address
|
||||||
@@ -371,7 +523,9 @@ class NewPropietary(Wizard):
|
|||||||
equipment.propietarys += (equipment.propietary,)
|
equipment.propietarys += (equipment.propietary,)
|
||||||
equipment.propietary = new_propietary
|
equipment.propietary = new_propietary
|
||||||
equipment.propietary_address = new_address
|
equipment.propietary_address = new_address
|
||||||
equipment.maintenance_frequency = "6" if new_propietary.client_type == 'ips' else "12"
|
equipment.maintenance_frequency = (
|
||||||
|
'6' if new_propietary.customer_type == 'ips' else '12'
|
||||||
|
)
|
||||||
equipment.save()
|
equipment.save()
|
||||||
|
|
||||||
|
|
||||||
@@ -379,9 +533,13 @@ class ChangeEquipment(ModelSQL):
|
|||||||
'Change Equipment'
|
'Change Equipment'
|
||||||
__name__ = 'optical_equipment.equipment-change_propietary.form'
|
__name__ = 'optical_equipment.equipment-change_propietary.form'
|
||||||
|
|
||||||
maintenance_service = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service")
|
maintenance_service = fields.Many2One(
|
||||||
|
'optical_equipment_maintenance.service', 'Maintenance Service'
|
||||||
|
)
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
|
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
|
||||||
change = fields.Many2One('optical_equipment.change_propietary.form', 'Change')
|
change = fields.Many2One(
|
||||||
|
'optical_equipment.change_propietary.form', 'Change')
|
||||||
|
|
||||||
|
|
||||||
class EquipmentReport(CompanyReport):
|
class EquipmentReport(CompanyReport):
|
||||||
__name__ = 'optical_equipment.equipment'
|
__name__ = 'optical_equipment.equipment'
|
||||||
|
|||||||
@@ -11,18 +11,6 @@
|
|||||||
<field name="user" ref="res.user_admin"/>
|
<field name="user" ref="res.user_admin"/>
|
||||||
<field name="group" ref="group_equipment_admin"/>
|
<field name="group" ref="group_equipment_admin"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="res.group" id="group_maintenance_admin">
|
|
||||||
<field name="name">Maintenance Administration</field>
|
|
||||||
</record>
|
|
||||||
<record model="res.user-res.group"
|
|
||||||
id="user_admin_group_maintenance_admin">
|
|
||||||
<field name="user" ref="res.user_admin"/>
|
|
||||||
<field name="group" ref="group_maintenance_admin"/>
|
|
||||||
</record>
|
|
||||||
<menuitem
|
|
||||||
name="Equipment"
|
|
||||||
sequence="40"
|
|
||||||
id="menu_equipment"/>
|
|
||||||
<record model="ir.action.act_window" id="act_optical_equipment_form">
|
<record model="ir.action.act_window" id="act_optical_equipment_form">
|
||||||
<field name="name">Equipments</field>
|
<field name="name">Equipments</field>
|
||||||
<field name="res_model">optical_equipment.equipment</field>
|
<field name="res_model">optical_equipment.equipment</field>
|
||||||
@@ -31,12 +19,12 @@
|
|||||||
<record model="ir.ui.view" id="optical_equipment_view_tree">
|
<record model="ir.ui.view" id="optical_equipment_view_tree">
|
||||||
<field name="model">optical_equipment.equipment</field>
|
<field name="model">optical_equipment.equipment</field>
|
||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
<field name="name">optical_equipment_tree</field>
|
<field name="name">equipment_tree</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="optical_equipment_view_form">
|
<record model="ir.ui.view" id="optical_equipment_view_form">
|
||||||
<field name="model">optical_equipment.equipment</field>
|
<field name="model">optical_equipment.equipment</field>
|
||||||
<field name="type">form</field>
|
<field name="type">form</field>
|
||||||
<field name="name">optical_equipment_form</field>
|
<field name="name">equipment_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.view" id="act_optical_equipment_view1">
|
<record model="ir.action.act_window.view" id="act_optical_equipment_view1">
|
||||||
<field name="sequence" eval="10"/>
|
<field name="sequence" eval="10"/>
|
||||||
@@ -75,7 +63,6 @@
|
|||||||
<field name="count" eval="True"/>
|
<field name="count" eval="True"/>
|
||||||
<field name="act_window" ref="act_optical_equipment_form"/>
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_contrated">
|
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_contrated">
|
||||||
<field name="name">Contrated</field>
|
<field name="name">Contrated</field>
|
||||||
<field name="sequence" eval="30"/>
|
<field name="sequence" eval="30"/>
|
||||||
@@ -102,11 +89,6 @@
|
|||||||
<field name="confirm">Are you sure you want to registred these equipments?</field>
|
<field name="confirm">Are you sure you want to registred these equipments?</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
|
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
|
||||||
</record>
|
</record>
|
||||||
<menuitem parent="menu_equipment"
|
|
||||||
action="act_optical_equipment_form"
|
|
||||||
sequence="60"
|
|
||||||
id="menu_optical_equipment_form"/>
|
|
||||||
|
|
||||||
<record model="ir.action.act_window" id="act_optical_equipment_form1">
|
<record model="ir.action.act_window" id="act_optical_equipment_form1">
|
||||||
<field name="name">Serials</field>
|
<field name="name">Serials</field>
|
||||||
<field name="res_model">optical_equipment.equipment</field>
|
<field name="res_model">optical_equipment.equipment</field>
|
||||||
@@ -115,7 +97,7 @@
|
|||||||
<record model="ir.ui.view" id="optical_equipment_view_tree1">
|
<record model="ir.ui.view" id="optical_equipment_view_tree1">
|
||||||
<field name="model">optical_equipment.equipment</field>
|
<field name="model">optical_equipment.equipment</field>
|
||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
<field name="name">optical_equipment_serial_tree</field>
|
<field name="name">equipment_serial_tree</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.view" id="act_optical_equipment_view3">
|
<record model="ir.action.act_window.view" id="act_optical_equipment_view3">
|
||||||
<field name="sequence" eval="10"/>
|
<field name="sequence" eval="10"/>
|
||||||
@@ -131,52 +113,6 @@
|
|||||||
<field name="count" eval="True"/>
|
<field name="count" eval="True"/>
|
||||||
<field name="act_window" ref="act_optical_equipment_form1"/>
|
<field name="act_window" ref="act_optical_equipment_form1"/>
|
||||||
</record>
|
</record>
|
||||||
<menuitem
|
|
||||||
parent="menu_equipment"
|
|
||||||
action="act_optical_equipment_form1"
|
|
||||||
sequence="70"
|
|
||||||
id="menu_optical_equipment_serial_form"/>
|
|
||||||
|
|
||||||
<record model="ir.ui.menu-res.group"
|
|
||||||
id="menu_party_group_equipment_admin">
|
|
||||||
<field name="menu" ref="menu_equipment"/>
|
|
||||||
<field name="group" ref="group_equipment_admin"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence.type" id="sequence_type_equipment">
|
|
||||||
<field name="name">Equipment</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence.type-res.group"
|
|
||||||
id="sequence_type_equipment_group_admin">
|
|
||||||
<field name="sequence_type" ref="sequence_type_equipment"/>
|
|
||||||
<field name="group" ref="res.group_admin"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence.type-res.group"
|
|
||||||
id="sequence_type_equipment_group_equipment_admin">
|
|
||||||
<field name="sequence_type" ref="sequence_type_equipment"/>
|
|
||||||
<field name="group" ref="group_equipment_admin"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence" id="sequence_equipment">
|
|
||||||
<field name="name">Equipment</field>
|
|
||||||
<field name="sequence_type" ref="sequence_type_equipment"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence.type" id="sequence_type_maintenances">
|
|
||||||
<field name="name">Maintenances</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence.type-res.group"
|
|
||||||
id="sequence_type_maintenance_group_admin">
|
|
||||||
<field name="sequence_type" ref="sequence_type_maintenances"/>
|
|
||||||
<field name="group" ref="res.group_admin"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence.type-res.group"
|
|
||||||
id="sequence_type_maintenance_group_maintenance_admin">
|
|
||||||
<field name="sequence_type" ref="sequence_type_maintenances"/>
|
|
||||||
<field name="group" ref="group_maintenance_admin"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.sequence" id="sequence_maintenances">
|
|
||||||
<field name="name">Maintenance</field>
|
|
||||||
<field name="sequence_type" ref="sequence_type_maintenances"/>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record model="ir.action.report" id="report_equipment">
|
<record model="ir.action.report" id="report_equipment">
|
||||||
<field name="name">Equipment</field>
|
<field name="name">Equipment</field>
|
||||||
<field name="model">optical_equipment.equipment</field>
|
<field name="model">optical_equipment.equipment</field>
|
||||||
@@ -216,5 +152,31 @@
|
|||||||
<field name="model">optical_equipment.equipment,-1</field>
|
<field name="model">optical_equipment.equipment,-1</field>
|
||||||
<field name="action" ref="equipment_change_propietary"/>
|
<field name="action" ref="equipment_change_propietary"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.ui.icon" id="optical_equipment_serials_icon">
|
||||||
|
<field name="name">equipment_serial</field>
|
||||||
|
<field name="path">icons/barcode-solid.svg</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.icon" id="optical_equipment_optical_icon">
|
||||||
|
<field name="name">optical</field>
|
||||||
|
<field name="path">icons/microscope-solid.svg</field>
|
||||||
|
</record>
|
||||||
|
<menuitem
|
||||||
|
name="Equipment"
|
||||||
|
sequence="40"
|
||||||
|
id="menu_equipment"
|
||||||
|
icon="optical"/>
|
||||||
|
<menuitem
|
||||||
|
parent="menu_equipment"
|
||||||
|
action="act_optical_equipment_form"
|
||||||
|
sequence="60"
|
||||||
|
id="menu_optical_equipment_form"
|
||||||
|
icon="optical"/>
|
||||||
|
<menuitem
|
||||||
|
parent="menu_equipment"
|
||||||
|
action="act_optical_equipment_form1"
|
||||||
|
sequence="70"
|
||||||
|
id="menu_optical_equipment_serial_form"
|
||||||
|
icon="equipment_serial"/>
|
||||||
</data>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
@@ -1,11 +0,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.
|
|
||||||
from trytond.exceptions import UserError
|
|
||||||
from trytond.model.exceptions import ValidationError
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidNumberPurchases(UserError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class NotSequenceEquipment(ValidationError):
|
|
||||||
pass
|
|
||||||
202
icons/LICENSE
Normal file
202
icons/LICENSE
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
1
icons/barcode-solid.svg
Normal file
1
icons/barcode-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z"/></svg>
|
||||||
|
After Width: | Height: | Size: 814 B |
1
icons/calendar-days-solid.svg
Normal file
1
icons/calendar-days-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z"/></svg>
|
||||||
|
After Width: | Height: | Size: 1.0 KiB |
1
icons/file-contract-solid.svg
Normal file
1
icons/file-contract-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"/></svg>
|
||||||
|
After Width: | Height: | Size: 942 B |
1
icons/heart-pulse-solid.svg
Normal file
1
icons/heart-pulse-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z"/></svg>
|
||||||
|
After Width: | Height: | Size: 916 B |
1
icons/microscope-solid.svg
Normal file
1
icons/microscope-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>
|
||||||
|
After Width: | Height: | Size: 690 B |
177
locale/es.po
177
locale/es.po
@@ -74,6 +74,10 @@ msgctxt "field:product.template,calibration:"
|
|||||||
msgid "Apply calibration"
|
msgid "Apply calibration"
|
||||||
msgstr "Aplica calibración"
|
msgstr "Aplica calibración"
|
||||||
|
|
||||||
|
msgctxt "field:product.template,maintenance_required:"
|
||||||
|
msgid "Maintenance Required"
|
||||||
|
msgstr "Requiere Mantenimiento"
|
||||||
|
|
||||||
msgctxt "field:product.template,observation:"
|
msgctxt "field:product.template,observation:"
|
||||||
msgid "Observation"
|
msgid "Observation"
|
||||||
msgstr "Observación"
|
msgstr "Observación"
|
||||||
@@ -134,6 +138,10 @@ msgctxt "field:product.template,uncertainy_pattern:"
|
|||||||
msgid "Uncertainy Pattern"
|
msgid "Uncertainy Pattern"
|
||||||
msgstr "Incertidumbre Patrón"
|
msgstr "Incertidumbre Patrón"
|
||||||
|
|
||||||
|
msgctxt "field:product.template,use_pattern:"
|
||||||
|
msgid "Use Pattern"
|
||||||
|
msgstr "Patrón Utilizado"
|
||||||
|
|
||||||
msgctxt "field:product.template,k_pattern:"
|
msgctxt "field:product.template,k_pattern:"
|
||||||
msgid "K Pattern"
|
msgid "K Pattern"
|
||||||
msgstr "Patrón K"
|
msgstr "Patrón K"
|
||||||
@@ -158,6 +166,10 @@ msgctxt "field:product.template,k_pattern_list:"
|
|||||||
msgid "List of patterns K"
|
msgid "List of patterns K"
|
||||||
msgstr "Lista de patrones K"
|
msgstr "Lista de patrones K"
|
||||||
|
|
||||||
|
msgctxt "field:product.template,preventive_activities:"
|
||||||
|
msgid "Preventive Activities"
|
||||||
|
msgstr "Actividades Preventivas"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,equipment_sequence:"
|
msgctxt "field:optical_equipment.configuration,equipment_sequence:"
|
||||||
msgid "Equipment Sequence"
|
msgid "Equipment Sequence"
|
||||||
msgstr "Secuencia de Equipos"
|
msgstr "Secuencia de Equipos"
|
||||||
@@ -351,8 +363,16 @@ msgid "Serials"
|
|||||||
msgstr "Seriales"
|
msgstr "Seriales"
|
||||||
|
|
||||||
msgctxt "model:ir.ui.menu,name:menu_maintenance_form"
|
msgctxt "model:ir.ui.menu,name:menu_maintenance_form"
|
||||||
msgid "Maintenances"
|
msgid "Maintenance Lines"
|
||||||
msgstr "Mantenimientos"
|
msgstr "Líneas de Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "model:ir.ui.menu,name:menu_properties_equipments"
|
||||||
|
msgid "Properties of Equipments"
|
||||||
|
msgstr "Propiedades de Equipos"
|
||||||
|
|
||||||
|
msgctxt "model:ir.ui.menu,name:menu_pattern"
|
||||||
|
msgid "Pattern Use"
|
||||||
|
msgstr "Patrónes de Calibración"
|
||||||
|
|
||||||
msgctxt "model:ir.sequence,name:sequence_equipment"
|
msgctxt "model:ir.sequence,name:sequence_equipment"
|
||||||
msgid "Equipment"
|
msgid "Equipment"
|
||||||
@@ -654,6 +674,18 @@ msgctxt "field:optical_equipment_maintenance.service,code:"
|
|||||||
msgid "Code"
|
msgid "Code"
|
||||||
msgstr "Código"
|
msgstr "Código"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment_maintenance.service,technician_responsible:"
|
||||||
|
msgid "Technician Responsible"
|
||||||
|
msgstr "Técnico Reponsable"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment_maintenance.service,invima:"
|
||||||
|
msgid "Invima"
|
||||||
|
msgstr "Invima"
|
||||||
|
|
||||||
|
msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
|
||||||
|
msgid "Initial"
|
||||||
|
msgstr "Inicial"
|
||||||
|
|
||||||
msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
|
msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
|
||||||
msgid "Preventive"
|
msgid "Preventive"
|
||||||
msgstr "Preventivo"
|
msgstr "Preventivo"
|
||||||
@@ -666,6 +698,10 @@ msgctxt "field:optical_equipment.maintenance,description_activity:"
|
|||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Descripción del Mantenimiento"
|
msgstr "Descripción del Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance,equipment_calibrate:"
|
||||||
|
msgid "Calibrate Equipment"
|
||||||
|
msgstr "Equipo Calibrable"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.maintenance,temperature_min:"
|
msgctxt "field:optical_equipment.maintenance,temperature_min:"
|
||||||
msgid "Temp Min"
|
msgid "Temp Min"
|
||||||
msgstr "Temp Min"
|
msgstr "Temp Min"
|
||||||
@@ -686,6 +722,50 @@ msgctxt "field:optical_equipment.maintenance,moisture_uom:"
|
|||||||
msgid "Moisture UOM"
|
msgid "Moisture UOM"
|
||||||
msgstr "Humedad UOM"
|
msgstr "Humedad UOM"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,line_replace:"
|
||||||
|
msgid "Replace"
|
||||||
|
msgstr "Repuesto"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,line_maintenance_activity:"
|
||||||
|
msgid "Maintenance Activity"
|
||||||
|
msgstr "Actividad de Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,maintenance:"
|
||||||
|
msgid "Maintenance"
|
||||||
|
msgstr "Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,replacement:"
|
||||||
|
msgid "Replacement"
|
||||||
|
msgstr "Reemplazo"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,maintenance_activity:"
|
||||||
|
msgid "Maintenance activity"
|
||||||
|
msgstr "Actividad de Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,quantity:"
|
||||||
|
msgid "Quantity"
|
||||||
|
msgstr "Cantidad"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,actual_quantity:"
|
||||||
|
msgid "Actual Quantity"
|
||||||
|
msgstr "Cantidad Actual"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,unit:"
|
||||||
|
msgid "Unit"
|
||||||
|
msgstr "Unidad"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,product_uom_category:"
|
||||||
|
msgid "Product Uom Category"
|
||||||
|
msgstr "Categoría de unidad de producto"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,description:"
|
||||||
|
msgid "Description"
|
||||||
|
msgstr "Detalles"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.maintenance.line,company:"
|
||||||
|
msgid "Company"
|
||||||
|
msgstr "Empresa"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.maintenance,temperature_uom:"
|
msgctxt "field:optical_equipment.maintenance,temperature_uom:"
|
||||||
msgid "Temperature UOM"
|
msgid "Temperature UOM"
|
||||||
msgstr "Temperatura UOM"
|
msgstr "Temperatura UOM"
|
||||||
@@ -702,6 +782,10 @@ msgctxt "field:sale.sale,quote_number:"
|
|||||||
msgid "Quote Number"
|
msgid "Quote Number"
|
||||||
msgstr "Cotización #"
|
msgstr "Cotización #"
|
||||||
|
|
||||||
|
msgctxt "field:sale.sale,payment_term_description:"
|
||||||
|
msgid "Payment Term"
|
||||||
|
msgstr "Plazo de Pago"
|
||||||
|
|
||||||
msgctxt "field:sale.sale,description:sale."
|
msgctxt "field:sale.sale,description:sale."
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Tiempo de Entrega"
|
msgstr "Tiempo de Entrega"
|
||||||
@@ -726,6 +810,18 @@ msgctxt "field:optical_equipment_maintenance.service,maintenance_type:"
|
|||||||
msgid "Maintenance Type"
|
msgid "Maintenance Type"
|
||||||
msgstr "Tipo de Mantenimiento"
|
msgstr "Tipo de Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "selection:optical_equipment_maintenance.service,maintenance_type:"
|
||||||
|
msgid "Initial"
|
||||||
|
msgstr "Inicial"
|
||||||
|
|
||||||
|
msgctxt "selection:optical_equipment_maintenance.service,maintenance_type:"
|
||||||
|
msgid "Preventive"
|
||||||
|
msgstr "Preventivo"
|
||||||
|
|
||||||
|
msgctxt "selection:optical_equipment_maintenance.service,maintenance_type:"
|
||||||
|
msgid "Corrective"
|
||||||
|
msgstr "Correctivo"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,propietary:"
|
msgctxt "field:optical_equipment_maintenance.service,propietary:"
|
||||||
msgid "Propietary"
|
msgid "Propietary"
|
||||||
msgstr "Propietario"
|
msgstr "Propietario"
|
||||||
@@ -782,12 +878,8 @@ msgctxt "field:optical_equipment_maintenance.service,moisture_uom:"
|
|||||||
msgid "Moisture UOM"
|
msgid "Moisture UOM"
|
||||||
msgstr "Humedad UOM"
|
msgstr "Humedad UOM"
|
||||||
|
|
||||||
msgctxt "field:party.party,client_type:"
|
msgctxt "field:party.party,customer_type:"
|
||||||
msgid "Client type"
|
msgid "Customer type"
|
||||||
msgstr "Tipo de Cliente"
|
|
||||||
|
|
||||||
msgctxt "field:party.party,client_type:"
|
|
||||||
msgid "Client type"
|
|
||||||
msgstr "Tipo de Cliente"
|
msgstr "Tipo de Cliente"
|
||||||
|
|
||||||
msgctxt "field:product.template,software_required:"
|
msgctxt "field:product.template,software_required:"
|
||||||
@@ -1138,6 +1230,14 @@ msgctxt "selection:optical_equipment.maintenance,state:"
|
|||||||
msgid "Finished"
|
msgid "Finished"
|
||||||
msgstr "Finalizado"
|
msgstr "Finalizado"
|
||||||
|
|
||||||
|
msgctxt "model:ir.model.button,string:assing_agended_button"
|
||||||
|
msgid "Assing Agended"
|
||||||
|
msgstr "Agendar"
|
||||||
|
|
||||||
|
msgctxt "model:ir.model.button,string:reassing_agended_button"
|
||||||
|
msgid "Reassing Agended"
|
||||||
|
msgstr "Reagendar"
|
||||||
|
|
||||||
msgctxt "model:ir.model.button,string:maintenance_service_draft_button"
|
msgctxt "model:ir.model.button,string:maintenance_service_draft_button"
|
||||||
msgid "Draft"
|
msgid "Draft"
|
||||||
msgstr "Borrador"
|
msgstr "Borrador"
|
||||||
@@ -1330,6 +1430,10 @@ msgctxt "field:optical_equipment_create.contract,end_date:"
|
|||||||
msgid "End Date"
|
msgid "End Date"
|
||||||
msgstr "Fecha Final"
|
msgstr "Fecha Final"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment_create.contract,unit_price:"
|
||||||
|
msgid "Unit Price"
|
||||||
|
msgstr "Precio Unitario"
|
||||||
|
|
||||||
msgctxt "field:stock.move,equipment:"
|
msgctxt "field:stock.move,equipment:"
|
||||||
msgid "Equipment"
|
msgid "Equipment"
|
||||||
msgstr "Equipo"
|
msgstr "Equipo"
|
||||||
@@ -1379,6 +1483,34 @@ msgctxt "field:stock.shipment.out,service_maintenance_initial:"
|
|||||||
msgid "Maintenance Initial"
|
msgid "Maintenance Initial"
|
||||||
msgstr "Mantenimiento Inicial"
|
msgstr "Mantenimiento Inicial"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.print_balance_sale_party.start,company:"
|
||||||
|
msgid "Company"
|
||||||
|
msgstr "Empresa"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.print_balance_sale_party.start,party:"
|
||||||
|
msgid "Party"
|
||||||
|
msgstr "Tercero"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.print_balance_sale_party.start,start_period:"
|
||||||
|
msgid "Start Period"
|
||||||
|
msgstr "Periodo Inicial"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.print_balance_sale_party.start,end_period:"
|
||||||
|
msgid "End Period"
|
||||||
|
msgstr "Periodo Final"
|
||||||
|
|
||||||
|
msgctxt "field:optical_equipment.print_balance_sale_party.start,party_type:"
|
||||||
|
msgid "Party Type"
|
||||||
|
msgstr "Tipo"
|
||||||
|
|
||||||
|
msgctxt "selection:optical_equipment.print_balance_sale_party.start,party_type:"
|
||||||
|
msgid "Customer"
|
||||||
|
msgstr "Cliente"
|
||||||
|
|
||||||
|
msgctxt "model:ir.ui.menu,name:menu_print_balance_sale_party"
|
||||||
|
msgid "Print Balance Sale by Party"
|
||||||
|
msgstr "Estado de Cuenta por Tercero"
|
||||||
|
|
||||||
msgctxt "model:ir.model.button,string:maintenance_initial_button"
|
msgctxt "model:ir.model.button,string:maintenance_initial_button"
|
||||||
msgid "Maintenance Initial"
|
msgid "Maintenance Initial"
|
||||||
msgstr "Mantenimiento Inicial"
|
msgstr "Mantenimiento Inicial"
|
||||||
@@ -1407,10 +1539,18 @@ msgctxt "model:ir.action,name:report_calibration"
|
|||||||
msgid "Calibration"
|
msgid "Calibration"
|
||||||
msgstr "Calibración"
|
msgstr "Calibración"
|
||||||
|
|
||||||
|
msgctxt "model:ir.action,name:report_calibrations"
|
||||||
|
msgid "Calibrations"
|
||||||
|
msgstr "Calibraciones"
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_maintenance_timeline"
|
msgctxt "model:ir.action,name:report_maintenance_timeline"
|
||||||
msgid "Time Line Maintenance Service"
|
msgid "Time Line Maintenance Service"
|
||||||
msgstr "Cronograma de Mantenimiento"
|
msgstr "Cronograma de Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "model:ir.action,name:report_service"
|
||||||
|
msgid "Service"
|
||||||
|
msgstr "Registro de Mantenimiento Preventivo"
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_equipment"
|
msgctxt "model:ir.action,name:report_equipment"
|
||||||
msgid "Equipment"
|
msgid "Equipment"
|
||||||
msgstr "Hoja de Vida"
|
msgstr "Hoja de Vida"
|
||||||
@@ -1419,6 +1559,10 @@ msgctxt "model:ir.action,name:report_history_maintenance"
|
|||||||
msgid "Maintenance History"
|
msgid "Maintenance History"
|
||||||
msgstr "Historico de Mantenimiento"
|
msgstr "Historico de Mantenimiento"
|
||||||
|
|
||||||
|
msgctxt "model:ir.action,name:report_historys_maintenances"
|
||||||
|
msgid "Maintenances Historys"
|
||||||
|
msgstr "Historicos de Mantenimiento"
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_capacitation"
|
msgctxt "model:ir.action,name:report_capacitation"
|
||||||
msgid "Capacitation"
|
msgid "Capacitation"
|
||||||
msgstr "Certificado de Capacitación"
|
msgstr "Certificado de Capacitación"
|
||||||
@@ -1434,3 +1578,20 @@ msgstr "Cambiar Propietario al Servicio de Mantenimiento"
|
|||||||
msgctxt "model:ir.action,name:maintenance_create_contract"
|
msgctxt "model:ir.action,name:maintenance_create_contract"
|
||||||
msgid "Create Contract"
|
msgid "Create Contract"
|
||||||
msgstr "Crear Contrato"
|
msgstr "Crear Contrato"
|
||||||
|
|
||||||
|
msgctxt "model:optical_equipment.use_pattern,name_pattern:schematic_eye"
|
||||||
|
msgid "Schematic Eye"
|
||||||
|
msgstr "Ojo Esquemático"
|
||||||
|
|
||||||
|
msgctxt "model:optical_equipment.use_pattern,name_pattern:trial_lens"
|
||||||
|
msgid "Trial Lens"
|
||||||
|
msgstr "Lentes de Prueba"
|
||||||
|
|
||||||
|
msgctxt "model:optical_equipment.use_pattern,name_pattern:calibration_weights"
|
||||||
|
msgid "Calibration Weights"
|
||||||
|
msgstr "Pesas de Calibración"
|
||||||
|
|
||||||
|
msgctxt "model:optical_equipment.use_pattern,name_pattern:calibration_spheres"
|
||||||
|
msgid "Calibration Spheres"
|
||||||
|
msgstr "Esferas de Calibración"
|
||||||
|
|
||||||
|
|||||||
1276
maintenance.py
1276
maintenance.py
File diff suppressed because it is too large
Load Diff
314
maintenance.xml
314
maintenance.xml
@@ -3,32 +3,12 @@
|
|||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
<data>
|
<data>
|
||||||
<record model="ir.action.act_window" id="act_maintenance_form">
|
|
||||||
<field name="name">Maintenances</field>
|
|
||||||
<field name="res_model">optical_equipment.maintenance</field>
|
|
||||||
<field name="search_value"></field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id= "maintenance_view_tree">
|
|
||||||
<field name="model">optical_equipment.maintenance</field>
|
|
||||||
<field name="type">tree</field>
|
|
||||||
<field name="name">maintenance_tree</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="maintenance_view_form">
|
|
||||||
<field name="model">optical_equipment.maintenance</field>
|
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="name">maintenance_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="change_propietary_maintenance_view_form">
|
|
||||||
<field name="model">optical_equipment.change_propietary_maintenance.form</field>
|
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="name">change_propietary_maintenance_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.act_window" id="act_maintenance_service_form">
|
<record model="ir.action.act_window" id="act_maintenance_service_form">
|
||||||
<field name="name">Services Maintenance</field>
|
<field name="name">Services Maintenance</field>
|
||||||
<field name="res_model">optical_equipment_maintenance.service</field>
|
<field name="res_model">optical_equipment_maintenance.service</field>
|
||||||
<field name="search_value"></field>
|
<field name="search_value"></field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id= "maintenance_service_view_tree">
|
<record model="ir.ui.view" id="maintenance_service_view_tree">
|
||||||
<field name="model">optical_equipment_maintenance.service</field>
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
<field name="name">maintenance_service_tree</field>
|
<field name="name">maintenance_service_tree</field>
|
||||||
@@ -38,87 +18,16 @@
|
|||||||
<field name="type">form</field>
|
<field name="type">form</field>
|
||||||
<field name="name">maintenance_service_form</field>
|
<field name="name">maintenance_service_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id= "maintenance_equipment_view_form">
|
<record model="ir.action.act_window.view" id="act_maintenance_service_view1">
|
||||||
<field name="model">optical_equipment.maintenance-optical_equipment.equipment</field>
|
|
||||||
<field name="inherit" ref="maintenance_view_form"/>
|
|
||||||
<field name="name">maintenance_equipment_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="maintenance_activity_view_form">
|
|
||||||
<field name="model">optical_equipment_maintenance.activity</field>
|
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="name">maintenance_activity_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="maintenance_activity_view_tree">
|
|
||||||
<field name="model">optical_equipment_maintenance.activity</field>
|
|
||||||
<field name="type">tree</field>
|
|
||||||
<field name="priority" eval="10"/>
|
|
||||||
<field name="name">maintenance_activity_tree</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.act_window.view" id="act_maintenance_view1">
|
|
||||||
<field name="sequence" eval="10"/>
|
<field name="sequence" eval="10"/>
|
||||||
<field name="view" ref="maintenance_view_tree"/>
|
<field name="view" ref="maintenance_service_view_tree"/>
|
||||||
<field name="act_window" ref="act_maintenance_form"/>
|
<field name="act_window" ref="act_maintenance_service_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.view" id="act_maintenance_view2">
|
<record model="ir.action.act_window.view" id="act_maintenance_service_view2">
|
||||||
<field name="sequence" eval="20"/>
|
<field name="sequence" eval="20"/>
|
||||||
<field name="view" ref="maintenance_view_form"/>
|
<field name="view" ref="maintenance_service_view_form"/>
|
||||||
<field name="act_window" ref="act_maintenance_form"/>
|
<field name="act_window" ref="act_maintenance_service_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_draft">
|
|
||||||
<field name="name">Draft</field>
|
|
||||||
<field name="sequence" eval="10"/>
|
|
||||||
<field name="domain"
|
|
||||||
eval="[('state', '=', 'draft')]"
|
|
||||||
pyson="1"/>
|
|
||||||
<field name="count" eval="True"/>
|
|
||||||
<field name="act_window" ref="act_maintenance_form"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_finished">
|
|
||||||
<field name="name">Finished</field>
|
|
||||||
<field name="sequence" eval="40"/>
|
|
||||||
<field name="domain"
|
|
||||||
eval="[('state', '=', 'finished')]"
|
|
||||||
pyson="1"/>
|
|
||||||
<field name="count" eval="True"/>
|
|
||||||
<field name="act_window" ref="act_maintenance_form"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_all">
|
|
||||||
<field name="name">All</field>
|
|
||||||
<field name="sequence" eval="9999"/>
|
|
||||||
<field name="domain"></field>
|
|
||||||
<field name="act_window" ref="act_maintenance_form"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="maintenance_service_draft_button">
|
|
||||||
<field name="name">draft</field>
|
|
||||||
<field name="string">Draft</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="maintenance_service_in_progress_button">
|
|
||||||
<field name="name">in_progress</field>
|
|
||||||
<field name="string">In progress</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="maintenance_service_finished_button">
|
|
||||||
<field name="name">finished</field>
|
|
||||||
<field name="string">Finished</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="maintenance_finished_button">
|
|
||||||
<field name="name">finished</field>
|
|
||||||
<field name="string">Finished</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="maintenance_samples_button">
|
|
||||||
<field name="name">samples</field>
|
|
||||||
<field name="string">Generate Samples</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="maintenance_calibrate_button">
|
|
||||||
<field name="name">calibrate</field>
|
|
||||||
<field name="string">Calibrate</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_draft">
|
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_draft">
|
||||||
<field name="name">Draft</field>
|
<field name="name">Draft</field>
|
||||||
<field name="sequence" eval="10"/>
|
<field name="sequence" eval="10"/>
|
||||||
@@ -170,6 +79,76 @@
|
|||||||
<field name="domain"></field>
|
<field name="domain"></field>
|
||||||
<field name="act_window" ref="act_maintenance_service_form"/>
|
<field name="act_window" ref="act_maintenance_service_form"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.action.act_window" id="act_maintenance_form">
|
||||||
|
<field name="name">Maintenance Lines</field>
|
||||||
|
<field name="res_model">optical_equipment.maintenance</field>
|
||||||
|
<field name="search_value"></field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id= "maintenance_view_tree">
|
||||||
|
<field name="model">optical_equipment.maintenance</field>
|
||||||
|
<field name="type">tree</field>
|
||||||
|
<field name="name">maintenance_tree</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="maintenance_view_form">
|
||||||
|
<field name="model">optical_equipment.maintenance</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">maintenance_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.view" id="act_maintenance_view1">
|
||||||
|
<field name="sequence" eval="10"/>
|
||||||
|
<field name="view" ref="maintenance_view_tree"/>
|
||||||
|
<field name="act_window" ref="act_maintenance_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.view" id="act_maintenance_view2">
|
||||||
|
<field name="sequence" eval="20"/>
|
||||||
|
<field name="view" ref="maintenance_view_form"/>
|
||||||
|
<field name="act_window" ref="act_maintenance_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="change_propietary_maintenance_view_form">
|
||||||
|
<field name="model">optical_equipment.change_propietary_maintenance.form</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">change_propietary_maintenance_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id= "maintenance_equipment_view_form">
|
||||||
|
<field name="model">optical_equipment.maintenance-optical_equipment.equipment</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">maintenance_equipment_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="maintenance_activity_view_form">
|
||||||
|
<field name="model">optical_equipment_maintenance.activity</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">maintenance_activity_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="maintenance_activity_view_tree">
|
||||||
|
<field name="model">optical_equipment_maintenance.activity</field>
|
||||||
|
<field name="type">tree</field>
|
||||||
|
<field name="priority" eval="10"/>
|
||||||
|
<field name="name">maintenance_activity_tree</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_draft">
|
||||||
|
<field name="name">Draft</field>
|
||||||
|
<field name="sequence" eval="10"/>
|
||||||
|
<field name="domain"
|
||||||
|
eval="[('state', '=', 'draft')]"
|
||||||
|
pyson="1"/>
|
||||||
|
<field name="count" eval="True"/>
|
||||||
|
<field name="act_window" ref="act_maintenance_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_finished">
|
||||||
|
<field name="name">Finished</field>
|
||||||
|
<field name="sequence" eval="40"/>
|
||||||
|
<field name="domain"
|
||||||
|
eval="[('state', '=', 'finished')]"
|
||||||
|
pyson="1"/>
|
||||||
|
<field name="count" eval="True"/>
|
||||||
|
<field name="act_window" ref="act_maintenance_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_all">
|
||||||
|
<field name="name">All</field>
|
||||||
|
<field name="sequence" eval="9999"/>
|
||||||
|
<field name="domain"></field>
|
||||||
|
<field name="act_window" ref="act_maintenance_form"/>
|
||||||
|
</record>
|
||||||
<record model="ir.ui.view" id="maintenance_line_view_form">
|
<record model="ir.ui.view" id="maintenance_line_view_form">
|
||||||
<field name="model">optical_equipment.maintenance.line</field>
|
<field name="model">optical_equipment.maintenance.line</field>
|
||||||
<field name="type">form</field>
|
<field name="type">form</field>
|
||||||
@@ -180,71 +159,75 @@
|
|||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
<field name="name">maintenance_line_tree</field>
|
<field name="name">maintenance_line_tree</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="maintenance_calibration_view_form">
|
<record model="ir.model.button" id="assing_agended_button">
|
||||||
<field name="model">optical_equipment.maintenance.calibration_sample</field>
|
<field name="name">assing_agended</field>
|
||||||
<field name="type">form</field>
|
<field name="string">Assing Agended</field>
|
||||||
<field name="name">maintenance_sample_form</field>
|
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="maintenance_calibration_view_tree">
|
<record model="ir.model.button" id="reassing_agended_button">
|
||||||
<field name="model">optical_equipment.maintenance.calibration_sample</field>
|
<field name="name">reassing_agended</field>
|
||||||
<field name="type">tree</field>
|
<field name="string">Reassing Agended</field>
|
||||||
<field name="priority" eval="10"/>
|
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
||||||
<field name="name">maintenance_calibration_tree</field>
|
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="calibration_total_view_tree">
|
<record model="ir.model.button" id="maintenance_service_draft_button">
|
||||||
<field name="model">optical_equipment.maintenance.calibration</field>
|
<field name="name">draft</field>
|
||||||
<field name="type">tree</field>
|
<field name="string">Draft</field>
|
||||||
<field name="name">calibration_total_tree</field>
|
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="calibration_total_view_form">
|
<record model="ir.model.button" id="maintenance_service_in_progress_button">
|
||||||
<field name="model">optical_equipment.maintenance.calibration</field>
|
<field name="name">in_progress</field>
|
||||||
<field name="type">form</field>
|
<field name="string">In progress</field>
|
||||||
<field name="name">calibration_total_form</field>
|
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="assing_agended_view_form">
|
<record model="ir.model.button" id="maintenance_service_finished_button">
|
||||||
<field name="model">optical_equipment_maintenance.agended</field>
|
<field name="name">finished</field>
|
||||||
<field name="type">form</field>
|
<field name="string">Finished</field>
|
||||||
<field name="name">assing_agended_form</field>
|
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.wizard" id="act_assing_agended">
|
<record model="ir.model.button" id="maintenance_in_progress_button">
|
||||||
<field name="name">Assing Agended</field>
|
<field name="name">in_progress</field>
|
||||||
<field name="wiz_name">optical_equipment_maintenance.assing_agended</field>
|
<field name="string">In progress</field>
|
||||||
|
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="reassing_agended_view_form">
|
|
||||||
<field name="model">optical_equipment_maintenance.reagended</field>
|
<record model="ir.model.button" id="maintenance_finished_button">
|
||||||
<field name="type">form</field>
|
<field name="name">finished</field>
|
||||||
<field name="name">reassing_agended_form</field>
|
<field name="string">Finished</field>
|
||||||
|
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.wizard" id="act_reassing_agended">
|
<record model="ir.model.button" id="maintenance_samples_button">
|
||||||
<field name="name">ReAssing Agended</field>
|
<field name="name">samples</field>
|
||||||
<field name="wiz_name">optical_equipment_maintenance.reassing_agended</field>
|
<field name="string">Generate Samples</field>
|
||||||
|
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="create_contract_view_form">
|
<record model="ir.model.button" id="maintenance_calibrate_button">
|
||||||
<field name="model">optical_equipment_create.contract</field>
|
<field name="name">calibrate</field>
|
||||||
<field name="type">form</field>
|
<field name="string">Calibrate</field>
|
||||||
<field name="name">create_contract_form</field>
|
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.wizard" id="maintenance_create_contract">
|
<record model="ir.action.report" id="report_service">
|
||||||
<field name="name">Create Contract</field>
|
<field name="name">Service</field>
|
||||||
<field name="wiz_name">optical_equipment.maintenance.contract</field>
|
|
||||||
<field name="model">optical_equipment_maintenance.service</field>
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
</record>
|
<field name="report_name">optical_equipment_maintenance.service</field>
|
||||||
<record model="ir.action.keyword" id="maintenance_create_contract_keyword">
|
<field name="report">optical_equipment/report/Service.fodt</field>
|
||||||
<field name="keyword">form_action</field>
|
|
||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
|
||||||
<field name="action" ref="maintenance_create_contract"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.report" id="report_calibration">
|
|
||||||
<field name="name">Calibration</field>
|
|
||||||
<field name="model">optical_equipment.maintenance</field>
|
|
||||||
<field name="report_name">optical_equipment.maintenance</field>
|
|
||||||
<field name="report">optical_equipment/report/Calibration.fodt</field>
|
|
||||||
<field name="single" eval="True"/>
|
<field name="single" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="report_calibration_keyword">
|
<record model="ir.action.keyword" id="report_service_keyword">
|
||||||
<field name="keyword">form_print</field>
|
<field name="keyword">form_print</field>
|
||||||
<field name="model">optical_equipment.maintenance,-1</field>
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
<field name="action" ref="report_calibration"/>
|
<field name="action" ref="report_service"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.report" id="report_cvs">
|
||||||
|
<field name="name">Hojas de Vida</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
|
<field name="report_name">optical_equipment_maintenance.service</field>
|
||||||
|
<field name="report">optical_equipment/report/CVS_Equipments.fodt</field>
|
||||||
|
<field name="single" eval="True"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="report_cvs_keyword">
|
||||||
|
<field name="keyword">form_print</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
|
<field name="action" ref="report_cvs"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.report" id="report_maintenance_service">
|
<record model="ir.action.report" id="report_maintenance_service">
|
||||||
<field name="name">Maintenance Service</field>
|
<field name="name">Maintenance Service</field>
|
||||||
@@ -270,6 +253,18 @@
|
|||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
<field name="action" ref="report_maintenance_timeline"/>
|
<field name="action" ref="report_maintenance_timeline"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.action.report" id="report_historys_maintenances">
|
||||||
|
<field name="name">Maintenances Historys</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
|
<field name="report_name">optical_equipment_maintenance.service</field>
|
||||||
|
<field name="report">optical_equipment/report/Maintenances_Historys.fodt</field>
|
||||||
|
<field name="single" eval="True"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="report_historys_maintenances_keyword">
|
||||||
|
<field name="keyword">form_print</field>
|
||||||
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
|
<field name="action" ref="report_historys_maintenances"/>
|
||||||
|
</record>
|
||||||
<record model="ir.action.wizard" id="equipment_change_propietary_maintenance">
|
<record model="ir.action.wizard" id="equipment_change_propietary_maintenance">
|
||||||
<field name="name">Change Propietary Maintenance</field>
|
<field name="name">Change Propietary Maintenance</field>
|
||||||
<field name="wiz_name">optical_equipment.change_propietary_maintenance</field>
|
<field name="wiz_name">optical_equipment.change_propietary_maintenance</field>
|
||||||
@@ -280,21 +275,20 @@
|
|||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
<field name="action" ref="equipment_change_propietary_maintenance"/>
|
<field name="action" ref="equipment_change_propietary_maintenance"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.ui.icon" id="optical_equipment_health_icon">
|
||||||
|
<field name="name">equipment_health</field>
|
||||||
|
<field name="path">icons/heart-pulse-solid.svg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<menuitem parent="menu_equipment"
|
<menuitem parent="menu_equipment"
|
||||||
action="act_maintenance_service_form"
|
action="act_maintenance_service_form"
|
||||||
sequence="20"
|
sequence="20"
|
||||||
id="menu_maintenance_service_form"/>
|
id="menu_maintenance_service_form"
|
||||||
|
icon="equipment_health"/>
|
||||||
<menuitem parent="menu_maintenance_service_form"
|
<menuitem parent="menu_maintenance_service_form"
|
||||||
action="act_maintenance_form"
|
action="act_maintenance_form"
|
||||||
sequence="30"
|
sequence="30"
|
||||||
id="menu_maintenance_form"/>
|
id="menu_maintenance_form"
|
||||||
<menuitem parent="menu_diary"
|
icon="equipment_health"/>
|
||||||
action="act_assing_agended"
|
|
||||||
sequence="30"
|
|
||||||
id="menu_assing_agended_form"/>
|
|
||||||
<menuitem parent="menu_diary"
|
|
||||||
action="act_reassing_agended"
|
|
||||||
sequence="40"
|
|
||||||
id="menu_reassing_agended_form"/>
|
|
||||||
</data>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
16
message.xml
16
message.xml
@@ -1,16 +0,0 @@
|
|||||||
<?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. -->
|
|
||||||
<tryton>
|
|
||||||
<data grouped="1">
|
|
||||||
<record model="ir.message" id="msg_invalid_number_purchases">
|
|
||||||
<field name="text">Please, select only one purchase.</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.message" id="msg_serial_unique">
|
|
||||||
<field name="text">The serial number of equipment, should be unique.</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.message" id="msg_not_sequence_equipment">
|
|
||||||
<field name="text">You do not have a sequence assigned for equipments</field>
|
|
||||||
</record>
|
|
||||||
</data>
|
|
||||||
</tryton>
|
|
||||||
16
messages.xml
Normal file
16
messages.xml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?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. -->
|
||||||
|
<tryton>
|
||||||
|
<data grouped="1">
|
||||||
|
<record model="ir.message" id="line_without_serial">
|
||||||
|
<field name="text">La linea de envio se encuentra sin serial. Debe asignar un equipo a cada linea correspondiente.</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.message" id="msg_not_sequence_equipment">
|
||||||
|
<field name="text">Asigne una secuencia para enumerar equipos.</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.message" id="msg_finished_mantenance_service">
|
||||||
|
<field name="text">Debe finalizar las líneas de Mantenimiento Primero.</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</tryton>
|
||||||
328
move.py
328
move.py
@@ -1,31 +1,88 @@
|
|||||||
from trytond.model import fields, ModelSQL, ModelView, Workflow, dualmethod
|
from trytond.model import fields, ModelView, Workflow
|
||||||
from trytond.modules.company import CompanyReport
|
from trytond.modules.company import CompanyReport
|
||||||
from trytond.modules.company.model import employee_field, set_employee
|
from trytond.modules.company.model import set_employee
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.pyson import Eval, If
|
from trytond.pyson import Eval, If
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
from itertools import groupby
|
from itertools import groupby
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction, without_check_access
|
||||||
|
from trytond.model.exceptions import ValidationError
|
||||||
|
from trytond.i18n import gettext
|
||||||
|
|
||||||
|
from functools import wraps
|
||||||
|
|
||||||
|
|
||||||
|
def process_sale(moves_field):
|
||||||
|
def _process_sale(func):
|
||||||
|
@wraps(func)
|
||||||
|
def wrapper(cls, shipments):
|
||||||
|
pool = Pool()
|
||||||
|
Sale = pool.get('sale.sale')
|
||||||
|
transaction = Transaction()
|
||||||
|
context = transaction.context
|
||||||
|
with without_check_access():
|
||||||
|
sales = set(
|
||||||
|
m.sale
|
||||||
|
for s in cls.browse(shipments)
|
||||||
|
for m in getattr(s, moves_field)
|
||||||
|
if m.sale
|
||||||
|
)
|
||||||
|
func(cls, shipments)
|
||||||
|
if sales:
|
||||||
|
with transaction.set_context(
|
||||||
|
queue_batch=context.get('queue_batch', True)
|
||||||
|
):
|
||||||
|
Sale.__queue__.process(sales)
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
return _process_sale
|
||||||
|
|
||||||
|
|
||||||
class Move(metaclass=PoolMeta):
|
class Move(metaclass=PoolMeta):
|
||||||
"Stock Move"
|
'Stock Move'
|
||||||
__name__ = "stock.move"
|
__name__ = 'stock.move'
|
||||||
|
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', "Equipment",
|
_states = {
|
||||||
domain=[('state', '=', 'registred'),
|
'invisible': ~Eval('product_equipment'),
|
||||||
('product','=', Eval('product'))
|
'readonly': (Eval('state').in_(['cancelled', 'done'])),
|
||||||
|
}
|
||||||
|
|
||||||
|
product_equipment = fields.Function(
|
||||||
|
fields.Boolean('It Equipment'), 'get_product_equipment'
|
||||||
|
)
|
||||||
|
|
||||||
|
return_equipment = fields.Boolean(
|
||||||
|
'Devolución',
|
||||||
|
states=_states)
|
||||||
|
|
||||||
|
equipment = fields.Many2One(
|
||||||
|
'optical_equipment.equipment',
|
||||||
|
'Equipment',
|
||||||
|
domain=[
|
||||||
|
If(
|
||||||
|
Eval('return_equipment', True),
|
||||||
|
('state', 'in', ['uncontrated', 'contrated']),
|
||||||
|
('state', '=', 'registred'),
|
||||||
|
),
|
||||||
|
('product', '=', Eval('product')),
|
||||||
],
|
],
|
||||||
states={'invisible': If(~Eval('product_equipment'), True),
|
states=_states,
|
||||||
'readonly': (Eval('state').in_(['cancelled', 'done'])),},
|
depends=['product_equipment'],
|
||||||
depends=['product_equipment'])
|
)
|
||||||
equipment_serial = fields.Function(fields.Char('Serial',
|
equipment_serial = fields.Function(
|
||||||
states={'readonly': True,
|
fields.Char(
|
||||||
'invisible': If(~Eval('product_equipment'), True)},
|
'Serial',
|
||||||
depends=['product_equipment']),
|
states=_states,
|
||||||
'get_equipment_serial')
|
depends=['product_equipment'],
|
||||||
product_equipment = fields.Function(fields.Boolean("It Equipment"),'get_product_equipment')
|
),
|
||||||
|
'get_equipment_serial',
|
||||||
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __setup__(cls):
|
||||||
|
super(Move, cls).__setup__()
|
||||||
|
cls.origin.states['required'] = False
|
||||||
|
|
||||||
@fields.depends('product')
|
@fields.depends('product')
|
||||||
def get_product_equipment(self, product):
|
def get_product_equipment(self, product):
|
||||||
@@ -41,14 +98,7 @@ class Move(metaclass=PoolMeta):
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@fields.depends('product', 'equipment', 'uom')
|
@fields.depends('equipment', methods=['get_equipment_serial'])
|
||||||
def on_change_product(self):
|
|
||||||
if self.product:
|
|
||||||
if (not self.uom
|
|
||||||
or self.uom.category != self.product.default_uom.category):
|
|
||||||
self.uom = self.product.default_uom
|
|
||||||
|
|
||||||
@fields.depends(methods=['get_equipment_serial'])
|
|
||||||
def on_change_equipment(self):
|
def on_change_equipment(self):
|
||||||
if self.equipment:
|
if self.equipment:
|
||||||
self.product = self.equipment.product.id
|
self.product = self.equipment.product.id
|
||||||
@@ -58,69 +108,95 @@ class Move(metaclass=PoolMeta):
|
|||||||
|
|
||||||
|
|
||||||
class ShipmentOut(metaclass=PoolMeta):
|
class ShipmentOut(metaclass=PoolMeta):
|
||||||
"Customer Shipment"
|
'Customer Shipment'
|
||||||
__name__ = 'stock.shipment.out'
|
__name__ = 'stock.shipment.out'
|
||||||
|
|
||||||
service_maintenance_initial = fields.Boolean('Maintenance Initial', states={'readonly': True})
|
service_maintenance_initial = fields.Boolean(
|
||||||
|
'Maintenance Initial', states={'readonly': True}
|
||||||
|
)
|
||||||
sale_type = fields.Char('Type sale origin')
|
sale_type = fields.Char('Type sale origin')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
super(ShipmentOut, cls).__setup__()
|
super(ShipmentOut, cls).__setup__()
|
||||||
cls._buttons.update({
|
cls._buttons.update(
|
||||||
|
{
|
||||||
'maintenance_initial': {
|
'maintenance_initial': {
|
||||||
'invisible': ((Eval('service_maintenance_initial',True))
|
'invisible': (
|
||||||
| (Eval('sale_type').in_(['maintenance', 'replaces'])))}
|
(Eval('service_maintenance_initial', True))
|
||||||
})
|
| (Eval('sale_type').in_(['maintenance', 'replaces']))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def view_attributes(cls):
|
def view_attributes(cls):
|
||||||
return super(ShipmentOut, cls).view_attributes() + [
|
return super(ShipmentOut, cls).view_attributes() + [
|
||||||
('//page[@name="inventory_moves"]', 'states', {
|
(
|
||||||
|
"//page[@name='inventory_moves']",
|
||||||
|
'states',
|
||||||
|
{
|
||||||
'invisible': False,
|
'invisible': False,
|
||||||
}),]
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('done')
|
@Workflow.transition('done')
|
||||||
@set_employee('done_by')
|
@set_employee('done_by')
|
||||||
|
@process_sale('outgoing_moves')
|
||||||
def done(cls, shipments):
|
def done(cls, shipments):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Move = pool.get('stock.move')
|
Move = pool.get('stock.move')
|
||||||
Date = pool.get('ir.date')
|
Date = pool.get('ir.date')
|
||||||
|
Locations = pool.get('stock.location')
|
||||||
Equipments = pool.get('optical_equipment.equipment')
|
Equipments = pool.get('optical_equipment.equipment')
|
||||||
for shipment in shipments:
|
for shipment in shipments:
|
||||||
for move in shipment.inventory_moves:
|
for move in shipment.inventory_moves:
|
||||||
count = 0
|
count = 0
|
||||||
if move.equipment:
|
if not move.equipment:
|
||||||
|
count += 1
|
||||||
|
continue
|
||||||
|
|
||||||
equipment = move.equipment
|
equipment = move.equipment
|
||||||
Id = equipment.id
|
Id = equipment.id
|
||||||
equipment = Equipments.search(['id', '=',Id])[0]
|
equipment = Equipments.search(['id', '=', Id])[0]
|
||||||
equipment.propietary = shipment.customer.id
|
equipment.propietary = shipment.customer.id
|
||||||
equipment.propietary_address= shipment.delivery_address.id
|
equipment.propietary_address = shipment.delivery_address.id
|
||||||
equipment.state="uncontrated"
|
equipment.location = Locations.search(
|
||||||
|
['name', '=', 'Customer'])[0].id
|
||||||
|
equipment.state = 'uncontrated'
|
||||||
equipment.shipment_destination = shipment
|
equipment.shipment_destination = shipment
|
||||||
equipment.sale_destination = shipment.outgoing_moves[count].origin
|
equipment.sale_destination =\
|
||||||
|
shipment.outgoing_moves[count].origin
|
||||||
equipment.propietarys += (shipment.customer,)
|
equipment.propietarys += (shipment.customer,)
|
||||||
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
|
equipment.maintenance_frequency = (
|
||||||
count+=1
|
'6'
|
||||||
|
if shipment.customer.customer_type == 'ips'
|
||||||
|
else '12'
|
||||||
|
)
|
||||||
|
count += 1
|
||||||
equipment.save()
|
equipment.save()
|
||||||
else:
|
|
||||||
count+=1
|
|
||||||
|
|
||||||
Move.delete([
|
Move.delete([
|
||||||
m for s in shipments for m in s.outgoing_moves
|
m for s in shipments
|
||||||
if m.state == 'staging'])
|
for m in s.outgoing_moves
|
||||||
|
if m.state == 'staging'
|
||||||
|
])
|
||||||
|
|
||||||
Move.do([m for s in shipments for m in s.outgoing_moves])
|
Move.do([m for s in shipments for m in s.outgoing_moves])
|
||||||
for company, c_shipments in groupby(
|
iterator = groupby(shipments, key=lambda s: s.company)
|
||||||
shipments, key=lambda s: s.company):
|
for company, c_shipments in iterator:
|
||||||
with Transaction().set_context(company=company.id):
|
with Transaction().set_context(company=company.id):
|
||||||
today = Date.today()
|
today = Date.today()
|
||||||
cls.write([s for s in c_shipments if not s.effective_date], {
|
cls.write(
|
||||||
|
[s for s in c_shipments if not s.effective_date],
|
||||||
|
{
|
||||||
'effective_date': today,
|
'effective_date': today,
|
||||||
})
|
},
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@@ -128,63 +204,99 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
pool = Pool()
|
pool = Pool()
|
||||||
MaintenanceService = pool.get('optical_equipment_maintenance.service')
|
MaintenanceService = pool.get('optical_equipment_maintenance.service')
|
||||||
Maintenance = pool.get('optical_equipment.maintenance')
|
Maintenance = pool.get('optical_equipment.maintenance')
|
||||||
SaleLine = pool.get('sale.line')
|
|
||||||
|
|
||||||
Equipments = pool.get('optical_equipment.equipment')
|
|
||||||
|
|
||||||
for shipment in shipments:
|
for shipment in shipments:
|
||||||
sale_origin = shipment.outgoing_moves[0].origin.sale.id
|
|
||||||
saleLine = SaleLine(
|
|
||||||
type='line',
|
|
||||||
quantity=1,
|
|
||||||
unit_price=0,
|
|
||||||
sale=sale_origin)
|
|
||||||
saleLine.save()
|
|
||||||
maintenanceService = MaintenanceService(
|
|
||||||
sale_date=shipment.outgoing_moves[0].origin.sale.sale_date,
|
|
||||||
sale_origin=saleLine,
|
|
||||||
maintenance_type='initial',
|
|
||||||
propietary=shipment.customer.id,
|
|
||||||
propietary_address=shipment.delivery_address.id,
|
|
||||||
state='draft')
|
|
||||||
maintenanceService.save()
|
|
||||||
|
|
||||||
serial = False
|
serial = False
|
||||||
|
number_equipments = 0
|
||||||
|
maintenance_required = 0
|
||||||
for move in shipment.inventory_moves:
|
for move in shipment.inventory_moves:
|
||||||
if move.product_equipment and move.equipment:
|
if move.product_equipment and move.equipment:
|
||||||
serial = True
|
serial = True
|
||||||
|
number_equipments += 1
|
||||||
|
if move.equipment.product.maintenance_required:
|
||||||
|
maintenance_required += 1
|
||||||
elif not move.product_equipment:
|
elif not move.product_equipment:
|
||||||
serial = True
|
serial = True
|
||||||
else:
|
else:
|
||||||
serial = False
|
serial = False
|
||||||
|
|
||||||
if serial == True:
|
if number_equipments < 1 or maintenance_required < 1:
|
||||||
|
shipment.service_maintenance_initial = True
|
||||||
|
shipment.save()
|
||||||
|
break
|
||||||
|
|
||||||
|
sale_origin = shipment.outgoing_moves[0].origin.sale
|
||||||
|
maintenanceService = MaintenanceService.search(
|
||||||
|
['sale_origin', '=', sale_origin]
|
||||||
|
)
|
||||||
|
if maintenanceService == []:
|
||||||
|
maintenanceService = MaintenanceService(
|
||||||
|
sale_date=shipment.outgoing_moves[0].origin.sale.sale_date,
|
||||||
|
sale_origin=shipment.outgoing_moves[0].origin.sale,
|
||||||
|
maintenance_type='initial',
|
||||||
|
propietary=shipment.customer.id,
|
||||||
|
propietary_address=shipment.delivery_address.id,
|
||||||
|
state='draft',
|
||||||
|
)
|
||||||
|
maintenanceService.save()
|
||||||
|
else:
|
||||||
|
maintenanceService = maintenanceService[0]
|
||||||
|
maintenanceService.state = 'draft'
|
||||||
|
maintenanceService.save()
|
||||||
|
|
||||||
|
if not serial:
|
||||||
|
error = 'Por favor Primero debe Asignar'
|
||||||
|
+ 'un serial a todos los Equipos.'
|
||||||
|
raise UserError(str(error))
|
||||||
|
|
||||||
for move in shipment.inventory_moves:
|
for move in shipment.inventory_moves:
|
||||||
if move.product_equipment and move.equipment:
|
valid = \
|
||||||
|
move.product_equipment \
|
||||||
|
and move.equipment \
|
||||||
|
and move.equipment.product.template.maintenance_required
|
||||||
|
|
||||||
|
if (not valid):
|
||||||
|
continue
|
||||||
|
|
||||||
|
template = move.equipment.product.template
|
||||||
maintenance = Maintenance(
|
maintenance = Maintenance(
|
||||||
service_maintenance=maintenanceService.id,
|
service_maintenance=maintenanceService.id,
|
||||||
maintenance_type='initial',
|
maintenance_type='initial',
|
||||||
propietary=shipment.customer.id,
|
propietary=shipment.customer.id,
|
||||||
equipment_calibrate= True if move.equipment.product.calibration else False,
|
equipment_calibrate=(
|
||||||
|
True if move.equipment.product.calibration else False
|
||||||
|
),
|
||||||
propietary_address=shipment.delivery_address.id,
|
propietary_address=shipment.delivery_address.id,
|
||||||
equipment=move.equipment.id,
|
equipment=move.equipment.id,
|
||||||
initial_operation = move.equipment.product.initial_operation,
|
initial_operation=move.equipment.product.initial_operation,
|
||||||
check_equipment = move.equipment.product.template.check_equipment,
|
check_equipment=template.check_equipment,
|
||||||
check_electric_system = move.equipment.product.template.check_electric_system,
|
check_electric_system=template.check_electric_system,
|
||||||
clean_int_ext = move.equipment.product.template.clean_int_ext,
|
clean_int_ext=template.clean_int_ext,
|
||||||
clean_eyes = move.equipment.product.template.clean_eyes,
|
clean_eyes=template.clean_eyes,
|
||||||
check_calibration = move.equipment.product.template.check_calibration,
|
check_calibration=template.check_calibration,
|
||||||
temperature_min = maintenanceService.temperature_min,
|
temperature_min=maintenanceService.temperature_min,
|
||||||
temperature_max = maintenanceService.temperature_max,
|
temperature_max=maintenanceService.temperature_max,
|
||||||
temperature_uom = maintenanceService.temperature_uom.id,
|
temperature_uom=maintenanceService.temperature_uom.id,
|
||||||
moisture_min = maintenanceService.moisture_min,
|
moisture_min=maintenanceService.moisture_min,
|
||||||
moisture_max = maintenanceService.moisture_max,
|
moisture_max=maintenanceService.moisture_max,
|
||||||
moisture_uom = maintenanceService.moisture_uom.id)
|
moisture_uom=maintenanceService.moisture_uom.id,
|
||||||
|
)
|
||||||
maintenance.save()
|
maintenance.save()
|
||||||
|
|
||||||
shipment.service_maintenance_initial = True
|
shipment.service_maintenance_initial = True
|
||||||
shipment.save()
|
shipment.save()
|
||||||
else:
|
|
||||||
raise UserError(str('Por favor Primero debe Asignar un serial a todos los Equipos.'))
|
@classmethod
|
||||||
|
@ModelView.button
|
||||||
|
@Workflow.transition('picked')
|
||||||
|
@set_employee('picked_by')
|
||||||
|
def pick(cls, shipments):
|
||||||
|
super(ShipmentOut, cls).pick(shipments)
|
||||||
|
for shipment in shipments:
|
||||||
|
for line in shipment.inventory_moves:
|
||||||
|
if line.product.equipment and not line.equipment:
|
||||||
|
raise ValidationError(
|
||||||
|
gettext("optical_equipment.line_without_serial"))
|
||||||
|
|
||||||
|
|
||||||
class ShipmentInternal(metaclass=PoolMeta):
|
class ShipmentInternal(metaclass=PoolMeta):
|
||||||
@@ -207,17 +319,54 @@ class ShipmentInternal(metaclass=PoolMeta):
|
|||||||
move.equipment.save()
|
move.equipment.save()
|
||||||
|
|
||||||
Move.do([m for s in shipments for m in s.incoming_moves])
|
Move.do([m for s in shipments for m in s.incoming_moves])
|
||||||
cls.write([s for s in shipments if not s.effective_date], {
|
cls.write(
|
||||||
'effective_date': Date.today(),})
|
[s for s in shipments if not s.effective_date],
|
||||||
|
{
|
||||||
|
'effective_date': Date.today(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ShipmentOutReturn(metaclass=PoolMeta):
|
class ShipmentOutReturn(metaclass=PoolMeta):
|
||||||
"Customer Shipment Return"
|
'Customer Shipment Return'
|
||||||
__name__ = 'stock.shipment.out.return'
|
__name__ = 'stock.shipment.out.return'
|
||||||
|
|
||||||
service_maintenance_initial = fields.Boolean('Maintenance Initial', states={'readonly': True})
|
service_maintenance_initial = fields.Boolean(
|
||||||
|
'Maintenance Initial', states={'readonly': True}
|
||||||
|
)
|
||||||
sale_type = fields.Char('Type sale origin')
|
sale_type = fields.Char('Type sale origin')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button
|
||||||
|
@Workflow.transition('received')
|
||||||
|
@set_employee('received_by')
|
||||||
|
def receive(cls, shipments):
|
||||||
|
Move = Pool().get('stock.move')
|
||||||
|
Equipments = Pool().get('optical_equipment.equipment')
|
||||||
|
Move.do([m for s in shipments for m in s.incoming_moves])
|
||||||
|
for s in shipments:
|
||||||
|
for m in s.incoming_moves:
|
||||||
|
if not m.equipment:
|
||||||
|
continue
|
||||||
|
|
||||||
|
equipment = m.equipment
|
||||||
|
Id = equipment.id
|
||||||
|
equipment = Equipments.search(['id', '=', Id])[0]
|
||||||
|
equipment.propietary = s.company.party.id
|
||||||
|
equipment.propietary_address = s.company.party.addresses[0].id
|
||||||
|
equipment.location = m.to_location.id
|
||||||
|
equipment.state = 'registred'
|
||||||
|
equipment.save()
|
||||||
|
|
||||||
|
cls.create_inventory_moves(shipments)
|
||||||
|
# Set received state to allow done transition
|
||||||
|
cls.write(shipments, {'state': 'received'})
|
||||||
|
to_do = [
|
||||||
|
s for s in shipments if s.warehouse_storage == s.warehouse_input]
|
||||||
|
|
||||||
|
if to_do:
|
||||||
|
cls.done(to_do)
|
||||||
|
|
||||||
|
|
||||||
class PickingListDeliveryReport(CompanyReport):
|
class PickingListDeliveryReport(CompanyReport):
|
||||||
__name__ = 'stock.shipment.out.picking_list1'
|
__name__ = 'stock.shipment.out.picking_list1'
|
||||||
@@ -236,6 +385,7 @@ class PickingListDeliveryReport(CompanyReport):
|
|||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class CapacitationReport(CompanyReport):
|
class CapacitationReport(CompanyReport):
|
||||||
__name__ = 'stock.shipment.out.capacitation_note'
|
__name__ = 'stock.shipment.out.capacitation_note'
|
||||||
|
|
||||||
|
|||||||
2
move.xml
2
move.xml
@@ -2,6 +2,7 @@
|
|||||||
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of
|
<!--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 repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
|
<data>
|
||||||
<record model="ir.ui.view" id="move_view_list_shipment">
|
<record model="ir.ui.view" id="move_view_list_shipment">
|
||||||
<field name="model">stock.move</field>
|
<field name="model">stock.move</field>
|
||||||
<field name="inherit" ref="stock.move_view_list_shipment"/>
|
<field name="inherit" ref="stock.move_view_list_shipment"/>
|
||||||
@@ -39,4 +40,5 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="model">stock.shipment.out,-1</field>
|
<field name="model">stock.shipment.out,-1</field>
|
||||||
<field name="action" ref="report_capacitation"/>
|
<field name="action" ref="report_capacitation"/>
|
||||||
</record>
|
</record>
|
||||||
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
32
party.py
32
party.py
@@ -1,12 +1,28 @@
|
|||||||
from trytond.pool import PoolMeta
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
from trytond.model import ModelSQL, ModelView, fields
|
# this repository contains the full copyright notices and license terms.
|
||||||
from . import equipment
|
|
||||||
|
from trytond.pool import PoolMeta
|
||||||
|
from trytond.model import fields
|
||||||
|
from trytond.pyson import Eval
|
||||||
|
|
||||||
|
|
||||||
|
_CUSTOMER_TYPE = [("ips", "IPS"), ("optica", "Optica"), ("otro", "Otro")]
|
||||||
|
|
||||||
_CLIENT_TYPE = [('ips', 'IPS'),
|
|
||||||
('optica', 'Optica'),
|
|
||||||
('otro', 'Otro')]
|
|
||||||
|
|
||||||
class Party(metaclass=PoolMeta):
|
class Party(metaclass=PoolMeta):
|
||||||
__name__ = 'party.party'
|
__name__ = "party.party"
|
||||||
|
|
||||||
client_type = fields.Selection(_CLIENT_TYPE, 'Client type')
|
customer_type = fields.Selection(_CUSTOMER_TYPE, "Customer Type")
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_customer_type(csl):
|
||||||
|
return "otro"
|
||||||
|
|
||||||
|
|
||||||
|
class Address(metaclass=PoolMeta):
|
||||||
|
__name__ = "party.address"
|
||||||
|
|
||||||
|
campus = fields.Boolean("Campus")
|
||||||
|
party_related = fields.Many2One(
|
||||||
|
"party.party", "Party Related", states={"invisible": (~Eval("campus"))}
|
||||||
|
)
|
||||||
|
|||||||
23
party.xml
23
party.xml
@@ -2,14 +2,27 @@
|
|||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
<record model="ir.ui.view" id="party_view_form">
|
<data>
|
||||||
<field name="model">party.party</field>
|
|
||||||
<field name="inherit" ref="party.party_view_form"/>
|
|
||||||
<field name="name">party_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="party_view_tree">
|
<record model="ir.ui.view" id="party_view_tree">
|
||||||
<field name="model">party.party</field>
|
<field name="model">party.party</field>
|
||||||
<field name="inherit" ref="party.party_view_tree"/>
|
<field name="inherit" ref="party.party_view_tree"/>
|
||||||
<field name="name">party_tree</field>
|
<field name="name">party_tree</field>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.ui.view" id="party_view_form">
|
||||||
|
<field name="model">party.party</field>
|
||||||
|
<field name="inherit" ref="party.party_view_form"/>
|
||||||
|
<field name="name">party_form</field>
|
||||||
|
</record>
|
||||||
|
<!-- Party Address -->
|
||||||
|
<record model="ir.ui.view" id="address_view_tree">
|
||||||
|
<field name="model">party.address</field>
|
||||||
|
<field name="inherit" ref="party.address_view_tree"/>
|
||||||
|
<field name="name">address_tree</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="address_view_form">
|
||||||
|
<field name="model">party.address</field>
|
||||||
|
<field name="inherit" ref="party.address_view_form"/>
|
||||||
|
<field name="name">address_form</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
611
product.py
611
product.py
@@ -1,195 +1,260 @@
|
|||||||
#This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
#this repository contains the full copyright notices and license terms
|
# this repository contains the full copyright notices and license terms
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import (
|
from trytond.model import ModelView, ModelSQL, fields
|
||||||
ModelView, ModelSQL, fields, Exclude)
|
|
||||||
from trytond.pyson import Bool, If, Eval, Id
|
from trytond.pyson import Bool, If, Eval, Id
|
||||||
from trytond.exceptions import UserError
|
|
||||||
|
|
||||||
|
|
||||||
_RISK = [('n/a', "No aplíca"),
|
_RISK = [
|
||||||
('I', 'I'),
|
("n/a", "No aplíca"),
|
||||||
('IIA', 'IIA'),
|
("uno", "I"),
|
||||||
('IIB', 'IIB')]
|
("dosA", "IIA"),
|
||||||
|
("dosB", "IIB")]
|
||||||
|
|
||||||
_USE = [('', ""),
|
_USE = [
|
||||||
('medico', 'Médico'),
|
("", ""),
|
||||||
('basico', 'Basico'),
|
("medico", "Médico"),
|
||||||
('apoyo', 'Apoyo')]
|
("basico", "Basico"),
|
||||||
|
("apoyo", "Apoyo")]
|
||||||
|
|
||||||
_BIOMEDICAL_CLASS = [
|
_BIOMEDICAL_CLASS = [
|
||||||
('n/a', "No aplíca"),
|
("n/a", "No aplíca"),
|
||||||
('diagnostico', 'Diagnóstico'),
|
("diagnostico", "Diagnóstico"),
|
||||||
('rehabilitación', 'Rehabilitación')]
|
("rehabilitación", "Rehabilitación"),
|
||||||
|
]
|
||||||
|
|
||||||
_MAIN_TECNOLOGY = [
|
_MAIN_TECNOLOGY = [
|
||||||
('', ""),
|
("", ""),
|
||||||
('mecanico', 'Mecánico'),
|
("mecanico", "Mecánico"),
|
||||||
('electrico', 'Electrico'),
|
("electrico", "Electrico"),
|
||||||
('electronico', 'Electrónico'),
|
("electronico", "Electrónico"),
|
||||||
('hidraulico', 'Hidraulico'),
|
("hidraulico", "Hidraulico"),
|
||||||
('neumatico', 'Neumatico')]
|
("neumatico", "Neumatico"),
|
||||||
|
]
|
||||||
|
|
||||||
_EQUIPMENT_TYPE = [
|
_EQUIPMENT_TYPE = [
|
||||||
('', ""),
|
("", ""),
|
||||||
('mobiliario_optico', 'Mobiliario óptico'),
|
("mobiliario_optico", "Mobiliario óptico"),
|
||||||
('refraccion', 'Refracción'),
|
("refraccion", "Refracción"),
|
||||||
('medicion', 'Medicion'),
|
("medico", "Medicion"),
|
||||||
('accesorios', 'Accesorios')]
|
("accesorios", "Accesorios"),
|
||||||
|
]
|
||||||
|
|
||||||
NON_MEASURABLE = ['service']
|
NON_MEASURABLE = ["service"]
|
||||||
|
|
||||||
|
|
||||||
class Template(metaclass=PoolMeta):
|
class Template(metaclass=PoolMeta):
|
||||||
'Template'
|
"Template"
|
||||||
__name__ = 'product.template'
|
__name__ = "product.template"
|
||||||
|
|
||||||
product = fields.Many2One('optical_equipment.maintenance', "Maintenance Activity",
|
product = fields.Many2One(
|
||||||
ondelete='CASCADE', select=True)
|
"optical_equipment.maintenance",
|
||||||
equipment = fields.Boolean('It is equipment',
|
"Maintenance Activity",
|
||||||
states={'invisible': Eval('type', 'goods') != 'goods',
|
ondelete="CASCADE",
|
||||||
},depends=['type']
|
|
||||||
)
|
)
|
||||||
maintenance_activity = fields.Boolean('Maintenance Activity',
|
equipment = fields.Boolean(
|
||||||
states={'invisible': Eval('type', 'service') != 'service',
|
"It is equipment",
|
||||||
'readonly': If(Eval('equipment',True), True)
|
states={
|
||||||
| If(Eval('replacement',True), True)
|
"invisible": Eval("type", "goods") != "goods",
|
||||||
},depends=['type']
|
},
|
||||||
)
|
)
|
||||||
replacement = fields.Boolean('Replacement',
|
maintenance_activity = fields.Boolean(
|
||||||
states={'invisible': Eval('type', 'goods') != 'goods',
|
"Maintenance Activity",
|
||||||
'readonly': If(Eval('equipment',True), True)
|
states={
|
||||||
| If(Eval('maintenance_activity',True), True)
|
"invisible": Eval("type", "service") != "service",
|
||||||
},depends=['type']
|
"readonly": If(Eval("equipment", True), True)
|
||||||
|
| If(Eval("replacement", True), True),
|
||||||
|
},
|
||||||
)
|
)
|
||||||
equipment_type = fields.Selection(_EQUIPMENT_TYPE, 'Equipment type',
|
replacement = fields.Boolean(
|
||||||
states={'required': Eval('equipment', False)},
|
"Replacement",
|
||||||
depends=['equipment']
|
states={
|
||||||
|
"invisible": Eval("type", "goods") != "goods",
|
||||||
|
"readonly": If(Eval("equipment", True), True)
|
||||||
|
| If(Eval("maintenance_activity", True), True),
|
||||||
|
},
|
||||||
)
|
)
|
||||||
risk = fields.Selection(_RISK, 'Type risk')
|
|
||||||
use = fields.Selection(_USE, 'Use',
|
maintenance_required = fields.Boolean(
|
||||||
states={'required': Eval('equipment', False)},
|
"Miantenance Required",
|
||||||
depends=['equipment']
|
states={
|
||||||
|
"invisible": (Eval("type", "goods") != "goods")}
|
||||||
)
|
)
|
||||||
biomedical_class = fields.Selection(_BIOMEDICAL_CLASS,'Biomedical Class',
|
equipment_type = fields.Selection(
|
||||||
states={'required': Eval('equipment', False)},
|
_EQUIPMENT_TYPE, "Equipment type",
|
||||||
depends=['equipment']
|
states={"required": Eval("equipment", False)}
|
||||||
)
|
)
|
||||||
main_tecnology = fields.Selection(_MAIN_TECNOLOGY,'Main tecnology',
|
risk = fields.Selection(_RISK, "Type risk")
|
||||||
states={'required': Eval('equipment', False)},
|
use = fields.Selection(
|
||||||
depends=['equipment']
|
_USE,
|
||||||
|
"Use",
|
||||||
|
states={"required": Eval("equipment", False)},
|
||||||
|
depends={"equipment"},
|
||||||
)
|
)
|
||||||
|
biomedical_class = fields.Selection(
|
||||||
|
_BIOMEDICAL_CLASS,
|
||||||
|
"Biomedical Class",
|
||||||
|
states={"required": Eval("equipment", False)},
|
||||||
|
)
|
||||||
|
main_tecnology = fields.Selection(
|
||||||
|
_MAIN_TECNOLOGY, "Main tecnology",
|
||||||
|
states={"required": Eval("equipment", False)})
|
||||||
calibration = fields.Boolean("Apply calibration")
|
calibration = fields.Boolean("Apply calibration")
|
||||||
observation = fields.Text('Observation')
|
observation = fields.Text("Observation")
|
||||||
mark_category = fields.Many2One('product.category', 'Mark',
|
|
||||||
domain=[('parent', '=', None),
|
|
||||||
('accounting', '=', False)],
|
|
||||||
states={'required': Eval('equipment', False)},
|
|
||||||
depends=['equipment']
|
|
||||||
)
|
|
||||||
model_category = fields.Many2One('product.category', "Model",
|
|
||||||
domain=[('parent', '=', Eval('mark_category')),
|
|
||||||
('accounting', '=', False)],
|
|
||||||
states={'required': Eval('equipment', False)},
|
|
||||||
depends=['equipment']
|
|
||||||
)
|
|
||||||
reference_category = fields.Many2One('product.category', "Reference",
|
|
||||||
domain=[('parent', '=', Eval('model_category'))],
|
|
||||||
)
|
|
||||||
origin_country = fields.Many2One('country.country',"Origin Country")
|
|
||||||
refurbish = fields.Boolean('Refurbish')
|
|
||||||
software_required = fields.Boolean("Software Required")
|
|
||||||
software_version = fields.Char("Software version",
|
|
||||||
states={'invisible': If(~Eval('software_required'), True)},
|
|
||||||
depends=['software_required'])
|
|
||||||
|
|
||||||
#These are measurements required for the equipments, are in this place
|
# Mark, Category, Reference
|
||||||
|
mark_category = fields.Many2One(
|
||||||
|
"product.category",
|
||||||
|
"Mark",
|
||||||
|
domain=[("parent", "=", None), ("accounting", "=", False)],
|
||||||
|
states={"required": Eval("equipment", False)},
|
||||||
|
)
|
||||||
|
model_category = fields.Many2One(
|
||||||
|
"product.category",
|
||||||
|
"Model",
|
||||||
|
domain=[
|
||||||
|
("parent", "=", Eval("mark_category")),
|
||||||
|
("accounting", "=", False)],
|
||||||
|
states={"required": Eval("equipment", False)})
|
||||||
|
reference_category = fields.Many2One(
|
||||||
|
"product.category",
|
||||||
|
"Reference",
|
||||||
|
states={
|
||||||
|
"required": (Eval("equipment", True))
|
||||||
|
},
|
||||||
|
domain=[("parent", "=", Eval("model_category"))])
|
||||||
|
|
||||||
|
# Information Equipment
|
||||||
|
origin_country = fields.Many2One("country.country", "Origin Country")
|
||||||
|
refurbish = fields.Boolean("Refurbish")
|
||||||
|
software_required = fields.Boolean("Software Required")
|
||||||
|
software_version = fields.Char(
|
||||||
|
"Software version",
|
||||||
|
states={"invisible": ~Eval("software_required", True)},
|
||||||
|
depends={"software_required"},
|
||||||
|
)
|
||||||
|
|
||||||
|
# These are measurements required for the equipments, are in this place
|
||||||
# for manage of class 'product.template'
|
# for manage of class 'product.template'
|
||||||
|
|
||||||
temperature_min = fields.Float("Temp Min")
|
temperature_min = fields.Float("Temp Min")
|
||||||
temperature_max = fields.Float("Temp Max")
|
temperature_max = fields.Float("Temp Max")
|
||||||
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
|
temperature_uom = fields.Many2One(
|
||||||
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
|
"product.uom",
|
||||||
states={'invisible' : If(Eval('temperature_min') == None, True)},
|
"Temperature UOM",
|
||||||
depends=['itemperature_min']
|
domain=[
|
||||||
|
("category", "=", Id("optical_equipment", "uom_cat_temperature"))],
|
||||||
|
states={'invisible': (~Eval('temperature_min', True))}
|
||||||
)
|
)
|
||||||
frequency = fields.Float("Frequency")
|
frequency = fields.Float("Frequency")
|
||||||
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
|
frequency_uom = fields.Many2One(
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
|
"product.uom",
|
||||||
states={'invisible' : If(Eval('frequency') == None, True)},
|
"Frequency UOM",
|
||||||
depends=['frequency']
|
domain=[
|
||||||
)
|
("category", "=", Id("optical_equipment", "uom_cat_frequency"))],
|
||||||
|
states={'invisible': (Eval('frequency', True))})
|
||||||
moisture_min = fields.Float("Moisture Min")
|
moisture_min = fields.Float("Moisture Min")
|
||||||
moisture_max = fields.Float("Moisture Max")
|
moisture_max = fields.Float("Moisture Max")
|
||||||
moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
|
moisture_uom = fields.Many2One(
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
|
"product.uom",
|
||||||
states={'invisible' : If(Eval('moisture_min') == None, True)},
|
"Moisture UOM",
|
||||||
depends=['moisture_min']
|
domain=[
|
||||||
)
|
("category", "=", Id(
|
||||||
|
"optical_equipment", "uom_cat_relative_humedity"))
|
||||||
|
],
|
||||||
|
states={'invisible': (~Eval('moisture_min', True))})
|
||||||
electrical_equipment = fields.Boolean("Electrical Equipment")
|
electrical_equipment = fields.Boolean("Electrical Equipment")
|
||||||
frequency = fields.Float("Frequency",
|
frequency = fields.Float(
|
||||||
states={'invisible': ~Bool(Eval('electrical_equipment'))})
|
"Frequency", states={"invisible": ~Bool(Eval("electrical_equipment"))}
|
||||||
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
|
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
|
|
||||||
states={'invisible' : If(Eval('frequency') == None, True) |
|
|
||||||
~Eval('electrical_equipment', True)},
|
|
||||||
depends=['frequency']
|
|
||||||
)
|
)
|
||||||
voltageAC = fields.Float("Voltage AC",
|
frequency_uom = fields.Many2One(
|
||||||
states={'invisible': ~Bool(Eval('electrical_equipment'))})
|
"product.uom",
|
||||||
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM",
|
"Frequency UOM",
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
domain=[
|
||||||
states={'invisible' : If(Eval('voltageAC') == None, True) |
|
("category", "=", Id("optical_equipment", "uom_cat_frequency"))],
|
||||||
~Eval('electrical_equipment', True)},
|
states={'invisible': (~Eval('frequency', True))
|
||||||
depends=['voltageAC']
|
| ~Eval('electrical_equipment', True)},)
|
||||||
|
voltageAC = fields.Float(
|
||||||
|
"Voltage AC", states={"invisible": ~Bool(Eval("electrical_equipment"))}
|
||||||
)
|
)
|
||||||
voltageDC = fields.Float("Voltage DC",
|
voltageAC_uom = fields.Many2One(
|
||||||
states={'invisible': ~Bool(Eval('electrical_equipment'))})
|
"product.uom",
|
||||||
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM",
|
"Voltage AC UOM",
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
domain=[
|
||||||
states={'invisible' : If(Eval('voltageDC') == None, True) |
|
("category", "=", Id(
|
||||||
~Eval('electrical_equipment', True)},
|
"optical_equipment", "uom_cat_electrical_tension"))
|
||||||
depends=['voltageDC'])
|
],
|
||||||
|
states={'invisible': (~Eval('voltageAC', True))
|
||||||
|
| ~Eval('electrical_equipment', True)},
|
||||||
|
)
|
||||||
|
voltageDC = fields.Float(
|
||||||
|
"Voltage DC", states={"invisible": ~Bool(Eval("electrical_equipment"))}
|
||||||
|
)
|
||||||
|
voltageDC_uom = fields.Many2One(
|
||||||
|
"product.uom",
|
||||||
|
"Voltage DC UOM",
|
||||||
|
domain=[
|
||||||
|
("category", "=", Id(
|
||||||
|
"optical_equipment", "uom_cat_electrical_tension"))],
|
||||||
|
states={'invisible': (
|
||||||
|
~Eval('voltageDC', True) | ~Eval(
|
||||||
|
'electrical_equipment', True))},)
|
||||||
useful_life = fields.Integer("Useful life")
|
useful_life = fields.Integer("Useful life")
|
||||||
warranty = fields.Integer("Warranty")
|
warranty = fields.Integer("Warranty")
|
||||||
|
|
||||||
#### calibration parameters
|
# calibration parameters
|
||||||
use_pattern = fields.Selection([
|
use_pattern = fields.Many2One(
|
||||||
('', ""),
|
"optical_equipment.use_pattern",
|
||||||
('ojo_esquematico', "Ojo esquematico"),
|
"Use Pattern",
|
||||||
('lente_prueba', "Lente de Prueba"),
|
ondelete="RESTRICT",
|
||||||
('pesas_calibration', "Pesas de Calibración"),
|
states={"required": Eval("calibration", True)},)
|
||||||
('esferas_calibration', "Esferas de Calibración")], "Patrón Utilizado", states={'required': Eval('calibration', True)})
|
measuring_range = fields.Selection(
|
||||||
measuring_range = fields.Selection([
|
[("dioptria", "Dioptria"),
|
||||||
('No Aplíca', ""),
|
("mmhg", "mmHg")], "Rango de Medición")
|
||||||
('dioptria', "Dioptria"),
|
MEP = fields.Float(
|
||||||
('mmhg', "mmHg")], "Rango de Medición", states={'required': Eval('calibration', True)})
|
"MEP",
|
||||||
MEP = fields.Float("MEP", states={'required': Eval('calibration', False)},)
|
states={"required": Eval("calibration", False)},)
|
||||||
uncertainy_pattern = fields.Float("Uncertainy Pattern", states={'required': Eval('calibration', True)},
|
uncertainy_pattern = fields.Float(
|
||||||
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10")
|
"Uncertainy Pattern",
|
||||||
k_pattern = fields.Char("K Pattern",states={'required': Eval('calibration', False)},
|
states={"required": Eval("calibration", True)},
|
||||||
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10")
|
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10",)
|
||||||
k_pattern_list = fields.One2Many('optical_equipment.product_pattern', 'product', "List of patterns K",
|
k_pattern = fields.Char(
|
||||||
states={'required': Eval('calibration', False)},)
|
"K Pattern",
|
||||||
resolution_type = fields.Selection([('',""),
|
states={"required": Eval("calibration", False)},
|
||||||
('analoga', "Analoga"),
|
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10",
|
||||||
('digital', "Digital")], "Resolution Type",
|
)
|
||||||
states={'required': Eval('calibration', False)},
|
k_pattern_list = fields.One2Many(
|
||||||
depends=['calibration'])
|
"optical_equipment.product_pattern",
|
||||||
d_resolution = fields.Float("Resolution d",
|
"product",
|
||||||
states={'invisible': If(Eval('resolution_type') != 'digital', True)},
|
"List of patterns K",
|
||||||
depends=['resolution_type'])
|
states={"required": Eval("calibration", False)},
|
||||||
analog_resolution = fields.Float("Analog resolution",
|
)
|
||||||
states={'invisible': If(Eval('resolution_type') != 'analoga', True),},
|
resolution_type = fields.Selection(
|
||||||
depends=['resolution_type'])
|
[("", ""), ("analoga", "Analoga"), ("digital", "Digital")],
|
||||||
a_factor_resolution = fields.Float("(a) Resolution",
|
"Resolution Type",
|
||||||
states={'invisible': If(Eval('resolution_type') != 'analoga', True)},
|
states={"required": Eval("calibration", False)},
|
||||||
depends=['resolution_type'])
|
)
|
||||||
Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},)
|
|
||||||
|
|
||||||
#maintenance activities
|
d_resolution = fields.Float(
|
||||||
initial_operation = fields.Boolean("Verificación inicial de funcionamiento")
|
"Resolution d",
|
||||||
|
states={
|
||||||
|
'invisible': (Eval('resolution_type') != 'digital'),
|
||||||
|
'required': (Eval('resolution_type') == 'digital')
|
||||||
|
})
|
||||||
|
analog_resolution = fields.Float(
|
||||||
|
"Analog resolution",
|
||||||
|
states={'invisible': (Eval('resolution_type') != 'analoga'), },
|
||||||
|
)
|
||||||
|
a_factor_resolution = fields.Float(
|
||||||
|
"(a) Resolution",
|
||||||
|
states={'invisible': (Eval('resolution_type') != 'analoga')},
|
||||||
|
)
|
||||||
|
Usubi = fields.Integer("Usub i", states={
|
||||||
|
"required": Eval("calibration", False)})
|
||||||
|
|
||||||
|
# maintenance activities
|
||||||
|
initial_operation = fields.Boolean(
|
||||||
|
"Verificación inicial de funcionamiento")
|
||||||
check_equipment = fields.Boolean("Revisión del Equipo")
|
check_equipment = fields.Boolean("Revisión del Equipo")
|
||||||
check_electric_system = fields.Boolean("Revisión del sistema electríco")
|
check_electric_system = fields.Boolean("Revisión del sistema electríco")
|
||||||
clean_int_ext = fields.Boolean("Limpieza interior y exterior")
|
clean_int_ext = fields.Boolean("Limpieza interior y exterior")
|
||||||
@@ -197,166 +262,171 @@ class Template(metaclass=PoolMeta):
|
|||||||
optical = fields.Boolean("Optical")
|
optical = fields.Boolean("Optical")
|
||||||
check_calibration = fields.Boolean("Verificar Calibración")
|
check_calibration = fields.Boolean("Verificar Calibración")
|
||||||
|
|
||||||
|
# Maintenance activites Preventives
|
||||||
|
preventive_activities = fields.Text("Preventive Activities")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def view_attributes(cls):
|
def view_attributes(cls):
|
||||||
return super(Template, cls).view_attributes() + [
|
return super(Template, cls).view_attributes() + [
|
||||||
('//page[@id="features"]', 'states', {
|
(
|
||||||
'invisible': ~Eval('equipment'),
|
"//page[@id='features']",
|
||||||
}),
|
"states",
|
||||||
('//page[@id="calibration"]', 'states', {
|
{
|
||||||
'invisible': ~Eval('calibration')},)
|
"invisible": ~Eval("equipment"),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"//page[@id='calibration']",
|
||||||
|
"states",
|
||||||
|
{"invisible": ~Eval("calibration")},
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"//page[@id='maintenance_activities']",
|
||||||
|
"states",
|
||||||
|
{"invisible": ~Eval("maintenance_required")},
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@fields.depends('measuring_range')
|
@fields.depends("measuring_range")
|
||||||
def default_measuring_range(self):
|
def default_measuring_range(self):
|
||||||
return 'dioptria'
|
return "dioptria"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@fields.depends('temperature_min')
|
@fields.depends("temperature_min")
|
||||||
def default_temperature_min(self):
|
def default_temperature_min(self):
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@fields.depends('temperature_max')
|
@fields.depends("temperature_max")
|
||||||
def default_temperature_max(self):
|
def default_temperature_max(self):
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@fields.depends('temperature')
|
def default_frequency(cls):
|
||||||
def default_temperature_uom(self):
|
|
||||||
pool = Pool()
|
|
||||||
measurement = None
|
|
||||||
Measurements = pool.get('product.uom')
|
|
||||||
if Measurements.search(['name', '=', 'Celsius']) != []:
|
|
||||||
measurement = Measurements.search(['name', '=', 'Celsius'])[0].id
|
|
||||||
|
|
||||||
return measurement
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_frequency_uom():
|
|
||||||
pool = Pool()
|
|
||||||
measurement = None
|
|
||||||
Measurements = pool.get('product.uom')
|
|
||||||
if Measurements.search(['name', '=', 'Hertz']) != []:
|
|
||||||
measurement = Measurements.search(['name', '=', 'Hertz'])[0].id
|
|
||||||
|
|
||||||
return measurement
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_frequency():
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def default_frequency_uom():
|
def default_moisture_min(cls):
|
||||||
pool = Pool()
|
|
||||||
Measurements = pool.get('product.uom')
|
|
||||||
measurement = Measurements.search(['name', '=', 'Hertz'])[0].id
|
|
||||||
|
|
||||||
return measurement
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_moisture_min():
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def default_moisture_max():
|
def default_moisture_max(cls):
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def default_voltageAC_uom():
|
def default_voltageDC(cls):
|
||||||
pool = Pool()
|
|
||||||
measurement = None
|
|
||||||
Measurements = pool.get('product.uom')
|
|
||||||
if Measurements.search(['name', '=', 'Volt']) != []:
|
|
||||||
measurement = Measurements.search(['name', '=', 'Volt'])[0].id
|
|
||||||
|
|
||||||
return measurement
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_voltageAC():
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def default_voltageAC_uom():
|
def default_voltageAC(cls):
|
||||||
pool = Pool()
|
|
||||||
Measurements = pool.get('product.uom')
|
|
||||||
measurement = Measurements.search(['name', '=', 'Volt'])[0].id
|
|
||||||
|
|
||||||
return measurement
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_voltageDC():
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@fields.depends('voltageDC', 'voltageDC_uom')
|
|
||||||
def on_change_voltageDC_uom(self):
|
|
||||||
pool = Pool()
|
|
||||||
Measurements = pool.get('product.uom')
|
|
||||||
measurement = Measurements.search(['name', '=', 'Volt'])[0].id
|
|
||||||
self.voltageDC_uom = measurement
|
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_risk():
|
def default_risk():
|
||||||
return 'n/a'
|
return "n/a"
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_use():
|
def default_use():
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_biomedical_class():
|
def default_biomedical_class():
|
||||||
return 'n/a'
|
return "n/a"
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_main_tecnology():
|
def default_main_tecnology():
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_calibration():
|
def default_calibration():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_use_pattern():
|
|
||||||
return ''
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def default_refurbish():
|
def default_refurbish():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@fields.depends("temperature")
|
||||||
|
def default_temperature_uom(self):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get("product.uom")
|
||||||
|
measurement = Measurements.search(["name", "=", "Celsius"])[0].id
|
||||||
|
|
||||||
@fields.depends('software_required', 'software_version')
|
return measurement
|
||||||
def on_change_with_sotfware_required(self):
|
|
||||||
self.software_version = None
|
|
||||||
|
|
||||||
@fields.depends('d_resolution', 'analog_resolution', 'a_factor_resolution')
|
@classmethod
|
||||||
|
def default_frequency_uom(cls):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get("product.uom")
|
||||||
|
measurement = Measurements.search(["name", "=", "Hertz"])[0].id
|
||||||
|
|
||||||
|
return measurement
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_moisture_uom(cls):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get("product.uom")
|
||||||
|
measurement = Measurements.search(
|
||||||
|
["name", "=", "Relative Humedity"])[0].id
|
||||||
|
|
||||||
|
return measurement
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_voltageAC_uom(cls):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get("product.uom")
|
||||||
|
measurement = Measurements.search(["name", "=", "Volt"])[0].id
|
||||||
|
|
||||||
|
return measurement
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_voltageDC_uom(cls):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get("product.uom")
|
||||||
|
measurement = Measurements.search(["name", "=", "Volt"])[0].id
|
||||||
|
|
||||||
|
return measurement
|
||||||
|
|
||||||
|
@fields.depends("voltageDC", "voltageDC_uom")
|
||||||
|
def on_change_voltageDC_uom(self):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get("product.uom")
|
||||||
|
measurement = Measurements.search(["name", "=", "Volt"])[0].id
|
||||||
|
self.voltageDC_uom = measurement
|
||||||
|
|
||||||
|
# @fields.depends('software_required', 'software_version')
|
||||||
|
# def on_change_with_sotfware_required(self):
|
||||||
|
# self.software_version = None
|
||||||
|
|
||||||
|
@fields.depends("d_resolution", "analog_resolution", "a_factor_resolution")
|
||||||
def on_change_resolution_type(self):
|
def on_change_resolution_type(self):
|
||||||
self.d_resolution = None
|
self.d_resolution = None
|
||||||
self.analog_resolution = None
|
self.analog_resolution = None
|
||||||
self.a_factor_resolution = None
|
self.a_factor_resolution = None
|
||||||
|
|
||||||
|
@fields.depends("equipment", "replacement")
|
||||||
@fields.depends('equipment', 'replacement')
|
|
||||||
def on_change_equipment(self):
|
def on_change_equipment(self):
|
||||||
if self.equipment:
|
if self.equipment:
|
||||||
self.replacement=False
|
self.replacement = False
|
||||||
self.maintenance_activity=False
|
self.maintenance_activity = False
|
||||||
self.calibration=False
|
self.calibration = False
|
||||||
|
self.mark_category = None
|
||||||
|
self.model_category = None
|
||||||
|
self.reference_category = None
|
||||||
|
self.equipment_type = None
|
||||||
|
self.risk = "n/a"
|
||||||
|
self.biomedical_class = "n/a"
|
||||||
|
self.use = ""
|
||||||
|
self.useful_life = 0
|
||||||
|
self.warranty = 0
|
||||||
|
|
||||||
@fields.depends('mark_category', 'model_category', 'reference_category')
|
@fields.depends("mark_category", "model_category", "reference_category")
|
||||||
def on_change_mark_category(self):
|
def on_change_mark_category(self):
|
||||||
if not self.mark_category:
|
if not self.mark_category:
|
||||||
self.model_category = None
|
self.model_category = None
|
||||||
self.reference_category = None
|
self.reference_category = None
|
||||||
|
|
||||||
@fields.depends('model_category', 'reference_category')
|
@fields.depends("model_category", "reference_category")
|
||||||
def on_change_model_category(self):
|
def on_change_model_category(self):
|
||||||
if not self.model_category:
|
if not self.model_category:
|
||||||
self.reference_category = None
|
self.reference_category = None
|
||||||
|
|
||||||
@fields.depends('electrical_equipment')
|
@fields.depends("electrical_equipment")
|
||||||
def on_change_electrical_equipment(self):
|
def on_change_electrical_equipment(self):
|
||||||
if self.electrical_equipment:
|
if self.electrical_equipment:
|
||||||
self.voltageAC = 0
|
self.voltageAC = 0
|
||||||
@@ -369,13 +439,13 @@ class Template(metaclass=PoolMeta):
|
|||||||
default = {}
|
default = {}
|
||||||
else:
|
else:
|
||||||
default = default.copy()
|
default = default.copy()
|
||||||
default.setdefault('code', None)
|
default.setdefault("code", None)
|
||||||
default.setdefault('images', None)
|
default.setdefault("images", None)
|
||||||
return super().copy(templates, default=default)
|
return super().copy(templates, default=default)
|
||||||
|
|
||||||
|
|
||||||
class Product(metaclass=PoolMeta):
|
class Product(metaclass=PoolMeta):
|
||||||
__name__ = 'product.product'
|
__name__ = "product.product"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def copy(cls, products, default=None):
|
def copy(cls, products, default=None):
|
||||||
@@ -384,15 +454,19 @@ class Product(metaclass=PoolMeta):
|
|||||||
else:
|
else:
|
||||||
default = default.copy()
|
default = default.copy()
|
||||||
|
|
||||||
default.setdefault('suffix_code', None)
|
default.setdefault("suffix_code", None)
|
||||||
default.setdefault('code', None)
|
default.setdefault("code", None)
|
||||||
default.setdefault('poduct', None)
|
default.setdefault("poduct", None)
|
||||||
default.setdefault('images', None)
|
default.setdefault("images", None)
|
||||||
return super().copy(products, default=default)
|
return super().copy(products, default=default)
|
||||||
|
|
||||||
|
|
||||||
class Image(metaclass=PoolMeta):
|
class Image(metaclass=PoolMeta):
|
||||||
__name__ = 'product.image'
|
__name__ = "product.image"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __setup__(cls):
|
||||||
|
super().__setup__()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def copy(cls, images, default=None):
|
def copy(cls, images, default=None):
|
||||||
@@ -400,17 +474,30 @@ class Image(metaclass=PoolMeta):
|
|||||||
default = {}
|
default = {}
|
||||||
else:
|
else:
|
||||||
default = default.copy()
|
default = default.copy()
|
||||||
default.setdefault('template', None)
|
default.setdefault("template", None)
|
||||||
default.setdefault('product', None)
|
default.setdefault("product", None)
|
||||||
return super().copy(images, default=default)
|
return super().copy(images, default=default)
|
||||||
|
|
||||||
|
|
||||||
|
class UsePattern(ModelSQL, ModelView):
|
||||||
|
"Use Pattern"
|
||||||
|
__name__ = "optical_equipment.use_pattern"
|
||||||
|
_rec_name = "name_pattern"
|
||||||
|
|
||||||
|
name_pattern = fields.Char("Name Pattern", required=True)
|
||||||
|
|
||||||
|
|
||||||
class Pattern(ModelSQL, ModelView):
|
class Pattern(ModelSQL, ModelView):
|
||||||
"Pattern K of equipment"
|
"Pattern K of equipment"
|
||||||
__name__ = 'optical_equipment.product_pattern'
|
__name__ = "optical_equipment.product_pattern"
|
||||||
_rec_name = 'pattern'
|
_rec_name = "rec_name"
|
||||||
|
|
||||||
product = fields.Many2One('product.template', "Template", ondelete='CASCADE')
|
product = fields.Many2One(
|
||||||
|
"product.template", "Template", ondelete="CASCADE")
|
||||||
pattern = fields.Float("Value Pattern")
|
pattern = fields.Float("Value Pattern")
|
||||||
|
rec_name = fields.Function(fields.Char("rec_name"), "get_rec_name")
|
||||||
|
|
||||||
|
@fields.depends("pattern")
|
||||||
|
def get_rec_name(self, name):
|
||||||
|
if self.pattern:
|
||||||
|
return str(self.pattern)
|
||||||
|
|||||||
61
product.xml
61
product.xml
@@ -3,16 +3,53 @@
|
|||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
<data>
|
<data>
|
||||||
|
<record model="ir.action.act_window" id="act_use_pattern">
|
||||||
|
<field name="name">Use Pattern</field>
|
||||||
|
<field name="res_model">optical_equipment.use_pattern</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="use_pattern_view_tree">
|
||||||
|
<field name="model">optical_equipment.use_pattern</field>
|
||||||
|
<field name="type">tree</field>
|
||||||
|
<field name="name">use_pattern_tree</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="use_pattern_view_form">
|
||||||
|
<field name="model">optical_equipment.use_pattern</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">use_pattern_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.view" id="act_use_pattern_view1">
|
||||||
|
<field name="sequence" eval="10"/>
|
||||||
|
<field name="view" ref="use_pattern_view_tree"/>
|
||||||
|
<field name="act_window" ref="act_use_pattern"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.view" id="act_use_pattern_view2">
|
||||||
|
<field name="sequence" eval="20"/>
|
||||||
|
<field name="view" ref="use_pattern_view_form"/>
|
||||||
|
<field name="act_window" ref="act_use_pattern"/>
|
||||||
|
</record>
|
||||||
|
<menuitem
|
||||||
|
name="Properties of Equipments"
|
||||||
|
parent="product.menu_configuration"
|
||||||
|
sequence="10"
|
||||||
|
id="menu_properties_equipments"
|
||||||
|
icon="tryton-settings"/>
|
||||||
|
<menuitem
|
||||||
|
parent="menu_properties_equipments"
|
||||||
|
name="Pattern Use"
|
||||||
|
action="act_use_pattern"
|
||||||
|
sequence="10"
|
||||||
|
id="menu_pattern"
|
||||||
|
icon="tryton-list"/>
|
||||||
<record model="ir.ui.view" id="template_view_form1">
|
<record model="ir.ui.view" id="template_view_form1">
|
||||||
<field name="model">product.template</field>
|
<field name="model">product.template</field>
|
||||||
<field name="inherit" ref="product.template_view_form"/>
|
<field name="inherit" ref="product.template_view_form"/>
|
||||||
<field name="name">template_form</field>
|
<field name="name">template_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="template_view_tree1">
|
<!-- <record model="ir.ui.view" id="template_view_tree1"> -->
|
||||||
<field name="model">product.template</field>
|
<!-- <field name="model">product.template</field> -->
|
||||||
<field name="inherit" ref="product.template_view_tree"/>
|
<!-- <field name="inherit" ref="product.template_view_tree"/> -->
|
||||||
<field name="name">template_tree</field>
|
<!-- <field name="name">template_tree</field> -->
|
||||||
</record>
|
<!-- </record> -->
|
||||||
<record model="ir.ui.view" id="pattern_view_form">
|
<record model="ir.ui.view" id="pattern_view_form">
|
||||||
<field name="model">optical_equipment.product_pattern</field>
|
<field name="model">optical_equipment.product_pattern</field>
|
||||||
<field name="type">form</field>
|
<field name="type">form</field>
|
||||||
@@ -23,5 +60,19 @@
|
|||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
<field name="name">pattern_tree</field>
|
<field name="name">pattern_tree</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!--Patterns use-->
|
||||||
|
<record model="optical_equipment.use_pattern" id="schematic_eye">
|
||||||
|
<field name="name_pattern">Schematic Eye</field>
|
||||||
|
</record>
|
||||||
|
<record model="optical_equipment.use_pattern" id="trial_lens">
|
||||||
|
<field name="name_pattern">Trial Lens</field>
|
||||||
|
</record>
|
||||||
|
<record model="optical_equipment.use_pattern" id="calibration_weights">
|
||||||
|
<field name="name_pattern">Calibration Weights</field>
|
||||||
|
</record>
|
||||||
|
<record model="optical_equipment.use_pattern" id="calibration_spheres">
|
||||||
|
<field name="name_pattern">Calibration Spheres</field>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
159
purchase.py
159
purchase.py
@@ -1,20 +1,16 @@
|
|||||||
#This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
#txhis repository contains the full copyright notices and license terms
|
# txhis repository contains the full copyright notices and license terms
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import (
|
from trytond.model import ModelView, fields
|
||||||
ModelView, ModelSQL, Workflow, fields)
|
from trytond.modules.product import round_price
|
||||||
from trytond.modules.product import price_digits, round_price
|
|
||||||
from trytond.pyson import Eval, If, Bool
|
from trytond.pyson import Eval, If, Bool
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
from trytond.i18n import gettext
|
|
||||||
from .exceptions import (
|
|
||||||
InvalidNumberPurchases)
|
|
||||||
|
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
|
|
||||||
|
|
||||||
class Purchase(metaclass=PoolMeta):
|
class Purchase(metaclass=PoolMeta):
|
||||||
__name__ = 'purchase.purchase'
|
"Purchase Equipment"
|
||||||
|
__name__ = "purchase.purchase"
|
||||||
|
|
||||||
equipment_create = fields.Boolean("Equipments Creates", readonly=True)
|
equipment_create = fields.Boolean("Equipments Creates", readonly=True)
|
||||||
|
|
||||||
@@ -22,10 +18,10 @@ class Purchase(metaclass=PoolMeta):
|
|||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
super(Purchase, cls).__setup__()
|
super(Purchase, cls).__setup__()
|
||||||
cls._buttons.update({
|
cls._buttons.update({
|
||||||
'create_equipments': {
|
"create_equipments": {
|
||||||
'invisible': If(Eval('invoice_state') == 'none', True) |
|
"invisible": If(Eval("invoice_state") == "none", True)
|
||||||
If(Bool(Eval('equipment_create')), True),
|
| If(Bool(Eval("equipment_create")), True),
|
||||||
'depends': ['invoice_state'],}
|
"depends": ["invoice_state"]}
|
||||||
})
|
})
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -35,15 +31,15 @@ class Purchase(metaclass=PoolMeta):
|
|||||||
else:
|
else:
|
||||||
default = default.copy()
|
default = default.copy()
|
||||||
|
|
||||||
default.setdefault('number', None)
|
default.setdefault("number", None)
|
||||||
default.setdefault('invoice_state', 'none')
|
default.setdefault("invoice_state", "none")
|
||||||
default.setdefault('invoices_ignored', None)
|
default.setdefault("invoices_ignored", None)
|
||||||
default.setdefault('moves', None)
|
default.setdefault("moves", None)
|
||||||
default.setdefault('shipment_state', 'none')
|
default.setdefault("shipment_state", "none")
|
||||||
default.setdefault('purchase_date', None)
|
default.setdefault("purchase_date", None)
|
||||||
default.setdefault('quoted_by')
|
default.setdefault("quoted_by")
|
||||||
default.setdefault('confirmed_by')
|
default.setdefault("confirmed_by")
|
||||||
default.setdefault('equipment_create', None)
|
default.setdefault("equipment_create", None)
|
||||||
|
|
||||||
return super(Purchase, cls).copy(purchases, default=default)
|
return super(Purchase, cls).copy(purchases, default=default)
|
||||||
|
|
||||||
@@ -52,15 +48,15 @@ class Purchase(metaclass=PoolMeta):
|
|||||||
def create_equipments(cls, purchases):
|
def create_equipments(cls, purchases):
|
||||||
if len(purchases) == 1:
|
if len(purchases) == 1:
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Equipment = pool.get('optical_equipment.equipment')
|
Equipment = pool.get("optical_equipment.equipment")
|
||||||
Config = pool.get('optical_equipment.configuration')
|
|
||||||
config = Config(1)
|
|
||||||
|
|
||||||
purchase = purchases[0]
|
purchase = purchases[0]
|
||||||
|
|
||||||
for line in purchase.lines:
|
for line in purchase.lines:
|
||||||
if line.product.equipment:
|
if not line.product.equipment:
|
||||||
for i in range(0,int(line.quantity)):
|
continue
|
||||||
|
|
||||||
|
for i in range(0, int(line.quantity)):
|
||||||
equipment = Equipment(
|
equipment = Equipment(
|
||||||
company=line.company,
|
company=line.company,
|
||||||
location=line.to_location,
|
location=line.to_location,
|
||||||
@@ -71,59 +67,75 @@ class Purchase(metaclass=PoolMeta):
|
|||||||
model_category=line.product.model_category,
|
model_category=line.product.model_category,
|
||||||
mark_category=line.product.mark_category,
|
mark_category=line.product.mark_category,
|
||||||
reference_category=line.product.reference_category,
|
reference_category=line.product.reference_category,
|
||||||
useful_life=line.product.useful_life if line.product.useful_life else 0,
|
useful_life=(
|
||||||
calibration=True if line.product.calibration else False,
|
line.product.useful_life if
|
||||||
warranty=line.product.warranty if line.product.warranty else 0,
|
line.product.useful_life else 0
|
||||||
|
),
|
||||||
|
calibration=(
|
||||||
|
True if line.product.calibration
|
||||||
|
else False),
|
||||||
|
warranty=(
|
||||||
|
line.product.warranty if
|
||||||
|
line.product.warranty else 0),
|
||||||
risk=line.product.risk,
|
risk=line.product.risk,
|
||||||
origin_country=line.product.origin_country,
|
origin_country=line.product.origin_country,
|
||||||
use=line.product.use,
|
use=line.product.use,
|
||||||
biomedical_class=line.product.biomedical_class,
|
biomedical_class=line.product.biomedical_class,
|
||||||
refurbish=line.refurbish,
|
refurbish=line.refurbish,
|
||||||
serial=None if line.quantity > 1 else line.serial_equipment,
|
serial=(None if line.quantity > 1
|
||||||
|
else line.serial_equipment),
|
||||||
health_register=line.health_register,
|
health_register=line.health_register,
|
||||||
software_version=line.product.software_version if line.product.software_required else "No Aplica",
|
software_version=(
|
||||||
|
line.product.software_version
|
||||||
|
if line.product.software_required
|
||||||
|
else "No Aplica"
|
||||||
|
),
|
||||||
maintenance_frequency="none",
|
maintenance_frequency="none",
|
||||||
purchase_origin=line,
|
purchase_origin=line,
|
||||||
)
|
)
|
||||||
equipment.save()
|
equipment.save()
|
||||||
else:
|
|
||||||
continue
|
|
||||||
purchase.equipment_create = True
|
purchase.equipment_create = True
|
||||||
cls.save(purchases)
|
cls.save(purchases)
|
||||||
else:
|
else:
|
||||||
raise InvalidNumberPurchases(
|
raise UserError(str("Número de Compras Invalido."))
|
||||||
gettext('purchase.msg_invalid_number_purchases'))
|
|
||||||
|
|
||||||
|
|
||||||
class Line(metaclass=PoolMeta):
|
class Line(metaclass=PoolMeta):
|
||||||
__name__ = 'purchase.line'
|
"Purchase Line Equipment"
|
||||||
|
__name__ = "purchase.line"
|
||||||
|
|
||||||
origin_country = origin_country = fields.Many2One('country.country',"Origin Country")
|
origin_country = fields.Many2One("country.country", "Origin Country")
|
||||||
address_equipment = fields.Many2One('party.address', "Direccion", required=True)
|
address_equipment = fields.Many2One(
|
||||||
serial_equipment = fields.Char("Serial", size=None,
|
"party.address", "Direccion", required=True)
|
||||||
states={'invisible': If(Eval('quantity') > 1, True),
|
serial_equipment = fields.Char(
|
||||||
},depends=['quantity'])
|
"Serial",
|
||||||
|
size=None,
|
||||||
|
# states={'invisible': Decimal(Eval('quantity')) > 1}
|
||||||
|
)
|
||||||
refurbish = fields.Boolean("Refurbish")
|
refurbish = fields.Boolean("Refurbish")
|
||||||
product_equipment = fields.Boolean("Product Equipment",
|
product_equipment = fields.Boolean(
|
||||||
states={'readonly': True})
|
"Product Equipment", states={"readonly": True})
|
||||||
software_version = fields.Char("Software version")
|
software_version = fields.Char("Software version")
|
||||||
health_register = fields.Char("Health Register", states={'required': Eval('product_equipment', True)})
|
health_register = fields.Char(
|
||||||
|
"Health Register", states={"required": Eval("product_equipment", True)}
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_address_equipment(cls):
|
def default_address_equipment(cls):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Company = pool.get('company.company')
|
Company = pool.get("company.company")
|
||||||
company = Transaction().context.get('company')
|
company = Transaction().context.get("company")
|
||||||
if company:
|
if company:
|
||||||
company = Company(company)
|
company = Company(company)
|
||||||
|
|
||||||
return company.party.addresses[0].id
|
return company.party.addresses[0].id
|
||||||
|
|
||||||
@fields.depends(
|
@fields.depends(
|
||||||
'product', 'quantity', methods=['_get_context_purchase_price'])
|
"product", "quantity", methods=["_get_context_purchase_price"])
|
||||||
def on_change_quantity(self):
|
def on_change_quantity(self):
|
||||||
Product = Pool().get('product.product')
|
Product = Pool().get("product.product")
|
||||||
if self.quantity > 1 or self.quantity < 1:
|
if self.quantity and (self.quantity > 1 or self.quantity < 1):
|
||||||
self.serial_equipment = None
|
self.serial_equipment = None
|
||||||
|
|
||||||
if not self.product:
|
if not self.product:
|
||||||
@@ -131,18 +143,29 @@ class Line(metaclass=PoolMeta):
|
|||||||
return
|
return
|
||||||
|
|
||||||
with Transaction().set_context(self._get_context_purchase_price()):
|
with Transaction().set_context(self._get_context_purchase_price()):
|
||||||
self.unit_price = Product.get_purchase_price([self.product],
|
self.unit_price = Product.get_purchase_price(
|
||||||
abs(self.quantity or 0))[self.product.id]
|
[self.product], abs(self.quantity or 0)
|
||||||
|
)[self.product.id]
|
||||||
|
|
||||||
if self.unit_price:
|
if self.unit_price:
|
||||||
self.unit_price = round_price(self.unit_price)
|
self.unit_price = round_price(self.unit_price)
|
||||||
|
|
||||||
@fields.depends('product', 'unit', 'purchase',
|
@fields.depends(
|
||||||
'_parent_purchase.party', '_parent_purchase.invoice_party',
|
"product",
|
||||||
'product_supplier', 'product_equipment',
|
"unit",
|
||||||
'serial_equipment', 'software_version',
|
"purchase",
|
||||||
'health_register', 'refurbish', methods=['compute_taxes', 'compute_unit_price',
|
"_parent_purchase.party",
|
||||||
'_get_product_supplier_pattern'])
|
"_parent_purchase.invoice_party",
|
||||||
|
"product_supplier",
|
||||||
|
"product_equipment",
|
||||||
|
"serial_equipment",
|
||||||
|
"software_version",
|
||||||
|
"health_register",
|
||||||
|
"refurbish",
|
||||||
|
methods=[
|
||||||
|
"compute_taxes",
|
||||||
|
"compute_unit_price",
|
||||||
|
"_get_product_supplier_pattern",])
|
||||||
def on_change_product(self):
|
def on_change_product(self):
|
||||||
if not self.product:
|
if not self.product:
|
||||||
self.product_equipment = False
|
self.product_equipment = False
|
||||||
@@ -155,7 +178,6 @@ class Line(metaclass=PoolMeta):
|
|||||||
self.unit_price = None
|
self.unit_price = None
|
||||||
self.unit = None
|
self.unit = None
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
party = None
|
party = None
|
||||||
@@ -169,17 +191,19 @@ class Line(metaclass=PoolMeta):
|
|||||||
if not self.unit or self.unit.category != category:
|
if not self.unit or self.unit.category != category:
|
||||||
self.unit = self.product.purchase_uom
|
self.unit = self.product.purchase_uom
|
||||||
|
|
||||||
product_suppliers = list(self.product.product_suppliers_used(
|
product_suppliers = list(
|
||||||
**self._get_product_supplier_pattern()))
|
self.product.product_suppliers_used(
|
||||||
|
**self._get_product_supplier_pattern())
|
||||||
|
)
|
||||||
if len(product_suppliers) == 1:
|
if len(product_suppliers) == 1:
|
||||||
self.product_supplier, = product_suppliers
|
(self.product_supplier,) = product_suppliers
|
||||||
elif (self.product_supplier
|
elif (self.product_supplier
|
||||||
and self.product_supplier not in product_suppliers):
|
and self.product_supplier not in product_suppliers):
|
||||||
self.product_supplier = None
|
self.product_supplier = None
|
||||||
|
|
||||||
self.unit_price = self.compute_unit_price()
|
self.unit_price = self.compute_unit_price()
|
||||||
|
|
||||||
self.type = 'line'
|
self.type = "line"
|
||||||
self.amount = self.on_change_with_amount()
|
self.amount = self.on_change_with_amount()
|
||||||
if self.product.equipment:
|
if self.product.equipment:
|
||||||
self.product_equipment = True
|
self.product_equipment = True
|
||||||
@@ -190,6 +214,7 @@ class Line(metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def view_attributes(cls):
|
def view_attributes(cls):
|
||||||
return super(Line, cls).view_attributes() + [
|
return super(Line, cls).view_attributes() + [
|
||||||
('//page[@id="equipment"]', 'states', {
|
('//page[@id="equipment"]', "states",
|
||||||
'invisible': ~Eval('product_equipment', True),
|
{
|
||||||
|
"invisible": ~Eval("product_equipment", True),
|
||||||
})]
|
})]
|
||||||
|
|||||||
18
purchase.xml
18
purchase.xml
@@ -3,31 +3,29 @@
|
|||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
<data>
|
<data>
|
||||||
<record model="ir.ui.view" id="purchase_line_view_form">
|
|
||||||
<field name="model">purchase.line</field>
|
|
||||||
<field name="inherit" ref="purchase.purchase_line_view_form"/>
|
|
||||||
<field name="name">purchase_line_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="purchase_view_form">
|
<record model="ir.ui.view" id="purchase_view_form">
|
||||||
<field name="model">purchase.purchase</field>
|
<field name="model">purchase.purchase</field>
|
||||||
<field name="inherit" ref="purchase.purchase_view_form"/>
|
<field name="inherit" ref="purchase.purchase_view_form"/>
|
||||||
<field name="name">purchase_form</field>
|
<field name="name">purchase_form</field>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.ui.view" id="purchase_line_view_form">
|
||||||
|
<field name="model">purchase.line</field>
|
||||||
|
<field name="inherit" ref="purchase.purchase_line_view_form"/>
|
||||||
|
<field name="name">purchase_line_form</field>
|
||||||
|
</record>
|
||||||
<record model="ir.ui.view" id="product_view_list_purchase_line">
|
<record model="ir.ui.view" id="product_view_list_purchase_line">
|
||||||
<field name="model">product.product</field>
|
<field name="model">product.product</field>
|
||||||
<field name="inherit" ref="purchase.product_view_list_purchase_line"/>
|
<field name="inherit" ref="purchase.product_view_list_purchase_line"/>
|
||||||
<field name="name">product_list_purchase_line</field>
|
<field name="name">product_list_purchase_line</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="purchase_configuration_view_form">
|
|
||||||
<field name="model">purchase.configuration</field>
|
|
||||||
<field name="inherit" ref="purchase.purchase_configuration_view_form"/>
|
|
||||||
<field name="name">configuration_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="purchase_create_equipments">
|
<record model="ir.model.button" id="purchase_create_equipments">
|
||||||
<field name="name">create_equipments</field>
|
<field name="name">create_equipments</field>
|
||||||
<field name="string">Create Equipments</field>
|
<field name="string">Create Equipments</field>
|
||||||
<field name="model" search="[('model', '=', 'purchase.purchase')]"/>
|
<field name="model" search="[('model', '=', 'purchase.purchase')]"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.action.report" id="purchase.report_purchase">
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
<record model="ir.action.report" id="report_purchase">
|
<record model="ir.action.report" id="report_purchase">
|
||||||
<field name="name">Purchase</field>
|
<field name="name">Purchase</field>
|
||||||
<field name="model">purchase.purchase</field>
|
<field name="model">purchase.purchase</field>
|
||||||
|
|||||||
2044
report/CVS_Equipments.fodt
Normal file
2044
report/CVS_Equipments.fodt
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2172
report/Calibrations.fodt
Normal file
2172
report/Calibrations.fodt
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||||
<office:meta><meta:creation-date>2022-08-14T09:29:40.387726317</meta:creation-date><dc:date>2023-03-21T00:52:14.611168052</dc:date><meta:editing-duration>PT4H14M17S</meta:editing-duration><meta:editing-cycles>73</meta:editing-cycles><meta:generator>LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1</meta:generator><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="1" meta:paragraph-count="56" meta:word-count="176" meta:character-count="1886" meta:non-whitespace-character-count="1763"/></office:meta>
|
<office:meta><meta:creation-date>2022-08-14T09:29:40.387726317</meta:creation-date><dc:date>2023-04-10T01:17:53.781803899</dc:date><meta:editing-duration>PT4H14M43S</meta:editing-duration><meta:editing-cycles>75</meta:editing-cycles><meta:generator>LibreOffice/7.4.6.2$Linux_X86_64 LibreOffice_project/40$Build-2</meta:generator><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="1" meta:paragraph-count="56" meta:word-count="176" meta:character-count="1886" meta:non-whitespace-character-count="1763"/></office:meta>
|
||||||
<office:settings>
|
<office:settings>
|
||||||
<config:config-item-set config:name="ooo:view-settings">
|
<config:config-item-set config:name="ooo:view-settings">
|
||||||
<config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item>
|
<config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item>
|
||||||
@@ -13,8 +13,8 @@
|
|||||||
<config:config-item-map-indexed config:name="Views">
|
<config:config-item-map-indexed config:name="Views">
|
||||||
<config:config-item-map-entry>
|
<config:config-item-map-entry>
|
||||||
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
|
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
|
||||||
<config:config-item config:name="ViewLeft" config:type="long">14215</config:config-item>
|
<config:config-item config:name="ViewLeft" config:type="long">15563</config:config-item>
|
||||||
<config:config-item config:name="ViewTop" config:type="long">1822</config:config-item>
|
<config:config-item config:name="ViewTop" config:type="long">6064</config:config-item>
|
||||||
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
|
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="VisibleTop" config:type="long">0</config:config-item>
|
<config:config-item config:name="VisibleTop" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="VisibleRight" config:type="long">25790</config:config-item>
|
<config:config-item config:name="VisibleRight" config:type="long">25790</config:config-item>
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
|
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
|
||||||
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="Rsid" config:type="int">1730641</config:config-item>
|
<config:config-item config:name="Rsid" config:type="int">1812387</config:config-item>
|
||||||
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
|
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
|
||||||
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
|
||||||
@@ -479,314 +479,316 @@
|
|||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties officeooo:paragraph-rsid="00066dfa"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Footer">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Footer">
|
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
|
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
|
</style:style>
|
||||||
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
|
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
|
||||||
|
</style:style>
|
||||||
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
<style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
<style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Footer">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0012e334" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" fo:background-color="transparent" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Text_20_body">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Text_20_body">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e5f26" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000eca68" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Footer">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties officeooo:paragraph-rsid="00201d29"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties officeooo:paragraph-rsid="00066dfa"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P58" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T1" style:family="text">
|
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T2" style:family="text">
|
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e5f26" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000eca68" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0012e334" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties officeooo:paragraph-rsid="00066dfa"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties officeooo:paragraph-rsid="00201d29"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" fo:background-color="transparent" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T1" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T3" style:family="text">
|
<style:style style:name="T2" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T4" style:family="text">
|
<style:style style:name="T3" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T5" style:family="text">
|
<style:style style:name="T4" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T6" style:family="text">
|
<style:style style:name="T5" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
|
<style:style style:name="T6" style:family="text">
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
<style:style style:name="T7" style:family="text">
|
<style:style style:name="T7" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T8" style:family="text">
|
<style:style style:name="T8" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T9" style:family="text">
|
<style:style style:name="T9" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T10" style:family="text">
|
<style:style style:name="T10" style:family="text">
|
||||||
<style:text-properties officeooo:rsid="026544ec"/>
|
<style:text-properties style:text-underline-style="none" officeooo:rsid="026544ec"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T11" style:family="text">
|
<style:style style:name="T11" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T12" style:family="text">
|
<style:style style:name="T12" style:family="text">
|
||||||
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T13" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T14" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="bold" officeooo:rsid="000cde7f" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T15" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="bold" officeooo:rsid="000d5b36" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T16" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="bold" officeooo:rsid="0012e334" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T17" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T18" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="normal" officeooo:rsid="000d5b36" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T19" style:family="text">
|
|
||||||
<style:text-properties fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T20" style:family="text">
|
|
||||||
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T21" style:family="text">
|
|
||||||
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-weight-complex="normal" style:text-emphasize="none"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T22" style:family="text">
|
|
||||||
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T23" style:family="text">
|
|
||||||
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:text-emphasize="none"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T24" style:family="text">
|
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T25" style:family="text">
|
<style:style style:name="T13" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T26" style:family="text">
|
<style:style style:name="T14" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T27" style:family="text">
|
<style:style style:name="T15" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T28" style:family="text">
|
<style:style style:name="T16" style:family="text">
|
||||||
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/>
|
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T29" style:family="text">
|
<style:style style:name="T17" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T30" style:family="text">
|
<style:style style:name="T18" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T31" style:family="text">
|
<style:style style:name="T19" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T32" style:family="text">
|
<style:style style:name="T20" style:family="text">
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T33" style:family="text">
|
<style:style style:name="T21" style:family="text">
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T22" style:family="text">
|
||||||
<style:text-properties officeooo:rsid="026544ec"/>
|
<style:text-properties officeooo:rsid="026544ec"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T34" style:family="text">
|
<style:style style:name="T23" style:family="text">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
|
<style:style style:name="T24" style:family="text">
|
||||||
|
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T25" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T26" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="bold" officeooo:rsid="000cde7f" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T27" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="bold" officeooo:rsid="000d5b36" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T28" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="bold" officeooo:rsid="0012e334" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T29" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T30" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="normal" officeooo:rsid="000d5b36" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T31" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T32" style:family="text">
|
||||||
|
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T33" style:family="text">
|
||||||
|
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-weight-complex="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T34" style:family="text">
|
||||||
|
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T35" style:family="text">
|
||||||
|
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T36" style:family="text">
|
||||||
|
<style:text-properties style:text-underline-style="none" officeooo:rsid="026544ec"/>
|
||||||
|
</style:style>
|
||||||
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
|
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
|
||||||
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
|
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
@@ -1471,25 +1473,25 @@
|
|||||||
</draw:frame></text:p>
|
</draw:frame></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.B1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.B1" office:value-type="string">
|
||||||
<text:p text:style-name="P3"><text:span text:style-name="T1"><text:placeholder text:placeholder-type="text"><if test="company and company.header"></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P3"><text:placeholder text:placeholder-type="text"><if test="company and company.header"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text"><for each="line in company.header.split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P3"><text:placeholder text:placeholder-type="text"><for each="line in company.header.split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text"><line></text:placeholder></text:p>
|
<text:p text:style-name="P3"><text:placeholder text:placeholder-type="text"><line></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P3"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P5"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P5"><text:placeholder text:placeholder-type="text"><company.rec_name if company else ''></text:placeholder></text:p>
|
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text"><company.rec_name if company else ''></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P6"><text:placeholder text:placeholder-type="text" text:description="if test="company""><if test="company"></text:placeholder></text:p>
|
<text:p text:style-name="P5"><text:placeholder text:placeholder-type="text" text:description="if test="company""><if test="company"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P7"><text:span text:style-name="T2">NIT:</text:span><text:span text:style-name="T3"> </text:span><text:span text:style-name="T4"><text:placeholder text:placeholder-type="text"><company.party.identifiers[0].code></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P6"><text:span text:style-name="T1">NIT:</text:span><text:span text:style-name="T2"> </text:span><text:span text:style-name="T3"><text:placeholder text:placeholder-type="text"><company.party.identifiers[0].code></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P8">Regimen Común</text:p>
|
<text:p text:style-name="P7">Regimen Común</text:p>
|
||||||
<text:p text:style-name="P8"><text:span text:style-name="T4">Actividad Economica 46</text:span><text:span text:style-name="T5">59</text:span></text:p>
|
<text:p text:style-name="P7"><text:span text:style-name="T3">Actividad Economica 46</text:span><text:span text:style-name="T4">59</text:span></text:p>
|
||||||
<text:p text:style-name="P9"><text:span text:style-name="T6">Dirección: </text:span><text:span text:style-name="T4"><text:placeholder text:placeholder-type="text"><company.party.addresses[0].street></text:placeholder></text:span><text:span text:style-name="T4"><text:s/></text:span><text:span text:style-name="T4"><text:placeholder text:placeholder-type="text"><company.party.addresses[0].city></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P8"><text:span text:style-name="T5">Dirección: </text:span><text:span text:style-name="T6"><text:placeholder text:placeholder-type="text"><company.party.addresses[0].street></text:placeholder></text:span><text:span text:style-name="T6"><text:s/></text:span><text:span text:style-name="T6"><text:placeholder text:placeholder-type="text"><company.party.addresses[0].city></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P10"><text:span text:style-name="T7">Teléfono:</text:span><text:span text:style-name="T8"> </text:span><text:span text:style-name="T3"><text:placeholder text:placeholder-type="text"><company.party.phone></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P9"><text:span text:style-name="T7">Teléfono:</text:span><text:span text:style-name="T6"> </text:span><text:span text:style-name="T8"><text:placeholder text:placeholder-type="text"><company.party.phone></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P11"><text:span text:style-name="T9">Celular: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text"><company.party.mobile></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P10"><text:span text:style-name="T9">Celular: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text"><company.party.mobile></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P11"><text:span text:style-name="T11">E-mail</text:span><text:span text:style-name="T9">: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text"><company.party.email></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P10"><text:span text:style-name="T11">E-mail</text:span><text:span text:style-name="T9">: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text"><company.party.email></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P12"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P11"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P13"/>
|
<text:p text:style-name="P12"/>
|
||||||
</style:header>
|
</style:header>
|
||||||
</style:master-page>
|
</style:master-page>
|
||||||
</office:master-styles>
|
</office:master-styles>
|
||||||
@@ -1502,54 +1504,54 @@
|
|||||||
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
|
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
|
||||||
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
|
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
|
||||||
</text:sequence-decls>
|
</text:sequence-decls>
|
||||||
<text:p text:style-name="P21"><text:placeholder text:placeholder-type="text"><for each="shipment in records"></text:placeholder></text:p>
|
<text:p text:style-name="P24"><text:placeholder text:placeholder-type="text"><for each="shipment in records"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P23"><text:span text:style-name="T14">ACTA DE ENTREGA DE EQUIPOS No <text:s text:c="2"/></text:span><text:span text:style-name="T19"><text:placeholder text:placeholder-type="text"><shipment.number></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P26"><text:span text:style-name="T26">ACTA DE ENTREGA DE EQUIPOS No <text:s text:c="2"/></text:span><text:span text:style-name="T31"><text:placeholder text:placeholder-type="text"><shipment.number></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P32"/>
|
<text:p text:style-name="P35"/>
|
||||||
<table:table table:name="Tabla3" table:style-name="Tabla3">
|
<table:table table:name="Tabla3" table:style-name="Tabla3">
|
||||||
<table:table-column table:style-name="Tabla3.A"/>
|
<table:table-column table:style-name="Tabla3.A"/>
|
||||||
<table:table-column table:style-name="Tabla3.B"/>
|
<table:table-column table:style-name="Tabla3.B"/>
|
||||||
<table:table-row table:style-name="Tabla3.1">
|
<table:table-row table:style-name="Tabla3.1">
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P30"><text:span text:style-name="T15">Fecha </text:span><text:span text:style-name="T16">de entrega</text:span><text:span text:style-name="T15">:</text:span><text:span text:style-name="T18"> </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text"><shipment.effective_date and format_date(shipment.effective_date, user.language) or ''></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P33"><text:span text:style-name="T27">Fecha </text:span><text:span text:style-name="T28">de entrega</text:span><text:span text:style-name="T27">:</text:span><text:span text:style-name="T30"> </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text"><shipment.effective_date and format_date(shipment.effective_date, user.language) or ''></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P42"><text:span text:style-name="T23">O</text:span><text:span text:style-name="T22">rden de compra: </text:span><text:span text:style-name="T20"><text:placeholder text:placeholder-type="text" text:description="shipment.outgoing_moves[0].origin.sale.number"><shipment.outgoing_moves[0].origin.sale.number></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P45"><text:span text:style-name="T35">O</text:span><text:span text:style-name="T34">rden de compra: </text:span><text:span text:style-name="T32"><text:placeholder text:placeholder-type="text" text:description="shipment.outgoing_moves[0].origin.sale.number"><shipment.outgoing_moves[0].origin.sale.number></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row table:style-name="Tabla3.1">
|
<table:table-row table:style-name="Tabla3.1">
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P25"><text:span text:style-name="T14">Cliente</text:span><text:span text:style-name="T13">:</text:span><text:span text:style-name="T17"> </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text"><shipment.customer.rec_name></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P28"><text:span text:style-name="T26">Cliente</text:span><text:span text:style-name="T25">:</text:span><text:span text:style-name="T29"> </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text"><shipment.customer.rec_name></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P26"><text:span text:style-name="T13">Nit / C.C: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text"><shipment.customer.tax_identifier.code></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P29"><text:span text:style-name="T25">Nit / C.C: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text"><shipment.customer.tax_identifier.code></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row table:style-name="Tabla3.1">
|
<table:table-row table:style-name="Tabla3.1">
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P41">Ciudad: <text:span text:style-name="T21"><text:placeholder text:placeholder-type="text"><shipment.delivery_address.subdivision_municipality.name></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P44">Ciudad: <text:span text:style-name="T33"><text:placeholder text:placeholder-type="text"><shipment.delivery_address.subdivision_municipality.name></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P27"><text:span text:style-name="T13">Movil: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text"><shipment.customer.mobile></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P30"><text:span text:style-name="T25">Movil: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text"><shipment.customer.mobile></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row table:style-name="Tabla3.1">
|
<table:table-row table:style-name="Tabla3.1">
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P26"><text:span text:style-name="T13">Teléfono: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text"><shipment.customer.phone></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P29"><text:span text:style-name="T25">Teléfono: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text"><shipment.customer.phone></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P28"><text:span text:style-name="T13">Entregado en: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text"><shipment.delivery_address.street></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P31"><text:span text:style-name="T25">Entregado en: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text"><shipment.delivery_address.street></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row table:style-name="Tabla3.1">
|
<table:table-row table:style-name="Tabla3.1">
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P37"/>
|
<text:p text:style-name="P40"/>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P38"/>
|
<text:p text:style-name="P41"/>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P29"/>
|
<text:p text:style-name="P32"/>
|
||||||
<table:table table:name="Tabla1" table:style-name="Tabla1">
|
<table:table table:name="Tabla1" table:style-name="Tabla1">
|
||||||
<table:table-column table:style-name="Tabla1.A"/>
|
<table:table-column table:style-name="Tabla1.A"/>
|
||||||
<table:table-column table:style-name="Tabla1.B"/>
|
<table:table-column table:style-name="Tabla1.B"/>
|
||||||
@@ -1558,27 +1560,27 @@
|
|||||||
<table:table-column table:style-name="Tabla1.F"/>
|
<table:table-column table:style-name="Tabla1.F"/>
|
||||||
<table:table-row table:style-name="Tabla1.1">
|
<table:table-row table:style-name="Tabla1.1">
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P19">Código</text:p>
|
<text:p text:style-name="P57">Código</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P19">Equipo</text:p>
|
<text:p text:style-name="P57">Equipo</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P19">Marca</text:p>
|
<text:p text:style-name="P57">Marca</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P19">Modelo</text:p>
|
<text:p text:style-name="P57">Modelo</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P19">Serial</text:p>
|
<text:p text:style-name="P57">Serial</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.F1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.F1" office:value-type="string">
|
||||||
<text:p text:style-name="P19">Cant</text:p>
|
<text:p text:style-name="P57">Cant</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla1.A2" table:number-columns-spanned="6" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A2" table:number-columns-spanned="6" office:value-type="string">
|
||||||
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text" text:description="for each="move in shipment.inventory_moves""><for each="move in shipment.inventory_moves"></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text" text:description="for each="move in shipment.inventory_moves""><for each="move in shipment.inventory_moves"></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1588,31 +1590,31 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla1.A3" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A3" office:value-type="string">
|
||||||
<text:p text:style-name="P33"><text:placeholder text:placeholder-type="text"><move.product.code></text:placeholder></text:p>
|
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text"><move.product.code></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.B3" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.B3" office:value-type="string">
|
||||||
<text:p text:style-name="P24"><text:placeholder text:placeholder-type="text"><move.product.name></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"><move.product.name></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.C3" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.C3" office:value-type="string">
|
||||||
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text"><if test="move.product.mark_category"></text:placeholder></text:p>
|
<text:p text:style-name="P21"><text:placeholder text:placeholder-type="text"><if test="move.product.mark_category"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P34"><text:placeholder text:placeholder-type="text"><move.product.mark_category.name></text:placeholder></text:p>
|
<text:p text:style-name="P37"><text:placeholder text:placeholder-type="text"><move.product.mark_category.name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P21"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.D3" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.D3" office:value-type="string">
|
||||||
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text"><if test="move.product.model_category"></text:placeholder></text:p>
|
<text:p text:style-name="P21"><text:placeholder text:placeholder-type="text"><if test="move.product.model_category"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text"><move.product.model_category.name></text:placeholder></text:p>
|
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text"><move.product.model_category.name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P58"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P22"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.E3" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.E3" office:value-type="string">
|
||||||
<text:p text:style-name="P34"><text:placeholder text:placeholder-type="text"><move.equipment_serial></text:placeholder></text:p>
|
<text:p text:style-name="P37"><text:placeholder text:placeholder-type="text"><move.equipment_serial></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.F3" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.F3" office:value-type="string">
|
||||||
<text:p text:style-name="P35"><text:placeholder text:placeholder-type="text"><format_number_symbol(move.quantity, user.language, move.uom, digits=move.uom.digits)></text:placeholder></text:p>
|
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><format_number_symbol(move.quantity, user.language, move.uom, digits=move.uom.digits)></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla1.A4" table:number-columns-spanned="6" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A4" table:number-columns-spanned="6" office:value-type="string">
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P43"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1621,25 +1623,25 @@
|
|||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P20"/>
|
<text:p text:style-name="P23"/>
|
||||||
<text:p text:style-name="P31">En mi calidad de Supervisor y/o Representante legal de la entidad contratante y /o comprador, una vez verificados las especificaciones técnicas y funcionamiento de los equipos descritos en el cuadro anterior, me permito hacer la recepción a satisfacción.</text:p>
|
<text:p text:style-name="P34">En mi calidad de Supervisor y/o Representante legal de la entidad contratante y /o comprador, una vez verificados las especificaciones técnicas y funcionamiento de los equipos descritos en el cuadro anterior, me permito hacer la recepción a satisfacción.</text:p>
|
||||||
<text:p text:style-name="P31"/>
|
<text:p text:style-name="P34"/>
|
||||||
<text:p text:style-name="P31">La entrega de los equipos se realiza con los manuales de usuario, manifiestos de importación y hojas de vida.</text:p>
|
<text:p text:style-name="P34">La entrega de los equipos se realiza con los manuales de usuario, manifiestos de importación y hojas de vida.</text:p>
|
||||||
<text:p text:style-name="P31"/>
|
<text:p text:style-name="P34"/>
|
||||||
<table:table table:name="Tabla2" table:style-name="Tabla2">
|
<table:table table:name="Tabla2" table:style-name="Tabla2">
|
||||||
<table:table-column table:style-name="Tabla2.A"/>
|
<table:table-column table:style-name="Tabla2.A"/>
|
||||||
<table:table-column table:style-name="Tabla2.B"/>
|
<table:table-column table:style-name="Tabla2.B"/>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P43">Cordialmente</text:p>
|
<text:p text:style-name="P46">Cordialmente</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P43">Cordialmente Recibido a satisfacción.</text:p>
|
<text:p text:style-name="P46">Cordialmente Recibido a satisfacción.</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P43"><draw:frame draw:style-name="fr2" draw:name="Image1" text:anchor-type="char" svg:x="0.1854in" svg:y="0.0571in" svg:width="1.3909in" svg:height="0.7693in" draw:z-index="1"><draw:image draw:mime-type="image/png">
|
<text:p text:style-name="P46"><draw:frame draw:style-name="fr2" draw:name="Image1" text:anchor-type="char" svg:x="0.1854in" svg:y="0.0571in" svg:width="1.3909in" svg:height="0.7693in" draw:z-index="1"><draw:image draw:mime-type="image/png">
|
||||||
<office:binary-data>iVBORw0KGgoAAAANSUhEUgAABA4AAAI+CAYAAAA8dEjXAAKLKElEQVR4nOz9B4Bd13UeCn97
|
<office:binary-data>iVBORw0KGgoAAAANSUhEUgAABA4AAAI+CAYAAAA8dEjXAAKLKElEQVR4nOz9B4Bd13UeCn97
|
||||||
n3PvnV4ADHolwQawgypUBWXKsmRZcgMSx3qOXCIlTpzELY5f/j+Did9L3OTYUiyHcpEtK3YC
|
n3PvnV4ADHolwQawgypUBWXKsmRZcgMSx3qOXCIlTpzELY5f/j+Did9L3OTYUiyHcpEtK3YC
|
||||||
qFik1QtAkaIosYoEwAIQvc8Mps9t55z91lp7n5kLYFBIAkRbH3lw5557et3ft9f6Vuycg0Kh
|
qFik1QtAkaIosYoEwAIQvc8Mps9t55z91lp7n5kLYFBIAkRbH3lw5557et3ft9f6Vuycg0Kh
|
||||||
@@ -4732,28 +4734,28 @@
|
|||||||
</office:binary-data>
|
</office:binary-data>
|
||||||
</draw:image>
|
</draw:image>
|
||||||
</draw:frame></text:p>
|
</draw:frame></text:p>
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43">_______________________________________</text:p>
|
<text:p text:style-name="P46">_______________________________________</text:p>
|
||||||
<text:p text:style-name="P43">JESUS ANTONIO GIRALDO GRACIA</text:p>
|
<text:p text:style-name="P46">JESUS ANTONIO GIRALDO GRACIA</text:p>
|
||||||
<text:p text:style-name="P43">C.E.O. (Gerente General)<text:tab/></text:p>
|
<text:p text:style-name="P46">C.E.O. (Gerente General)<text:tab/></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43"/>
|
<text:p text:style-name="P46"/>
|
||||||
<text:p text:style-name="P43">_________________________________________</text:p>
|
<text:p text:style-name="P46">_________________________________________</text:p>
|
||||||
<text:p text:style-name="P45">NOMBRE</text:p>
|
<text:p text:style-name="P48">NOMBRE</text:p>
|
||||||
<text:p text:style-name="P43">C.C</text:p>
|
<text:p text:style-name="P46">C.C</text:p>
|
||||||
<text:p text:style-name="P43">CARGO</text:p>
|
<text:p text:style-name="P46">CARGO</text:p>
|
||||||
<text:p text:style-name="P43">TEL/CEL</text:p>
|
<text:p text:style-name="P46">TEL/CEL</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P44"/>
|
<text:p text:style-name="P47"/>
|
||||||
<text:p text:style-name="P22"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P25"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
</office:text>
|
</office:text>
|
||||||
</office:body>
|
</office:body>
|
||||||
</office:document>
|
</office:document>
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2061
report/Maintenances_Historys.fodt
Normal file
2061
report/Maintenances_Historys.fodt
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,30 +1,31 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rpt="http://openoffice.org/2005/report" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||||
<office:meta><meta:generator>LibreOffice/7.3.7.2$Linux_X86_64 LibreOffice_project/30$Build-2</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:32</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="83" meta:word-count="200" meta:character-count="2406" meta:non-whitespace-character-count="2284"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
|
<office:meta><meta:generator>LibreOffice/7.4.6.2$Linux_X86_64 LibreOffice_project/40$Build-2</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:32</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="88" meta:word-count="206" meta:character-count="2679" meta:non-whitespace-character-count="2560"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
|
||||||
<office:settings>
|
<office:settings>
|
||||||
<config:config-item-set config:name="ooo:view-settings">
|
<config:config-item-set config:name="ooo:view-settings">
|
||||||
<config:config-item config:name="ViewAreaTop" config:type="long">38336</config:config-item>
|
<config:config-item config:name="ViewAreaTop" config:type="long">11950</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
|
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaWidth" config:type="long">20048</config:config-item>
|
<config:config-item config:name="ViewAreaWidth" config:type="long">28825</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaHeight" config:type="long">8733</config:config-item>
|
<config:config-item config:name="ViewAreaHeight" config:type="long">12920</config:config-item>
|
||||||
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item-map-indexed config:name="Views">
|
<config:config-item-map-indexed config:name="Views">
|
||||||
<config:config-item-map-entry>
|
<config:config-item-map-entry>
|
||||||
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
|
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
|
||||||
<config:config-item config:name="ViewLeft" config:type="long">1711</config:config-item>
|
<config:config-item config:name="ViewLeft" config:type="long">4925</config:config-item>
|
||||||
<config:config-item config:name="ViewTop" config:type="long">4852</config:config-item>
|
<config:config-item config:name="ViewTop" config:type="long">15117</config:config-item>
|
||||||
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
|
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="VisibleTop" config:type="long">38336</config:config-item>
|
<config:config-item config:name="VisibleTop" config:type="long">11950</config:config-item>
|
||||||
<config:config-item config:name="VisibleRight" config:type="long">20047</config:config-item>
|
<config:config-item config:name="VisibleRight" config:type="long">28824</config:config-item>
|
||||||
<config:config-item config:name="VisibleBottom" config:type="long">47068</config:config-item>
|
<config:config-item config:name="VisibleBottom" config:type="long">24869</config:config-item>
|
||||||
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
||||||
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
|
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
|
||||||
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="ZoomFactor" config:type="short">170</config:config-item>
|
<config:config-item config:name="ZoomFactor" config:type="short">170</config:config-item>
|
||||||
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
|
||||||
|
<config:config-item config:name="HideWhitespace" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
||||||
</config:config-item-map-entry>
|
</config:config-item-map-entry>
|
||||||
</config:config-item-map-indexed>
|
</config:config-item-map-indexed>
|
||||||
@@ -55,6 +56,7 @@
|
|||||||
<config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
|
||||||
|
<config:config-item config:name="WordLikeWrapForAsCharFlys" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
|
||||||
@@ -82,13 +84,14 @@
|
|||||||
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
|
||||||
|
<config:config-item config:name="AutoFirstLineIndentDisregardLineSpace" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
|
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
|
||||||
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="Rsid" config:type="int">4897608</config:config-item>
|
<config:config-item config:name="Rsid" config:type="int">4987782</config:config-item>
|
||||||
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
|
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
|
||||||
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
|
||||||
@@ -102,6 +105,7 @@
|
|||||||
<config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
|
||||||
|
<config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
|
||||||
<config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
|
||||||
@@ -109,6 +113,7 @@
|
|||||||
<config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
|
||||||
|
<config:config-item config:name="NoNumberingShowFollowBy" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
|
<config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
|
||||||
<config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
|
||||||
@@ -159,11 +164,11 @@
|
|||||||
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
|
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
|
||||||
<style:tab-stops/>
|
<style:tab-stops/>
|
||||||
</style:paragraph-properties>
|
</style:paragraph-properties>
|
||||||
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none"/>
|
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" loext:color-lum-mod="100%" loext:color-lum-off="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none"/>
|
||||||
</style:default-style>
|
</style:default-style>
|
||||||
<style:default-style style:family="paragraph">
|
<style:default-style style:family="paragraph">
|
||||||
<style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="lr-tb"/>
|
<style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="lr-tb"/>
|
||||||
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/>
|
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
|
||||||
</style:default-style>
|
</style:default-style>
|
||||||
<style:default-style style:family="table">
|
<style:default-style style:family="table">
|
||||||
<style:table-properties table:border-model="collapsing"/>
|
<style:table-properties table:border-model="collapsing"/>
|
||||||
@@ -683,6 +688,38 @@
|
|||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="7pt" officeooo:paragraph-rsid="0046f4f2" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="7pt" officeooo:paragraph-rsid="0046f4f2" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
|
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="026544ec" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
<style:style style:name="T1" style:family="text">
|
<style:style style:name="T1" style:family="text">
|
||||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
@@ -704,6 +741,30 @@
|
|||||||
<style:style style:name="T7" style:family="text">
|
<style:style style:name="T7" style:family="text">
|
||||||
<style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/>
|
<style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
|
<style:style style:name="T8" style:family="text">
|
||||||
|
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T9" style:family="text">
|
||||||
|
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T10" style:family="text">
|
||||||
|
<style:text-properties fo:color="#333333" loext:opacity="100%" officeooo:rsid="026544ec"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T11" style:family="text">
|
||||||
|
<style:text-properties fo:color="#333333" loext:opacity="100%" officeooo:rsid="0030ce45"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T12" style:family="text">
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T13" style:family="text">
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T14" style:family="text">
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T15" style:family="text">
|
||||||
|
<style:text-properties officeooo:rsid="026544ec"/>
|
||||||
|
</style:style>
|
||||||
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
|
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
|
||||||
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
|
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
@@ -1268,11 +1329,16 @@
|
|||||||
<table:table-row table:style-name="Tabla1.1">
|
<table:table-row table:style-name="Tabla1.1">
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:span text:style-name="T2">Fecha</text:span><text:span text:style-name="T1">: </text:span><text:span text:style-name="T1"><text:placeholder text:placeholder-type="text"><format_date(purchase.purchase_date or today, purchase.party.lang)></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P38"><text:span text:style-name="T2">Fecha</text:span><text:span text:style-name="T1">: </text:span><text:span text:style-name="T1"><text:placeholder text:placeholder-type="text"><format_date(purchase.purchase_date or today, purchase.party.lang)></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P28"><text:span text:style-name="T1">NIT:</text:span> 901091201-1</text:p>
|
<text:p text:style-name="P55"><text:placeholder text:placeholder-type="text" text:description="if test="purchase.company""><if test="purchase.company"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28">Regimen Común</text:p>
|
<text:p text:style-name="P56"><text:placeholder text:placeholder-type="text" text:description="purchase.company and purchase.company.rec_name"><purchase.company and purchase.company.rec_name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28">Actividad Economica 4690</text:p>
|
<text:p text:style-name="P50"><text:span text:style-name="T9">NIT:</text:span><text:span text:style-name="T13"> </text:span><text:span text:style-name="T12"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.identifiers[0].code"><purchase.company.party.identifiers[0].code></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P28">CARRERA 16 No 52-85 PISO 4</text:p>
|
<text:p text:style-name="P51">Regimen Común</text:p>
|
||||||
<text:p text:style-name="P28"><text:span text:style-name="T1">Tel:</text:span> 7163487-3000931 <text:s text:c="4"/>BOGOTA</text:p>
|
<text:p text:style-name="P51"><text:span text:style-name="T12">Actividad Economica 46</text:span><text:span text:style-name="T14">59</text:span></text:p>
|
||||||
|
<text:p text:style-name="P52"><text:span text:style-name="T8">Dirección: </text:span><text:span text:style-name="T12"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.addresses[0].street"><purchase.company.party.addresses[0].street></text:placeholder></text:span><text:span text:style-name="T12"><text:s/></text:span><text:span text:style-name="T12"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.addresses[0].city"><purchase.company.party.addresses[0].city></text:placeholder></text:span></text:p>
|
||||||
|
<text:p text:style-name="P53"><text:span text:style-name="T9">Teléfono:</text:span><text:span text:style-name="T12"> </text:span><text:span text:style-name="T13"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.phone"><purchase.company.party.phone></text:placeholder></text:span></text:p>
|
||||||
|
<text:p text:style-name="P57"><text:span text:style-name="T10">Celular: </text:span><text:span text:style-name="T15"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.mobile"><purchase.company.party.mobile></text:placeholder></text:span></text:p>
|
||||||
|
<text:p text:style-name="P57"><text:span text:style-name="T11">E-mail</text:span><text:span text:style-name="T10">: </text:span><text:span text:style-name="T15"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.email"><purchase.company.party.email></text:placeholder></text:span></text:p>
|
||||||
|
<text:p text:style-name="P54"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"><replace text:p="set_lang(purchase.party.lang)"></text:placeholder></text:p>
|
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"><replace text:p="set_lang(purchase.party.lang)"></text:placeholder></text:p>
|
||||||
@@ -1349,7 +1415,7 @@
|
|||||||
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"></if></text:placeholder><text:tab/></text:p>
|
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"></if></text:placeholder><text:tab/></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table1.B5" office:value-type="string">
|
<table:table-cell table:style-name="Table1.B5" office:value-type="string">
|
||||||
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text"><format_number_symbol(line.quantity, purchase.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, purchase.party.lang)></text:placeholder></text:p>
|
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text"><format_number_symbol(line.quantity, purchase.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, purchase.party.lang)></text:placeholder><text:soft-page-break/></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table1.C5" office:value-type="string">
|
<table:table-cell table:style-name="Table1.C5" office:value-type="string">
|
||||||
<text:p text:style-name="P19"><text:placeholder text:placeholder-type="text"><format_currency(line.unit_price, purchase.party.lang, purchase.currency, digits=line.__class__.unit_price.digits[1])></text:placeholder></text:p>
|
<text:p text:style-name="P19"><text:placeholder text:placeholder-type="text"><format_currency(line.unit_price, purchase.party.lang, purchase.currency, digits=line.__class__.unit_price.digits[1])></text:placeholder></text:p>
|
||||||
@@ -1363,7 +1429,6 @@
|
|||||||
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text"><format_currency(line.amount, purchase.party.lang, purchase.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text"><format_currency(line.amount, purchase.party.lang, purchase.currency)></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<text:soft-page-break/>
|
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Table1.A2" table:number-columns-spanned="5" office:value-type="string">
|
<table:table-cell table:style-name="Table1.A2" table:number-columns-spanned="5" office:value-type="string">
|
||||||
<text:p text:style-name="P23"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P23"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
|
|||||||
356
report/Sale.fodt
356
report/Sale.fodt
@@ -1,31 +1,30 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||||
<office:meta><meta:generator>LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:33</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="4" meta:paragraph-count="146" meta:word-count="462" meta:character-count="4424" meta:non-whitespace-character-count="4078"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
|
<office:meta><meta:generator>LibreOffice/7.4.7.2$Linux_X86_64 LibreOffice_project/40$Build-2</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:33</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="4" meta:paragraph-count="147" meta:word-count="462" meta:character-count="4423" meta:non-whitespace-character-count="4077"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
|
||||||
<office:settings>
|
<office:settings>
|
||||||
<config:config-item-set config:name="ooo:view-settings">
|
<config:config-item-set config:name="ooo:view-settings">
|
||||||
<config:config-item config:name="ViewAreaTop" config:type="long">9169</config:config-item>
|
<config:config-item config:name="ViewAreaTop" config:type="long">68703</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
|
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaWidth" config:type="long">27224</config:config-item>
|
<config:config-item config:name="ViewAreaWidth" config:type="long">30628</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaHeight" config:type="long">11643</config:config-item>
|
<config:config-item config:name="ViewAreaHeight" config:type="long">13744</config:config-item>
|
||||||
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item-map-indexed config:name="Views">
|
<config:config-item-map-indexed config:name="Views">
|
||||||
<config:config-item-map-entry>
|
<config:config-item-map-entry>
|
||||||
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
|
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
|
||||||
<config:config-item config:name="ViewLeft" config:type="long">15392</config:config-item>
|
<config:config-item config:name="ViewLeft" config:type="long">5383</config:config-item>
|
||||||
<config:config-item config:name="ViewTop" config:type="long">17563</config:config-item>
|
<config:config-item config:name="ViewTop" config:type="long">77264</config:config-item>
|
||||||
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
|
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="VisibleTop" config:type="long">9169</config:config-item>
|
<config:config-item config:name="VisibleTop" config:type="long">68703</config:config-item>
|
||||||
<config:config-item config:name="VisibleRight" config:type="long">27222</config:config-item>
|
<config:config-item config:name="VisibleRight" config:type="long">30626</config:config-item>
|
||||||
<config:config-item config:name="VisibleBottom" config:type="long">20810</config:config-item>
|
<config:config-item config:name="VisibleBottom" config:type="long">82446</config:config-item>
|
||||||
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
||||||
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
|
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
|
||||||
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="ZoomFactor" config:type="short">180</config:config-item>
|
<config:config-item config:name="ZoomFactor" config:type="short">160</config:config-item>
|
||||||
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
|
||||||
<config:config-item config:name="HideWhitespace" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
||||||
</config:config-item-map-entry>
|
</config:config-item-map-entry>
|
||||||
</config:config-item-map-indexed>
|
</config:config-item-map-indexed>
|
||||||
@@ -91,7 +90,7 @@
|
|||||||
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
|
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
|
||||||
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="Rsid" config:type="int">3198533</config:config-item>
|
<config:config-item config:name="Rsid" config:type="int">3302942</config:config-item>
|
||||||
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
|
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
|
||||||
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
|
||||||
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
|
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
|
||||||
@@ -652,175 +651,191 @@
|
|||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="003077b6" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="003077b6" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="026544ec" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0021bfc5" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0021bfc5" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00203939" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00203939" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="002db4b9" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="002db4b9" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0008048e" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0008048e" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Heading_20_2">
|
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Heading_20_2">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Heading_20_2">
|
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Heading_20_2">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0014b27d" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0014b27d" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:text-properties officeooo:paragraph-rsid="0023d589"/>
|
<style:text-properties officeooo:paragraph-rsid="0023d589"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
|
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
|
||||||
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
|
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0874in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0874in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
|
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
|
||||||
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
|
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
|
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
|
||||||
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
|
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="italic" fo:font-weight="bold" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="italic" fo:font-weight="bold" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="00203939" officeooo:paragraph-rsid="00203939" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="00203939" officeooo:paragraph-rsid="00203939" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
<style:style style:name="P58" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="003bba97" officeooo:paragraph-rsid="003bba97" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="003bba97" officeooo:paragraph-rsid="003bba97" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
<style:style style:name="P59" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001cd488" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001cd488" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P58" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
<style:style style:name="P60" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P59" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P61" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P60" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P62" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:line-height="100%" fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:line-height="100%" fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P61" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P63" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P62" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
<style:style style:name="P64" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P63" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
<style:style style:name="P65" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-name-complex="Cantarell1" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-name-complex="Cantarell1" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P64" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
<style:style style:name="P66" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P65" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P67" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P66" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P68" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P67" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P69" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P68" style:family="paragraph" style:parent-style-name="Standard">
|
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P69" style:family="paragraph" style:parent-style-name="Text_20_body">
|
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P70" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P70" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P71" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P72" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P71" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P73" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties officeooo:paragraph-rsid="002ee59e"/>
|
<style:text-properties officeooo:paragraph-rsid="002ee59e"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P72" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P73" style:family="paragraph" style:parent-style-name="Header">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P74" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P74" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P75" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P75" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0030ce45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P76" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P76" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P77" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P77" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0030ce45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P78" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P79" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P80" style:family="paragraph" style:parent-style-name="Header">
|
||||||
|
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0030ce45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P81" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
|
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0032661e" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T1" style:family="text">
|
<style:style style:name="T1" style:family="text">
|
||||||
<style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="00203939" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
<style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="00203939" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
@@ -1680,45 +1695,45 @@
|
|||||||
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
|
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
|
||||||
</text:sequence-decls>
|
</text:sequence-decls>
|
||||||
<text:p text:style-name="P16"><text:placeholder text:placeholder-type="text"><for each="sale in records"></text:placeholder></text:p>
|
<text:p text:style-name="P16"><text:placeholder text:placeholder-type="text"><for each="sale in records"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P71"><text:placeholder text:placeholder-type="text"><choose test=""></text:placeholder></text:p>
|
<text:p text:style-name="P73"><text:placeholder text:placeholder-type="text"><choose test=""></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P17"><text:placeholder text:placeholder-type="text"><when test="sale.quote_number != None or sale.number != None"></text:placeholder></text:p>
|
<text:p text:style-name="P17"><text:placeholder text:placeholder-type="text"><when test="sale.quote_number != None or sale.number != None"></text:placeholder></text:p>
|
||||||
<table:table table:name="Tabla2" table:style-name="Tabla2">
|
<table:table table:name="Tabla2" table:style-name="Tabla2">
|
||||||
<table:table-column table:style-name="Tabla2.A"/>
|
<table:table-column table:style-name="Tabla2.A"/>
|
||||||
<table:table-column table:style-name="Tabla2.B"/>
|
<table:table-column table:style-name="Tabla2.B"/>
|
||||||
<table:table-row table:style-name="Tabla2.1">
|
<table:table-row table:style-name="Tabla2.1">
|
||||||
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P69"><text:span text:style-name="T12">Fecha</text:span><text:span text:style-name="T11">: </text:span><text:span text:style-name="T11"><text:placeholder text:placeholder-type="text"><format_date(sale.sale_date or today, sale.party.lang)></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P71"><text:span text:style-name="T12">Fecha</text:span><text:span text:style-name="T11">: </text:span><text:span text:style-name="T11"><text:placeholder text:placeholder-type="text"><format_date(sale.sale_date or today, sale.party.lang)></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla2.A1" table:number-rows-spanned="2" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" table:number-rows-spanned="2" office:value-type="string">
|
||||||
<text:p text:style-name="P73"><text:placeholder text:placeholder-type="text" text:description="if test="sale.company""><if test="sale.company"></text:placeholder></text:p>
|
<text:p text:style-name="P76"><text:placeholder text:placeholder-type="text" text:description="if test="sale.company""><if test="sale.company"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P74"><text:placeholder text:placeholder-type="text" text:description="sale.company and sale.company.rec_name"><sale.company and sale.company.rec_name></text:placeholder></text:p>
|
<text:p text:style-name="P77"><text:placeholder text:placeholder-type="text" text:description="sale.company and sale.company.rec_name"><sale.company and sale.company.rec_name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P31"><text:span text:style-name="T33">NIT:</text:span><text:span text:style-name="T41"> </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text"><sale.company.party.identifiers[0].code></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P31"><text:span text:style-name="T33">NIT:</text:span><text:span text:style-name="T41"> </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text"><sale.company.party.identifiers[0].code></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P33">Regimen Común</text:p>
|
<text:p text:style-name="P33">Regimen Común</text:p>
|
||||||
<text:p text:style-name="P33"><text:span text:style-name="T40">Actividad Economica 46</text:span><text:span text:style-name="T42">59</text:span></text:p>
|
<text:p text:style-name="P33"><text:span text:style-name="T40">Actividad Economica 46</text:span><text:span text:style-name="T42">59</text:span></text:p>
|
||||||
<text:p text:style-name="P29"><text:span text:style-name="T32">Dirección: </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text"><sale.company.party.addresses[0].street></text:placeholder></text:span><text:span text:style-name="T40"><text:s/></text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text"><sale.company.party.addresses[0].city></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P34"><text:span text:style-name="T32">Dirección: </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text"><sale.company.party.addresses[0].street></text:placeholder></text:span><text:span text:style-name="T40"><text:s/></text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text"><sale.company.party.addresses[0].city></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P30"><text:span text:style-name="T33">Teléfono:</text:span><text:span text:style-name="T40"> </text:span><text:span text:style-name="T41"><text:placeholder text:placeholder-type="text"><sale.company.party.phone></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P35"><text:span text:style-name="T33">Teléfono:</text:span><text:span text:style-name="T40"> </text:span><text:span text:style-name="T41"><text:placeholder text:placeholder-type="text"><sale.company.party.phone></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P72"><text:span text:style-name="T34">Celular: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text"><sale.company.party.mobile></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P79"><text:span text:style-name="T34">Celular: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text"><sale.company.party.mobile></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P77"><text:span text:style-name="T35">E-mail</text:span><text:span text:style-name="T34">: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text"><sale.company.party.email></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P80"><text:span text:style-name="T35">E-mail</text:span><text:span text:style-name="T34">: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text"><sale.company.party.email></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P75"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P78"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row table:style-name="Tabla2.2">
|
<table:table-row table:style-name="Tabla2.2">
|
||||||
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P65">Cotizado a: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.propietary.name"><sale.party.name></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P67">Cotizado a: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.propietary.name"><sale.party.name></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P68"><text:placeholder text:placeholder-type="text"><if test="sale.party.tax_identifier"></text:placeholder></text:p>
|
<text:p text:style-name="P70"><text:placeholder text:placeholder-type="text"><if test="sale.party.tax_identifier"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P68"><text:span text:style-name="T13">Nit o Cedula</text:span><text:span text:style-name="T11">:</text:span> <text:placeholder text:placeholder-type="text"><sale.party.tax_identifier.code></text:placeholder></text:p>
|
<text:p text:style-name="P70"><text:span text:style-name="T13">Nit o Cedula</text:span><text:span text:style-name="T11">:</text:span> <text:placeholder text:placeholder-type="text"><sale.party.tax_identifier.code></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P70"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P72"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P66">Dirección: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.street"><sale.invoice_address.street></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P68">Dirección: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.street"><sale.invoice_address.street></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P67">Ciudad: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.subdivision_municipality"><sale.invoice_address.subdivision_municipality.name></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P69">Ciudad: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.subdivision_municipality"><sale.invoice_address.subdivision_municipality.name></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P67"><text:span text:style-name="T20">T</text:span><text:span text:style-name="T19">elefono: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.contact.value"><sale.contact.value></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P69"><text:span text:style-name="T20">T</text:span><text:span text:style-name="T19">elefono: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.contact.value"><sale.contact.value></text:placeholder></text:span></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell table:style-name="Tabla2.A1"/>
|
<table:covered-table-cell table:style-name="Tabla2.A1"/>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P51"/>
|
<text:p text:style-name="P53"/>
|
||||||
<text:p text:style-name="P51">Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes</text:p>
|
<text:p text:style-name="P53">Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes</text:p>
|
||||||
<text:p text:style-name="P53">Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados.</text:p>
|
<text:p text:style-name="P55">Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados.</text:p>
|
||||||
<text:p text:style-name="P52"><text:span text:style-name="T16">" SMART VISION cambia tu forma de ver el mundo</text:span><text:span text:style-name="T15">"</text:span></text:p>
|
<text:p text:style-name="P54"><text:span text:style-name="T16">" SMART VISION cambia tu forma de ver el mundo</text:span><text:span text:style-name="T15">"</text:span></text:p>
|
||||||
<table:table table:name="Tabla4" table:style-name="Tabla4">
|
<table:table table:name="Tabla4" table:style-name="Tabla4">
|
||||||
<table:table-column table:style-name="Tabla4.A"/>
|
<table:table-column table:style-name="Tabla4.A"/>
|
||||||
<table:table-column table:style-name="Tabla4.B"/>
|
<table:table-column table:style-name="Tabla4.B"/>
|
||||||
@@ -1732,37 +1747,37 @@
|
|||||||
<table:table-header-rows>
|
<table:table-header-rows>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P54">Descrip<text:span text:style-name="T3">c</text:span>ión</text:p>
|
<text:p text:style-name="P56">Descrip<text:span text:style-name="T3">c</text:span>ión</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P55">Modelo</text:p>
|
<text:p text:style-name="P57">Modelo</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P55">Marca</text:p>
|
<text:p text:style-name="P57">Marca</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P55">Origen</text:p>
|
<text:p text:style-name="P57">Origen</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P55">Garantia</text:p>
|
<text:p text:style-name="P57">Garantia</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P56">Cantidad</text:p>
|
<text:p text:style-name="P58">Cantidad</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P56">Precio u/n</text:p>
|
<text:p text:style-name="P58">Precio u/n</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P55">IVA</text:p>
|
<text:p text:style-name="P57">IVA</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.I1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.I1" office:value-type="string">
|
||||||
<text:p text:style-name="P56">Total</text:p>
|
<text:p text:style-name="P58">Total</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table-header-rows>
|
</table:table-header-rows>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A2" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A2" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><for each="line in sale.lines"></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><for each="line in sale.lines"></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1775,7 +1790,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A3" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A3" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><choose test=""></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><choose test=""></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1788,7 +1803,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A4" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A4" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><when test="line.type == 'line'"></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><when test="line.type == 'line'"></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1801,61 +1816,61 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A5" office:value-type="string">
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"><line.product.rec_name></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"><line.product.rec_name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"><if test="line.description"></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"><if test="line.description"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"><for each="description in line.description.split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"><for each="description in line.description.split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
<text:p text:style-name="P51"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P49"><text:soft-page-break/><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P51"><text:soft-page-break/><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P51"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.B5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.B5" office:value-type="string">
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><if test="line.product.model_category"></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product.model_category"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P41"><text:placeholder text:placeholder-type="text"><line.product.model_category.name></text:placeholder><text:soft-page-break/></text:p>
|
<text:p text:style-name="P43"><text:placeholder text:placeholder-type="text"><line.product.model_category.name></text:placeholder><text:soft-page-break/></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.C5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.C5" office:value-type="string">
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><if test="line.product.mark_category"></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product.mark_category"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:soft-page-break/><text:placeholder text:placeholder-type="text"><line.product.mark_category.name></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:soft-page-break/><text:placeholder text:placeholder-type="text"><line.product.mark_category.name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.D5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.D5" office:value-type="string">
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><if test="line.product.origin_country"></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product.origin_country"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><line.product.origin_country.name></text:placeholder><text:soft-page-break/></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><line.product.origin_country.name></text:placeholder><text:soft-page-break/></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.E5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.E5" office:value-type="string">
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><if test="line.product.warranty"></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><if test="line.product.warranty"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><line.product.warranty></text:placeholder><text:soft-page-break/><text:s/><text:span text:style-name="T21">Meses</text:span></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"><line.product.warranty></text:placeholder><text:soft-page-break/><text:s/><text:span text:style-name="T21">Meses</text:span></text:p>
|
||||||
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
|
||||||
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.F5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.F5" office:value-type="string">
|
||||||
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text"><format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)></text:placeholder><text:soft-page-break/></text:p>
|
<text:p text:style-name="P41"><text:placeholder text:placeholder-type="text"><format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)></text:placeholder><text:soft-page-break/></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.G5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.G5" office:value-type="string">
|
||||||
<text:p text:style-name="P43"><text:placeholder text:placeholder-type="text"><format_currency(line.unit_price, sale.party.lang, sale.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text"><format_currency(line.unit_price, sale.party.lang, sale.currency)></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.H5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.H5" office:value-type="string">
|
||||||
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text"><for each="tax in line.taxes"></text:placeholder></text:p>
|
<text:p text:style-name="P41"><text:placeholder text:placeholder-type="text"><for each="tax in line.taxes"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text"><tax.description></text:placeholder></text:p>
|
<text:p text:style-name="P41"><text:placeholder text:placeholder-type="text"><tax.description></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P41"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla4.I5" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.I5" office:value-type="string">
|
||||||
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"><format_currency(line.amount, sale.party.lang, sale.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text"><format_currency(line.amount, sale.party.lang, sale.currency)></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A6" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A6" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1868,7 +1883,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A7" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A7" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><when test="line.type == 'subtotal'"></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><when test="line.type == 'subtotal'"></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1881,10 +1896,10 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A8" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A8" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text"><for each="description in (line.description or '').split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><for each="description in (line.description or '').split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text"><format_currency(line.amount, sale.party.lang, sale.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text"><format_currency(line.amount, sale.party.lang, sale.currency)></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1897,7 +1912,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A9" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A9" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1910,7 +1925,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A10" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A10" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><when test="line.type == 'title'"></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><when test="line.type == 'title'"></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1923,9 +1938,9 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text"><for each="description in (line.description or '').split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><for each="description in (line.description or '').split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1938,7 +1953,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1951,7 +1966,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text"><otherwise test=""></text:placeholder></text:p>
|
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text"><otherwise test=""></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -1964,9 +1979,9 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"><for each="description in (line.description or '').split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"><for each="description in (line.description or '').split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
<text:p text:style-name="P50"><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:soft-page-break/><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P49"><text:soft-page-break/><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
<table:covered-table-cell/>
|
<table:covered-table-cell/>
|
||||||
@@ -2064,28 +2079,29 @@
|
|||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text"><for each="comment in (sale.comment or '').split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text"><for each="comment in (sale.comment or '').split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P34">CONDICIONES DE NEGOCIACION Y PAGO:</text:p>
|
<text:p text:style-name="P36">CONDICIONES DE NEGOCIACION Y PAGO:</text:p>
|
||||||
<text:p text:style-name="P35"><text:s text:c="2"/>Tiempo de entrega: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.description"><sale.description></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P37"><text:s text:c="2"/>Tiempo de entrega: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.description"><sale.description></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P36"><text:s text:c="2"/>Forma de pago: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.payment_term.name if sale.payment_term else """><sale.payment_term.name if sale.payment_term else ""></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P81"><text:s text:c="2"/>Forma de pago:</text:p>
|
||||||
<text:p text:style-name="P34">Medios de pago:</text:p>
|
<text:p text:style-name="P81"><text:s/><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.payment_term.name if sale.payment_term else """><sale.payment_term_description if sale.payment_term_description else ""></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>Efectivo, Consignación o transferencia a la cuenta corriente Bancolombia # 053813599-86 a nombre de SMART VISION SAS</text:p>
|
<text:p text:style-name="P36">Medios de pago:</text:p>
|
||||||
<text:p text:style-name="P34">DOCUMENTACIÓN ENTREGADA CON LOS EQUIPOS</text:p>
|
<text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>Efectivo, Consignación o transferencia a la cuenta corriente Bancolombia # 053813599-86 a nombre de SMART VISION SAS</text:p>
|
||||||
<text:p text:style-name="P37"><text:s text:c="2"/>- Factura</text:p>
|
<text:p text:style-name="P36">DOCUMENTACIÓN ENTREGADA CON LOS EQUIPOS</text:p>
|
||||||
<text:p text:style-name="P64"><text:s text:c="2"/>- Certificado de capacitación</text:p>
|
<text:p text:style-name="P39"><text:s text:c="2"/>- Factura</text:p>
|
||||||
<text:p text:style-name="P64"><text:s text:c="2"/>- Manifiesto de importación (si aplica)</text:p>
|
<text:p text:style-name="P66"><text:s text:c="2"/>- Certificado de capacitación</text:p>
|
||||||
<text:p text:style-name="P64"><text:s text:c="2"/>- Hoja de vida de cada equipo </text:p>
|
<text:p text:style-name="P66"><text:s text:c="2"/>- Manifiesto de importación (si aplica)</text:p>
|
||||||
<text:p text:style-name="P64"><text:s text:c="2"/>- Certificado de calibración (Para equipos usados)</text:p>
|
<text:p text:style-name="P66"><text:s text:c="2"/>- Hoja de vida de cada equipo </text:p>
|
||||||
<text:p text:style-name="P34">Otras condiciones:</text:p>
|
<text:p text:style-name="P66"><text:s text:c="2"/>- Certificado de calibración (Para equipos usados)</text:p>
|
||||||
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a <text:s text:c="2"/>Bogotá).</text:p>
|
<text:p text:style-name="P36">Otras condiciones:</text:p>
|
||||||
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Garantía no incluye bombillos o piezas de desgaste por uso.</text:p>
|
<text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a <text:s text:c="2"/>Bogotá).</text:p>
|
||||||
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Con el envío de los equipos se entregarán las hojas de vida.</text:p>
|
<text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Garantía no incluye bombillos o piezas de desgaste por uso.</text:p>
|
||||||
<text:p text:style-name="P62"><text:span text:style-name="T18"><text:s text:c="2"/></text:span><text:span text:style-name="T17">- La Factura de venta definitiva será entregada al confirmar el pago total.</text:span></text:p>
|
<text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Con el envío de los equipos se entregarán las hojas de vida.</text:p>
|
||||||
<text:p text:style-name="P57"/>
|
<text:p text:style-name="P64"><text:span text:style-name="T18"><text:s text:c="2"/></text:span><text:span text:style-name="T17">- La Factura de venta definitiva será entregada al confirmar el pago total.</text:span></text:p>
|
||||||
<text:p text:style-name="P57">OBSERVACIONES ADICIONALES</text:p>
|
<text:p text:style-name="P59"/>
|
||||||
<text:p text:style-name="P59"><text:soft-page-break/><text:span text:style-name="T22"><text:s text:c="2"/>- </text:span><text:span text:style-name="T22"><text:placeholder text:placeholder-type="text" text:description="sale.comment"><sale.comment></text:placeholder></text:span></text:p>
|
<text:p text:style-name="P59"><text:soft-page-break/>OBSERVACIONES ADICIONALES</text:p>
|
||||||
<text:p text:style-name="P34"/>
|
<text:p text:style-name="P61"><text:span text:style-name="T22"><text:s text:c="2"/>- </text:span><text:span text:style-name="T22"><text:placeholder text:placeholder-type="text" text:description="sale.comment"><sale.comment></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P58">VIGENCIA DE LA COTIZACIÓN: <text:span text:style-name="T24">30 D</text:span><text:span text:style-name="T25">ías</text:span></text:p>
|
<text:p text:style-name="P36"/>
|
||||||
<text:p text:style-name="P61">Cordialmente</text:p>
|
<text:p text:style-name="P60">VIGENCIA DE LA COTIZACIÓN: <text:span text:style-name="T24">30 D</text:span><text:span text:style-name="T25">ías</text:span></text:p>
|
||||||
|
<text:p text:style-name="P63">Cordialmente</text:p>
|
||||||
<table:table table:name="Tabla3" table:style-name="Tabla3">
|
<table:table table:name="Tabla3" table:style-name="Tabla3">
|
||||||
<table:table-column table:style-name="Tabla3.A"/>
|
<table:table-column table:style-name="Tabla3.A"/>
|
||||||
<table:table-column table:style-name="Tabla3.B"/>
|
<table:table-column table:style-name="Tabla3.B"/>
|
||||||
@@ -5195,8 +5211,8 @@
|
|||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P60"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P62"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P60"><text:placeholder text:placeholder-type="text"></choose></text:placeholder></text:p>
|
<text:p text:style-name="P62"><text:placeholder text:placeholder-type="text"></choose></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P23"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P23"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P20"/>
|
<text:p text:style-name="P20"/>
|
||||||
<text:p text:style-name="P20"/>
|
<text:p text:style-name="P20"/>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
2589
report/Service.fodt
Normal file
2589
report/Service.fodt
Normal file
File diff suppressed because it is too large
Load Diff
1207
report/balance_sale_party.fods
Normal file
1207
report/balance_sale_party.fods
Normal file
File diff suppressed because it is too large
Load Diff
213
sale.py
213
sale.py
@@ -1,18 +1,18 @@
|
|||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import ModelView, ModelSQL, fields
|
from trytond.model import ModelView, fields
|
||||||
from trytond.modules.currency.fields import Monetary
|
from trytond.pyson import Eval, If
|
||||||
from trytond.pyson import Eval, Bool, If, Get, Equal
|
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from trytond.modules.product import price_digits
|
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
from trytond.model import Workflow
|
from trytond.model import Workflow
|
||||||
from trytond.modules.company.model import (
|
from trytond.modules.company.model import (
|
||||||
employee_field, set_employee, reset_employee)
|
set_employee)
|
||||||
|
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
from trytond.wizard import (
|
from trytond.wizard import (
|
||||||
Button, StateAction, StateTransition, StateView, Wizard)
|
Button, StateAction, StateView, Wizard)
|
||||||
|
from trytond.i18n import gettext
|
||||||
|
from trytond.modules.sale.exceptions import PartyLocationError
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
class Sale(metaclass=PoolMeta):
|
class Sale(metaclass=PoolMeta):
|
||||||
@@ -20,43 +20,56 @@ class Sale(metaclass=PoolMeta):
|
|||||||
__name__ = 'sale.sale'
|
__name__ = 'sale.sale'
|
||||||
|
|
||||||
quote_number = fields.Char("Quote Number", readonly=True)
|
quote_number = fields.Char("Quote Number", readonly=True)
|
||||||
sale_type = fields.Selection([('maintenance', 'Maintenance'),
|
|
||||||
|
sale_type = fields.Selection([
|
||||||
|
('maintenance', 'Maintenance'),
|
||||||
('equipments', 'Equipments'),
|
('equipments', 'Equipments'),
|
||||||
('replaces', 'Replaces')], "Sale Type", required=True,
|
('replaces', 'Replaces')],
|
||||||
states={'readonly': Eval('state') != 'draft'})
|
"Sale Type", required=True,
|
||||||
maintenance_type = fields.Selection([('', ""),
|
states={
|
||||||
|
'readonly': Eval('state') != 'draft'})
|
||||||
|
|
||||||
|
maintenance_type = fields.Selection([
|
||||||
|
('', ""),
|
||||||
('preventive', 'Preventive'),
|
('preventive', 'Preventive'),
|
||||||
('corrective', 'Corrective')
|
('corrective', 'Corrective')],
|
||||||
], "Maintenance Type",
|
"Maintenance Type",
|
||||||
states={
|
states={
|
||||||
'invisible': Eval('sale_type') != "maintenance",
|
'invisible': Eval('sale_type') != "maintenance",
|
||||||
'required': Eval('sale_type') == "maintenance",
|
'required': Eval('sale_type') == "maintenance",
|
||||||
'readonly': Eval('state') != 'draft'},
|
'readonly': Eval('state') != 'draft'},
|
||||||
depends=['sale_type'])
|
depends=['sale_type'])
|
||||||
|
|
||||||
contract_ref = fields.Reference("Contract Base", selection='get_origin_contract',
|
contract_ref = fields.Reference(
|
||||||
domain=[('party', '=', Eval('party')),
|
"Contract Base", selection='get_origin_contract',
|
||||||
('state', '=', 'closed')],
|
domain={
|
||||||
states={'invisible': (Eval('sale_type') != 'maintenance')},
|
'optical_equipment.contract': [
|
||||||
|
('party', '=', Eval('party')),
|
||||||
|
('state', '=', 'closed'),
|
||||||
|
]},
|
||||||
|
states={
|
||||||
|
'invisible': (
|
||||||
|
Eval('sale_type') != 'maintenance')},
|
||||||
search_context={
|
search_context={
|
||||||
'related_party': Eval('party'),
|
'related_party': Eval('party'), })
|
||||||
},)
|
|
||||||
agended = fields.Boolean("Scheduling",states={
|
|
||||||
'invisible': (Eval('sale_type') != 'maintenance'),
|
|
||||||
'readonly': True})
|
|
||||||
|
|
||||||
|
agended = fields.Boolean("Scheduling", states={
|
||||||
|
'invisible': (Eval('sale_type') != 'maintenance')})
|
||||||
|
payment_term_description = fields.Char("Payment Term", states={
|
||||||
|
'readonly': Eval('state') != 'draft',
|
||||||
|
}, depends=['state'])
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
super(Sale, cls).__setup__()
|
super(Sale, cls).__setup__()
|
||||||
cls.contact.states['required']=True
|
cls.contact.states['required'] = True
|
||||||
cls.description.states['required']=True
|
cls.description.states['required'] = True
|
||||||
cls.sale_date.states['required']=True
|
cls.sale_date.states['required'] = True
|
||||||
cls.payment_term.states['required']=True
|
|
||||||
cls._buttons.update({
|
cls._buttons.update({
|
||||||
'draft': {
|
'draft': {
|
||||||
'invisible': (Eval('state').in_(
|
'invisible': (Eval('state').in_(
|
||||||
['cancelled', 'draft'])) | (Eval('shipment_state') == 'sent')}})
|
['cancelled', 'draft']))},
|
||||||
|
'report': {}})
|
||||||
|
|
||||||
cls._transitions |= set((
|
cls._transitions |= set((
|
||||||
('draft', 'quotation'),
|
('draft', 'quotation'),
|
||||||
@@ -73,23 +86,29 @@ class Sale(metaclass=PoolMeta):
|
|||||||
('processing', 'draft')
|
('processing', 'draft')
|
||||||
))
|
))
|
||||||
|
|
||||||
@fields.depends('lines', 'sale_type', 'agended')
|
|
||||||
def on_chage_sale_type(self):
|
|
||||||
self.lines= []
|
|
||||||
if self.sale_type != "maintenance":
|
|
||||||
self.agended = False
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_agended(self):
|
def default_agended(self):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_sale_date(cls):
|
||||||
|
return datetime.today().date()
|
||||||
|
|
||||||
|
@fields.depends('lines', 'sale_type', 'agended')
|
||||||
|
def on_chage_sale_type(self):
|
||||||
|
self.lines = []
|
||||||
|
if self.sale_type != "maintenance":
|
||||||
|
self.agended = False
|
||||||
|
elif self.sale_type == "maintenance":
|
||||||
|
self.invoice_method = 'order'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_origin_contract(cls):
|
def _get_origin_contract(cls):
|
||||||
'Return list of Model names for origin Reference'
|
'Return list of Model names for origin Reference'
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Contract = pool.get('optical_equipment.contract')
|
Contract = pool.get('optical_equipment.contract')
|
||||||
return [Contract.__name__]
|
|
||||||
|
|
||||||
|
return [Contract.__name__]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_origin_contract(cls):
|
def get_origin_contract(cls):
|
||||||
@@ -100,20 +119,14 @@ class Sale(metaclass=PoolMeta):
|
|||||||
return [(None, '')] + [(m, get_name(m)) for m in models]
|
return [(None, '')] + [(m, get_name(m)) for m in models]
|
||||||
|
|
||||||
def _get_shipment_sale(self, Shipment, key):
|
def _get_shipment_sale(self, Shipment, key):
|
||||||
values = {
|
Shipment = super(Sale, self)._get_shipment_sale(Shipment, key)
|
||||||
'customer': self.shipment_party or self.party,
|
Shipment.sale_type = self.sale_type
|
||||||
'delivery_address': self.shipment_address,
|
Shipment.service_maintenance_initial = \
|
||||||
'company': self.company,
|
True if self.sale_type != 'equipments' else False
|
||||||
'sale_type': self.sale_type,
|
|
||||||
'service_maintenance_initial': True if self.sale_type != 'equipments' else False,
|
|
||||||
}
|
|
||||||
|
|
||||||
values.update(dict(key))
|
return Shipment
|
||||||
|
|
||||||
return Shipment(**values)
|
@ classmethod
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def set_quote_number(cls, sales):
|
def set_quote_number(cls, sales):
|
||||||
'''
|
'''
|
||||||
Fill the number field with the sale sequence
|
Fill the number field with the sale sequence
|
||||||
@@ -122,7 +135,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
Config = pool.get('optical_equipment.configuration')
|
Config = pool.get('optical_equipment.configuration')
|
||||||
config = Config(1)
|
config = Config(1)
|
||||||
for sale in sales:
|
for sale in sales:
|
||||||
if config.equipment_sequence != None:
|
if config.equipment_sequence is not None:
|
||||||
if not sale.quote_number:
|
if not sale.quote_number:
|
||||||
try:
|
try:
|
||||||
sale.quote_number = config.sale_quote_number.get()
|
sale.quote_number = config.sale_quote_number.get()
|
||||||
@@ -130,41 +143,46 @@ class Sale(metaclass=PoolMeta):
|
|||||||
except UserError:
|
except UserError:
|
||||||
raise UserError(str('Validation Error'))
|
raise UserError(str('Validation Error'))
|
||||||
else:
|
else:
|
||||||
raise UserError(gettext('optical_equipment.msg_not_sequence_quote'))
|
raise UserError(
|
||||||
|
gettext('optical_equipment.msg_not_sequence_quote'))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def copy(cls, sales, default=None):
|
def copy(cls, sales, default=None):
|
||||||
|
today = datetime.today().date()
|
||||||
if default is None:
|
if default is None:
|
||||||
default = {}
|
default = {}
|
||||||
else:
|
else:
|
||||||
default = default.copy()
|
default = default.copy()
|
||||||
|
|
||||||
default.setdefault('number', None)
|
default.setdefault('number', None)
|
||||||
default.setdefault('invoice_state', 'none')
|
default.setdefault('invoice_state', 'none')
|
||||||
default.setdefault('invoices_ignored', None)
|
default.setdefault('invoices_ignored', None)
|
||||||
default.setdefault('moves', None)
|
|
||||||
default.setdefault('shipment_state', 'none')
|
default.setdefault('shipment_state', 'none')
|
||||||
|
default.setdefault('sale_date', today)
|
||||||
default.setdefault('quoted_by')
|
default.setdefault('quoted_by')
|
||||||
default.setdefault('confirmed_by')
|
default.setdefault('confirmed_by')
|
||||||
|
|
||||||
return super(Sale, cls).copy(sales, default=default)
|
return super(Sale, cls).copy(sales, default=default)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button_action(
|
||||||
|
'optical_equipment.wizard_print_balance_sale_party')
|
||||||
|
def report(cls, sales):
|
||||||
|
pass
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('quotation')
|
@Workflow.transition('quotation')
|
||||||
def quote(cls, sales):
|
def quote(cls, sales):
|
||||||
pool = Pool()
|
|
||||||
AdvancePaymentCondition = pool.get('sale.advance_payment.condition')
|
|
||||||
for sale in sales:
|
for sale in sales:
|
||||||
sale.check_for_quotation()
|
sale.check_for_quotation()
|
||||||
cls.set_quote_number(sales)
|
cls.set_quote_number(sales)
|
||||||
|
|
||||||
for sale in sales:
|
# for sale in sales:
|
||||||
sale.set_advance_payment_term()
|
# sale.set_advance_payment_term()
|
||||||
cls.save(sales)
|
# cls.save(sales)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button_action(
|
||||||
|
'optical_equipment.wizard_confirm_sale_date')
|
||||||
@Workflow.transition('confirmed')
|
@Workflow.transition('confirmed')
|
||||||
@set_employee('confirmed_by')
|
@set_employee('confirmed_by')
|
||||||
def confirm(cls, sales):
|
def confirm(cls, sales):
|
||||||
@@ -176,10 +194,9 @@ class Sale(metaclass=PoolMeta):
|
|||||||
cls.store_cache(sales)
|
cls.store_cache(sales)
|
||||||
config = Configuration(1)
|
config = Configuration(1)
|
||||||
|
|
||||||
|
|
||||||
MaintenanceService = pool.get('optical_equipment_maintenance.service')
|
MaintenanceService = pool.get('optical_equipment_maintenance.service')
|
||||||
for sale in sales:
|
for sale in sales:
|
||||||
if sale.sale_type == 'maintenance':
|
if sale.sale_type == 'maintenance' and not sale.agended:
|
||||||
for line in sale.lines:
|
for line in sale.lines:
|
||||||
maintenanceService = MaintenanceService(
|
maintenanceService = MaintenanceService(
|
||||||
description=sale.description,
|
description=sale.description,
|
||||||
@@ -187,13 +204,16 @@ class Sale(metaclass=PoolMeta):
|
|||||||
state_agended='no_agenda',
|
state_agended='no_agenda',
|
||||||
propietary=sale.party,
|
propietary=sale.party,
|
||||||
propietary_address=sale.shipment_address,
|
propietary_address=sale.shipment_address,
|
||||||
contract_origin=sale.contract_ref if sale.contract_ref else None,
|
contract_origin=(
|
||||||
sale_origin=line,
|
sale.contract_ref.id
|
||||||
|
if sale.contract_ref else None),
|
||||||
|
sale_origin=sale,
|
||||||
sale_date=sale.sale_date,
|
sale_date=sale.sale_date,
|
||||||
state="draft"
|
state="draft"
|
||||||
)
|
)
|
||||||
maintenanceService.save()
|
maintenanceService.save()
|
||||||
sale.agended = True
|
sale.agended = True
|
||||||
|
sale.state = "confirmed"
|
||||||
sale.save()
|
sale.save()
|
||||||
|
|
||||||
cls.set_number(sales)
|
cls.set_number(sales)
|
||||||
@@ -208,14 +228,6 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
__name__ = 'sale.line'
|
__name__ = 'sale.line'
|
||||||
|
|
||||||
product_equipment = fields.Boolean("Product Equipment")
|
product_equipment = fields.Boolean("Product Equipment")
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', "Equipment",
|
|
||||||
domain=[('state', '=', 'registred'),
|
|
||||||
('product','=', Eval('product'))
|
|
||||||
],
|
|
||||||
states={'invisible': If(~Eval('product_equipment'), True)},)
|
|
||||||
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
|
||||||
'on_change_with_unit_digits')
|
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
@@ -224,19 +236,17 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
If(Eval('_parent_sale.sale_type') == 'maintenance',
|
If(Eval('_parent_sale.sale_type') == 'maintenance',
|
||||||
[('type', '=', 'service'),
|
[('type', '=', 'service'),
|
||||||
('maintenance_activity', '=', True)], []))
|
('maintenance_activity', '=', True)], []))
|
||||||
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'replaces',
|
cls.product.domain.append(
|
||||||
|
If(Eval('_parent_sale.sale_type') == 'replaces',
|
||||||
[('replacement', '=', True)], []))
|
[('replacement', '=', True)], []))
|
||||||
|
|
||||||
|
@fields.depends(
|
||||||
def on_change_with_unit_digits(self, name=None):
|
'product', 'unit', 'quantity', 'sale',
|
||||||
if self.unit:
|
'_parent_sale.party', '_parent_sale.sale_type',
|
||||||
return self.unit.digits
|
methods=[
|
||||||
return 2
|
'_get_tax_rule_pattern',
|
||||||
|
'_get_context_sale_price',
|
||||||
|
'on_change_with_amount'])
|
||||||
@fields.depends('product', 'unit', 'quantity', 'sale',
|
|
||||||
'_parent_sale.party', '_parent_sale.sale_type', methods=['_get_tax_rule_pattern',
|
|
||||||
'_get_context_sale_price','on_change_with_amount'])
|
|
||||||
def on_change_product(self):
|
def on_change_product(self):
|
||||||
Product = Pool().get('product.product')
|
Product = Pool().get('product.product')
|
||||||
if not self.product:
|
if not self.product:
|
||||||
@@ -255,7 +265,8 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
self.product_equipment = False
|
self.product_equipment = False
|
||||||
party = self.sale.party
|
party = self.sale.party
|
||||||
|
|
||||||
# Set taxes before unit_price to have taxes in context of sale price
|
# Set taxes before unit_price
|
||||||
|
# to have taxes in context of sale price
|
||||||
taxes = []
|
taxes = []
|
||||||
pattern = self._get_tax_rule_pattern()
|
pattern = self._get_tax_rule_pattern()
|
||||||
for tax in self.product.customer_taxes_used:
|
for tax in self.product.customer_taxes_used:
|
||||||
@@ -275,11 +286,13 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
category = self.product.sale_uom.category
|
category = self.product.sale_uom.category
|
||||||
if not self.unit or self.unit.category != category:
|
if not self.unit or self.unit.category != category:
|
||||||
self.unit = self.product.sale_uom
|
self.unit = self.product.sale_uom
|
||||||
self.unit_digits = self.product.sale_uom.digits
|
# self.unit_digits = self.product.sale_uom.digits
|
||||||
|
|
||||||
with Transaction().set_context(self._get_context_sale_price()):
|
with Transaction().set_context(self._get_context_sale_price()):
|
||||||
self.unit_price = Product.get_sale_price([self.product],
|
self.unit_price = Product.get_sale_price(
|
||||||
self.quantity or 0)[self.product.id]
|
[self.product],
|
||||||
|
self.quantity or 0
|
||||||
|
)[self.product.id]
|
||||||
|
|
||||||
if self.unit_price:
|
if self.unit_price:
|
||||||
self.unit_price = self.unit_price.quantize(
|
self.unit_price = self.unit_price.quantize(
|
||||||
@@ -311,7 +324,6 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
if (shipment_type == 'out') != (self.quantity >= 0):
|
if (shipment_type == 'out') != (self.quantity >= 0):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
quantity = (self._get_move_quantity(shipment_type)
|
quantity = (self._get_move_quantity(shipment_type)
|
||||||
- self._get_shipped_quantity(shipment_type))
|
- self._get_shipped_quantity(shipment_type))
|
||||||
|
|
||||||
@@ -328,7 +340,7 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
|
|
||||||
move = Move()
|
move = Move()
|
||||||
move.quantity = quantity
|
move.quantity = quantity
|
||||||
move.uom = self.unit
|
move.unit = self.unit
|
||||||
move.product = self.product
|
move.product = self.product
|
||||||
move.from_location = self.from_location
|
move.from_location = self.from_location
|
||||||
move.to_location = self.to_location
|
move.to_location = self.to_location
|
||||||
@@ -344,3 +356,32 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
move.origin = self
|
move.origin = self
|
||||||
|
|
||||||
return move
|
return move
|
||||||
|
|
||||||
|
|
||||||
|
class SaleDate(ModelView):
|
||||||
|
'Confirmacíon Fecha de Venta'
|
||||||
|
__name__ = 'optical_equipment.confirm_sale_date.form'
|
||||||
|
|
||||||
|
sale_date = fields.Date("Fecha Venta", required=True)
|
||||||
|
|
||||||
|
|
||||||
|
class ConfirmSaleDate(Wizard):
|
||||||
|
'Confirmacíon Fecha de Venta'
|
||||||
|
__name__ = 'optical_equipment.confirm_sale_date'
|
||||||
|
|
||||||
|
start = StateView('optical_equipment.confirm_sale_date.form',
|
||||||
|
'optical_equipment.confirm_sale_date_view_form', [
|
||||||
|
Button('Confirmar', 'confirm_date',
|
||||||
|
'tryton-ok', default=True),
|
||||||
|
])
|
||||||
|
|
||||||
|
confirm_date = StateAction('sale.act_sale_form')
|
||||||
|
|
||||||
|
def default_start(self, fields):
|
||||||
|
if self.record:
|
||||||
|
return {'sale_date': self.record.sale_date}
|
||||||
|
|
||||||
|
def do_confirm_date(self, action):
|
||||||
|
self.record.sale_date = self.start.sale_date
|
||||||
|
self.record.state = 'processing'
|
||||||
|
self.record.save()
|
||||||
|
|||||||
35
sale.xml
35
sale.xml
@@ -1,6 +1,8 @@
|
|||||||
<?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. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
|
<data>
|
||||||
<record model="ir.ui.view" id="sale_view_tree">
|
<record model="ir.ui.view" id="sale_view_tree">
|
||||||
<field name="model">sale.sale</field>
|
<field name="model">sale.sale</field>
|
||||||
<field name="inherit" ref="sale.sale_view_tree"/>
|
<field name="inherit" ref="sale.sale_view_tree"/>
|
||||||
@@ -20,6 +22,23 @@
|
|||||||
<field name="name">Sale Quote</field>
|
<field name="name">Sale Quote</field>
|
||||||
<field name="sequence_type" ref="sale.sequence_type_sale"/>
|
<field name="sequence_type" ref="sale.sequence_type_sale"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.action.report" id="sale.report_sale">
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.button" id="report_balance_party_sale">
|
||||||
|
<field name="name">report</field>
|
||||||
|
<field name="string">Estado de Cuenta</field>
|
||||||
|
<field name="model" search="[('model', '=', 'sale.sale')]"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.ui.view" id="confirm_sale_date_view_form">
|
||||||
|
<field name="model">optical_equipment.confirm_sale_date.form</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">confirm_sale_date_form</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.wizard" id="wizard_confirm_sale_date">
|
||||||
|
<field name="name">Confirm Sale Date</field>
|
||||||
|
<field name="wiz_name">optical_equipment.confirm_sale_date</field>
|
||||||
|
</record>
|
||||||
<record model="ir.action.report" id="report_sale">
|
<record model="ir.action.report" id="report_sale">
|
||||||
<field name="name">Sale Equipments</field>
|
<field name="name">Sale Equipments</field>
|
||||||
<field name="model">sale.sale</field>
|
<field name="model">sale.sale</field>
|
||||||
@@ -44,4 +63,18 @@
|
|||||||
<field name="model">sale.sale,-1</field>
|
<field name="model">sale.sale,-1</field>
|
||||||
<field name="action" ref="report_sale_internal"/>
|
<field name="action" ref="report_sale_internal"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.action.report" id="report_payment">
|
||||||
|
<field name="name">Payment</field>
|
||||||
|
<field name="model">account.statement.line</field>
|
||||||
|
<field name="report_name">account.statement.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.statement.line,-1</field>
|
||||||
|
<field name="action" ref="report_payment"/>
|
||||||
|
</record> -->
|
||||||
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
17
setup.py
17
setup.py
@@ -69,20 +69,20 @@ if minor_version % 2:
|
|||||||
|
|
||||||
setup(name=name,
|
setup(name=name,
|
||||||
version=version,
|
version=version,
|
||||||
description='Modúlo a medida para optica',
|
description='',
|
||||||
long_description=read('README.rst'),
|
long_description=read('README.rst'),
|
||||||
author='OneTeam',
|
author='Tryton',
|
||||||
author_email='info@onecluster.org',
|
author_email='bugs@tryton.org',
|
||||||
url='http://www.tryton.org/',
|
url='http://www.tryton.org/',
|
||||||
keywords='',
|
keywords='',
|
||||||
package_dir={'trytond.modules.smart_vision': '.'},
|
package_dir={'trytond.modules.optical_equipment': '.'},
|
||||||
packages=(
|
packages=(
|
||||||
['trytond.modules.smart_vision']
|
['trytond.modules.optical_equipment']
|
||||||
+ ['trytond.modules.smart_vision.%s' % p
|
+ ['trytond.modules.optical_equipment.%s' % p
|
||||||
for p in find_packages()]
|
for p in find_packages()]
|
||||||
),
|
),
|
||||||
package_data={
|
package_data={
|
||||||
'trytond.modules.smart_vision': (info.get('xml', [])
|
'trytond.modules.optical_equipment': (info.get('xml', [])
|
||||||
+ ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt',
|
+ ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt',
|
||||||
'icons/*.svg', 'tests/*.rst']),
|
'icons/*.svg', 'tests/*.rst']),
|
||||||
},
|
},
|
||||||
@@ -115,6 +115,7 @@ setup(name=name,
|
|||||||
'Natural Language :: Slovenian',
|
'Natural Language :: Slovenian',
|
||||||
'Natural Language :: Spanish',
|
'Natural Language :: Spanish',
|
||||||
'Natural Language :: Turkish',
|
'Natural Language :: Turkish',
|
||||||
|
'Natural Language :: Ukrainian',
|
||||||
'Operating System :: OS Independent',
|
'Operating System :: OS Independent',
|
||||||
'Programming Language :: Python :: 3',
|
'Programming Language :: Python :: 3',
|
||||||
'Programming Language :: Python :: 3.7',
|
'Programming Language :: Python :: 3.7',
|
||||||
@@ -134,6 +135,6 @@ setup(name=name,
|
|||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
entry_points="""
|
entry_points="""
|
||||||
[trytond.modules]
|
[trytond.modules]
|
||||||
smart_vision = trytond.modules.smart_vision
|
optical_equipment = trytond.modules.optical_equipment
|
||||||
""", # noqa: E501
|
""", # noqa: E501
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of
|
<!--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 repository contains the full copyright notices and license terms. -->
|
||||||
<tryton>
|
<tryton>
|
||||||
|
<data>
|
||||||
<record model="ir.ui.view" id="shipment_out_view_form">
|
<record model="ir.ui.view" id="shipment_out_view_form">
|
||||||
<field name="model">stock.shipment.out</field>
|
<field name="model">stock.shipment.out</field>
|
||||||
<field name="inherit" ref="stock.shipment_out_view_form"/>
|
<field name="inherit" ref="stock.shipment_out_view_form"/>
|
||||||
<field name="name">shipment_out_form</field>
|
<field name="name">shipment_out_form</field>
|
||||||
</record>
|
</record>
|
||||||
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
# this repository contains the full copyright notices and license terms.
|
||||||
|
|||||||
41863
tests/files/database.dump
Normal file
41863
tests/files/database.dump
Normal file
File diff suppressed because one or more lines are too long
BIN
tests/files/signature.png
Normal file
BIN
tests/files/signature.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
495
tests/scenario_optical_equipment.rst
Normal file
495
tests/scenario_optical_equipment.rst
Normal file
@@ -0,0 +1,495 @@
|
|||||||
|
===========================
|
||||||
|
Optical Equipment Scenario
|
||||||
|
===========================
|
||||||
|
Imports::
|
||||||
|
>>> from proteus import Model, Wizard
|
||||||
|
>>> from trytond.tests.tools import activate_modules, set_user
|
||||||
|
>>> from datetime import date, timedelta, datetime
|
||||||
|
>>> import xml.etree.ElementTree as ET
|
||||||
|
>>> from trytond.modules.company.tests.tools import create_company, get_company
|
||||||
|
>>> from trytond.modules.account.tests.tools import (create_chart, create_fiscalyear, create_tax, get_accounts)
|
||||||
|
>>> from trytond.modules.account_invoice.tests.tools import (create_payment_term, set_fiscalyear_invoice_sequences)
|
||||||
|
>>> from decimal import Decimal
|
||||||
|
>>> import datetime
|
||||||
|
>>> today = datetime.date.today()
|
||||||
|
>>> from trytond.tools import file_open
|
||||||
|
|
||||||
|
Activate modules::
|
||||||
|
>>> config = activate_modules('optical_equipment')
|
||||||
|
|
||||||
|
Create company::
|
||||||
|
>>> _ = create_company()
|
||||||
|
>>> company = get_company()
|
||||||
|
|
||||||
|
Create user admin::
|
||||||
|
>>> Group = Model.get("res.group")
|
||||||
|
>>> User = Model.get("res.user")
|
||||||
|
>>> user = User(config.user)
|
||||||
|
>>> user.login = "admin"
|
||||||
|
>>> user.save()
|
||||||
|
>>> group, = Group().find(["name", "=", "Administration"])
|
||||||
|
>>> group
|
||||||
|
proteus.Model.get('res.group')(1)
|
||||||
|
|
||||||
|
>>> group_equipment, = Group().find(["name", "=", "Equipment Administration"])
|
||||||
|
>>> group_equipment
|
||||||
|
proteus.Model.get('res.group')(18)
|
||||||
|
|
||||||
|
>>> group.users.append(user)
|
||||||
|
>>> group.save()
|
||||||
|
>>> group_equipment.users
|
||||||
|
[proteus.Model.get('res.user')(1)]
|
||||||
|
|
||||||
|
Set employee::
|
||||||
|
>>> User = Model.get('res.user')
|
||||||
|
>>> Party = Model.get('party.party')
|
||||||
|
>>> Employee = Model.get('company.employee')
|
||||||
|
>>> employee_party = Party(name="Employee")
|
||||||
|
>>> employee_party.save()
|
||||||
|
>>> employee = Employee(party=employee_party)
|
||||||
|
>>> employee.save()
|
||||||
|
>>> user = User(config.user)
|
||||||
|
>>> user.employees.append(employee)
|
||||||
|
>>> user.employee = employee
|
||||||
|
>>> user.save()
|
||||||
|
>>> set_user(user.id)
|
||||||
|
|
||||||
|
Create fiscal year::
|
||||||
|
>>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear(company))
|
||||||
|
>>> fiscalyear.click('create_period')
|
||||||
|
|
||||||
|
Create chart of accounts::
|
||||||
|
>>> _ = create_chart(company)
|
||||||
|
>>> accounts = get_accounts(company)
|
||||||
|
>>> accounts
|
||||||
|
{'receivable': proteus.Model.get('account.account')(5), 'payable': proteus.Model.get('account.account')(4), 'revenue': proteus.Model.get('account.account')(6), 'expense': proteus.Model.get('account.account')(3), 'cash': proteus.Model.get('account.account')(2), 'tax': proteus.Model.get('account.account')(7)}
|
||||||
|
|
||||||
|
>>> revenue = accounts['revenue']
|
||||||
|
>>> expense = accounts['expense']
|
||||||
|
>>> cash = accounts['cash']
|
||||||
|
|
||||||
|
>>> Journal = Model.get('account.journal')
|
||||||
|
>>> PaymentMethod = Model.get('account.invoice.payment.method')
|
||||||
|
>>> cash_journal, = Journal.find([('type', '=', 'cash')])
|
||||||
|
>>> cash_journal.save()
|
||||||
|
>>> payment_method = PaymentMethod()
|
||||||
|
>>> payment_method.name = 'Cash'
|
||||||
|
>>> payment_method.journal = cash_journal
|
||||||
|
>>> payment_method.credit_account = cash
|
||||||
|
>>> payment_method.debit_account = cash
|
||||||
|
>>> payment_method.save()
|
||||||
|
|
||||||
|
Create tax::
|
||||||
|
>>> tax = create_tax(Decimal('.10'))
|
||||||
|
>>> tax.save()
|
||||||
|
|
||||||
|
Create configuration equipment::
|
||||||
|
>>> Config = Model.get("optical_equipment.configuration")
|
||||||
|
>>> UOM = Model.get("product.uom")
|
||||||
|
>>> celsius = UOM.find([("name", "=", "Celsius")])
|
||||||
|
>>> celsius
|
||||||
|
[proteus.Model.get('product.uom')(39)]
|
||||||
|
|
||||||
|
>>> moisture = UOM.find([("name", "=", "Relative Humedity")])
|
||||||
|
>>> moisture
|
||||||
|
[proteus.Model.get('product.uom')(42)]
|
||||||
|
|
||||||
|
>>> config = Config().find([])[0]
|
||||||
|
>>> equipment_sequence, = Model.get("ir.sequence").find(["name", "=", "Equipment"])
|
||||||
|
>>> equipment_sequence
|
||||||
|
proteus.Model.get('ir.sequence')(14)
|
||||||
|
|
||||||
|
>>> config.technician_responsible = employee
|
||||||
|
>>> with file_open("optical_equipment/tests/files/signature.png", "rb") as signature:
|
||||||
|
... config.technician_signature = signature.read()
|
||||||
|
>>> config.invima = "RH-202309-02409"
|
||||||
|
>>> config.equipment_sequence = equipment_sequence
|
||||||
|
>>> maintenance_sequence, = Model.get("ir.sequence").find(["name", "=", "Maintenance"])
|
||||||
|
>>> maintenance_sequence
|
||||||
|
proteus.Model.get('ir.sequence')(15)
|
||||||
|
|
||||||
|
|
||||||
|
>>> config.maintenance_sequence = maintenance_sequence
|
||||||
|
>>> agended_sequence, = Model.get("ir.sequence").find(["name", "=", "Agended"])
|
||||||
|
>>> agended_sequence
|
||||||
|
proteus.Model.get('ir.sequence')(13)
|
||||||
|
|
||||||
|
>>> config.agended_sequence = agended_sequence
|
||||||
|
|
||||||
|
>>> contract_sequence, = Model.get("ir.sequence").find(["name", "=", "Contract"])
|
||||||
|
>>> contract_sequence
|
||||||
|
proteus.Model.get('ir.sequence')(12)
|
||||||
|
>>> config.contract_sequence = contract_sequence
|
||||||
|
|
||||||
|
>>> sale_quote_number, = Model.get("ir.sequence").find(["name", "=", "Sale Quote"])
|
||||||
|
>>> sale_quote_number
|
||||||
|
proteus.Model.get('ir.sequence')(16)
|
||||||
|
>>> config.sale_quote_number = sale_quote_number
|
||||||
|
|
||||||
|
>>> config.temperature_min = 19
|
||||||
|
>>> config.temperature_max = 21
|
||||||
|
>>> config.temperature_uom = celsius[0]
|
||||||
|
|
||||||
|
>>> config.moisture_min = 43
|
||||||
|
>>> config.moisture_max = 45
|
||||||
|
>>> config.moisture_uom = moisture[0]
|
||||||
|
>>> config.save()
|
||||||
|
|
||||||
|
Create supplier::
|
||||||
|
>>> Party = Model.get('party.party')
|
||||||
|
>>> supplier = Party(name='Supplier')
|
||||||
|
>>> supplier.save()
|
||||||
|
|
||||||
|
|
||||||
|
Create customer type optica::
|
||||||
|
>>> customer_optica = Party(name='Customer optica', customer_type='optica')
|
||||||
|
>>> customer_optica.save()
|
||||||
|
>>> customer_optica.customer_type
|
||||||
|
'optica'
|
||||||
|
|
||||||
|
|
||||||
|
Create customer type ips::
|
||||||
|
>>> customer_ips = Party(name='Customer ips', customer_type='ips')
|
||||||
|
>>> customer_ips.save()
|
||||||
|
>>> customer_ips.customer_type
|
||||||
|
'ips'
|
||||||
|
|
||||||
|
Creaate contact optica::
|
||||||
|
>>> local_phone = customer_optica.contact_mechanisms.new()
|
||||||
|
>>> local_phone.type = 'phone'
|
||||||
|
>>> local_phone.value = '666666666'
|
||||||
|
>>> local_phone.value
|
||||||
|
'666666666'
|
||||||
|
|
||||||
|
Creaate contact ips::
|
||||||
|
>>> local_phone = customer_ips.contact_mechanisms.new()
|
||||||
|
>>> local_phone.type = 'phone'
|
||||||
|
>>> local_phone.value = '666666666'
|
||||||
|
>>> local_phone.value
|
||||||
|
'666666666'
|
||||||
|
|
||||||
|
|
||||||
|
Create account categories::
|
||||||
|
>>> ProductCategory = Model.get('product.category')
|
||||||
|
>>> optical_equitment_category = ProductCategory(name="Optical Equipment")
|
||||||
|
>>> optical_equitment_category.accounting = True
|
||||||
|
>>> optical_equitment_category.account_expense = expense
|
||||||
|
>>> optical_equitment_category.account_revenue = revenue
|
||||||
|
>>> children_1 = optical_equitment_category.childs.new(name="Optical Mobiliario")
|
||||||
|
>>> optical_equitment_category.save()
|
||||||
|
>>> len(optical_equitment_category.childs)
|
||||||
|
1
|
||||||
|
|
||||||
|
Create taxes::
|
||||||
|
>>> optical_equitment_category_tax, = optical_equitment_category.duplicate()
|
||||||
|
>>> optical_equitment_category_tax.customer_taxes.append(tax)
|
||||||
|
>>> optical_equitment_category_tax.save()
|
||||||
|
|
||||||
|
Create mark, model and reference category::
|
||||||
|
>>> mark_category = ProductCategory(name="ADLER")
|
||||||
|
>>> mark_category.save()
|
||||||
|
>>> model_category = ProductCategory(name="ADLER_01", parent=mark_category)
|
||||||
|
>>> model_category.save()
|
||||||
|
>>> reference_category = ProductCategory(name="ADLER_01", parent=model_category)
|
||||||
|
>>> reference_category.save()
|
||||||
|
|
||||||
|
>>> mark_category.childs
|
||||||
|
[proteus.Model.get('product.category')(6)]
|
||||||
|
|
||||||
|
Create product optical equipment::
|
||||||
|
>>> ProductUom = Model.get('product.uom')
|
||||||
|
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
|
||||||
|
>>> ProductTemplate = Model.get('product.template')
|
||||||
|
>>> template = ProductTemplate()
|
||||||
|
>>> template.name = 'UNIDAD REFRACCION ESTANDAR'
|
||||||
|
>>> template.default_uom = unit
|
||||||
|
>>> template.type = 'goods'
|
||||||
|
>>> template.salable = True
|
||||||
|
>>> template.purchasable = True
|
||||||
|
>>> template.equipment = True
|
||||||
|
>>> template.list_price = Decimal('10')
|
||||||
|
>>> template.account_category = optical_equitment_category_tax
|
||||||
|
>>> template.maintenance_required = True
|
||||||
|
|
||||||
|
Mark Maintenance Activities::
|
||||||
|
>>> template.initial_operation = True
|
||||||
|
>>> template.check_equipment = True
|
||||||
|
>>> template.check_electric_system = True
|
||||||
|
>>> template.clean_int_ext = True
|
||||||
|
>>> template.preventive_activities = "Se verificaron las condiciones ambientales, se verificó estado físico del equipo, se verificó funcionamiento, se verificó tomas eléctricas y conexiones, se verificó el estado de los pulsadores, se verificó que el motor de la silla suba y baje, se realizó limpieza general, se lubricaron partes que lo requieren, se confirmó nuevamente funcionamiento."
|
||||||
|
|
||||||
|
Mark Calibration Required::
|
||||||
|
>>> template.calibration = True
|
||||||
|
>>> template.uncertainy_pattern = 0.1
|
||||||
|
>>> template.k_pattern = '-5.00'
|
||||||
|
>>> UsePattern = Model.get('optical_equipment.use_pattern')
|
||||||
|
>>> schematic_eye, = UsePattern.find([('name_pattern', '=', 'Schematic Eye')])
|
||||||
|
>>> template.use_pattern = schematic_eye
|
||||||
|
>>> k_pattern = template.k_pattern_list.new(pattern=-5)
|
||||||
|
>>> k_pattern.save()
|
||||||
|
>>> template.MEP = 0.1
|
||||||
|
>>> template.Usubi = 200
|
||||||
|
>>> template.resolution_type = 'digital'
|
||||||
|
>>> template.d_resolution = 0.25
|
||||||
|
>>> template.equipment_type = 'mobiliario_optico'
|
||||||
|
>>> template.biomedical_class = 'diagnostico'
|
||||||
|
>>> template.main_tecnology = 'electronico'
|
||||||
|
>>> template.mark_category = mark_category
|
||||||
|
>>> template.model_category = model_category
|
||||||
|
>>> template.use = 'medico'
|
||||||
|
>>> template.reference_category = reference_category
|
||||||
|
>>> template.save()
|
||||||
|
>>> len(template.k_pattern_list)
|
||||||
|
1
|
||||||
|
>>> product, = template.products
|
||||||
|
>>> product.name
|
||||||
|
'UNIDAD REFRACCION ESTANDAR'
|
||||||
|
|
||||||
|
Create Product Maintenance Service::
|
||||||
|
>>> maintenanceServiceProduct = ProductTemplate()
|
||||||
|
>>> maintenanceServiceProduct.name = 'Mantenimiento Correctivo'
|
||||||
|
>>> maintenanceServiceProduct.maintenance_activity = True
|
||||||
|
>>> maintenanceServiceProduct.default_uom = unit
|
||||||
|
>>> maintenanceServiceProduct.type = 'service'
|
||||||
|
>>> maintenanceServiceProduct.salable = True
|
||||||
|
>>> maintenanceServiceProduct.purchasable = True
|
||||||
|
>>> maintenanceServiceProduct.list_price = Decimal('10')
|
||||||
|
>>> maintenanceServiceProduct.account_category = optical_equitment_category_tax
|
||||||
|
>>> maintenanceServiceProduct.save()
|
||||||
|
>>> product1, = maintenanceServiceProduct.products
|
||||||
|
>>> product1.name
|
||||||
|
'Mantenimiento Correctivo'
|
||||||
|
|
||||||
|
|
||||||
|
Create payment term::
|
||||||
|
>>> payment_term = create_payment_term()
|
||||||
|
>>> payment_term.save()
|
||||||
|
|
||||||
|
Purchase 5 products:
|
||||||
|
>>> Purchase = Model.get('purchase.purchase')
|
||||||
|
>>> PurchaseLine = Model.get('purchase.line')
|
||||||
|
>>> purchase = Purchase()
|
||||||
|
>>> purchase.party = supplier
|
||||||
|
>>> purchase.payment_term = payment_term
|
||||||
|
>>> purchase.invoice_method = 'order'
|
||||||
|
>>> purchase_line = PurchaseLine()
|
||||||
|
>>> purchase.lines.append(purchase_line)
|
||||||
|
>>> purchase_line.product = product
|
||||||
|
>>> purchase_line.quantity = 2.0
|
||||||
|
>>> purchase_line.product_equipment
|
||||||
|
True
|
||||||
|
>>> purchase_line.unit_price = Decimal('6182237.0000')
|
||||||
|
>>> purchase_line.health_register = 'COL123evergreen'
|
||||||
|
>>> purchase.click('quote')
|
||||||
|
>>> purchase.click('confirm')
|
||||||
|
>>> purchase.click('create_equipments')
|
||||||
|
>>> Equipment = Model.get('optical_equipment.equipment')
|
||||||
|
>>> equipments = Equipment.find()
|
||||||
|
>>> equipments
|
||||||
|
[proteus.Model.get('optical_equipment.equipment')(1), proteus.Model.get('optical_equipment.equipment')(2)]
|
||||||
|
>>> len(equipments)
|
||||||
|
2
|
||||||
|
>>> purchase.equipment_create
|
||||||
|
1
|
||||||
|
|
||||||
|
Finalize the purchase inventory movements::
|
||||||
|
>>> for move in purchase.moves:
|
||||||
|
... move.click('do')
|
||||||
|
|
||||||
|
Registred equipment without serial::
|
||||||
|
>>> equipment_1 = equipments[0]
|
||||||
|
>>> equipment_2 = equipments[1]
|
||||||
|
>>> equipment_1.click('registred') # doctest: +IGNORE_EXCEPTION_DETAIL
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
UserError: ...
|
||||||
|
>>> equipment_1.serial = "2020DM-0021167"
|
||||||
|
>>> equipment_1.click('registred')
|
||||||
|
>>> equipment_2.serial = "2020DM-002119"
|
||||||
|
>>> equipment_2.click('registred')
|
||||||
|
|
||||||
|
First sale::
|
||||||
|
>>> Sale = Model.get('sale.sale')
|
||||||
|
>>> SaleLine = Model.get('sale.line')
|
||||||
|
>>> sale = Sale()
|
||||||
|
>>> sale.party = customer_optica
|
||||||
|
>>> sale.contact = local_phone
|
||||||
|
>>> sale.description = 'El producto se debe entregar el fin de semana'
|
||||||
|
>>> sale.sale_date = today
|
||||||
|
>>> sale.sale_type = 'equipments'
|
||||||
|
>>> sale.payment_term = payment_term
|
||||||
|
>>> sale.invoice_method = 'order'
|
||||||
|
>>> sale_line = SaleLine()
|
||||||
|
>>> sale.lines.append(sale_line)
|
||||||
|
>>> sale_line.product = product
|
||||||
|
>>> sale_line.quantity = 2.0
|
||||||
|
>>> sale_line = SaleLine()
|
||||||
|
>>> sale.lines.append(sale_line)
|
||||||
|
>>> sale_line.type = 'comment'
|
||||||
|
>>> sale_line.description = 'Comment'
|
||||||
|
>>> sale_line = SaleLine()
|
||||||
|
>>> sale.lines.append(sale_line)
|
||||||
|
>>> sale_line.product = product
|
||||||
|
>>> sale_line.quantity = 3.0
|
||||||
|
>>> sale.click('quote')
|
||||||
|
>>> SaleConfirmDate = sale.click('confirm')
|
||||||
|
>>> SaleConfirmDate.form.sale_date == today
|
||||||
|
True
|
||||||
|
>>> SaleConfirmDate.execute('confirm_date')
|
||||||
|
>>> sale.state
|
||||||
|
'processing'
|
||||||
|
>>> sale.shipments
|
||||||
|
[proteus.Model.get('stock.shipment.out')(1)]
|
||||||
|
|
||||||
|
Duplicate Sale::
|
||||||
|
>>> sale.duplicate()
|
||||||
|
[proteus.Model.get('sale.sale')(2)]
|
||||||
|
|
||||||
|
Return Sale::
|
||||||
|
>>> SaleReturn = Wizard('sale.return_sale', [sale])
|
||||||
|
>>> SaleReturn.execute('return_')
|
||||||
|
|
||||||
|
Verify that the sale state could be returned to the draft state::
|
||||||
|
>>> sale.click("draft")
|
||||||
|
>>> sale.state
|
||||||
|
'draft'
|
||||||
|
>>> sale_line = SaleLine()
|
||||||
|
>>> sale.lines.append(sale_line)
|
||||||
|
>>> sale_line.product = product
|
||||||
|
>>> sale_line.quantity = 2.0
|
||||||
|
>>> sale.click('quote')
|
||||||
|
>>> SaleConfirmDate = sale.click('confirm')
|
||||||
|
>>> SaleConfirmDate.execute('confirm_date')
|
||||||
|
>>> sale.shipments
|
||||||
|
[proteus.Model.get('stock.shipment.out')(1), proteus.Model.get('stock.shipment.out')(2)]
|
||||||
|
|
||||||
|
Verify that the shipment cannot be assigned if the shipment lines do not have equipment::
|
||||||
|
>>> shipment_one = sale.shipments[0]
|
||||||
|
>>> shipment_one.click('pick') # doctest: +IGNORE_EXCEPTION_DETAIL
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
ValidationError: ...
|
||||||
|
|
||||||
|
Restrict assignment when the shipment has no serialized items::
|
||||||
|
>>> shipment_one = sale.shipments[0]
|
||||||
|
>>> line_one = shipment_one.inventory_moves[0]
|
||||||
|
>>> line_one.equipment = equipment_1
|
||||||
|
>>> line_one.equipment_serial
|
||||||
|
'2020DM-0021167'
|
||||||
|
>>> line_two = shipment_one.inventory_moves[1]
|
||||||
|
>>> line_two.equipment = equipment_2
|
||||||
|
>>> line_two.equipment_serial
|
||||||
|
'2020DM-002119'
|
||||||
|
>>> shipment_one.click('assign_try')
|
||||||
|
>>> shipment_one.click('pick')
|
||||||
|
>>> shipment_one.click('pack')
|
||||||
|
>>> shipment_one.click('done')
|
||||||
|
|
||||||
|
Create a new Maintenance Service::
|
||||||
|
>>> shipment_one.click('maintenance_initial')
|
||||||
|
>>> MantenanceServices = Model.get("optical_equipment_maintenance.service")
|
||||||
|
>>> mantenanceServices, = MantenanceServices.find()
|
||||||
|
>>> mantenanceServices
|
||||||
|
proteus.Model.get('optical_equipment_maintenance.service')(1)
|
||||||
|
>>> mantenanceServices.state
|
||||||
|
'draft'
|
||||||
|
|
||||||
|
>>> MaintenanceLines = Model.get("optical_equipment.maintenance")
|
||||||
|
>>> maintenanceLines = MaintenanceLines.find()
|
||||||
|
>>> maintenanceLines
|
||||||
|
[proteus.Model.get('optical_equipment.maintenance')(1), proteus.Model.get('optical_equipment.maintenance')(2)]
|
||||||
|
>>> maintenanceLines[0].state
|
||||||
|
'draft'
|
||||||
|
|
||||||
|
>>> maintenance_1 = maintenanceLines[0]
|
||||||
|
>>> maintenance_2 = maintenanceLines[1]
|
||||||
|
>>> maintenance_1.equipment.state
|
||||||
|
'uncontrated'
|
||||||
|
>>> maintenance_1.equipment.propietary == customer_optica
|
||||||
|
True
|
||||||
|
>>> maintenance_1.equipment.propietary_address.street
|
||||||
|
|
||||||
|
>>> maintenance_2.equipment.state
|
||||||
|
'uncontrated'
|
||||||
|
>>> maintenance_2.equipment.propietary == customer_optica
|
||||||
|
True
|
||||||
|
>>> maintenance_2.equipment.propietary_address.street
|
||||||
|
|
||||||
|
Assing schedule to maintenance service::
|
||||||
|
>>> AssingSchedule = Wizard('optical_equipment_maintenance.assing_agended', [mantenanceServices])
|
||||||
|
>>> AssingSchedule.form.estimated_agended = datetime.datetime.now()
|
||||||
|
>>> AssingSchedule.form.technical = employee
|
||||||
|
>>> AssingSchedule.execute('assing_agended')
|
||||||
|
|
||||||
|
>>> mantenanceServices.state
|
||||||
|
'agended'
|
||||||
|
|
||||||
|
>>> mantenanceServices.click('in_progress')
|
||||||
|
>>> mantenanceServices.state
|
||||||
|
'in_progress'
|
||||||
|
|
||||||
|
>>> mantenanceServices.lines
|
||||||
|
[proteus.Model.get('optical_equipment.maintenance')(1), proteus.Model.get('optical_equipment.maintenance')(2)]
|
||||||
|
|
||||||
|
Calibrate Maintenance Lines::
|
||||||
|
>>> mantenance_lines = mantenanceServices.lines
|
||||||
|
>>> mantenance_line_one = mantenance_lines[0]
|
||||||
|
>>> mantenance_line_two = mantenance_lines[1]
|
||||||
|
>>> mantenance_line_one.click('samples')
|
||||||
|
>>> len(mantenance_line_one.lines_calibration)
|
||||||
|
5
|
||||||
|
>>> mantenance_line_one.click('calibrate')
|
||||||
|
>>> mantenance_line_one.calibration_total
|
||||||
|
[proteus.Model.get('optical_equipment.maintenance.calibration')(1)]
|
||||||
|
>>> len(mantenance_line_one.graph_calibration)
|
||||||
|
14857
|
||||||
|
|
||||||
|
>>> mantenance_line_one.click('finished')
|
||||||
|
>>> mantenance_line_one.state
|
||||||
|
'finished'
|
||||||
|
|
||||||
|
Finished Maintenance Service::
|
||||||
|
>>> mantenanceServices.click('finished') # doctest: +IGNORE_EXCEPTION_DETAIL
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
ValidationError: ...
|
||||||
|
|
||||||
|
>>> mantenance_line_two.click('samples')
|
||||||
|
>>> len(mantenance_line_two.lines_calibration)
|
||||||
|
5
|
||||||
|
>>> mantenance_line_two.click('calibrate')
|
||||||
|
>>> mantenance_line_two.calibration_total
|
||||||
|
[proteus.Model.get('optical_equipment.maintenance.calibration')(2)]
|
||||||
|
>>> len(mantenance_line_two.graph_calibration)
|
||||||
|
14857
|
||||||
|
>>> mantenance_line_two.click('finished')
|
||||||
|
>>> mantenanceServices.click('finished')
|
||||||
|
>>> mantenanceServices.state
|
||||||
|
'finished'
|
||||||
|
|
||||||
|
Create a New Contract::
|
||||||
|
|
||||||
|
|
||||||
|
Sale Maintenance Service::
|
||||||
|
>>> sale2 = Sale()
|
||||||
|
>>> sale2.party = customer_optica
|
||||||
|
>>> sale2.contact = local_phone
|
||||||
|
>>> sale2.description = 'El producto se debe entregar el fin de semana'
|
||||||
|
>>> sale2.sale_date = today
|
||||||
|
>>> sale2.sale_type = 'maintenance'
|
||||||
|
>>> sale2.maintenance_type = 'corrective'
|
||||||
|
>>> sale2.payment_term = payment_term
|
||||||
|
>>> sale2.invoice_method = 'order'
|
||||||
|
>>> sale_line = SaleLine()
|
||||||
|
>>> sale2.lines.append(sale_line)
|
||||||
|
>>> sale_line.product = product1
|
||||||
|
>>> sale_line.quantity = 1.0
|
||||||
|
>>> sale2.click('quote')
|
||||||
|
>>> SaleConfirmDate = sale2.click('confirm')
|
||||||
|
>>> SaleConfirmDate.form.sale_date == today
|
||||||
|
True
|
||||||
|
>>> SaleConfirmDate.execute('confirm_date')
|
||||||
|
>>> sale2.state
|
||||||
|
'processing'
|
||||||
|
>>> sale2.shipments
|
||||||
|
[]
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
from trytond.tests.test_tryton import ModuleTestCase
|
from trytond.tests.test_tryton import ModuleTestCase
|
||||||
|
|
||||||
|
|
||||||
class SmartVisionTestCase(ModuleTestCase):
|
class OpticalEquipmentTestCase(ModuleTestCase):
|
||||||
"Test Smart Vision module"
|
"Test Optical Equipment module"
|
||||||
module = 'smart_vision'
|
module = 'optical_equipment'
|
||||||
|
|
||||||
|
|
||||||
del ModuleTestCase
|
del ModuleTestCase
|
||||||
|
|||||||
8
tests/test_scenario.py
Normal file
8
tests/test_scenario.py
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
# this repository contains the full copyright notices and license terms.
|
||||||
|
|
||||||
|
from trytond.tests.test_tryton import load_doc_tests
|
||||||
|
|
||||||
|
|
||||||
|
def load_tests(*args, **kwargs):
|
||||||
|
return load_doc_tests(__name__, __file__, *args, **kwargs)
|
||||||
4
tox.ini
4
tox.ini
@@ -4,8 +4,8 @@ envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
|
|||||||
[testenv]
|
[testenv]
|
||||||
extras = test
|
extras = test
|
||||||
commands =
|
commands =
|
||||||
coverage run --include=.*/smart_vision/* -m unittest discover -s tests
|
coverage run --include=./**/optical_equipment/* -m unittest discover -s tests
|
||||||
coverage report --include=.*/smart_vision/* --omit=*/tests/*
|
coverage report --include=./**/optical_equipment/* --omit=*/tests/*
|
||||||
deps =
|
deps =
|
||||||
coverage
|
coverage
|
||||||
postgresql: psycopg2 >= 2.7.0
|
postgresql: psycopg2 >= 2.7.0
|
||||||
|
|||||||
38
tryton.cfg
38
tryton.cfg
@@ -1,35 +1,31 @@
|
|||||||
[tryton]
|
[tryton]
|
||||||
version=6.2
|
version=7.0.0
|
||||||
depends:
|
depends:
|
||||||
ir
|
ir
|
||||||
party
|
|
||||||
company
|
company
|
||||||
account_co_co
|
account_product
|
||||||
account_co_pyme
|
party
|
||||||
account_invoice
|
|
||||||
account_stock_continental
|
|
||||||
product
|
product
|
||||||
|
product_attribute
|
||||||
|
product_image
|
||||||
product_measurements
|
product_measurements
|
||||||
purchase
|
purchase
|
||||||
sale
|
sale
|
||||||
stock
|
|
||||||
country
|
|
||||||
sale_history
|
|
||||||
sale_advance_payment
|
|
||||||
sale_amendment
|
|
||||||
xml:
|
xml:
|
||||||
address.xml
|
company.xml
|
||||||
party.xml
|
|
||||||
account.xml
|
|
||||||
product.xml
|
|
||||||
equipment.xml
|
equipment.xml
|
||||||
|
calibration.xml
|
||||||
contract.xml
|
contract.xml
|
||||||
configuration_equipment.xml
|
|
||||||
sale.xml
|
|
||||||
purchase.xml
|
|
||||||
uom.xml
|
|
||||||
move.xml
|
|
||||||
message.xml
|
|
||||||
diary.xml
|
diary.xml
|
||||||
|
agended.xml
|
||||||
|
configuration.xml
|
||||||
maintenance.xml
|
maintenance.xml
|
||||||
|
move.xml
|
||||||
|
party.xml
|
||||||
|
uom.xml
|
||||||
|
product.xml
|
||||||
|
purchase.xml
|
||||||
|
sale.xml
|
||||||
|
balance_sale_party.xml
|
||||||
shipment.xml
|
shipment.xml
|
||||||
|
messages.xml
|
||||||
@@ -7,7 +7,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<label name="party_related"/>
|
<label name="party_related"/>
|
||||||
<field name="party_related"/>
|
<field name="party_related"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="/form/group[@id='checkboxes']/field[@name='delivery']" position="after">
|
<xpath expr="/form/group[@id='checkboxes']/field[@name='active']" position="after">
|
||||||
<label name="campus"/>
|
<label name="campus"/>
|
||||||
<field name="campus"/>
|
<field name="campus"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<data>
|
<data>
|
||||||
<xpath expr="//field[@name='name']" position="after">
|
<!-- <xpath expr="//field[@name='street']" position="replace"> -->
|
||||||
<field name="street" expand="1"/>
|
<!-- <field name="street" expand="1"/> -->
|
||||||
</xpath>
|
<!-- </xpath> -->
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
35
view/calibratoin_total_form.xml
Normal file
35
view/calibratoin_total_form.xml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?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. -->
|
||||||
|
<form>
|
||||||
|
<label name="diopter"/>
|
||||||
|
<field name="diopter"/>
|
||||||
|
<label name="dev_std"/>
|
||||||
|
<field name="dev_std"/>
|
||||||
|
<label name="uncertain_type_A"/>
|
||||||
|
<field name="uncertain_type_A"/>
|
||||||
|
<label name="uncertain_pattern"/>
|
||||||
|
<field name="uncertain_pattern"/>
|
||||||
|
<label name="k_c_calibration"/>
|
||||||
|
<field name="k_c_calibration"/>
|
||||||
|
<label name="uncertain_U_b1"/>
|
||||||
|
<field name="uncertain_U_b1"/>
|
||||||
|
<label name="d_resolution"/>
|
||||||
|
<field name="d_resolution"/>
|
||||||
|
<label name="uncertain_U_b2_dig"/>
|
||||||
|
<field name="uncertain_U_b2_dig"/>
|
||||||
|
<label name="uncertain_U_b2_ana"/>
|
||||||
|
<field name="uncertain_U_b2_ana"/>
|
||||||
|
<label name="uncertain_combinated"/>
|
||||||
|
<field name="uncertain_combinated"/>
|
||||||
|
<label name="uncertain_eff"/>
|
||||||
|
<field name="uncertain_eff"/>
|
||||||
|
<label name="t_student"/>
|
||||||
|
<field name="t_student"/>
|
||||||
|
<label name="uncertain_expanded"/>
|
||||||
|
<field name="uncertain_expanded"/>
|
||||||
|
<label name="graph_dates"/>
|
||||||
|
<field name="graph_dates"/>
|
||||||
|
<label name="state"/>
|
||||||
|
<field name="state"/>
|
||||||
|
</form>
|
||||||
@@ -4,6 +4,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
|
|
||||||
<form>
|
<form>
|
||||||
<separator id="sequences" string="Sequences" colspan="4"/>
|
<separator id="sequences" string="Sequences" colspan="4"/>
|
||||||
|
<newline/>
|
||||||
<label name="equipment_sequence"/>
|
<label name="equipment_sequence"/>
|
||||||
<field name="equipment_sequence"/>
|
<field name="equipment_sequence"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
@@ -19,7 +20,9 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<label name="sale_quote_number"/>
|
<label name="sale_quote_number"/>
|
||||||
<field name="sale_quote_number"/>
|
<field name="sale_quote_number"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
|
|
||||||
<separator id="environmental_conditions" string="Environmental Conditions" colspan="4"/>
|
<separator id="environmental_conditions" string="Environmental Conditions" colspan="4"/>
|
||||||
|
<newline/>
|
||||||
<label name="temperature_min"/>
|
<label name="temperature_min"/>
|
||||||
<field name="temperature_min"/>
|
<field name="temperature_min"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
@@ -38,4 +41,14 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<label name="moisture_uom"/>
|
<label name="moisture_uom"/>
|
||||||
<field name="moisture_uom"/>
|
<field name="moisture_uom"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
|
|
||||||
|
<separator id="technician_responsible" string="Technician Responsible" colspan="4"/>
|
||||||
|
<label name="technician_responsible"/>
|
||||||
|
<field name="technician_responsible"/>
|
||||||
|
|
||||||
|
<label name="invima"/>
|
||||||
|
<field name="invima"/>
|
||||||
|
|
||||||
|
<label name="technician_signature"/>
|
||||||
|
<field name="technician_signature"/>
|
||||||
</form>
|
</form>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<calendar
|
<form>
|
||||||
dtstart="date_expected"
|
<label name="sale_date"/>
|
||||||
dtend="date_expected">
|
<field name="sale_date"/>
|
||||||
</calendar>
|
</form>
|
||||||
@@ -27,11 +27,14 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="maintenance_services"/>
|
<field name="maintenance_services"/>
|
||||||
</page>
|
</page>
|
||||||
<page string="Equipments" id="equipments">
|
<page string="Equipments" id="equipments">
|
||||||
<field name="equipments"/>
|
<field name="current_equipments"/>
|
||||||
|
</page>
|
||||||
|
<page string="History Equipments" id="history_equipments">
|
||||||
|
<field name="history_equipments"/>
|
||||||
</page>
|
</page>
|
||||||
<page string="Other Info" id="other">
|
<page string="Other Info" id="other">
|
||||||
<label name="company"/>
|
<!-- <label name="company"/> -->
|
||||||
<field name="company"/>
|
<!-- <field name="company"/> -->
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
<label name="price_contract"/>
|
<label name="price_contract"/>
|
||||||
@@ -39,8 +42,9 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<newline/>
|
<newline/>
|
||||||
<label name="state"/>
|
<label name="state"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<group col="2" colspan="2" id="button">
|
<group col="6" id="button">
|
||||||
<button name="draft"/>
|
<button name="draft"/>
|
||||||
|
<button name="closed"/>
|
||||||
<button name="cancelled"/>
|
<button name="cancelled"/>
|
||||||
<button name="running"/>
|
<button name="running"/>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
@@ -1,9 +0,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. -->
|
|
||||||
<tree>
|
|
||||||
<field name="number"/>
|
|
||||||
<field name="reference"/>
|
|
||||||
<field name="party"/>
|
|
||||||
<field name="start_date"/>
|
|
||||||
<field name="end_date"/>
|
|
||||||
</tree>
|
|
||||||
@@ -2,16 +2,22 @@
|
|||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level
|
<!-- This file is part of Tryton. The COPYRIGHT file at the top level
|
||||||
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_contract">
|
<group id="create_contract" col="2">
|
||||||
<label name="party"/>
|
<label name="party"/>
|
||||||
<field name="party"/>
|
<field name="party"/>
|
||||||
<label name="contact"/>
|
<newline/>
|
||||||
<field name="contact"/>
|
|
||||||
<label name="invoice_address"/>
|
<label name="invoice_address"/>
|
||||||
<field name="invoice_address"/>
|
<field name="invoice_address"/>
|
||||||
|
<newline/>
|
||||||
|
<label 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"/>
|
||||||
|
<newline/>
|
||||||
|
<label name="unit_price"/>
|
||||||
|
<field name="unit_price"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
<?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. -->
|
|
||||||
<form col="2">
|
|
||||||
<image name="tryton-question" xexpand="0" xfill="0"/>
|
|
||||||
<group col="2" xexpand="1" id="create_date">
|
|
||||||
<label string="Create Subscription Invoices for date" id="create"/>
|
|
||||||
<field name="date"/>
|
|
||||||
</group>
|
|
||||||
</form>
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level
|
|
||||||
this repository contains the full copyright notices and license terms. -->
|
|
||||||
<form>
|
|
||||||
<group id="create_prorogue">
|
|
||||||
<label name="party"/>
|
|
||||||
<field name="party"/>
|
|
||||||
<label name="contact"/>
|
|
||||||
<field name="contact"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="initial_contract"/>
|
|
||||||
<field name="initial_contract" colspan="3"/>
|
|
||||||
<label name="invoice_address"/>
|
|
||||||
<field name="invoice_address"/>
|
|
||||||
<label name="payment_term"/>
|
|
||||||
<field name="payment_term"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="invoice_recurrence"/>
|
|
||||||
<field name="invoice_recurrence"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="start_date"/>
|
|
||||||
<field name="start_date"/>
|
|
||||||
<label name="end_date"/>
|
|
||||||
<field name="end_date"/>
|
|
||||||
<label 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"/>
|
|
||||||
</group>
|
|
||||||
<newline/>
|
|
||||||
<field name="equipments"/>
|
|
||||||
</form>
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level
|
|
||||||
this repository contains the full copyright notices and license terms. -->
|
|
||||||
<form>
|
|
||||||
<group id="create_subscription">
|
|
||||||
<label name="party"/>
|
|
||||||
<field name="party"/>
|
|
||||||
<label name="contact"/>
|
|
||||||
<field name="contact"/>
|
|
||||||
<label name="invoice_address"/>
|
|
||||||
<field name="invoice_address"/>
|
|
||||||
<label name="invoice_recurrence"/>
|
|
||||||
<field name="invoice_recurrence"/>
|
|
||||||
<label name="start_date"/>
|
|
||||||
<field name="start_date"/>
|
|
||||||
<label name="end_date"/>
|
|
||||||
<field name="end_date"/>
|
|
||||||
<label 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>
|
|
||||||
<newline/>
|
|
||||||
<field name="equipments"/>
|
|
||||||
</form>
|
|
||||||
10
view/employee_form.xml
Normal file
10
view/employee_form.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?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='supervisor']" position="after">
|
||||||
|
<label name="invima"/>
|
||||||
|
<field name="invima"/>
|
||||||
|
<newline/>
|
||||||
|
</xpath>
|
||||||
|
</data>
|
||||||
9
view/maintenance_calibracion_tree.xml
Normal file
9
view/maintenance_calibracion_tree.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?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.-->
|
||||||
|
<tree>
|
||||||
|
<field name="value_patterns" expand="1"/>
|
||||||
|
<field name="value_equipment" expand="1"/>
|
||||||
|
<field name="mistake" expand="1"/>
|
||||||
|
<field name="mistake_rate" expand="1"/>
|
||||||
|
</tree>
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<data>
|
<form>
|
||||||
<xpath expr="/form/field[@name='maintenance_type']" position="after">
|
<!-- <xpath expr="/form/field[@name='maintenance_type']" position="after"> -->
|
||||||
|
<!-- <label name="equipment"/> -->
|
||||||
|
<!-- <field name="equipment"/> -->
|
||||||
|
<!-- </xpath> -->
|
||||||
<label name="equipment"/>
|
<label name="equipment"/>
|
||||||
<field name="equipment"/>
|
<field name="equipment"/>
|
||||||
</xpath>
|
</form>
|
||||||
</data>
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<label name="service_maintenance"/>
|
<label name="service_maintenance"/>
|
||||||
<field name="service_maintenance"/>
|
<field name="service_maintenance"/>
|
||||||
<label name="equipment_calibrate"/>
|
<label name="equipment_calibrate"/>
|
||||||
<field name="equipment_calibrate" invisible="1"/>
|
<field name="equipment_calibrate"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
<label name="description_activity"/>
|
<label name="description_activity"/>
|
||||||
<field name="description_activity" colspan="3"/>
|
<field name="description_activity" colspan="3"/>
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<group colspan="6" yexpand="1" id="lines_calibration">
|
<group colspan="6" yexpand="1" id="lines_calibration">
|
||||||
<field name="lines_calibration"/>
|
<field name="lines_calibration"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
<field name="calibration_total"/>
|
<field name="calibration_total" view_ids="optical_equipment.calibration_total_view_tree,optical_equipment.calibration_total_view_form"/>
|
||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
<page string="Graph" id="graph">
|
<page string="Graph" id="graph">
|
||||||
@@ -73,6 +73,12 @@
|
|||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
<newline/>
|
<newline/>
|
||||||
|
<label name="technician_responsible"/>
|
||||||
|
<field name="technician_responsible"/>
|
||||||
|
|
||||||
|
<label name="invima"/>
|
||||||
|
<field name="invima"/>
|
||||||
|
|
||||||
<label name="state"/>
|
<label name="state"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<group id="button">
|
<group id="button">
|
||||||
|
|||||||
@@ -14,9 +14,11 @@
|
|||||||
<label name="maintenance_activity"/>
|
<label name="maintenance_activity"/>
|
||||||
<field name="maintenance_activity"/>
|
<field name="maintenance_activity"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
|
<label name="quantity"/>
|
||||||
|
<field name="quantity"/>
|
||||||
<label name="unit"/>
|
<label name="unit"/>
|
||||||
<field name="unit"/>
|
<field name="unit"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
<label name="quantity"/>
|
<label name="description"/>
|
||||||
<field name="quantity"/>
|
<field name="description" xexpand="1"/>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -34,13 +34,16 @@
|
|||||||
<label name="moisture_uom"/>
|
<label name="moisture_uom"/>
|
||||||
<field name="moisture_uom"/>
|
<field name="moisture_uom"/>
|
||||||
<notebook colspan="6">
|
<notebook colspan="6">
|
||||||
<page string="General" id="general">
|
<page string="General" id="general" col="2">
|
||||||
<label name="state_agended"/>
|
|
||||||
<field name="state_agended"/>
|
|
||||||
<label name="technical"/>
|
<label name="technical"/>
|
||||||
<field name="technical"/>
|
<field name="technical"/>
|
||||||
|
<newline/>
|
||||||
<label name="estimated_agended"/>
|
<label name="estimated_agended"/>
|
||||||
<field name="estimated_agended"/>
|
<field name="estimated_agended" widget="date"/>
|
||||||
|
<label name="estimated_agended" string="Hora"/>
|
||||||
|
<field name="estimated_agended" widget="time"/>
|
||||||
|
<label name="state_agended"/>
|
||||||
|
<field name="state_agended"/>
|
||||||
</page>
|
</page>
|
||||||
<page string="Lines Of Mantenaince" id="lines_maintenance">
|
<page string="Lines Of Mantenaince" id="lines_maintenance">
|
||||||
<field name="lines"/>
|
<field name="lines"/>
|
||||||
@@ -56,12 +59,20 @@
|
|||||||
<page string="Other Info" id="other_info">
|
<page string="Other Info" id="other_info">
|
||||||
<label name="company"/>
|
<label name="company"/>
|
||||||
<field name="company"/>
|
<field name="company"/>
|
||||||
|
|
||||||
|
<label name="technician_responsible"/>
|
||||||
|
<field name="technician_responsible"/>
|
||||||
|
|
||||||
|
<label name="invima"/>
|
||||||
|
<field name="invima"/>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
<newline/>
|
<newline/>
|
||||||
<label name="state"/>
|
<label name="state"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<group id="button">
|
<group id="button">
|
||||||
|
<button name="reassing_agended" string="Reassing Agended"/>
|
||||||
|
<button name="assing_agended" string="Assing Agended"/>
|
||||||
<button name="in_progress"/>
|
<button name="in_progress"/>
|
||||||
<button name="finished"/>
|
<button name="finished"/>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<data>
|
<data>
|
||||||
<xpath expr="/form/field[@name='product']" position="after">
|
<xpath expr="/form/field[@name='product']" position="after">
|
||||||
|
<newline/>
|
||||||
|
<label name="return_equipment"/>
|
||||||
|
<field name="return_equipment"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
<label name="equipment"/>
|
<label name="equipment"/>
|
||||||
<field name="equipment"/>
|
<field name="equipment"/>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?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 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="//field[@name='product']" position="after">
|
expr="//field[@name='product']" position="after">
|
||||||
|
|||||||
@@ -3,11 +3,7 @@
|
|||||||
this repository contains the full copyright notices and license terms. -->
|
this repository contains the full copyright notices and license terms. -->
|
||||||
<data>
|
<data>
|
||||||
<xpath expr="/form/group[@id='header']" position="inside">
|
<xpath expr="/form/group[@id='header']" position="inside">
|
||||||
<label name="client_type"/>
|
<label name="customer_type"/>
|
||||||
<field name="client_type"/>
|
<field name="customer_type"/>
|
||||||
</xpath>
|
|
||||||
<xpath expr="/form/notebook/page[@id='general']" position="after">
|
|
||||||
<page string="Equipments Party" id="equipments_party">
|
|
||||||
</page>
|
|
||||||
</xpath>
|
</xpath>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user