Compare commits
207 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c5647cc3f8 | ||
|
|
24cadfc01b | ||
| 2e0a0d725c | |||
| 3463ddf1ca | |||
| b639aaee28 | |||
| 749a52332a | |||
| 462ecdbb4f | |||
| 2ffcca013b | |||
| c61b422cbc | |||
| 2b312d787d | |||
| 42965ff680 | |||
| c32c506346 | |||
| f88612dfa1 | |||
| 9c36d6663d | |||
| 0b33a1c2c3 | |||
| df4bca7485 | |||
| 6929fec5ec | |||
| 1ac2816f39 | |||
| 34e71ade15 | |||
| ebf7d7fc99 | |||
| 8f3c07a69d | |||
| c0e3024e46 | |||
| b1ff95cf27 | |||
| 446df7a69e | |||
| 4e026a1422 | |||
| 4d9e352611 | |||
| 8b93ae13e0 | |||
| 12f66e35bb | |||
| 3bdb22d3f6 | |||
| 2de04793cc | |||
| b9c222c642 | |||
| 4dd0c83e5e | |||
| 62309d5095 | |||
| 836ee474a6 | |||
| e2ff22223c | |||
| 9355cb73d1 | |||
| 196a5a90cc | |||
| f9be62649a | |||
| 8a6e334223 | |||
| bd26902a9e | |||
| bca233fa37 | |||
| b31e9f39f7 | |||
| 92d92d4c50 | |||
| 4f18a39a96 | |||
| b64c897618 | |||
| 587ff4094f | |||
| 16d5ee6df5 | |||
| d69e4b141a | |||
| bcfb207a30 | |||
| 6a9711a919 | |||
| d1fc0872f0 | |||
| 3ad449f466 | |||
| 534f89486d | |||
| 89cdad5101 | |||
| 9f352bbd63 | |||
| bc8dc103ed | |||
| a6a400017a | |||
| c6486b2243 | |||
| 16dedba779 | |||
| 253500af41 | |||
| ae62a07fe1 | |||
| 517cc3a58e | |||
| 13cc3b6e3e | |||
| 9a9a0eecff | |||
| 917e820b37 | |||
| ecde79d84d | |||
| 3535043b99 | |||
| 9d8c526aeb | |||
| a442f1d098 | |||
| 01f3e58c7e | |||
| a3ef82f4d1 | |||
| 9493d39b9f | |||
| 221c887cb6 | |||
| 4767cc94c7 | |||
| e47594fb10 | |||
| 739440efb9 | |||
| 41d44b4956 | |||
| 927e6c060d | |||
| a1b4cc5616 | |||
| e630edb389 | |||
| 87a843754d | |||
| 9736b1baf3 | |||
| 8cd2cf17bf | |||
| 86b6bef61d | |||
| d1940a271d | |||
| 20a0df5c50 | |||
| 50dc5aa2b0 | |||
| 4d09b42324 | |||
| 9b09080ae8 | |||
| 0c88126ae8 | |||
| 206bad122b | |||
| 7c7db3a3c0 | |||
| e9f288bfbd | |||
| 6a3ce61e06 | |||
| f1e0d9b274 | |||
| 113de78608 | |||
| ef5154ed6f | |||
| 785d8890f2 | |||
| 55bef63e37 | |||
| b19e096c94 | |||
| 61473998d2 | |||
| 46ad43845f | |||
| 9e73d4ec09 | |||
| c4151da4f2 | |||
| f056418573 | |||
| c678e72f4a | |||
| 1d302cc485 | |||
| 7bf05f4857 | |||
| 33f3cdc5ef | |||
| a8ce002f4f | |||
| da07c0eee0 | |||
| 9bdee108ac | |||
| 054b78fd01 | |||
| b7976c2b04 | |||
| 9981598350 | |||
| 5c857d8a9e | |||
| 3c3e38e7fa | |||
| f7740e3827 | |||
| b657f5cd4d | |||
| 5566df2b5d | |||
| e234737535 | |||
| 35a5d217ac | |||
| af32d1c9fb | |||
| 720710e094 | |||
| 5d88267435 | |||
| 8fad2a7cf3 | |||
| 40204302f4 | |||
| 7e7ce08625 | |||
| f802a9c3e5 | |||
| 6bca322af8 | |||
| ebf2dd372e | |||
| 569db4ba4b | |||
| 35ea0a037c | |||
| 42218f5f06 | |||
| a0fbc157ff | |||
| c056bbc38a | |||
| f08e0a0f83 | |||
| 40846ec28b | |||
| 8400110fdb | |||
| 209a2083b3 | |||
| 8e173c4758 | |||
| 50f6249562 | |||
| 610106befe | |||
| 11473f11ba | |||
| 41ec228407 | |||
| 4d02d61639 | |||
| 103b9d89ba | |||
| 04d7041be7 | |||
| a5c58d104e | |||
| 97a1f77fbc | |||
| 6ee312bb2e | |||
| e26d7e50d6 | |||
| 5b652cb2ac | |||
| 3d14ee5dc0 | |||
| 76513e61c1 | |||
| 65770b97c7 | |||
| 9aa5fad86b | |||
| 9bb6f4066c | |||
| 425c7e225a | |||
| d453653bfc | |||
| f14684b403 | |||
| a8ba3f056c | |||
| a9f20c356f | |||
| db126e496e | |||
| ffaed5fe49 | |||
| 0fe894d10f | |||
| 8910886374 | |||
| 8ec9c4c130 | |||
| e00a5415ef | |||
| 93a409daf6 | |||
| 5e820d5670 | |||
| 6883d20a7d | |||
| 1a9b979e3b | |||
| 2cc22349e2 | |||
| 609cf1e386 | |||
| 47743f378e | |||
| 2f92c8f74b | |||
| 8cc60e6540 | |||
| d0ab043193 | |||
| 1e03f2e213 | |||
| 553e3bf668 | |||
| 9756cea8c1 | |||
| 0931aa7727 | |||
| 0566d0d66f | |||
| a99a70fd1d | |||
| b432c75314 | |||
| a9876fada4 | |||
| f0f76ca652 | |||
| 141cb90ead | |||
| 98b33d8b8c | |||
| b23e83eb25 | |||
| 93f037923b | |||
| 5058a46c37 | |||
| 274a095b72 | |||
| 887ec2eeaa | |||
| cf34d85596 | |||
| f49769990e | |||
| 7b5cdd61b0 | |||
| 5dce5130ce | |||
| 5d948b5427 | |||
| ff34a02dd5 | |||
| 87639119e4 | |||
| b61bcce44b | |||
| 7e2648e114 | |||
| 5430dc54ee | |||
| 4818d84db1 | |||
| cceb3906ba |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -28,6 +28,11 @@ 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) 2023
|
Copyright (C) 2022 trytondo-smart-vision
|
||||||
|
|
||||||
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,5 +2,4 @@ include CHANGELOG
|
|||||||
include COPYRIGHT
|
include COPYRIGHT
|
||||||
include LICENSE
|
include LICENSE
|
||||||
include README.rst
|
include README.rst
|
||||||
include icons/LICENSE
|
|
||||||
graft doc
|
graft doc
|
||||||
|
|||||||
79
__init__.py
79
__init__.py
@@ -1,73 +1,44 @@
|
|||||||
# 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 (agended, balance_sale_party, calibration, configuration,
|
from . import (address, diary, party, product, purchase, sale,
|
||||||
contract, company, diary, equipment, party, product,
|
equipment, configuration_equipment, contract, maintenance, move, exceptions)
|
||||||
maintenance, move, purchase, sale)
|
|
||||||
|
|
||||||
__all__ = ['register']
|
|
||||||
|
|
||||||
|
|
||||||
def register():
|
def register():
|
||||||
Pool.register(
|
Pool.register(
|
||||||
company.Employee,
|
address.Address,
|
||||||
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,
|
||||||
sale.Sale,
|
equipment.OpticalEquipment,
|
||||||
sale.SaleDate,
|
equipment.EquipmentMaintenance,
|
||||||
sale.SaleLine,
|
equipment.EquipmentParty,
|
||||||
|
equipment.ChangePropietary,
|
||||||
|
configuration_equipment.Configuration,
|
||||||
|
maintenance.Calibration,
|
||||||
|
maintenance.CreateContractInitial,
|
||||||
|
maintenance.CalibrationSample,
|
||||||
|
maintenance.Maintenance,
|
||||||
maintenance.MaintenanceService,
|
maintenance.MaintenanceService,
|
||||||
maintenance.MaintenanceServiceLine,
|
|
||||||
maintenance.MaintenanceLine,
|
|
||||||
maintenance.MaintenanceActivity,
|
maintenance.MaintenanceActivity,
|
||||||
maintenance.ChangePropietaryMaintenance,
|
maintenance.MaintenanceLine,
|
||||||
|
maintenance.AgendedInitial,
|
||||||
|
maintenance.ReAgended,
|
||||||
|
maintenance.ServiceMaintenanceAgended,
|
||||||
move.Move,
|
move.Move,
|
||||||
move.ShipmentOut,
|
move.ShipmentOut,
|
||||||
move.ShipmentInternal,
|
move.ShipmentInternal,
|
||||||
move.ShipmentOutReturn,
|
sale.Sale,
|
||||||
balance_sale_party.BalanceSalePartyStart,
|
sale.SaleLine,
|
||||||
module='optical_equipment', type_='model'
|
contract.Contract,
|
||||||
)
|
contract.ContractEquipment,
|
||||||
|
contract.ContractMaintenanceServices,
|
||||||
|
module='optical_equipment', type_='model')
|
||||||
Pool.register(
|
Pool.register(
|
||||||
agended.AssingAgended,
|
maintenance.AssingAgended,
|
||||||
agended.ReAssingAgended,
|
maintenance.ReAssingAgended,
|
||||||
contract.CreateContract,
|
maintenance.CreateContract,
|
||||||
equipment.NewPropietary,
|
equipment.NewPropietary,
|
||||||
maintenance.NewPropietaryMaintenance,
|
|
||||||
balance_sale_party.PrintBalanceSaleParty,
|
|
||||||
sale.ConfirmSaleDate,
|
|
||||||
module='optical_equipment', type_='wizard')
|
module='optical_equipment', type_='wizard')
|
||||||
Pool.register(
|
|
||||||
calibration.CalibrationReport,
|
|
||||||
contract.ContractReport,
|
|
||||||
equipment.EquipmentReport,
|
|
||||||
maintenance.MaintenanceServiceReport,
|
|
||||||
move.PickingListDeliveryReport,
|
|
||||||
move.CapacitationReport,
|
|
||||||
balance_sale_party.BalanceSaleParty,
|
|
||||||
module='optical_equipment', type_='report')
|
|
||||||
|
|||||||
11
address.py
Normal file
11
address.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
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
Normal file
15
address.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?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
144
agended.py
@@ -1,144 +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.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
33
agended.xml
@@ -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="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>
|
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
# 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
|
|
||||||
@@ -1,28 +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.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
113
calibration.py
@@ -1,113 +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.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
|
|
||||||
@@ -1,52 +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="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>
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
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
12
company.xml
@@ -1,12 +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>
|
|
||||||
<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>
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
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)
|
|
||||||
@@ -1,81 +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.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>
|
|
||||||
20
configuration_equipment.py
Normal file
20
configuration_equipment.py
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
from trytond.model import (
|
||||||
|
ModelSingleton, ModelSQL, ModelView, fields)
|
||||||
|
from trytond.pyson import Id
|
||||||
|
|
||||||
|
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'))
|
||||||
|
])
|
||||||
|
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'))
|
||||||
|
])
|
||||||
33
configuration_equipment.xml
Normal file
33
configuration_equipment.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="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>
|
||||||
413
contract.py
413
contract.py
@@ -1,29 +1,18 @@
|
|||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import ModelSQL, ModelView, Workflow, fields
|
from trytond.model import (
|
||||||
from trytond.modules.company import CompanyReport
|
ModelSQL, ModelView, Workflow, fields)
|
||||||
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 Button, StateAction, StateView, Wizard
|
from trytond.wizard import (
|
||||||
|
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, date
|
from datetime import timedelta
|
||||||
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):
|
||||||
@@ -32,113 +21,58 @@ 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.company', "Company", required=True, select=True,
|
||||||
'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,
|
"Number", readonly=True, select=True,
|
||||||
help='The main identification of the subscription.'
|
help="The main identification of the subscription.")
|
||||||
)
|
|
||||||
reference = fields.Char(
|
reference = fields.Char(
|
||||||
'Reference',
|
"Reference", select=True,
|
||||||
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.party', "Party", required=True,
|
||||||
'Party',
|
|
||||||
required=True,
|
|
||||||
states={
|
states={
|
||||||
'readonly': (Eval('state') != 'draft') | Eval('party', True),
|
'readonly': (Eval('state') != 'draft') | Eval('party', True),
|
||||||
},
|
},help="The party who subscribes.")
|
||||||
help='The party who subscribes.',
|
contact = fields.Many2One('party.contact_mechanism', "Contact", required=True)
|
||||||
)
|
invoice_address = fields.Many2One('party.address', 'Invoice Address',
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
|
required=True, domain=[('party', '=', Eval('party'))],
|
||||||
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,)
|
||||||
start_date = fields.Date(
|
end_date = fields.Date("End Date",
|
||||||
'Start Date',
|
domain=['OR',
|
||||||
required=True,
|
('end_date', '>=', If(
|
||||||
)
|
|
||||||
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")
|
||||||
|
equipments = fields.One2Many('optical_equipment.equipment', 'contract', "Equipments")
|
||||||
|
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):
|
||||||
@@ -147,33 +81,16 @@ 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', 'closed'),
|
('running', 'closed'),
|
||||||
('running', 'cancelled'),
|
('running', 'cancelled'),
|
||||||
('cancelled', 'draft'),
|
})
|
||||||
}
|
cls._buttons.update({
|
||||||
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():
|
||||||
@@ -189,7 +106,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 is not None:
|
if config.contract_sequence != 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()
|
||||||
@@ -197,258 +114,40 @@ class Contract(Workflow, ModelSQL, ModelView):
|
|||||||
except UserError:
|
except UserError:
|
||||||
raise UserError(str('Validation Error'))
|
raise UserError(str('Validation Error'))
|
||||||
else:
|
else:
|
||||||
raise UserError(
|
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
|
||||||
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
|
|
||||||
@ModelView.button
|
|
||||||
@Workflow.transition('draft')
|
|
||||||
def draft(cls, contracts):
|
|
||||||
contract = contracts[0]
|
|
||||||
for equipment in contract.current_equipments:
|
|
||||||
equipment.state = 'uncontrated'
|
|
||||||
equipment.contract_history += (contract.id,)
|
|
||||||
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.current_equipments:
|
for equipment in contract.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):
|
||||||
contract = contracts[0]
|
pass
|
||||||
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(
|
maintenance_services = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", select=True)
|
||||||
'optical_equipment_maintenance.service',
|
contract = fields.Many2One('optical_equipment.contract', "Contract")
|
||||||
'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(
|
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
||||||
'optical_equipment.equipment',
|
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
|
||||||
'Equipment',
|
|
||||||
)
|
|
||||||
contract = fields.Many2One(
|
|
||||||
'optical_equipment.contract',
|
|
||||||
'Contract',
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ContractReport(CompanyReport):
|
|
||||||
__name__ = 'optical_equipment.contract'
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def execute(cls, ids, data):
|
|
||||||
with Transaction().set_context(address_with_party=True):
|
|
||||||
return super(ContractReport, 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
|
|
||||||
|
|
||||||
|
|
||||||
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()
|
|
||||||
|
|||||||
49
contract.xml
49
contract.xml
@@ -1,8 +1,6 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!-- This 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="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>
|
||||||
@@ -42,7 +40,6 @@
|
|||||||
<field name="name">Running</field>
|
<field name="name">Running</field>
|
||||||
<field name="sequence" eval="30"/>
|
<field name="sequence" eval="30"/>
|
||||||
<field name="domain" eval="[('state', '=', 'running')]" pyson="1"/>
|
<field name="domain" eval="[('state', '=', 'running')]" pyson="1"/>
|
||||||
<field name="count" eval="True"/>
|
|
||||||
<field name="act_window" ref="act_contract_form"/>
|
<field name="act_window" ref="act_contract_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.domain"
|
<record model="ir.action.act_window.domain"
|
||||||
@@ -50,7 +47,6 @@
|
|||||||
<field name="name">Closed</field>
|
<field name="name">Closed</field>
|
||||||
<field name="sequence" eval="40"/>
|
<field name="sequence" eval="40"/>
|
||||||
<field name="domain" eval="[('state', '=', 'closed')]" pyson="1"/>
|
<field name="domain" eval="[('state', '=', 'closed')]" pyson="1"/>
|
||||||
<field name="count" eval="True"/>
|
|
||||||
<field name="act_window" ref="act_contract_form"/>
|
<field name="act_window" ref="act_contract_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.domain"
|
<record model="ir.action.act_window.domain"
|
||||||
@@ -60,21 +56,11 @@
|
|||||||
<field name="domain"></field>
|
<field name="domain"></field>
|
||||||
<field name="act_window" ref="act_contract_form"/>
|
<field name="act_window" ref="act_contract_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="draft_running_button">
|
|
||||||
<field name="name">draft</field>
|
|
||||||
<field name="string">Draft</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="contrac_running_button">
|
<record model="ir.model.button" id="contrac_running_button">
|
||||||
<field name="name">running</field>
|
<field name="name">running</field>
|
||||||
<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>
|
||||||
@@ -105,21 +91,6 @@
|
|||||||
<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>
|
||||||
@@ -144,28 +115,14 @@
|
|||||||
<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>
|
||||||
|
|||||||
11
diary.py
11
diary.py
@@ -1,27 +1,22 @@
|
|||||||
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'
|
|
||||||
|
|
||||||
code = fields.Char("Code", states={'readonly': True})
|
code = fields.Char("Code", select=True,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(
|
maintenance_service = fields.Many2One('optical_equipment_maintenance.service', 'Maintenance Service', required=True)
|
||||||
'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",
|
], "State", required=True, readonly=True, sort=True)
|
||||||
required=True, readonly=True, sort=True)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_state(self):
|
def default_state(self):
|
||||||
|
|||||||
10
diary.xml
10
diary.xml
@@ -94,19 +94,13 @@
|
|||||||
<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,10 +1,9 @@
|
|||||||
########################
|
###################
|
||||||
Optical Equipment Module
|
Smart Vision Module
|
||||||
########################
|
###################
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
usage
|
usage
|
||||||
design
|
design
|
||||||
releases
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
.. _releases-index:
|
|
||||||
|
|
||||||
=============
|
|
||||||
Release notes
|
|
||||||
=============
|
|
||||||
|
|
||||||
.. include:: ../CHANGELOG
|
|
||||||
497
equipment.py
497
equipment.py
@@ -1,20 +1,23 @@
|
|||||||
# 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, fields
|
DeactivableMixin, Workflow, ModelSQL, ModelView, Unique, fields)
|
||||||
from trytond.pyson import Eval
|
from trytond.pyson import Eval, If
|
||||||
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 Button, StateAction, StateView, Wizard
|
from trytond.wizard import (
|
||||||
from trytond.modules.company import CompanyReport
|
Button, StateAction, StateTransition, StateView, Wizard)
|
||||||
|
|
||||||
|
|
||||||
_MAINTENANCE_FREQUENCY = [
|
|
||||||
('none', ''), ('6', 'Seis Meses'), ('12', 'Doce Meses')]
|
|
||||||
|
|
||||||
|
_MAINTENANCE_FREQUENCY = [("none", ''),
|
||||||
|
("6", 'Seis Meses'),
|
||||||
|
("12", 'Doce Meses')]
|
||||||
|
|
||||||
class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
||||||
'Optical Equipment'
|
'Optical Equipment'
|
||||||
@@ -22,190 +25,100 @@ 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', states={'readonly': True})
|
code = fields.Char(
|
||||||
|
"Code", select=True,states={'readonly': True })
|
||||||
|
|
||||||
state = fields.Selection(
|
state = fields.Selection([('draft', "Draft"),
|
||||||
[
|
('registred', "Registred"),
|
||||||
('draft', 'Draft'),
|
('uncontrated', "UnContrated"),
|
||||||
('registred', 'Registred'),
|
('contrated', "Contrated")
|
||||||
('uncontrated', 'UnContrated'),
|
], "State",
|
||||||
('contrated', 'Contrated'),
|
required=True, readonly=True, sort=False)
|
||||||
],
|
contract = fields.Many2One('optical_equipment.contract', "Contract", ondelete='CASCADE')
|
||||||
'State',
|
company = fields.Many2One('company.company', "Company", readonly=True)
|
||||||
required=True,
|
location = fields.Many2One('stock.location', "Location",
|
||||||
readonly=True,
|
states=_states,)
|
||||||
sort=False,
|
propietary = fields.Many2One('party.party',"Propietary", required=True,
|
||||||
)
|
states=_states,)
|
||||||
|
propietary_address = fields.Many2One('party.address', "Propietary Address", required=True,
|
||||||
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'))],
|
domain=[('party', '=', Eval('propietary'))],
|
||||||
states=_states,
|
states=_states
|
||||||
)
|
)
|
||||||
propietarys = fields.Many2Many(
|
propietarys = fields.Many2Many('optical_equipment.equipment-party.party', 'equipment', 'party', "Propietarys")
|
||||||
'optical_equipment.equipment-party.party',
|
product = fields.Many2One('product.product', "Product",
|
||||||
'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 = fields.Boolean("Refurbish",
|
||||||
'Refurbish',
|
states=_states,)
|
||||||
states=_states,
|
equipment_type = fields.Char('type', states={'readonly': If('product', True)})
|
||||||
|
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
|
||||||
)
|
)
|
||||||
equipment_type = fields.Char('type', states=_states_product)
|
model_category = fields.Many2One('product.category', "Model", required=True,
|
||||||
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 = fields.Char("Software version", size=None,
|
||||||
'Software version',
|
states=_states,)
|
||||||
size=None,
|
useful_life = fields.Integer("Useful life",
|
||||||
states=_states,
|
states=_states,)
|
||||||
)
|
warranty = fields.Integer("Warranty",
|
||||||
useful_life = fields.Integer(
|
states=_states,)
|
||||||
'Useful life',
|
serial = fields.Char("Serial", size=None,
|
||||||
states=_states,
|
states=_states_serial,
|
||||||
)
|
depends=_depends)
|
||||||
warranty = fields.Integer(
|
health_register = fields.Char("Health Register", size=None,
|
||||||
'Warranty',
|
states=_states,)
|
||||||
states=_states,
|
contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'equipment','contract', "Contracts", states={'readonly': True})
|
||||||
)
|
|
||||||
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(
|
fields.Many2Many('optical_equipment.maintenance-optical_equipment.equipment',
|
||||||
'optical_equipment.maintenance-optical_equipment.equipment',
|
'equipment', 'maintenance',"Maintenances"), 'get_maintenances_of_equipment')
|
||||||
'equipment',
|
software_version = fields.Char("Software version", size=None,
|
||||||
'maintenance',
|
states=_states,)
|
||||||
'Maintenances',
|
|
||||||
),
|
|
||||||
'get_maintenances_of_equipment',
|
|
||||||
)
|
|
||||||
software_version = fields.Char(
|
|
||||||
'Software version',
|
|
||||||
size=None,
|
|
||||||
states=_states,
|
|
||||||
)
|
|
||||||
|
|
||||||
maintenance_frequency = fields.Selection(
|
maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency",
|
||||||
_MAINTENANCE_FREQUENCY, 'Maintenance Frequency',
|
depends=['propietary'])
|
||||||
depends=['propietary']
|
purchase_origin = fields.Reference("Purchase Origin", selection='get_origin',select=True,
|
||||||
)
|
states={'readonly': True})
|
||||||
purchase_origin = fields.Reference(
|
sale_destination = fields.Reference("Sale Destination", selection='get_destination',select=True,
|
||||||
'Purchase Origin',
|
states={'readonly': True})
|
||||||
selection='get_origin', states={'readonly': True}
|
shipment_destination = fields.Reference("Stock Move", selection='get_shipment', select=True,
|
||||||
)
|
states={'readonly': True})
|
||||||
sale_destination = fields.Reference(
|
rec_name = fields.Function(fields.Char("rec_name"), 'get_rec_name')
|
||||||
'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) + '@' + \
|
name = str(self.product.name) + '@' + str(self.serial) + '/' + str(self.code)
|
||||||
str(self.serial) + '/' + str(self.code)
|
|
||||||
|
|
||||||
return name
|
return name
|
||||||
|
|
||||||
@@ -252,6 +165,7 @@ 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')
|
||||||
@@ -260,24 +174,20 @@ 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', 'uncontrated'),
|
('registred', 'uncontrated'),
|
||||||
('uncontrated', 'contrated'),
|
('uncontrated', 'contrated'),
|
||||||
}
|
})
|
||||||
cls._buttons.update(
|
cls._buttons.update({
|
||||||
{
|
# 'draft': {
|
||||||
'draft': {'invisible': Eval('state') != 'registred'},
|
# 'invisible': Eval('state') == 'draft'},
|
||||||
'registred': {
|
'registred': {
|
||||||
'invisible': Eval('state').in_(
|
'invisible': Eval('state').in_(['registred', 'uncontrated', 'contrated'])}}
|
||||||
['registred', 'uncontrated', 'contrated']
|
|
||||||
)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -287,7 +197,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 is not None:
|
if config.equipment_sequence != None:
|
||||||
if not equipment.code:
|
if not equipment.code:
|
||||||
try:
|
try:
|
||||||
equipment.code = config.equipment_sequence.get()
|
equipment.code = config.equipment_sequence.get()
|
||||||
@@ -295,33 +205,14 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
except UserError:
|
except UserError:
|
||||||
raise UserError(str('Validation Error'))
|
raise UserError(str('Validation Error'))
|
||||||
else:
|
else:
|
||||||
raise UserError(
|
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
|
||||||
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(
|
maintenancesEquipment = MaintenancesEquipment.search(['equipment', '=', self.id])
|
||||||
['equipment', '=', self.id]
|
|
||||||
)
|
|
||||||
maintenances = []
|
maintenances = []
|
||||||
|
|
||||||
for key in maintenancesEquipment:
|
for key in maintenancesEquipment:
|
||||||
@@ -329,13 +220,6 @@ 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'
|
||||||
@@ -347,150 +231,104 @@ 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.customer_type == 'ips':
|
if self.propietary.client_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',
|
@fields.depends('product', 'equipment_type','use',
|
||||||
'use', 'biomedical_class', 'calibration',
|
'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.useful_life=self.product.useful_life if self.product.useful_life else int(0)
|
||||||
self.product.useful_life if self.product.useful_life else int(
|
self.calibration=True if self.product.calibration else False
|
||||||
0)
|
self.warranty=self.product.warranty if self.product.warranty else int(0)
|
||||||
)
|
self.risk=self.product.risk
|
||||||
self.calibration = True if self.product.calibration else False
|
self.origin_country=self.product.origin_country
|
||||||
self.warranty =\
|
self.use=self.product.use
|
||||||
self.product.warranty if self.product.warranty else int(0)
|
self.biomedical_class=self.product.biomedical_class
|
||||||
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(gettext('estos equipos no se pueden borrar'))
|
raise AccessError(
|
||||||
elif equipment.state != 'draft' and equipment.serial is not None:
|
gettext('estos equipos no se pueden borrar'))
|
||||||
raise AccessError(gettext('estos equipos no se pueden borrar'))
|
elif equipment.state != 'draft' and equipment.serial != None:
|
||||||
|
raise AccessError(
|
||||||
|
gettext('estos equipos no se pueden borrar'))
|
||||||
super(OpticalEquipment, cls).delete(equipments)
|
super(OpticalEquipment, cls).delete(equipments)
|
||||||
|
|
||||||
@classmethod
|
|
||||||
@ModelView.button
|
|
||||||
@Workflow.transition('draft')
|
|
||||||
def draft(cls, equipments):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@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 is None:
|
if i.serial == 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(
|
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
||||||
'optical_equipment.equipment',
|
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
|
||||||
'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(
|
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", select=True)
|
||||||
'optical_equipment.equipment',
|
party = fields.Many2One('party.party', "Party", select=True)
|
||||||
'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(
|
equipment = fields.Many2One('optical_equipment.equipment', "Equipment")
|
||||||
'party.party', 'Old Propietary', states={'required': True}
|
new_propietary = fields.Many2One('party.party', "New Propietary")
|
||||||
)
|
new_address = fields.Many2One('party.address', "New Address", required=True,
|
||||||
equipments = fields.Many2Many(
|
domain=[('party', '=', Eval('new_propietary'))],)
|
||||||
'optical_equipment.equipment',
|
change_date = fields.Date("Change Date", readonly=True)
|
||||||
None,
|
|
||||||
None,
|
|
||||||
'Equipments',
|
|
||||||
domain=[('propietary', '=', Eval('old_propietary'))],
|
|
||||||
depends=['old_propietary'],
|
|
||||||
)
|
|
||||||
new_propietary = fields.Many2One(
|
|
||||||
'party.party', 'New Propietary', states={'required': True}
|
|
||||||
)
|
|
||||||
new_address = fields.Many2One(
|
|
||||||
'party.address',
|
|
||||||
'New Address',
|
|
||||||
required=True,
|
|
||||||
domain=[('party', '=', Eval('new_propietary'))],
|
|
||||||
states={'required': True},
|
|
||||||
)
|
|
||||||
change_date = fields.Date('Change Date', readonly=True)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_change_date(cls):
|
def default_change_date(cls):
|
||||||
@@ -503,57 +341,20 @@ class NewPropietary(Wizard):
|
|||||||
'Change Propietary'
|
'Change Propietary'
|
||||||
__name__ = 'optical_equipment.change_propietary'
|
__name__ = 'optical_equipment.change_propietary'
|
||||||
|
|
||||||
start = StateView(
|
start = StateView('optical_equipment.change_propietary.form',
|
||||||
'optical_equipment.change_propietary.form',
|
'optical_equipment.change_propietary_view_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):
|
||||||
equipments = self.start.equipments
|
equipment = self.start.equipment
|
||||||
new_propietary = self.start.new_propietary
|
new_propietary = self.start.new_propietary
|
||||||
new_address = self.start.new_address
|
new_address = self.start.new_address
|
||||||
|
|
||||||
for equipment in equipments:
|
|
||||||
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 = (
|
equipment.maintenance_frequency = "6" if new_propietary.client_type == 'ips' else "12"
|
||||||
'6' if new_propietary.customer_type == 'ips' else '12'
|
|
||||||
)
|
|
||||||
equipment.save()
|
equipment.save()
|
||||||
|
|
||||||
|
|
||||||
class ChangeEquipment(ModelSQL):
|
|
||||||
'Change Equipment'
|
|
||||||
__name__ = 'optical_equipment.equipment-change_propietary.form'
|
|
||||||
|
|
||||||
maintenance_service = fields.Many2One(
|
|
||||||
'optical_equipment_maintenance.service', 'Maintenance Service'
|
|
||||||
)
|
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
|
|
||||||
change = fields.Many2One(
|
|
||||||
'optical_equipment.change_propietary.form', 'Change')
|
|
||||||
|
|
||||||
|
|
||||||
class EquipmentReport(CompanyReport):
|
|
||||||
__name__ = 'optical_equipment.equipment'
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def execute(cls, ids, data):
|
|
||||||
with Transaction().set_context(address_with_party=True):
|
|
||||||
return super(EquipmentReport, 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
|
|
||||||
|
|||||||
102
equipment.xml
102
equipment.xml
@@ -11,6 +11,18 @@
|
|||||||
<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>
|
||||||
@@ -19,12 +31,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">equipment_tree</field>
|
<field name="name">optical_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">equipment_form</field>
|
<field name="name">optical_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"/>
|
||||||
@@ -63,6 +75,7 @@
|
|||||||
<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"/>
|
||||||
@@ -78,17 +91,18 @@
|
|||||||
<field name="domain"></field>
|
<field name="domain"></field>
|
||||||
<field name="act_window" ref="act_optical_equipment_form"/>
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="draft_equipment_button">
|
|
||||||
<field name="name">draft</field>
|
|
||||||
<field name="string">Draft</field>
|
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.model.button" id="registred_equipment_button">
|
<record model="ir.model.button" id="registred_equipment_button">
|
||||||
<field name="name">registred</field>
|
<field name="name">registred</field>
|
||||||
<field name="string">Registred</field>
|
<field name="string">Registred</field>
|
||||||
<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>
|
||||||
@@ -97,7 +111,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">equipment_serial_tree</field>
|
<field name="name">optical_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"/>
|
||||||
@@ -113,6 +127,52 @@
|
|||||||
<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>
|
||||||
@@ -152,31 +212,5 @@
|
|||||||
<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>
|
||||||
|
|||||||
11
exceptions.py
Normal file
11
exceptions.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# 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
202
icons/LICENSE
@@ -1,202 +0,0 @@
|
|||||||
|
|
||||||
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 +0,0 @@
|
|||||||
<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>
|
|
||||||
|
Before Width: | Height: | Size: 814 B |
@@ -1 +0,0 @@
|
|||||||
<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>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1 +0,0 @@
|
|||||||
<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>
|
|
||||||
|
Before Width: | Height: | Size: 942 B |
@@ -1 +0,0 @@
|
|||||||
<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>
|
|
||||||
|
Before Width: | Height: | Size: 916 B |
@@ -1 +0,0 @@
|
|||||||
<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>
|
|
||||||
|
Before Width: | Height: | Size: 690 B |
327
locale/es.po
327
locale/es.po
@@ -18,10 +18,6 @@ msgctxt "view:product.template:"
|
|||||||
msgid "Calibration"
|
msgid "Calibration"
|
||||||
msgstr "Calibración"
|
msgstr "Calibración"
|
||||||
|
|
||||||
msgctxt "view:product.template:"
|
|
||||||
msgid "Maintenance Activities"
|
|
||||||
msgstr "Actividades de Mantenimiento"
|
|
||||||
|
|
||||||
msgctxt "view:product.template:"
|
msgctxt "view:product.template:"
|
||||||
msgid "Measurements of Equipment"
|
msgid "Measurements of Equipment"
|
||||||
msgstr "Medidas del Equipo"
|
msgstr "Medidas del Equipo"
|
||||||
@@ -74,10 +70,6 @@ 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"
|
||||||
@@ -138,10 +130,6 @@ 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"
|
||||||
@@ -166,10 +154,6 @@ 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"
|
||||||
@@ -363,16 +347,8 @@ 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 "Maintenance Lines"
|
msgid "Maintenances"
|
||||||
msgstr "Líneas de Mantenimiento"
|
msgstr "Mantenimientos"
|
||||||
|
|
||||||
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"
|
||||||
@@ -450,6 +426,7 @@ msgctxt "field:optical_equipment.contract,invoice_address:"
|
|||||||
msgid "Invoice Address"
|
msgid "Invoice Address"
|
||||||
msgstr "Dirección de Facturación"
|
msgstr "Dirección de Facturación"
|
||||||
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.contract,start_date:"
|
msgctxt "field:optical_equipment.contract,start_date:"
|
||||||
msgid "Start Date"
|
msgid "Start Date"
|
||||||
msgstr "Fecha Inicio"
|
msgstr "Fecha Inicio"
|
||||||
@@ -674,18 +651,6 @@ 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"
|
||||||
@@ -698,10 +663,6 @@ 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"
|
||||||
@@ -722,50 +683,6 @@ 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"
|
||||||
@@ -778,18 +695,6 @@ msgctxt "field:optical_equipment_maintenance.service,description:"
|
|||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Descripción"
|
msgstr "Descripción"
|
||||||
|
|
||||||
msgctxt "field:sale.sale,quote_number:"
|
|
||||||
msgid "Quote Number"
|
|
||||||
msgstr "Cotización #"
|
|
||||||
|
|
||||||
msgctxt "field:sale.sale,payment_term_description:"
|
|
||||||
msgid "Payment Term"
|
|
||||||
msgstr "Plazo de Pago"
|
|
||||||
|
|
||||||
msgctxt "field:sale.sale,description:sale."
|
|
||||||
msgid "Description"
|
|
||||||
msgstr "Tiempo de Entrega"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,sale_date:"
|
msgctxt "field:optical_equipment_maintenance.service,sale_date:"
|
||||||
msgid "Sale Date"
|
msgid "Sale Date"
|
||||||
msgstr "Fecha de Venta"
|
msgstr "Fecha de Venta"
|
||||||
@@ -810,18 +715,6 @@ 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"
|
||||||
@@ -854,32 +747,12 @@ msgctxt "field:optical_equipment_maintenance.service,state:"
|
|||||||
msgid "State"
|
msgid "State"
|
||||||
msgstr "Estado"
|
msgstr "Estado"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,temperature_min:"
|
msgctxt "field:party.party,client_type:"
|
||||||
msgid "Temp Min"
|
msgid "Client type"
|
||||||
msgstr "Temp Mínima"
|
msgstr "Tipo de Cliente"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,temperature_max:"
|
msgctxt "field:party.party,client_type:"
|
||||||
msgid "Temp Max"
|
msgid "Client type"
|
||||||
msgstr "Temp Máxima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,temperature_uom:"
|
|
||||||
msgid "Temperature UOM"
|
|
||||||
msgstr "Temperatura UOM"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,moisture_min:"
|
|
||||||
msgid "Moisture Min"
|
|
||||||
msgstr "Humedad Mínima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,moisture_max:"
|
|
||||||
msgid "Moisture Max"
|
|
||||||
msgstr "Humedad Máxima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment_maintenance.service,moisture_uom:"
|
|
||||||
msgid "Moisture UOM"
|
|
||||||
msgstr "Humedad UOM"
|
|
||||||
|
|
||||||
msgctxt "field:party.party,customer_type:"
|
|
||||||
msgid "Customer type"
|
|
||||||
msgstr "Tipo de Cliente"
|
msgstr "Tipo de Cliente"
|
||||||
|
|
||||||
msgctxt "field:product.template,software_required:"
|
msgctxt "field:product.template,software_required:"
|
||||||
@@ -1038,30 +911,6 @@ msgctxt "field:optical_equipment.configuration,contract_sequence:"
|
|||||||
msgid "Contract Sequence"
|
msgid "Contract Sequence"
|
||||||
msgstr "Secuencia de Contratos"
|
msgstr "Secuencia de Contratos"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,temperature_min:"
|
|
||||||
msgid "Temp Min"
|
|
||||||
msgstr "Temp Mínima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,temperature_max:"
|
|
||||||
msgid "Temp Max"
|
|
||||||
msgstr "Temp Máxima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,temperature_uom:"
|
|
||||||
msgid "Temperature UOM"
|
|
||||||
msgstr "Temperatura UOM"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,moisture_min:"
|
|
||||||
msgid "Moisture Min"
|
|
||||||
msgstr "Humedad Mínima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,moisture_max:"
|
|
||||||
msgid "Moisture Max"
|
|
||||||
msgstr "Humedad Máxima"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.configuration,moisture_uom:"
|
|
||||||
msgid "Moisture UOM"
|
|
||||||
msgstr "Humedad UOM"
|
|
||||||
|
|
||||||
msgctxt "view:optical_equipment_maintenance.diary:"
|
msgctxt "view:optical_equipment_maintenance.diary:"
|
||||||
msgid "Dates"
|
msgid "Dates"
|
||||||
msgstr "Fechas"
|
msgstr "Fechas"
|
||||||
@@ -1230,14 +1079,6 @@ 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"
|
||||||
@@ -1430,21 +1271,13 @@ 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"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary.form,equipments:"
|
msgctxt "field:optical_equipment.change_propietary.form,equipment:"
|
||||||
msgid "Equipments"
|
msgid "Equipment"
|
||||||
msgstr "Equipos"
|
msgstr "Equipo"
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary.form,old_propietary:"
|
|
||||||
msgid "Old Propietary"
|
|
||||||
msgstr "Antiguo Propietario"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary.form,new_propietary:"
|
msgctxt "field:optical_equipment.change_propietary.form,new_propietary:"
|
||||||
msgid "New Propietary"
|
msgid "New Propietary"
|
||||||
@@ -1457,141 +1290,3 @@ msgstr "Nueva Dirección"
|
|||||||
msgctxt "field:optical_equipment.change_propietary.form,change_date:"
|
msgctxt "field:optical_equipment.change_propietary.form,change_date:"
|
||||||
msgid "Change Date"
|
msgid "Change Date"
|
||||||
msgstr "Fecha de Cambio"
|
msgstr "Fecha de Cambio"
|
||||||
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary_maintenance.form,maintenance_service:"
|
|
||||||
msgid "Maintenance Service"
|
|
||||||
msgstr "Servicios de Mantenimiento"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary_maintenance.form,old_propietary:"
|
|
||||||
msgid "Old Propietary"
|
|
||||||
msgstr "Antiguo Propietario"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary_maintenance.form,new_propietary:"
|
|
||||||
msgid "New Propietary"
|
|
||||||
msgstr "Nuevo Propietario"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary_maintenance.form,new_address:"
|
|
||||||
msgid "New Address"
|
|
||||||
msgstr "Nueva Dirección"
|
|
||||||
|
|
||||||
msgctxt "field:optical_equipment.change_propietary_maintenance.form,change_date:"
|
|
||||||
msgid "Change Date"
|
|
||||||
msgstr "Fecha de Cambio"
|
|
||||||
|
|
||||||
msgctxt "field:stock.shipment.out,service_maintenance_initial:"
|
|
||||||
msgid "Maintenance Initial"
|
|
||||||
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"
|
|
||||||
msgid "Maintenance Initial"
|
|
||||||
msgstr "Mantenimiento Inicial"
|
|
||||||
|
|
||||||
msgctxt "model:ir.model.button,string:maintenance_samples_button"
|
|
||||||
msgid "Generate Samples"
|
|
||||||
msgstr "Generar Muestras"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_sale"
|
|
||||||
msgid "Sale Equipments"
|
|
||||||
msgstr "Venta de Equipos"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_sale_internal"
|
|
||||||
msgid "Sale Equipments Internal"
|
|
||||||
msgstr "Venta Interna de Equipos"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_purchase"
|
|
||||||
msgid "Purchase"
|
|
||||||
msgstr "Compra de Equipos"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_maintenance_service"
|
|
||||||
msgid "Maintenance Service"
|
|
||||||
msgstr "Servicio de Mantenimiento"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_calibration"
|
|
||||||
msgid "Calibration"
|
|
||||||
msgstr "Calibración"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_calibrations"
|
|
||||||
msgid "Calibrations"
|
|
||||||
msgstr "Calibraciones"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_maintenance_timeline"
|
|
||||||
msgid "Time Line Maintenance Service"
|
|
||||||
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"
|
|
||||||
msgid "Equipment"
|
|
||||||
msgstr "Hoja de Vida"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:report_history_maintenance"
|
|
||||||
msgid "Maintenance History"
|
|
||||||
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"
|
|
||||||
msgid "Capacitation"
|
|
||||||
msgstr "Certificado de Capacitación"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:equipment_change_propietary"
|
|
||||||
msgid "Change Propietary"
|
|
||||||
msgstr "Cambiar Propietario"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:equipment_change_propietary_maintenance"
|
|
||||||
msgid "Change Propietary Maintenance"
|
|
||||||
msgstr "Cambiar Propietario al Servicio de Mantenimiento"
|
|
||||||
|
|
||||||
msgctxt "model:ir.action,name:maintenance_create_contract"
|
|
||||||
msgid "Create Contract"
|
|
||||||
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"
|
|
||||||
|
|
||||||
|
|||||||
1356
maintenance.py
1356
maintenance.py
File diff suppressed because it is too large
Load Diff
320
maintenance.xml
320
maintenance.xml
@@ -3,12 +3,27 @@
|
|||||||
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.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>
|
||||||
@@ -18,16 +33,82 @@
|
|||||||
<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.action.act_window.view" id="act_maintenance_service_view1">
|
<record model="ir.ui.view" id= "maintenance_equipment_view_form">
|
||||||
|
<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_service_view_tree"/>
|
<field name="view" ref="maintenance_view_tree"/>
|
||||||
<field name="act_window" ref="act_maintenance_service_form"/>
|
<field name="act_window" ref="act_maintenance_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.view" id="act_maintenance_service_view2">
|
<record model="ir.action.act_window.view" id="act_maintenance_view2">
|
||||||
<field name="sequence" eval="20"/>
|
<field name="sequence" eval="20"/>
|
||||||
<field name="view" ref="maintenance_service_view_form"/>
|
<field name="view" ref="maintenance_view_form"/>
|
||||||
<field name="act_window" ref="act_maintenance_service_form"/>
|
<field name="act_window" ref="act_maintenance_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_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"/>
|
||||||
@@ -79,76 +160,6 @@
|
|||||||
<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>
|
||||||
@@ -159,75 +170,83 @@
|
|||||||
<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.model.button" id="assing_agended_button">
|
<record model="ir.ui.view" id="maintenance_calibration_view_form">
|
||||||
<field name="name">assing_agended</field>
|
<field name="model">optical_equipment.maintenance.calibration_sample</field>
|
||||||
<field name="string">Assing Agended</field>
|
<field name="type">form</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
<field name="name">maintenance_sample_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="reassing_agended_button">
|
<record model="ir.ui.view" id="maintenance_calibration_view_tree">
|
||||||
<field name="name">reassing_agended</field>
|
<field name="model">optical_equipment.maintenance.calibration_sample</field>
|
||||||
<field name="string">Reassing Agended</field>
|
<field name="type">tree</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
<field name="priority" eval="10"/>
|
||||||
|
<field name="name">maintenance_calibration_tree</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="maintenance_service_draft_button">
|
<record model="ir.ui.view" id="calibration_total_view_tree">
|
||||||
<field name="name">draft</field>
|
<field name="model">optical_equipment.maintenance.calibration</field>
|
||||||
<field name="string">Draft</field>
|
<field name="type">tree</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
<field name="name">calibration_total_tree</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="maintenance_service_in_progress_button">
|
<record model="ir.ui.view" id="calibration_total_view_form">
|
||||||
<field name="name">in_progress</field>
|
<field name="model">optical_equipment.maintenance.calibration</field>
|
||||||
<field name="string">In progress</field>
|
<field name="type">form</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
<field name="name">calibration_total_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="maintenance_service_finished_button">
|
<record model="ir.ui.view" id="assing_agended_view_form">
|
||||||
<field name="name">finished</field>
|
<field name="model">optical_equipment_maintenance.agended</field>
|
||||||
<field name="string">Finished</field>
|
<field name="type">form</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
|
<field name="name">assing_agended_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="maintenance_in_progress_button">
|
<record model="ir.action.wizard" id="act_assing_agended">
|
||||||
<field name="name">in_progress</field>
|
<field name="name">Assing Agended</field>
|
||||||
<field name="string">In progress</field>
|
<field name="wiz_name">optical_equipment_maintenance.assing_agended</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.ui.view" id="reassing_agended_view_form">
|
||||||
<record model="ir.model.button" id="maintenance_finished_button">
|
<field name="model">optical_equipment_maintenance.reagended</field>
|
||||||
<field name="name">finished</field>
|
<field name="type">form</field>
|
||||||
<field name="string">Finished</field>
|
<field name="name">reassing_agended_form</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="maintenance_samples_button">
|
<record model="ir.action.wizard" id="act_reassing_agended">
|
||||||
<field name="name">samples</field>
|
<field name="name">ReAssing Agended</field>
|
||||||
<field name="string">Generate Samples</field>
|
<field name="wiz_name">optical_equipment_maintenance.reassing_agended</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.model.button" id="maintenance_calibrate_button">
|
<record model="ir.ui.view" id="create_contract_view_form">
|
||||||
<field name="name">calibrate</field>
|
<field name="model">optical_equipment_create.contract</field>
|
||||||
<field name="string">Calibrate</field>
|
<field name="type">form</field>
|
||||||
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
|
<field name="name">create_contract_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.report" id="report_service">
|
<record model="ir.action.wizard" id="maintenance_create_contract">
|
||||||
<field name="name">Service</field>
|
<field name="name">Create Contract</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>
|
||||||
<field name="report_name">optical_equipment_maintenance.service</field>
|
</record>
|
||||||
<field name="report">optical_equipment/report/Service.fodt</field>
|
<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_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_service_keyword">
|
<record model="ir.action.keyword" id="report_calibration_keyword">
|
||||||
<field name="keyword">form_print</field>
|
<field name="keyword">form_print</field>
|
||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
<field name="model">optical_equipment.maintenance,-1</field>
|
||||||
<field name="action" ref="report_service"/>
|
<field name="action" ref="report_calibration"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.report" id="report_cvs">
|
<record model="ir.action.report" id="report_capacitation">
|
||||||
<field name="name">Hojas de Vida</field>
|
<field name="name">Capacitation</field>
|
||||||
<field name="model">optical_equipment_maintenance.service</field>
|
<field name="model">optical_equipment_maintenance.service</field>
|
||||||
<field name="report_name">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="report">optical_equipment/report/Capacitation.fodt</field>
|
||||||
<field name="single" eval="True"/>
|
<field name="single" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="report_cvs_keyword">
|
<record model="ir.action.keyword" id="report_capacitation_keyword">
|
||||||
<field name="keyword">form_print</field>
|
<field name="keyword">form_print</field>
|
||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
<field name="model">optical_equipment_maintenance.service,-1</field>
|
||||||
<field name="action" ref="report_cvs"/>
|
<field name="action" ref="report_capacitation"/>
|
||||||
</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>
|
||||||
@@ -242,53 +261,32 @@
|
|||||||
<field name="action" ref="report_maintenance_service"/>
|
<field name="action" ref="report_maintenance_service"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.report" id="report_maintenance_timeline">
|
<record model="ir.action.report" id="report_maintenance_timeline">
|
||||||
<field name="name">Time Line Maintenance Service</field>
|
<field name="name">Maintenance Service</field>
|
||||||
<field name="model">optical_equipment_maintenance.service</field>
|
<field name="model">optical_equipment.maintenance</field>
|
||||||
<field name="report_name">optical_equipment_maintenance.service</field>
|
<field name="report_name">optical_equipment.maintenance</field>
|
||||||
<field name="report">optical_equipment/report/Maintenance_Timeline.fodt</field>
|
<field name="report">optical_equipment/report/Maintenance_Timeline.fodt</field>
|
||||||
<field name="single" eval="True"/>
|
<field name="single" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="report_maintenance_timeline_keyword">
|
<record model="ir.action.keyword" id="report_maintenance_timeline_keyword">
|
||||||
<field name="keyword">form_print</field>
|
<field name="keyword">form_print</field>
|
||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
<field name="model">optical_equipment.maintenance,-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">
|
|
||||||
<field name="name">Change Propietary Maintenance</field>
|
|
||||||
<field name="wiz_name">optical_equipment.change_propietary_maintenance</field>
|
|
||||||
<field name="model">optical_equipment_maintenance.service</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.keyword" id="equipment_change_propietary_maintenance_keyword">
|
|
||||||
<field name="keyword">form_action</field>
|
|
||||||
<field name="model">optical_equipment_maintenance.service,-1</field>
|
|
||||||
<field name="action" ref="equipment_change_propietary_maintenance"/>
|
|
||||||
</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"/>
|
||||||
icon="equipment_health"/>
|
<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>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
16
message.xml
Normal file
16
message.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="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
16
messages.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="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>
|
|
||||||
434
move.py
434
move.py
@@ -1,88 +1,30 @@
|
|||||||
from trytond.model import fields, ModelView, Workflow
|
from trytond.model import fields, ModelSQL, ModelView, Workflow, dualmethod
|
||||||
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, without_check_access
|
from trytond.transaction import Transaction
|
||||||
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"
|
||||||
|
|
||||||
_states = {
|
equipment = fields.Many2One('optical_equipment.equipment', "Equipment",
|
||||||
'invisible': ~Eval('product_equipment'),
|
domain=[('state', '=', 'registred'),
|
||||||
'readonly': (Eval('state').in_(['cancelled', 'done'])),
|
('product','=', Eval('product'))
|
||||||
}
|
|
||||||
|
|
||||||
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=_states,
|
states={'invisible': If(~Eval('product_equipment'), True),
|
||||||
depends=['product_equipment'],
|
'readonly': (Eval('state').in_(['cancelled', 'done'])),},
|
||||||
)
|
depends=['product_equipment'])
|
||||||
equipment_serial = fields.Function(
|
equipment_serial = fields.Function(fields.Char('Serial',
|
||||||
fields.Char(
|
states={'readonly': True,
|
||||||
'Serial',
|
'invisible': If(~Eval('product_equipment'), True)},
|
||||||
states=_states,
|
depends=['product_equipment']),
|
||||||
depends=['product_equipment'],
|
'get_equipment_serial')
|
||||||
),
|
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):
|
||||||
@@ -98,7 +40,14 @@ class Move(metaclass=PoolMeta):
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@fields.depends('equipment', methods=['get_equipment_serial'])
|
@fields.depends('product', 'equipment', 'uom')
|
||||||
|
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
|
||||||
@@ -108,95 +57,36 @@ 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(
|
service_maintenance_initial = fields.Boolean('Maintenance Initial', states={'readonly': True})
|
||||||
'Maintenance Initial', states={'readonly': True}
|
|
||||||
)
|
|
||||||
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': {'invisible': If(Eval('service_maintenance_initial') == True, True)}})
|
||||||
'maintenance_initial': {
|
|
||||||
'invisible': (
|
def get_outgoing_moves(self, name):
|
||||||
(Eval('service_maintenance_initial', True))
|
moves = []
|
||||||
| (Eval('sale_type').in_(['maintenance', 'replaces']))
|
if self.state == 'done':
|
||||||
)
|
for move in self.inventory_moves:
|
||||||
}
|
moves.append(move.id)
|
||||||
}
|
return moves
|
||||||
)
|
else:
|
||||||
|
for move in self.moves:
|
||||||
|
if move.from_location == self.warehouse_output:
|
||||||
|
moves.append(move.id)
|
||||||
|
return moves
|
||||||
|
|
||||||
|
|
||||||
@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
|
|
||||||
@ModelView.button
|
|
||||||
@Workflow.transition('done')
|
|
||||||
@set_employee('done_by')
|
|
||||||
@process_sale('outgoing_moves')
|
|
||||||
def done(cls, shipments):
|
|
||||||
pool = Pool()
|
|
||||||
Move = pool.get('stock.move')
|
|
||||||
Date = pool.get('ir.date')
|
|
||||||
Locations = pool.get('stock.location')
|
|
||||||
Equipments = pool.get('optical_equipment.equipment')
|
|
||||||
for shipment in shipments:
|
|
||||||
for move in shipment.inventory_moves:
|
|
||||||
count = 0
|
|
||||||
if not move.equipment:
|
|
||||||
count += 1
|
|
||||||
continue
|
|
||||||
|
|
||||||
equipment = move.equipment
|
|
||||||
Id = equipment.id
|
|
||||||
equipment = Equipments.search(['id', '=', Id])[0]
|
|
||||||
equipment.propietary = shipment.customer.id
|
|
||||||
equipment.propietary_address = shipment.delivery_address.id
|
|
||||||
equipment.location = Locations.search(
|
|
||||||
['name', '=', 'Customer'])[0].id
|
|
||||||
equipment.state = 'uncontrated'
|
|
||||||
equipment.shipment_destination = shipment
|
|
||||||
equipment.sale_destination =\
|
|
||||||
shipment.outgoing_moves[count].origin
|
|
||||||
equipment.propietarys += (shipment.customer,)
|
|
||||||
equipment.maintenance_frequency = (
|
|
||||||
'6'
|
|
||||||
if shipment.customer.customer_type == 'ips'
|
|
||||||
else '12'
|
|
||||||
)
|
|
||||||
count += 1
|
|
||||||
equipment.save()
|
|
||||||
|
|
||||||
Move.delete([
|
|
||||||
m for s in shipments
|
|
||||||
for m in s.outgoing_moves
|
|
||||||
if m.state == 'staging'
|
|
||||||
])
|
|
||||||
|
|
||||||
Move.do([m for s in shipments for m in s.outgoing_moves])
|
|
||||||
iterator = groupby(shipments, key=lambda s: s.company)
|
|
||||||
for company, c_shipments in iterator:
|
|
||||||
with Transaction().set_context(company=company.id):
|
|
||||||
today = Date.today()
|
|
||||||
cls.write(
|
|
||||||
[s for s in c_shipments if not s.effective_date],
|
|
||||||
{
|
|
||||||
'effective_date': today,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@@ -204,100 +94,101 @@ 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:
|
||||||
|
for move in shipment.inventory_moves:
|
||||||
|
count = 0
|
||||||
|
if move.equipment:
|
||||||
|
equipment = move.equipment
|
||||||
|
Id = equipment.id
|
||||||
|
equipment = Equipments.search(['id', '=',Id])[0]
|
||||||
|
equipment.propietary = shipment.customer.id
|
||||||
|
equipment.propietary_address= shipment.delivery_address.id
|
||||||
|
equipment.state="uncontrated"
|
||||||
|
equipment.shipment_destination = shipment
|
||||||
|
equipment.sale_destination = shipment.outgoing_moves[count].origin
|
||||||
|
equipment.propietarys += (shipment.customer,)
|
||||||
|
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
|
||||||
|
count+=1
|
||||||
|
equipment.save()
|
||||||
|
else:
|
||||||
|
count+=1
|
||||||
|
|
||||||
|
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)
|
||||||
|
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:
|
|
||||||
serial = True
|
|
||||||
else:
|
else:
|
||||||
serial = False
|
serial = False
|
||||||
|
|
||||||
if number_equipments < 1 or maintenance_required < 1:
|
if serial == True:
|
||||||
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:
|
||||||
valid = \
|
if move.product_equipment and move.equipment:
|
||||||
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
|
|
||||||
),
|
|
||||||
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,
|
|
||||||
check_equipment=template.check_equipment,
|
|
||||||
check_electric_system=template.check_electric_system,
|
|
||||||
clean_int_ext=template.clean_int_ext,
|
|
||||||
clean_eyes=template.clean_eyes,
|
|
||||||
check_calibration=template.check_calibration,
|
|
||||||
temperature_min=maintenanceService.temperature_min,
|
|
||||||
temperature_max=maintenanceService.temperature_max,
|
|
||||||
temperature_uom=maintenanceService.temperature_uom.id,
|
|
||||||
moisture_min=maintenanceService.moisture_min,
|
|
||||||
moisture_max=maintenanceService.moisture_max,
|
|
||||||
moisture_uom=maintenanceService.moisture_uom.id,
|
|
||||||
)
|
|
||||||
maintenance.save()
|
maintenance.save()
|
||||||
|
|
||||||
shipment.service_maintenance_initial = True
|
shipment.service_maintenance_initial = True
|
||||||
shipment.save()
|
else:
|
||||||
|
raise UserError(str('Por favor Primero debe Asignar un serial a todos los Equipos.'))
|
||||||
|
|
||||||
@classmethod
|
def _get_inventory_move(self, move):
|
||||||
@ModelView.button
|
'Return inventory move for the outgoing move if necessary'
|
||||||
@Workflow.transition('picked')
|
pool = Pool()
|
||||||
@set_employee('picked_by')
|
Move = pool.get('stock.move')
|
||||||
def pick(cls, shipments):
|
Uom = pool.get('product.uom')
|
||||||
super(ShipmentOut, cls).pick(shipments)
|
quantity = move.quantity
|
||||||
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"))
|
|
||||||
|
|
||||||
|
for inventory_move in self.inventory_moves:
|
||||||
|
if (inventory_move.origin == move
|
||||||
|
and inventory_move.state != 'cancelled'):
|
||||||
|
quantity -= Uom.compute_qty(
|
||||||
|
inventory_move.uom, inventory_move.quantity, move.uom)
|
||||||
|
quantity = move.uom.round(quantity)
|
||||||
|
|
||||||
|
if quantity <= 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
inventory_move = Move(
|
||||||
|
from_location=self.warehouse_storage,
|
||||||
|
to_location=move.from_location,
|
||||||
|
product=move.product,
|
||||||
|
uom=move.uom,
|
||||||
|
quantity=quantity,
|
||||||
|
shipment=self,
|
||||||
|
planned_date=move.planned_date,
|
||||||
|
company=move.company,
|
||||||
|
origin=move,
|
||||||
|
state='staging' if move.state == 'staging' else 'draft',
|
||||||
|
)
|
||||||
|
|
||||||
|
if inventory_move.on_change_with_unit_price_required():
|
||||||
|
inventory_move.unit_price = move.unit_price
|
||||||
|
inventory_move.currency = move.currency
|
||||||
|
|
||||||
|
return inventory_move
|
||||||
|
|
||||||
class ShipmentInternal(metaclass=PoolMeta):
|
class ShipmentInternal(metaclass=PoolMeta):
|
||||||
'Shipment Interncal'
|
'Shipment Interncal'
|
||||||
@@ -319,86 +210,5 @@ 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(
|
cls.write([s for s in shipments if not s.effective_date], {
|
||||||
[s for s in shipments if not s.effective_date],
|
'effective_date': Date.today(),})
|
||||||
{
|
|
||||||
'effective_date': Date.today(),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ShipmentOutReturn(metaclass=PoolMeta):
|
|
||||||
'Customer Shipment Return'
|
|
||||||
__name__ = 'stock.shipment.out.return'
|
|
||||||
|
|
||||||
service_maintenance_initial = fields.Boolean(
|
|
||||||
'Maintenance Initial', states={'readonly': True}
|
|
||||||
)
|
|
||||||
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):
|
|
||||||
__name__ = 'stock.shipment.out.picking_list1'
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def execute(cls, ids, data):
|
|
||||||
with Transaction().set_context(address_with_party=True):
|
|
||||||
return super(PickingListDeliveryReport, 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
|
|
||||||
|
|
||||||
|
|
||||||
class CapacitationReport(CompanyReport):
|
|
||||||
__name__ = 'stock.shipment.out.capacitation_note'
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def execute(cls, ids, data):
|
|
||||||
with Transaction().set_context(address_with_party=True):
|
|
||||||
return super(CapacitationReport, 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
|
|
||||||
|
|||||||
13
move.xml
13
move.xml
@@ -2,7 +2,6 @@
|
|||||||
<!--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"/>
|
||||||
@@ -29,16 +28,4 @@ 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_shipment_out_picking_list1"/>
|
<field name="action" ref="report_shipment_out_picking_list1"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.report" id="report_capacitation">
|
|
||||||
<field name="name">Capacitation</field>
|
|
||||||
<field name="model">stock.shipment.out</field>
|
|
||||||
<field name="report_name">stock.shipment.out.picking_list1</field>
|
|
||||||
<field name="report">optical_equipment/report/Capacitation.fodt</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.keyword" id="report_capacitation_keyword">
|
|
||||||
<field name="keyword">form_print</field>
|
|
||||||
<field name="model">stock.shipment.out,-1</field>
|
|
||||||
<field name="action" ref="report_capacitation"/>
|
|
||||||
</record>
|
|
||||||
</data>
|
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|||||||
30
party.py
30
party.py
@@ -1,28 +1,12 @@
|
|||||||
# 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 PoolMeta
|
from trytond.pool import PoolMeta
|
||||||
from trytond.model import fields
|
from trytond.model import ModelSQL, ModelView, fields
|
||||||
from trytond.pyson import Eval
|
from . import equipment
|
||||||
|
|
||||||
|
|
||||||
_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'
|
||||||
|
|
||||||
customer_type = fields.Selection(_CUSTOMER_TYPE, "Customer Type")
|
client_type = fields.Selection(_CLIENT_TYPE, 'Client 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"))}
|
|
||||||
)
|
|
||||||
|
|||||||
21
party.xml
21
party.xml
@@ -2,27 +2,14 @@
|
|||||||
<!-- 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>
|
||||||
<data>
|
|
||||||
<record model="ir.ui.view" id="party_view_tree">
|
|
||||||
<field name="model">party.party</field>
|
|
||||||
<field name="inherit" ref="party.party_view_tree"/>
|
|
||||||
<field name="name">party_tree</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="party_view_form">
|
<record model="ir.ui.view" id="party_view_form">
|
||||||
<field name="model">party.party</field>
|
<field name="model">party.party</field>
|
||||||
<field name="inherit" ref="party.party_view_form"/>
|
<field name="inherit" ref="party.party_view_form"/>
|
||||||
<field name="name">party_form</field>
|
<field name="name">party_form</field>
|
||||||
</record>
|
</record>
|
||||||
<!-- Party Address -->
|
<record model="ir.ui.view" id="party_view_tree">
|
||||||
<record model="ir.ui.view" id="address_view_tree">
|
<field name="model">party.party</field>
|
||||||
<field name="model">party.address</field>
|
<field name="inherit" ref="party.party_view_tree"/>
|
||||||
<field name="inherit" ref="party.address_view_tree"/>
|
<field name="name">party_tree</field>
|
||||||
<field name="name">address_tree</field>
|
|
||||||
</record>
|
</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>
|
||||||
|
|||||||
610
product.py
610
product.py
@@ -1,503 +1,347 @@
|
|||||||
# 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 ModelView, ModelSQL, fields
|
from trytond.model import (
|
||||||
|
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 = [
|
_RISK = [('n/a', "No aplíca"),
|
||||||
("n/a", "No aplíca"),
|
('uno', 'I'),
|
||||||
("uno", "I"),
|
('dosA', 'IIA'),
|
||||||
("dosA", "IIA"),
|
('dosB', 'IIB')]
|
||||||
("dosB", "IIB")]
|
|
||||||
|
|
||||||
_USE = [
|
_USE = [('', ""),
|
||||||
("", ""),
|
('medico', 'Médico'),
|
||||||
("medico", "Médico"),
|
('basico', 'Basico'),
|
||||||
("basico", "Basico"),
|
('apoyo', 'Apoyo')]
|
||||||
("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'),
|
||||||
("medico", "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(
|
product = fields.Many2One('optical_equipment.maintenance', "Maintenance Activity",
|
||||||
"optical_equipment.maintenance",
|
ondelete='CASCADE', select=True)
|
||||||
"Maintenance Activity",
|
equipment = fields.Boolean('It is equipment',
|
||||||
ondelete="CASCADE",
|
states={'invisible': Eval('type', 'goods') != 'goods',
|
||||||
|
},depends=['type']
|
||||||
)
|
)
|
||||||
equipment = fields.Boolean(
|
maintenance_activity = fields.Boolean('Maintenance Activity',
|
||||||
"It is equipment",
|
states={'invisible': Eval('type', 'service') != 'service',
|
||||||
states={
|
'readonly': If(Eval('equipment',True), True)
|
||||||
"invisible": Eval("type", "goods") != "goods",
|
| If(Eval('replacement',True), True)
|
||||||
},
|
},depends=['type']
|
||||||
)
|
)
|
||||||
maintenance_activity = fields.Boolean(
|
replacement = fields.Boolean('Replacement',
|
||||||
"Maintenance Activity",
|
states={'invisible': Eval('type', 'goods') != 'goods',
|
||||||
states={
|
'readonly': If(Eval('equipment',True), True)
|
||||||
"invisible": Eval("type", "service") != "service",
|
| If(Eval('maintenance_activity',True), True)
|
||||||
"readonly": If(Eval("equipment", True), True)
|
},depends=['type']
|
||||||
| If(Eval("replacement", True), True),
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
replacement = fields.Boolean(
|
equipment_type = fields.Selection(_EQUIPMENT_TYPE, 'Equipment type',
|
||||||
"Replacement",
|
states={'required': Eval('equipment', False)},
|
||||||
states={
|
depends=['equipment']
|
||||||
"invisible": Eval("type", "goods") != "goods",
|
|
||||||
"readonly": If(Eval("equipment", True), True)
|
|
||||||
| If(Eval("maintenance_activity", True), True),
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
risk = fields.Selection(_RISK, 'Type risk')
|
||||||
maintenance_required = fields.Boolean(
|
use = fields.Selection(_USE, 'Use',
|
||||||
"Miantenance Required",
|
states={'required': Eval('equipment', False)},
|
||||||
states={
|
depends=['equipment']
|
||||||
"invisible": (Eval("type", "goods") != "goods")}
|
|
||||||
)
|
)
|
||||||
equipment_type = fields.Selection(
|
biomedical_class = fields.Selection(_BIOMEDICAL_CLASS,'Biomedical Class',
|
||||||
_EQUIPMENT_TYPE, "Equipment type",
|
states={'required': Eval('equipment', False)},
|
||||||
states={"required": Eval("equipment", False)}
|
depends=['equipment']
|
||||||
)
|
)
|
||||||
risk = fields.Selection(_RISK, "Type risk")
|
main_tecnology = fields.Selection(_MAIN_TECNOLOGY,'Main tecnology',
|
||||||
use = fields.Selection(
|
states={'required': Eval('equipment', False)},
|
||||||
_USE,
|
depends=['equipment']
|
||||||
"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',
|
||||||
# Mark, Category, Reference
|
domain=[('parent', '=', None),
|
||||||
mark_category = fields.Many2One(
|
('accounting', '=', False)],
|
||||||
"product.category",
|
states={'required': Eval('equipment', False)},
|
||||||
"Mark",
|
depends=['equipment']
|
||||||
domain=[("parent", "=", None), ("accounting", "=", False)],
|
|
||||||
states={"required": Eval("equipment", False)},
|
|
||||||
)
|
)
|
||||||
model_category = fields.Many2One(
|
model_category = fields.Many2One('product.category', "Model",
|
||||||
"product.category",
|
domain=[('parent', '=', Eval('mark_category')),
|
||||||
"Model",
|
('accounting', '=', False)],
|
||||||
domain=[
|
states={'required': Eval('equipment', False)},
|
||||||
("parent", "=", Eval("mark_category")),
|
depends=['equipment']
|
||||||
("accounting", "=", False)],
|
)
|
||||||
states={"required": Eval("equipment", False)})
|
reference_category = fields.Many2One('product.category', "Reference",
|
||||||
reference_category = fields.Many2One(
|
domain=[('parent', '=', Eval('model_category'))],
|
||||||
"product.category",
|
)
|
||||||
"Reference",
|
origin_country = fields.Many2One('country.country',"Origin Country")
|
||||||
states={
|
refurbish = fields.Boolean('Refurbish')
|
||||||
"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_required = fields.Boolean("Software Required")
|
||||||
software_version = fields.Char(
|
software_version = fields.Char("Software version",
|
||||||
"Software version",
|
states={'invisible': If(~Eval('software_required'), True)},
|
||||||
states={"invisible": ~Eval("software_required", True)},
|
depends=['software_required'])
|
||||||
depends={"software_required"},
|
|
||||||
)
|
|
||||||
|
|
||||||
# These are measurements required for the equipments, are in this place
|
#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(
|
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
|
||||||
"product.uom",
|
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
|
||||||
"Temperature UOM",
|
states={'invisible' : If(Eval('temperature_min') == None, True)},
|
||||||
domain=[
|
depends=['itemperature_min']
|
||||||
("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(
|
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
|
||||||
"product.uom",
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
|
||||||
"Frequency UOM",
|
states={'invisible' : If(Eval('frequency') == None, True)},
|
||||||
domain=[
|
depends=['frequency']
|
||||||
("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(
|
moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
|
||||||
"product.uom",
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
|
||||||
"Moisture UOM",
|
states={'invisible' : If(Eval('moisture_min') == None, True)},
|
||||||
domain=[
|
depends=['moisture_min']
|
||||||
("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 = fields.Float("Frequency",
|
||||||
"Frequency", states={"invisible": ~Bool(Eval("electrical_equipment"))}
|
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']
|
||||||
)
|
)
|
||||||
frequency_uom = fields.Many2One(
|
voltageAC = fields.Float("Voltage AC",
|
||||||
"product.uom",
|
states={'invisible': ~Bool(Eval('electrical_equipment'))})
|
||||||
"Frequency UOM",
|
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM",
|
||||||
domain=[
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
||||||
("category", "=", Id("optical_equipment", "uom_cat_frequency"))],
|
states={'invisible' : If(Eval('voltageAC') == None, True) |
|
||||||
states={'invisible': (~Eval('frequency', True))
|
~Eval('electrical_equipment', True)},
|
||||||
| ~Eval('electrical_equipment', True)},)
|
depends=['voltageAC']
|
||||||
voltageAC = fields.Float(
|
|
||||||
"Voltage AC", states={"invisible": ~Bool(Eval("electrical_equipment"))}
|
|
||||||
)
|
)
|
||||||
voltageAC_uom = fields.Many2One(
|
voltageDC = fields.Float("Voltage DC",
|
||||||
"product.uom",
|
states={'invisible': ~Bool(Eval('electrical_equipment'))})
|
||||||
"Voltage AC UOM",
|
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM",
|
||||||
domain=[
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
||||||
("category", "=", Id(
|
states={'invisible' : If(Eval('voltageDC') == None, True) |
|
||||||
"optical_equipment", "uom_cat_electrical_tension"))
|
~Eval('electrical_equipment', True)},
|
||||||
],
|
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.Many2One(
|
measuring_range = fields.Selection([
|
||||||
"optical_equipment.use_pattern",
|
('dioptria', "Dioptria"),
|
||||||
"Use Pattern",
|
('mmhg', "mmHg")], "Rango de Medición")
|
||||||
ondelete="RESTRICT",
|
MEP = fields.Float("MEP", states={'required': Eval('calibration', False)},)
|
||||||
states={"required": Eval("calibration", True)},)
|
uncertainy_pattern = fields.Float("Uncertainy Pattern", states={'required': Eval('calibration', True)},
|
||||||
measuring_range = fields.Selection(
|
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10")
|
||||||
[("dioptria", "Dioptria"),
|
k_pattern = fields.Char("K Pattern",states={'required': Eval('calibration', False)},
|
||||||
("mmhg", "mmHg")], "Rango de Medición")
|
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10")
|
||||||
MEP = fields.Float(
|
k_pattern_list = fields.One2Many('optical_equipment.product_pattern', 'product', "List of patterns K",
|
||||||
"MEP",
|
states={'required': Eval('calibration', False)},)
|
||||||
states={"required": Eval("calibration", False)},)
|
resolution_type = fields.Selection([('',""),
|
||||||
uncertainy_pattern = fields.Float(
|
('analoga', "Analoga"),
|
||||||
"Uncertainy Pattern",
|
('digital', "Digital")], "Resolution Type",
|
||||||
states={"required": Eval("calibration", True)},
|
states={'required': Eval('calibration', False)},
|
||||||
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10",)
|
depends=['calibration'])
|
||||||
k_pattern = fields.Char(
|
d_resolution = fields.Float("Resolution d",
|
||||||
"K Pattern",
|
states={'invisible': If(Eval('resolution_type') != 'digital', True)},
|
||||||
states={"required": Eval("calibration", False)},
|
depends=['resolution_type'])
|
||||||
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10",
|
analog_resolution = fields.Float("Analog resolution",
|
||||||
)
|
states={'invisible': If(Eval('resolution_type') != 'analoga', True),},
|
||||||
k_pattern_list = fields.One2Many(
|
depends=['resolution_type'])
|
||||||
"optical_equipment.product_pattern",
|
a_factor_resolution = fields.Float("(a) Resolution",
|
||||||
"product",
|
states={'invisible': If(Eval('resolution_type') != 'analoga', True)},
|
||||||
"List of patterns K",
|
depends=['resolution_type'])
|
||||||
states={"required": Eval("calibration", False)},
|
Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},)
|
||||||
)
|
|
||||||
resolution_type = fields.Selection(
|
|
||||||
[("", ""), ("analoga", "Analoga"), ("digital", "Digital")],
|
|
||||||
"Resolution Type",
|
|
||||||
states={"required": Eval("calibration", False)},
|
|
||||||
)
|
|
||||||
|
|
||||||
d_resolution = fields.Float(
|
|
||||||
"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_electric_system = fields.Boolean("Revisión del sistema electríco")
|
|
||||||
clean_int_ext = fields.Boolean("Limpieza interior y exterior")
|
|
||||||
clean_eyes = fields.Boolean("Limpieza de lentes y espejos")
|
|
||||||
optical = fields.Boolean("Optical")
|
|
||||||
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', {
|
||||||
"//page[@id='features']",
|
'invisible': ~Eval('equipment'),
|
||||||
"states",
|
}),
|
||||||
{
|
('//page[@id="calibration"]', 'states', {
|
||||||
"invisible": ~Eval("equipment"),
|
'invisible': ~Eval('calibration')},)
|
||||||
},
|
|
||||||
),
|
|
||||||
(
|
|
||||||
"//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
|
||||||
def default_frequency(cls):
|
@fields.depends('temperature')
|
||||||
|
def default_temperature_uom(self):
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get('product.uom')
|
||||||
|
measurement = Measurements.search(['name', '=', 'Celsius'])[0].id
|
||||||
|
|
||||||
|
return measurement
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def default_frequency():
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@staticmethod
|
||||||
def default_moisture_min(cls):
|
def default_frequency_uom():
|
||||||
|
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
|
||||||
|
|
||||||
@classmethod
|
@staticmethod
|
||||||
def default_moisture_max(cls):
|
def default_moisture_max():
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@staticmethod
|
||||||
def default_voltageDC(cls):
|
def default_moisture_uom():
|
||||||
|
pool = Pool()
|
||||||
|
Measurements = pool.get('product.uom')
|
||||||
|
measurement = Measurements.search(['name', '=', 'Relative Humedity'])[0].id
|
||||||
|
|
||||||
|
return measurement
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def default_voltageAC():
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@staticmethod
|
||||||
def default_voltageAC(cls):
|
def default_voltageAC_uom():
|
||||||
|
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_refurbish():
|
def default_refurbish():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@classmethod
|
@staticmethod
|
||||||
@fields.depends("temperature")
|
def default_refurbish():
|
||||||
def default_temperature_uom(self):
|
return False
|
||||||
pool = Pool()
|
|
||||||
Measurements = pool.get("product.uom")
|
|
||||||
measurement = Measurements.search(["name", "=", "Celsius"])[0].id
|
|
||||||
|
|
||||||
return measurement
|
|
||||||
|
|
||||||
@classmethod
|
@fields.depends('software_required', 'software_version')
|
||||||
def default_frequency_uom(cls):
|
def on_change_with_sotfware_required(self):
|
||||||
pool = Pool()
|
self.software_version = None
|
||||||
Measurements = pool.get("product.uom")
|
|
||||||
measurement = Measurements.search(["name", "=", "Hertz"])[0].id
|
|
||||||
|
|
||||||
return measurement
|
@fields.depends('d_resolution', 'analog_resolution', 'a_factor_resolution')
|
||||||
|
|
||||||
@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
|
||||||
self.voltageDC = 0
|
self.voltageDC = 0
|
||||||
self.frequency = 0
|
self.frequency = 0
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def copy(cls, templates, default=None):
|
|
||||||
if default is None:
|
|
||||||
default = {}
|
|
||||||
else:
|
|
||||||
default = default.copy()
|
|
||||||
default.setdefault("code", None)
|
|
||||||
default.setdefault("images", None)
|
|
||||||
return super().copy(templates, default=default)
|
|
||||||
|
|
||||||
|
|
||||||
class Product(metaclass=PoolMeta):
|
class Product(metaclass=PoolMeta):
|
||||||
__name__ = "product.product"
|
__name__ = 'product.product'
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def copy(cls, products, default=None):
|
|
||||||
if default is None:
|
|
||||||
default = {}
|
|
||||||
else:
|
|
||||||
default = default.copy()
|
|
||||||
|
|
||||||
default.setdefault("suffix_code", None)
|
|
||||||
default.setdefault("code", None)
|
|
||||||
default.setdefault("poduct", None)
|
|
||||||
default.setdefault("images", None)
|
|
||||||
return super().copy(products, default=default)
|
|
||||||
|
|
||||||
|
|
||||||
class Image(metaclass=PoolMeta):
|
|
||||||
__name__ = "product.image"
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def __setup__(cls):
|
|
||||||
super().__setup__()
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def copy(cls, images, default=None):
|
|
||||||
if default is None:
|
|
||||||
default = {}
|
|
||||||
else:
|
|
||||||
default = default.copy()
|
|
||||||
default.setdefault("template", None)
|
|
||||||
default.setdefault("product", None)
|
|
||||||
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 = "rec_name"
|
_rec_name = 'pattern'
|
||||||
|
|
||||||
product = fields.Many2One(
|
product = fields.Many2One('product.template', "Template", ondelete='CASCADE')
|
||||||
"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,53 +3,16 @@
|
|||||||
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>
|
||||||
@@ -60,19 +23,5 @@
|
|||||||
<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>
|
||||||
|
|||||||
161
purchase.py
161
purchase.py
@@ -1,16 +1,19 @@
|
|||||||
# 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 ModelView, fields
|
from trytond.model import (
|
||||||
from trytond.modules.product import round_price
|
ModelView, ModelSQL, Workflow, fields)
|
||||||
|
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):
|
||||||
"Purchase Equipment"
|
__name__ = 'purchase.purchase'
|
||||||
__name__ = "purchase.purchase"
|
|
||||||
|
|
||||||
equipment_create = fields.Boolean("Equipments Creates", readonly=True)
|
equipment_create = fields.Boolean("Equipments Creates", readonly=True)
|
||||||
|
|
||||||
@@ -18,45 +21,26 @@ 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
|
|
||||||
def copy(cls, purchases, default=None):
|
|
||||||
if default is None:
|
|
||||||
default = {}
|
|
||||||
else:
|
|
||||||
default = default.copy()
|
|
||||||
|
|
||||||
default.setdefault("number", None)
|
|
||||||
default.setdefault("invoice_state", "none")
|
|
||||||
default.setdefault("invoices_ignored", None)
|
|
||||||
default.setdefault("moves", None)
|
|
||||||
default.setdefault("shipment_state", "none")
|
|
||||||
default.setdefault("purchase_date", None)
|
|
||||||
default.setdefault("quoted_by")
|
|
||||||
default.setdefault("confirmed_by")
|
|
||||||
default.setdefault("equipment_create", None)
|
|
||||||
|
|
||||||
return super(Purchase, cls).copy(purchases, default=default)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
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 not line.product.equipment:
|
if line.product.equipment:
|
||||||
continue
|
for i in range(0,int(line.quantity)):
|
||||||
|
|
||||||
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,
|
||||||
@@ -67,75 +51,59 @@ 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=(
|
useful_life=line.product.useful_life if line.product.useful_life else 0,
|
||||||
line.product.useful_life if
|
calibration=True if line.product.calibration else False,
|
||||||
line.product.useful_life else 0
|
warranty=line.product.warranty if line.product.warranty 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
|
serial=None if line.quantity > 1 else line.serial_equipment,
|
||||||
else line.serial_equipment),
|
|
||||||
health_register=line.health_register,
|
health_register=line.health_register,
|
||||||
software_version=(
|
software_version=line.product.software_version if line.product.software_required else "No Aplica",
|
||||||
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 UserError(str("Número de Compras Invalido."))
|
raise InvalidNumberPurchases(
|
||||||
|
gettext('purchase.msg_invalid_number_purchases'))
|
||||||
|
|
||||||
|
|
||||||
class Line(metaclass=PoolMeta):
|
class Line(metaclass=PoolMeta):
|
||||||
"Purchase Line Equipment"
|
__name__ = 'purchase.line'
|
||||||
__name__ = "purchase.line"
|
|
||||||
|
|
||||||
origin_country = fields.Many2One("country.country", "Origin Country")
|
origin_country = origin_country = fields.Many2One('country.country',"Origin Country")
|
||||||
address_equipment = fields.Many2One(
|
address_equipment = fields.Many2One('party.address', "Direccion", required=True)
|
||||||
"party.address", "Direccion", required=True)
|
serial_equipment = fields.Char("Serial", size=None,
|
||||||
serial_equipment = fields.Char(
|
states={'invisible': If(Eval('quantity') > 1, True),
|
||||||
"Serial",
|
},depends=['quantity'])
|
||||||
size=None,
|
|
||||||
# states={'invisible': Decimal(Eval('quantity')) > 1}
|
|
||||||
)
|
|
||||||
refurbish = fields.Boolean("Refurbish")
|
refurbish = fields.Boolean("Refurbish")
|
||||||
product_equipment = fields.Boolean(
|
product_equipment = fields.Boolean("Product Equipment",
|
||||||
"Product Equipment", states={"readonly": True})
|
states={'readonly': True})
|
||||||
software_version = fields.Char("Software version")
|
software_version = fields.Char("Software version")
|
||||||
health_register = fields.Char(
|
health_register = fields.Char("Health Register", states={'required': Eval('product_equipment', True)})
|
||||||
"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 and (self.quantity > 1 or self.quantity < 1):
|
if self.quantity > 1 or self.quantity < 1:
|
||||||
self.serial_equipment = None
|
self.serial_equipment = None
|
||||||
|
|
||||||
if not self.product:
|
if not self.product:
|
||||||
@@ -143,29 +111,18 @@ 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.unit_price = Product.get_purchase_price([self.product],
|
||||||
[self.product], abs(self.quantity or 0)
|
abs(self.quantity or 0))[self.product.id]
|
||||||
)[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(
|
@fields.depends('product', 'unit', 'purchase',
|
||||||
"product",
|
'_parent_purchase.party', '_parent_purchase.invoice_party',
|
||||||
"unit",
|
'product_supplier', 'product_equipment',
|
||||||
"purchase",
|
'serial_equipment', 'software_version',
|
||||||
"_parent_purchase.party",
|
'health_register', 'refurbish', methods=['compute_taxes', 'compute_unit_price',
|
||||||
"_parent_purchase.invoice_party",
|
'_get_product_supplier_pattern'])
|
||||||
"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
|
||||||
@@ -178,6 +135,7 @@ class Line(metaclass=PoolMeta):
|
|||||||
self.unit_price = None
|
self.unit_price = None
|
||||||
self.unit = None
|
self.unit = None
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
party = None
|
party = None
|
||||||
@@ -191,19 +149,17 @@ 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(
|
product_suppliers = list(self.product.product_suppliers_used(
|
||||||
self.product.product_suppliers_used(
|
**self._get_product_supplier_pattern()))
|
||||||
**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
|
||||||
@@ -214,7 +170,6 @@ 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),
|
|
||||||
})]
|
})]
|
||||||
|
|||||||
16
purchase.xml
16
purchase.xml
@@ -3,29 +3,21 @@
|
|||||||
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_view_form">
|
|
||||||
<field name="model">purchase.purchase</field>
|
|
||||||
<field name="inherit" ref="purchase.purchase_view_form"/>
|
|
||||||
<field name="name">purchase_form</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="purchase_line_view_form">
|
<record model="ir.ui.view" id="purchase_line_view_form">
|
||||||
<field name="model">purchase.line</field>
|
<field name="model">purchase.line</field>
|
||||||
<field name="inherit" ref="purchase.purchase_line_view_form"/>
|
<field name="inherit" ref="purchase.purchase_line_view_form"/>
|
||||||
<field name="name">purchase_line_form</field>
|
<field name="name">purchase_line_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="product_view_list_purchase_line">
|
<record model="ir.ui.view" id="purchase_view_form">
|
||||||
<field name="model">product.product</field>
|
<field name="model">purchase.purchase</field>
|
||||||
<field name="inherit" ref="purchase.product_view_list_purchase_line"/>
|
<field name="inherit" ref="purchase.purchase_view_form"/>
|
||||||
<field name="name">product_list_purchase_line</field>
|
<field name="name">purchase_form</field>
|
||||||
</record>
|
</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>
|
||||||
|
|||||||
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
File diff suppressed because it is too large
Load Diff
@@ -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: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:meta><meta:creation-date>2022-10-11T22:48:50.834615710</meta:creation-date><dc:date>2023-03-21T02:20:13.029306157</dc:date><meta:editing-duration>PT2H31M31S</meta:editing-duration><meta:editing-cycles>26</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="1" meta:image-count="1" meta:object-count="0" meta:page-count="1" meta:paragraph-count="20" meta:word-count="166" meta:character-count="1296" meta:non-whitespace-character-count="1147"/></office:meta>
|
<office:meta><meta:creation-date>2022-10-11T22:48:50.834615710</meta:creation-date><dc:date>2022-11-02T06:41:23.280743489</dc:date><meta:editing-duration>PT1H28M15S</meta:editing-duration><meta:editing-cycles>22</meta:editing-cycles><meta:generator>LibreOffice/7.3.6.2$Linux_X86_64 LibreOffice_project/30$Build-2</meta:generator><meta:document-statistic meta:table-count="1" meta:image-count="1" meta:object-count="0" meta:page-count="1" meta:paragraph-count="19" meta:word-count="165" meta:character-count="1343" meta:non-whitespace-character-count="1193"/></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">1376</config:config-item>
|
<config:config-item config:name="ViewAreaTop" config:type="long">2646</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">24502</config:config-item>
|
<config:config-item config:name="ViewAreaWidth" config:type="long">22294</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaHeight" config:type="long">10982</config:config-item>
|
<config:config-item config:name="ViewAreaHeight" config:type="long">8684</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">19098</config:config-item>
|
<config:config-item config:name="ViewLeft" config:type="long">2501</config:config-item>
|
||||||
<config:config-item config:name="ViewTop" config:type="long">4053</config:config-item>
|
<config:config-item config:name="ViewTop" config:type="long">6008</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">1376</config:config-item>
|
<config:config-item config:name="VisibleTop" config:type="long">2646</config:config-item>
|
||||||
<config:config-item config:name="VisibleRight" config:type="long">24500</config:config-item>
|
<config:config-item config:name="VisibleRight" config:type="long">22292</config:config-item>
|
||||||
<config:config-item config:name="VisibleBottom" config:type="long">12356</config:config-item>
|
<config:config-item config:name="VisibleBottom" config:type="long">11328</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">1</config:config-item>
|
<config:config-item config:name="ViewLayoutColumns" config:type="short">1</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">200</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>
|
||||||
@@ -56,7 +55,6 @@
|
|||||||
<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>
|
||||||
@@ -84,14 +82,13 @@
|
|||||||
<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">2486454</config:config-item>
|
<config:config-item config:name="Rsid" config:type="int">2237446</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>
|
||||||
@@ -105,7 +102,6 @@
|
|||||||
<config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">true</config:config-item>
|
<config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">true</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>
|
||||||
@@ -113,7 +109,6 @@
|
|||||||
<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,20 +154,18 @@
|
|||||||
<style:font-face style:name="Noto Sans Bengali Light" svg:font-family="'Noto Sans Bengali Light'" style:font-adornments="Light" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
<style:font-face style:name="Noto Sans Bengali Light" svg:font-family="'Noto Sans Bengali Light'" style:font-adornments="Light" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="Open Sans Condensed" svg:font-family="'Open Sans Condensed'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
<style:font-face style:name="Open Sans Condensed" svg:font-family="'Open Sans Condensed'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="Source Han Sans CN" svg:font-family="'Source Han Sans CN'" style:font-family-generic="system" style:font-pitch="variable"/>
|
<style:font-face style:name="Source Han Sans CN" svg:font-family="'Source Han Sans CN'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="StarSymbol" svg:font-family="StarSymbol"/>
|
|
||||||
<style:font-face style:name="Verdana" svg:font-family="Verdana" style:font-family-generic="roman" style:font-pitch="variable"/>
|
|
||||||
</office:font-face-decls>
|
</office:font-face-decls>
|
||||||
<office:styles>
|
<office:styles>
|
||||||
<style:default-style style:family="graphic">
|
<style:default-style style:family="graphic">
|
||||||
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.1181in" draw:shadow-offset-y="0.1181in" draw:start-line-spacing-horizontal="0.1114in" draw:start-line-spacing-vertical="0.1114in" draw:end-line-spacing-horizontal="0.1114in" draw:end-line-spacing-vertical="0.1114in" style:flow-with-text="false"/>
|
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
|
||||||
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" 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%" loext:color-lum-mod="100%" loext:color-lum-off="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="es" fo:country="CO" style:letter-kerning="true" style:font-name-asian="Droid Sans Fallback" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
|
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="es" fo:country="CO" style:letter-kerning="true" style:font-name-asian="Droid Sans Fallback" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
|
||||||
</style:default-style>
|
</style:default-style>
|
||||||
<style:default-style style:family="paragraph">
|
<style:default-style style:family="paragraph">
|
||||||
<style:paragraph-properties fo:orphans="2" fo:widows="2" 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="page"/>
|
<style:paragraph-properties fo:orphans="2" fo:widows="2" fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
|
||||||
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="es" fo:country="CO" style:letter-kerning="true" style:font-name-asian="Droid Sans Fallback" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" 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:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="es" fo:country="CO" style:letter-kerning="true" style:font-name-asian="Droid Sans Fallback" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/>
|
||||||
</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"/>
|
||||||
@@ -182,17 +175,17 @@
|
|||||||
</style:default-style>
|
</style:default-style>
|
||||||
<style:style style:name="Standard" style:family="paragraph" style:class="text"/>
|
<style:style style:name="Standard" style:family="paragraph" style:class="text"/>
|
||||||
<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
|
<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
|
||||||
<style:paragraph-properties fo:margin-top="0.1665in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" fo:keep-with-next="always"/>
|
<style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" fo:keep-with-next="always"/>
|
||||||
<style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" style:font-name-asian="Source Han Sans CN" style:font-family-asian="'Source Han Sans CN'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
|
<style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" style:font-name-asian="Source Han Sans CN" style:font-family-asian="'Source Han Sans CN'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
|
<style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0972in" style:contextual-spacing="false" fo:line-height="115%"/>
|
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.247cm" style:contextual-spacing="false" fo:line-height="115%"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
|
<style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
|
||||||
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/>
|
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties fo:margin-top="0.0835in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
|
<style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
|
||||||
<style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss" style:font-size-complex="12pt" style:font-style-complex="italic"/>
|
<style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss" style:font-size-complex="12pt" style:font-style-complex="italic"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
|
<style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
|
||||||
@@ -202,75 +195,27 @@
|
|||||||
<style:style style:name="Header_20_and_20_Footer" style:display-name="Header and Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Header_20_and_20_Footer" style:display-name="Header and Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
||||||
<style:tab-stops>
|
<style:tab-stops>
|
||||||
<style:tab-stop style:position="3.4626in" style:type="center"/>
|
<style:tab-stop style:position="8.795cm" style:type="center"/>
|
||||||
<style:tab-stop style:position="6.9252in" style:type="right"/>
|
<style:tab-stop style:position="17.59cm" style:type="right"/>
|
||||||
</style:tab-stops>
|
</style:tab-stops>
|
||||||
</style:paragraph-properties>
|
</style:paragraph-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Header" style:family="paragraph" style:parent-style-name="Header_20_and_20_Footer" style:class="extra">
|
<style:style style:name="Header" style:family="paragraph" style:parent-style-name="Header_20_and_20_Footer" style:class="extra">
|
||||||
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
||||||
<style:tab-stops>
|
<style:tab-stops>
|
||||||
<style:tab-stop style:position="3.4626in" style:type="center"/>
|
<style:tab-stop style:position="8.795cm" style:type="center"/>
|
||||||
<style:tab-stop style:position="6.9252in" style:type="right"/>
|
<style:tab-stop style:position="17.59cm" style:type="right"/>
|
||||||
</style:tab-stops>
|
</style:tab-stops>
|
||||||
</style:paragraph-properties>
|
</style:paragraph-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties fo:orphans="0" fo:widows="0" text:number-lines="false" text:line-number="0"/>
|
<style:paragraph-properties fo:orphans="0" fo:widows="0" text:number-lines="false" text:line-number="0"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
|
||||||
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
|
||||||
<style:tab-stops>
|
|
||||||
<style:tab-stop style:position="3.4626in" style:type="center"/>
|
|
||||||
<style:tab-stop style:position="6.9252in" style:type="right"/>
|
|
||||||
</style:tab-stops>
|
|
||||||
</style:paragraph-properties>
|
|
||||||
<style:text-properties fo:font-size="9pt" style:font-size-asian="10.5pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Standard" style:default-outline-level="1" style:list-style-name="" style:class="text">
|
|
||||||
<style:paragraph-properties fo:keep-with-next="always"/>
|
|
||||||
<style:text-properties style:font-name="Verdana" fo:font-family="Verdana" style:font-family-generic="roman" style:font-pitch="variable" fo:language="es" fo:country="MX" fo:font-weight="bold" style:language-asian="es" style:country-asian="MX" style:font-weight-asian="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Table_20_Heading" style:display-name="Table Heading" style:family="paragraph" style:parent-style-name="Table_20_Contents" style:class="extra">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/>
|
|
||||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="text">
|
|
||||||
<style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-style-complex="italic" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra"/>
|
|
||||||
<style:style style:name="Text" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
|
|
||||||
<style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
|
|
||||||
<style:paragraph-properties fo:margin-top="0.0417in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
|
|
||||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties fo:font-size="28pt" fo:font-weight="bold" style:font-size-asian="28pt" style:font-weight-asian="bold" style:font-size-complex="28pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
|
|
||||||
<style:paragraph-properties fo:margin-left="0.3937in" fo:margin-right="0.3937in" fo:margin-top="0in" fo:margin-bottom="0.1965in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Text_20_body_20_indent" style:display-name="Text body indent" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="text">
|
|
||||||
<style:paragraph-properties fo:margin-left="0.1965in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="text">
|
|
||||||
<style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Placeholder" style:family="text">
|
<style:style style:name="Placeholder" style:family="text">
|
||||||
<style:text-properties fo:font-variant="small-caps" fo:color="#008080" loext:opacity="100%" style:text-underline-style="dotted" style:text-underline-width="auto" style:text-underline-color="font-color"/>
|
<style:text-properties fo:font-variant="small-caps" fo:color="#008080" loext:opacity="100%" style:text-underline-style="dotted" style:text-underline-width="auto" style:text-underline-color="font-color"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Internet_20_link" style:display-name="Internet link" style:family="text">
|
|
||||||
<style:text-properties fo:color="#000080" loext:opacity="100%" fo:language="zxx" fo:country="none" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" style:language-asian="zxx" style:country-asian="none" style:language-complex="zxx" style:country-complex="none"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text">
|
|
||||||
<style:text-properties style:font-name="StarSymbol" fo:font-family="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-family-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-family-complex="StarSymbol" style:font-size-complex="9pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Graphics" style:family="graphic">
|
<style:style style:name="Graphics" style:family="graphic">
|
||||||
<style:graphic-properties text:anchor-type="paragraph" svg:x="0in" svg:y="0in" style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
|
<style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Frame" style:family="graphic">
|
|
||||||
<style:graphic-properties text:anchor-type="paragraph" svg:x="0in" svg:y="0in" fo:margin-left="0.0791in" fo:margin-right="0.0791in" fo:margin-top="0.0791in" fo:margin-bottom="0.0791in" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:padding="0.0591in" fo:border="0.06pt solid #000000"/>
|
|
||||||
</style:style>
|
</style:style>
|
||||||
<text:outline-style style:name="Outline">
|
<text:outline-style style:name="Outline">
|
||||||
<text:outline-level-style text:level="1" loext:num-list-format="%1%" style:num-format="">
|
<text:outline-level-style text:level="1" loext:num-list-format="%1%" style:num-format="">
|
||||||
@@ -326,131 +271,200 @@
|
|||||||
</text:outline-style>
|
</text:outline-style>
|
||||||
<text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
|
<text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
|
||||||
<text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
|
<text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
|
||||||
<text:linenumbering-configuration text:number-lines="false" text:offset="0.1965in" style:num-format="1" text:number-position="left" text:increment="5"/>
|
<text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
|
||||||
<number:currency-style style:name="N122P0" style:volatile="true">
|
<number:currency-style style:name="N108P0" style:volatile="true">
|
||||||
<number:currency-symbol number:language="es" number:country="CO">$</number:currency-symbol>
|
<number:currency-symbol number:language="es" number:country="CO">$</number:currency-symbol>
|
||||||
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
||||||
</number:currency-style>
|
</number:currency-style>
|
||||||
<number:currency-style style:name="N122">
|
<number:currency-style style:name="N108">
|
||||||
<style:text-properties fo:color="#ff0000"/>
|
<style:text-properties fo:color="#ff0000"/>
|
||||||
<number:text>-</number:text>
|
<number:text>-</number:text>
|
||||||
<number:currency-symbol number:language="es" number:country="CO">$</number:currency-symbol>
|
<number:currency-symbol number:language="es" number:country="CO">$</number:currency-symbol>
|
||||||
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
||||||
<style:map style:condition="value()>=0" style:apply-style-name="N122P0"/>
|
<style:map style:condition="value()>=0" style:apply-style-name="N108P0"/>
|
||||||
</number:currency-style>
|
</number:currency-style>
|
||||||
</office:styles>
|
</office:styles>
|
||||||
<office:automatic-styles>
|
<office:automatic-styles>
|
||||||
<style:style style:name="Tabla6" style:family="table">
|
<style:style style:name="Tabla6" style:family="table">
|
||||||
<style:table-properties style:width="6.925in" table:align="margins"/>
|
<style:table-properties style:width="17.59cm" table:align="margins"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6.A" style:family="table-column">
|
<style:style style:name="Tabla6.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.4625in" style:rel-column-width="32767*"/>
|
<style:table-column-properties style:column-width="8.795cm" style:rel-column-width="32767*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6.B" style:family="table-column">
|
<style:style style:name="Tabla6.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.4625in" style:rel-column-width="32768*"/>
|
<style:table-column-properties style:column-width="8.795cm" style:rel-column-width="32768*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6.A1" style:family="table-cell">
|
<style:style style:name="Tabla6.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border="none"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6" style:family="table">
|
<style:style style:name="Tabla6" style:family="table">
|
||||||
<style:table-properties style:width="6.925in" table:align="margins"/>
|
<style:table-properties style:width="17.59cm" table:align="margins"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6.A" style:family="table-column">
|
<style:style style:name="Tabla6.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.4625in" style:rel-column-width="32767*"/>
|
<style:table-column-properties style:column-width="8.795cm" style:rel-column-width="32767*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6.B" style:family="table-column">
|
<style:style style:name="Tabla6.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.4625in" style:rel-column-width="32768*"/>
|
<style:table-column-properties style:column-width="8.795cm" style:rel-column-width="32768*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla6.A1" style:family="table-cell">
|
<style:style style:name="Tabla6.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border="none"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Header">
|
||||||
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
<style:text-properties style:font-name="Open Sans Condensed" fo:font-size="9pt" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
|
||||||
</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:text-properties officeooo:paragraph-rsid="001a6461"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Open Sans Condensed" fo:font-size="9pt" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
|
<style:text-properties style:font-name="Open Sans Condensed" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001e3f46" 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="P8" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Open Sans Condensed" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Open Sans Condensed" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a7e84" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Open Sans Condensed" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||||
|
</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: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="001a6461" 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:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P12" 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="Noto Sans Bengali Light" fo:font-size="10pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="001a6461" style:font-name-asian="Calibri" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P13" 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="001a6461" 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 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="001a6461" 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:style style:name="P4" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P14" 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="00203a45" 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 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="00203a45" 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:style style:name="P5" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:text-properties style:font-name="Open Sans Condensed" fo:font-size="9pt" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
|
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Header">
|
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="12pt" fo:font-weight="bold" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties officeooo:paragraph-rsid="001a6461"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001e3f46" 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:style style:name="P8" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:text-properties style:font-name="Open Sans Condensed" fo:font-size="9pt" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a7e84" 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="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" 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="Standard">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001e3f46" 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: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="8pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/>
|
<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:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Standard">
|
<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" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a7e84" 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 Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a7e84" 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="P14" style:family="paragraph" style:parent-style-name="Standard">
|
<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" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" 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 Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001a6461" 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="P15" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P29" 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:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001e3f46" 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="001b9ac0" officeooo:paragraph-rsid="0024622d" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-name-complex="Arial" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="0024622d" 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 Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001b9ac0" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-name-complex="Arial" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001a6461" officeooo:paragraph-rsid="001e3f46" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
</style:style>
|
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001cd488" officeooo:paragraph-rsid="00203a45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-name-complex="Arial" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||||
<style:style style:name="P18" 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: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-size="8pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="0024622d" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Arial" style:font-size-complex="8pt" style:font-weight-complex="bold" style:text-emphasize="none"/>
|
|
||||||
</style:style>
|
|
||||||
<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: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="001a6461" 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="P20" 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="00203a45" 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:style style:name="T1" style:family="text">
|
<style:style style:name="T1" style:family="text">
|
||||||
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
|
<style:text-properties officeooo:rsid="001a7e84"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T2" style:family="text">
|
<style:style style:name="T2" style:family="text">
|
||||||
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="T3" 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>
|
||||||
|
<style:style style:name="T3" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="normal" officeooo:rsid="001b9ac0" style:font-weight-asian="normal" style:font-name-complex="Arial" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T4" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="normal" officeooo:rsid="001e3f46" style:font-weight-asian="normal" style:font-name-complex="Arial" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T5" style:family="text">
|
||||||
|
<style:text-properties fo:font-weight="normal" officeooo:rsid="001b9ac0" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T6" style:family="text">
|
||||||
|
<style:text-properties officeooo:rsid="001e3f46"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T7" style:family="text">
|
||||||
|
<style:text-properties officeooo:rsid="001b9ac0" style:font-name-complex="Arial"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T8" style:family="text">
|
||||||
|
<style:text-properties officeooo:rsid="001e3f46" style:font-name-complex="Arial"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T9" style:family="text">
|
||||||
|
<style:text-properties fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="001b9ac0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-name-complex="Arial" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T10" style:family="text">
|
||||||
|
<style:text-properties fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T11" style:family="text">
|
||||||
|
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T12" 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-size="9pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-size-asian="9pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T13" style:family="text">
|
||||||
|
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="9pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-size-asian="9pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="9pt" style:font-weight-complex="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T14" style:family="text">
|
||||||
|
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="7pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal" style:text-emphasize="none"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="T15" 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" 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="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: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:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" 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>
|
||||||
<style:page-layout style:name="pm1">
|
<style:page-layout style:name="pm1">
|
||||||
<style:page-layout-properties fo:page-width="8.5in" fo:page-height="11in" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0.7874in" fo:margin-bottom="0.7874in" fo:margin-left="0.7874in" fo:margin-right="0.7874in" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.278in" style:layout-grid-ruby-height="0.139in" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0in" loext:margin-gutter="0in">
|
<style:page-layout-properties fo:page-width="21.59cm" fo:page-height="27.94cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
|
||||||
<style:footnote-sep style:width="0.0071in" style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
|
<style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
|
||||||
</style:page-layout-properties>
|
</style:page-layout-properties>
|
||||||
<style:header-style>
|
<style:header-style>
|
||||||
<style:header-footer-properties fo:min-height="0in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.1965in" fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf"/>
|
<style:header-footer-properties fo:min-height="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.499cm" fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf"/>
|
||||||
</style:header-style>
|
</style:header-style>
|
||||||
<style:footer-style/>
|
<style:footer-style/>
|
||||||
</style:page-layout>
|
</style:page-layout>
|
||||||
@@ -467,7 +481,7 @@
|
|||||||
<table:table-column table:style-name="Tabla6.B"/>
|
<table:table-column table:style-name="Tabla6.B"/>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Tabla6.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla6.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P2"><draw:frame draw:style-name="fr1" draw:name="Imagen2" text:anchor-type="as-char" svg:y="-0.0307in" svg:width="3.3764in" svg:height="0.7429in" draw:z-index="0"><draw:image draw:mime-type="image/jpeg">
|
<text:p text:style-name="P5"><draw:frame draw:style-name="fr1" draw:name="Imagen2" text:anchor-type="as-char" svg:y="-0.078cm" svg:width="8.576cm" svg:height="1.887cm" draw:z-index="0"><draw:image draw:mime-type="image/jpeg">
|
||||||
<office:binary-data>/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgK
|
<office:binary-data>/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgK
|
||||||
CgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkL
|
CgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkL
|
||||||
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAAR
|
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAAR
|
||||||
@@ -1122,15 +1136,15 @@
|
|||||||
</draw:frame></text:p>
|
</draw:frame></text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Tabla6.A1" office:value-type="string">
|
<table:table-cell table:style-name="Tabla6.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P3">Smart Vision S.A.S</text:p>
|
<text:p text:style-name="P13">Smart Vision S.A.S</text:p>
|
||||||
<text:p text:style-name="P3">NIT 901091201</text:p>
|
<text:p text:style-name="P13">NIT 901091201</text:p>
|
||||||
<text:p text:style-name="P3">DIRECCIÓN Carrera 17 # 53-17</text:p>
|
<text:p text:style-name="P13">DIRECCIÓN Carrera 16 # 52-85 piso 4 </text:p>
|
||||||
<text:p text:style-name="P4">TELÉFONOS +57 320 8197664 - <text:span text:style-name="T1">601 7912965</text:span></text:p>
|
<text:p text:style-name="P14">TELÉFONOS +57 320 8197664 - <text:span text:style-name="T11">601 7049417</text:span></text:p>
|
||||||
<text:p text:style-name="P3">E – MAIL smartvisioncolombia@gmail.com</text:p>
|
<text:p text:style-name="P13">E – MAIL smartvisioncolombia@gmail.com</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P5"/>
|
<text:p text:style-name="P2"/>
|
||||||
</style:header>
|
</style:header>
|
||||||
</style:master-page>
|
</style:master-page>
|
||||||
</office:master-styles>
|
</office:master-styles>
|
||||||
@@ -1143,28 +1157,27 @@
|
|||||||
<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="P16"><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" text:description="for each="maintenance_service in records""><for each="maintenance_service in records"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text"><shipment.delivery_address.subdivision_municipality.name></text:placeholder></text:p>
|
<text:p text:style-name="P31"><text:span text:style-name="T5"><text:placeholder text:placeholder-type="text" text:description="maintenance_service. propietary_address.subdivision_municipality.nema"><maintenance_service. propietary_address.subdivision_municipality.name></text:placeholder></text:span><text:span text:style-name="T5"><text:s/></text:span><text:span text:style-name="T15"><text:placeholder text:placeholder-type="text" text:description="format_datetime(datetime.datetime.now(),user.language, '%25B %25d ,%25Y %25H:%25M%25p', equipment.company.timezone)"><format_datetime(datetime.datetime.now(),user.language, '%d de %B del %Y', maintenance_service.company.timezone)></text:placeholder></text:span></text:p>
|
||||||
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text" text:description="format_datetime(datetime.datetime.now(),user.language, '%d de %B del %Y', shipment.company.timezone)"><format_datetime(datetime.datetime.now(),user.language, '%d de %B del %Y', shipment.company.timezone)></text:placeholder></text:p>
|
<text:p text:style-name="P30"><text:placeholder text:placeholder-type="text" text:description="maintenance_service.propietary.name"><maintenance_service.propietary.name></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"><shipment.customer.rec_name></text:placeholder></text:p>
|
<text:p text:style-name="P29"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P17"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P25"><text:span text:style-name="T2">Referencia:</text:span> Certificado de capacitación</text:p>
|
||||||
<text:p text:style-name="P11"><text:span text:style-name="T3">Referencia:</text:span> Certificado de capacitación</text:p>
|
<text:p text:style-name="P26"/>
|
||||||
<text:p text:style-name="P12"/>
|
<text:p text:style-name="P26">Smart Vision S.A.S en nuestro carácter de distribuidores nos comprometemos a capacitar adecuadamente en el uso, manejo y cuidado de los equipos distribuidos por nosotros al personal que va a hacer uso de los mismos, y generar el correspondiente certificado membretado acreditándolos como personal idóneo.</text:p>
|
||||||
<text:p text:style-name="P12">Smart Vision S.A.S en nuestro carácter de distribuidores nos comprometemos a capacitar adecuadamente en el uso, manejo y cuidado de los equipos distribuidos por nosotros al personal que va a hacer uso de los mismos, y generar el correspondiente certificado membretado acreditándolos como personal idóneo.</text:p>
|
<text:p text:style-name="P26"/>
|
||||||
<text:p text:style-name="P12"/>
|
<text:p text:style-name="P26">El uso y mantenimiento de los equipos suministrados por Smart Vision S.A.S solo debe ser realizado por personal capacitado y certificado por nuestra empresa, las fallas generadas por uso o manipulación por terceros no capacitados y certificados anulará la garantía. </text:p>
|
||||||
<text:p text:style-name="P12">El uso y mantenimiento de los equipos suministrados por Smart Vision S.A.S solo debe ser realizado por personal capacitado y certificado por nuestra empresa, las fallas generadas por uso o manipulación por terceros no capacitados y certificados anulará la garantía. </text:p>
|
<text:p text:style-name="P26"/>
|
||||||
<text:p text:style-name="P12"/>
|
<text:p text:style-name="P26">Cualquier capacitación adicional o nuevo personal que requiera certificación por parte de Smart Vision S.A.S tendrá un costo adicional.</text:p>
|
||||||
<text:p text:style-name="P12">Cualquier capacitación adicional o nuevo personal que requiera certificación por parte de Smart Vision S.A.S tendrá un costo adicional.</text:p>
|
<text:p text:style-name="P26"/>
|
||||||
<text:p text:style-name="P12"/>
|
<text:p text:style-name="P26">El certificado de capacitación será emitido y enviado 2 días hábiles posteriores a la misma.</text:p>
|
||||||
<text:p text:style-name="P12">El certificado de capacitación será emitido y enviado 2 días hábiles posteriores a la misma.</text:p>
|
<text:p text:style-name="P26"/>
|
||||||
<text:p text:style-name="P12"/>
|
<text:p text:style-name="P26">Cordialmente.</text:p>
|
||||||
<text:p text:style-name="P12">Cordialmente.</text:p>
|
<text:p text:style-name="P23"/>
|
||||||
<text:p text:style-name="P10"/>
|
<text:p text:style-name="P19"/>
|
||||||
<text:p text:style-name="P9"/>
|
<text:p text:style-name="P23"/>
|
||||||
<text:p text:style-name="P10"/>
|
<text:p text:style-name="P23">___________________________________</text:p>
|
||||||
<text:p text:style-name="P10">___________________________________</text:p>
|
<text:p text:style-name="P27">Jesus Antonio Giraldo García</text:p>
|
||||||
<text:p text:style-name="P13">Jesus Antonio Giraldo García</text:p>
|
<text:p text:style-name="P28">C.E.O (Gerente General)</text:p>
|
||||||
<text:p text:style-name="P14">C.E.O (Gerente General)</text:p>
|
|
||||||
</office:text>
|
</office:text>
|
||||||
</office:body>
|
</office:body>
|
||||||
</office:document>
|
</office:document>
|
||||||
4455
report/Contract.fodt
4455
report/Contract.fodt
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
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
1430
report/Payment.fodt
1430
report/Payment.fodt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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: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: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:meta><meta:generator>LibreOffice/7.3.6.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="92" meta:word-count="213" meta:character-count="2573" meta:non-whitespace-character-count="2448"/><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">11950</config:config-item>
|
<config:config-item config:name="ViewAreaTop" 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="ViewAreaLeft" config:type="long">0</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaWidth" config:type="long">28825</config:config-item>
|
<config:config-item config:name="ViewAreaWidth" config:type="long">27437</config:config-item>
|
||||||
<config:config-item config:name="ViewAreaHeight" config:type="long">12920</config:config-item>
|
<config:config-item config:name="ViewAreaHeight" config:type="long">10952</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">4925</config:config-item>
|
<config:config-item config:name="ViewLeft" config:type="long">4133</config:config-item>
|
||||||
<config:config-item config:name="ViewTop" config:type="long">15117</config:config-item>
|
<config:config-item config:name="ViewTop" config:type="long">4852</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">11950</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">28824</config:config-item>
|
<config:config-item config:name="VisibleRight" config:type="long">27436</config:config-item>
|
||||||
<config:config-item config:name="VisibleBottom" config:type="long">24869</config:config-item>
|
<config:config-item config:name="VisibleBottom" config:type="long">10950</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">130</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>
|
||||||
@@ -56,7 +55,6 @@
|
|||||||
<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>
|
||||||
@@ -84,14 +82,13 @@
|
|||||||
<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">4987782</config:config-item>
|
<config:config-item config:name="Rsid" config:type="int">4405812</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>
|
||||||
@@ -105,7 +102,6 @@
|
|||||||
<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>
|
||||||
@@ -113,7 +109,6 @@
|
|||||||
<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>
|
||||||
@@ -141,17 +136,13 @@
|
|||||||
</office:settings>
|
</office:settings>
|
||||||
<office:scripts>
|
<office:scripts>
|
||||||
<office:script script:language="ooo:Basic">
|
<office:script script:language="ooo:Basic">
|
||||||
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
|
||||||
<ooo:library-embedded ooo:name="Standard"/>
|
|
||||||
</ooo:libraries>
|
|
||||||
</office:script>
|
</office:script>
|
||||||
</office:scripts>
|
</office:scripts>
|
||||||
<office:font-face-decls>
|
<office:font-face-decls>
|
||||||
<style:font-face style:name="Andale Sans UI" svg:font-family="'Andale Sans UI'" style:font-family-generic="system" style:font-pitch="variable"/>
|
<style:font-face style:name="Andale Sans UI" svg:font-family="'Andale Sans UI'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="Cantarell" svg:font-family="Cantarell" style:font-pitch="variable"/>
|
<style:font-face style:name="Cantarell" svg:font-family="Cantarell" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="DejaVu Sans" svg:font-family="'DejaVu Sans'" style:font-family-generic="system" style:font-pitch="variable"/>
|
<style:font-face style:name="DejaVu Sans" svg:font-family="'DejaVu Sans'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="DejaVu Sans Mono" svg:font-family="'DejaVu Sans Mono'" style:font-family-generic="modern" style:font-pitch="fixed"/>
|
|
||||||
<style:font-face style:name="Droid Sans Japanese" svg:font-family="'Droid Sans Japanese'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
|
||||||
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-adornments="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-adornments="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="Liberation Serif" svg:font-family="'Liberation Serif'" style:font-adornments="Bold" style:font-family-generic="roman" style:font-pitch="variable"/>
|
<style:font-face style:name="Liberation Serif" svg:font-family="'Liberation Serif'" style:font-adornments="Bold" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||||
<style:font-face style:name="Liberation Serif1" svg:font-family="'Liberation Serif'" style:font-adornments="Regular" style:font-family-generic="roman" style:font-pitch="variable"/>
|
<style:font-face style:name="Liberation Serif1" svg:font-family="'Liberation Serif'" style:font-adornments="Regular" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||||
@@ -160,15 +151,15 @@
|
|||||||
</office:font-face-decls>
|
</office:font-face-decls>
|
||||||
<office:styles>
|
<office:styles>
|
||||||
<style:default-style style:family="graphic">
|
<style:default-style style:family="graphic">
|
||||||
<style:graphic-properties svg:stroke-color="#000000" draw:fill-color="#99ccff" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.1181in" draw:shadow-offset-y="0.1181in" draw:start-line-spacing-horizontal="0.1114in" draw:start-line-spacing-vertical="0.1114in" draw:end-line-spacing-horizontal="0.1114in" draw:end-line-spacing-vertical="0.1114in" style:flow-with-text="false"/>
|
<style:graphic-properties svg:stroke-color="#000000" draw:fill-color="#99ccff" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="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: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%" 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: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: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="1.251cm" 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" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
|
<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: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"/>
|
||||||
@@ -180,18 +171,18 @@
|
|||||||
<style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" style:font-size-asian="10.5pt"/>
|
<style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" style:font-size-asian="10.5pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
|
<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
|
||||||
<style:paragraph-properties fo:margin-top="0.1665in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" fo:keep-with-next="always"/>
|
<style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" fo:keep-with-next="always"/>
|
||||||
<style:text-properties style:font-name="Liberation Serif1" fo:font-family="'Liberation Serif'" style:font-style-name="Regular" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="16pt" style:font-name-asian="DejaVu Sans" style:font-family-asian="'DejaVu Sans'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans" style:font-family-complex="'DejaVu Sans'" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
|
<style:text-properties style:font-name="Liberation Serif1" fo:font-family="'Liberation Serif'" style:font-style-name="Regular" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="16pt" style:font-name-asian="DejaVu Sans" style:font-family-asian="'DejaVu Sans'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans" style:font-family-complex="'DejaVu Sans'" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
|
<style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0835in" style:contextual-spacing="false"/>
|
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" style:font-size-asian="10.5pt"/>
|
<style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" style:font-size-asian="10.5pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
|
<style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
|
||||||
<style:text-properties style:font-size-asian="12pt"/>
|
<style:text-properties style:font-size-asian="12pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties fo:margin-top="0.0835in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
|
<style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
|
||||||
<style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-size-complex="12pt" style:font-style-complex="italic"/>
|
<style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-size-complex="12pt" style:font-style-complex="italic"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
|
<style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
|
||||||
@@ -215,16 +206,16 @@
|
|||||||
<style:style style:name="Header_20_and_20_Footer" style:display-name="Header and Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Header_20_and_20_Footer" style:display-name="Header and Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
||||||
<style:tab-stops>
|
<style:tab-stops>
|
||||||
<style:tab-stop style:position="3.3465in" style:type="center"/>
|
<style:tab-stop style:position="8.5cm" style:type="center"/>
|
||||||
<style:tab-stop style:position="6.6929in" style:type="right"/>
|
<style:tab-stop style:position="17cm" style:type="right"/>
|
||||||
</style:tab-stops>
|
</style:tab-stops>
|
||||||
</style:paragraph-properties>
|
</style:paragraph-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
||||||
<style:tab-stops>
|
<style:tab-stops>
|
||||||
<style:tab-stop style:position="3.4626in" style:type="center"/>
|
<style:tab-stop style:position="8.795cm" style:type="center"/>
|
||||||
<style:tab-stop style:position="6.9252in" style:type="right"/>
|
<style:tab-stop style:position="17.59cm" style:type="right"/>
|
||||||
</style:tab-stops>
|
</style:tab-stops>
|
||||||
</style:paragraph-properties>
|
</style:paragraph-properties>
|
||||||
<style:text-properties fo:font-size="9pt" style:font-size-asian="10.5pt"/>
|
<style:text-properties fo:font-size="9pt" style:font-size-asian="10.5pt"/>
|
||||||
@@ -232,8 +223,8 @@
|
|||||||
<style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
<style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
|
||||||
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
<style:paragraph-properties text:number-lines="false" text:line-number="0">
|
||||||
<style:tab-stops>
|
<style:tab-stops>
|
||||||
<style:tab-stop style:position="3.4626in" style:type="center"/>
|
<style:tab-stop style:position="8.795cm" style:type="center"/>
|
||||||
<style:tab-stop style:position="6.9252in" style:type="right"/>
|
<style:tab-stop style:position="17.59cm" style:type="right"/>
|
||||||
</style:tab-stops>
|
</style:tab-stops>
|
||||||
</style:paragraph-properties>
|
</style:paragraph-properties>
|
||||||
<style:text-properties fo:font-size="9pt" style:font-size-asian="10.5pt"/>
|
<style:text-properties fo:font-size="9pt" style:font-size-asian="10.5pt"/>
|
||||||
@@ -242,24 +233,20 @@
|
|||||||
<style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Text_20_body_20_indent" style:display-name="Text body indent" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="text">
|
<style:style style:name="Text_20_body_20_indent" style:display-name="Text body indent" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="text">
|
||||||
<style:paragraph-properties fo:margin-left="0.1965in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0.499cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Text" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
|
<style:style style:name="Text" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
|
||||||
<style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
|
<style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
|
||||||
<style:paragraph-properties fo:margin-left="0.3937in" fo:margin-right="0.3937in" fo:margin-top="0in" fo:margin-bottom="0.1965in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="1cm" fo:margin-right="1cm" fo:margin-top="0cm" fo:margin-bottom="0.499cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
|
<style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
|
||||||
<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-size="28pt" fo:font-weight="bold" style:font-size-asian="28pt" style:font-weight-asian="bold" style:font-size-complex="28pt" style:font-weight-complex="bold"/>
|
<style:text-properties fo:font-size="28pt" fo:font-weight="bold" style:font-size-asian="28pt" style:font-weight-asian="bold" style:font-size-complex="28pt" style:font-weight-complex="bold"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
|
<style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
|
||||||
<style:paragraph-properties fo:margin-top="0.0417in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/>
|
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/>
|
||||||
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
|
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Preformatted_20_Text" style:display-name="Preformatted Text" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
|
|
||||||
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0in" style:contextual-spacing="false"/>
|
|
||||||
<style:text-properties style:font-name="DejaVu Sans Mono" fo:font-family="'DejaVu Sans Mono'" style:font-family-generic="modern" style:font-pitch="fixed" fo:font-size="10pt" style:font-name-asian="DejaVu Sans Mono" style:font-family-asian="'DejaVu Sans Mono'" style:font-family-generic-asian="modern" style:font-pitch-asian="fixed" style:font-size-asian="10pt" style:font-name-complex="DejaVu Sans Mono" style:font-family-complex="'DejaVu Sans Mono'" style:font-family-generic-complex="modern" style:font-pitch-complex="fixed" style:font-size-complex="10pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Placeholder" style:family="text">
|
<style:style style:name="Placeholder" style:family="text">
|
||||||
<style:text-properties fo:font-variant="small-caps" fo:color="#008080" loext:opacity="100%" style:text-underline-style="dotted" style:text-underline-width="auto" style:text-underline-color="font-color"/>
|
<style:text-properties fo:font-variant="small-caps" fo:color="#008080" loext:opacity="100%" style:text-underline-style="dotted" style:text-underline-width="auto" style:text-underline-color="font-color"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
@@ -267,240 +254,229 @@
|
|||||||
<style:text-properties style:font-name="StarSymbol" fo:font-family="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-family-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-family-complex="StarSymbol" style:font-size-complex="9pt"/>
|
<style:text-properties style:font-name="StarSymbol" fo:font-family="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-family-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-family-complex="StarSymbol" style:font-size-complex="9pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Graphics" style:family="graphic">
|
<style:style style:name="Graphics" style:family="graphic">
|
||||||
<style:graphic-properties text:anchor-type="paragraph" svg:x="0in" svg:y="0in" style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
|
<style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<text:outline-style style:name="Outline">
|
<text:outline-style style:name="Outline">
|
||||||
<text:outline-level-style text:level="1" loext:num-list-format="%1%" style:num-format="">
|
<text:outline-level-style text:level="1" loext:num-list-format="%1%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="2" loext:num-list-format="%2%" style:num-format="">
|
<text:outline-level-style text:level="2" loext:num-list-format="%2%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="3" loext:num-list-format="%3%" style:num-format="">
|
<text:outline-level-style text:level="3" loext:num-list-format="%3%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="4" loext:num-list-format="%4%" style:num-format="">
|
<text:outline-level-style text:level="4" loext:num-list-format="%4%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="5" loext:num-list-format="%5%" style:num-format="">
|
<text:outline-level-style text:level="5" loext:num-list-format="%5%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="6" loext:num-list-format="%6%" style:num-format="">
|
<text:outline-level-style text:level="6" loext:num-list-format="%6%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="7" loext:num-list-format="%7%" style:num-format="">
|
<text:outline-level-style text:level="7" loext:num-list-format="%7%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="8" loext:num-list-format="%8%" style:num-format="">
|
<text:outline-level-style text:level="8" loext:num-list-format="%8%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="9" loext:num-list-format="%9%" style:num-format="">
|
<text:outline-level-style text:level="9" loext:num-list-format="%9%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
<text:outline-level-style text:level="10" loext:num-list-format="%10%" style:num-format="">
|
<text:outline-level-style text:level="10" loext:num-list-format="%10%" style:num-format="">
|
||||||
<style:list-level-properties text:min-label-distance="0.15in"/>
|
<style:list-level-properties text:min-label-distance="0.381cm"/>
|
||||||
</text:outline-level-style>
|
</text:outline-level-style>
|
||||||
</text:outline-style>
|
</text:outline-style>
|
||||||
<text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
|
<text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
|
||||||
<text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
|
<text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
|
||||||
<text:linenumbering-configuration text:number-lines="false" text:offset="0.1965in" style:num-format="1" text:number-position="left" text:increment="5"/>
|
<text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
|
||||||
<number:currency-style style:name="N122P0" style:volatile="true">
|
|
||||||
<number:currency-symbol number:language="es" number:country="CO">$</number:currency-symbol>
|
|
||||||
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
|
||||||
</number:currency-style>
|
|
||||||
<number:currency-style style:name="N122">
|
|
||||||
<style:text-properties fo:color="#ff0000"/>
|
|
||||||
<number:text>-</number:text>
|
|
||||||
<number:currency-symbol number:language="es" number:country="CO">$</number:currency-symbol>
|
|
||||||
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
|
||||||
<style:map style:condition="value()>=0" style:apply-style-name="N122P0"/>
|
|
||||||
</number:currency-style>
|
|
||||||
</office:styles>
|
</office:styles>
|
||||||
<office:automatic-styles>
|
<office:automatic-styles>
|
||||||
<style:style style:name="Tabla2" style:family="table">
|
<style:style style:name="Tabla2" style:family="table">
|
||||||
<style:table-properties style:width="7.6417in" table:align="margins"/>
|
<style:table-properties style:width="19.41cm" table:align="margins"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla2.A" style:family="table-column">
|
<style:style style:name="Tabla2.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.8208in" style:rel-column-width="32767*"/>
|
<style:table-column-properties style:column-width="9.705cm" style:rel-column-width="32767*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla2.B" style:family="table-column">
|
<style:style style:name="Tabla2.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.8208in" style:rel-column-width="32768*"/>
|
<style:table-column-properties style:column-width="9.705cm" style:rel-column-width="32768*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla2.A1" style:family="table-cell">
|
<style:style style:name="Tabla2.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border="none"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla1" style:family="table">
|
<style:style style:name="Tabla1" style:family="table">
|
||||||
<style:table-properties style:width="7.6417in" table:align="margins"/>
|
<style:table-properties style:width="19.41cm" table:align="margins"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla1.A" style:family="table-column">
|
<style:style style:name="Tabla1.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.8201in" style:rel-column-width="32761*"/>
|
<style:table-column-properties style:column-width="9.705cm" style:rel-column-width="32767*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla1.B" style:family="table-column">
|
<style:style style:name="Tabla1.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="3.8215in" style:rel-column-width="32774*"/>
|
<style:table-column-properties style:column-width="9.705cm" style:rel-column-width="32768*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla1.1" style:family="table-row">
|
<style:style style:name="Tabla1.1" style:family="table-row">
|
||||||
<style:table-row-properties style:min-row-height="1.2188in"/>
|
<style:table-row-properties style:min-row-height="3.096cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Tabla1.A1" style:family="table-cell">
|
<style:style style:name="Tabla1.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border="none"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1" style:family="table">
|
<style:style style:name="Table1" style:family="table">
|
||||||
<style:table-properties style:width="7.3215in" table:align="left"/>
|
<style:table-properties style:width="18.597cm" table:align="left"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A" style:family="table-column">
|
<style:style style:name="Table1.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="2.6417in"/>
|
<style:table-column-properties style:column-width="6.71cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.B" style:family="table-column">
|
<style:style style:name="Table1.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="0.7813in"/>
|
<style:table-column-properties style:column-width="1.984cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.C" style:family="table-column">
|
<style:style style:name="Table1.C" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="1.5396in"/>
|
<style:table-column-properties style:column-width="3.911cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.D" style:family="table-column">
|
<style:style style:name="Table1.D" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="1.1389in"/>
|
<style:table-column-properties style:column-width="2.893cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.E" style:family="table-column">
|
<style:style style:name="Table1.E" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="1.2201in"/>
|
<style:table-column-properties style:column-width="3.099cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A1" style:family="table-cell">
|
<style:style style:name="Table1.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.E1" style:family="table-cell">
|
<style:style style:name="Table1.E1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A2" style:family="table-cell">
|
<style:style style:name="Table1.A2" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A3" style:family="table-cell">
|
<style:style style:name="Table1.A3" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A4" style:family="table-cell">
|
<style:style style:name="Table1.A4" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A5" style:family="table-cell">
|
<style:style style:name="Table1.A5" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.B5" style:family="table-cell">
|
<style:style style:name="Table1.B5" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.C5" style:family="table-cell">
|
<style:style style:name="Table1.C5" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.D5" style:family="table-cell">
|
<style:style style:name="Table1.D5" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.E5" style:family="table-cell">
|
<style:style style:name="Table1.E5" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A6" style:family="table-cell">
|
<style:style style:name="Table1.A6" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A7" style:family="table-cell">
|
<style:style style:name="Table1.A7" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A8" style:family="table-cell">
|
<style:style style:name="Table1.A8" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.E8" style:family="table-cell">
|
<style:style style:name="Table1.E8" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A9" style:family="table-cell">
|
<style:style style:name="Table1.A9" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A10" style:family="table-cell">
|
<style:style style:name="Table1.A10" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A11" style:family="table-cell">
|
<style:style style:name="Table1.A11" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A12" style:family="table-cell">
|
<style:style style:name="Table1.A12" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A13" style:family="table-cell">
|
<style:style style:name="Table1.A13" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A14" style:family="table-cell">
|
<style:style style:name="Table1.A14" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A15" style:family="table-cell">
|
<style:style style:name="Table1.A15" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A16" style:family="table-cell">
|
<style:style style:name="Table1.A16" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table1.A17" style:family="table-cell">
|
<style:style style:name="Table1.A17" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table2" style:family="table">
|
<style:style style:name="Table2" style:family="table">
|
||||||
<style:table-properties style:width="7.6417in" table:align="margins" style:may-break-between-rows="false"/>
|
<style:table-properties style:width="19.41cm" table:align="margins" style:may-break-between-rows="false"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table2.A" style:family="table-column">
|
<style:style style:name="Table2.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="1.9271in" style:rel-column-width="16526*"/>
|
<style:table-column-properties style:column-width="4.895cm" style:rel-column-width="16526*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table2.B" style:family="table-column">
|
<style:style style:name="Table2.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="5.7146in" style:rel-column-width="49009*"/>
|
<style:table-column-properties style:column-width="14.515cm" style:rel-column-width="49009*"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4" style:family="table">
|
<style:style style:name="Table4" style:family="table">
|
||||||
<style:table-properties style:width="5.3729in" fo:margin-left="0.0083in" table:align="left" style:may-break-between-rows="true"/>
|
<style:table-properties style:width="13.097cm" fo:margin-left="0.021cm" table:align="left" style:may-break-between-rows="true"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.A" style:family="table-column">
|
<style:style style:name="Table4.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="1.1833in"/>
|
<style:table-column-properties style:column-width="3.006cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.B" style:family="table-column">
|
<style:style style:name="Table4.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="4.1896in"/>
|
<style:table-column-properties style:column-width="10.091cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.A1" style:family="table-cell">
|
<style:style style:name="Table4.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.B1" style:family="table-cell">
|
<style:style style:name="Table4.B1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.A2" style:family="table-cell">
|
<style:style style:name="Table4.A2" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.B2" style:family="table-cell">
|
<style:style style:name="Table4.B2" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4" style:family="table">
|
<style:style style:name="Table4" style:family="table">
|
||||||
<style:table-properties style:width="5.3729in" fo:margin-left="0.0083in" table:align="left" style:may-break-between-rows="true"/>
|
<style:table-properties style:width="13.097cm" fo:margin-left="0.021cm" table:align="left" style:may-break-between-rows="true"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.A" style:family="table-column">
|
<style:style style:name="Table4.A" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="1.1833in"/>
|
<style:table-column-properties style:column-width="3.006cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.B" style:family="table-column">
|
<style:style style:name="Table4.B" style:family="table-column">
|
||||||
<style:table-column-properties style:column-width="4.1896in"/>
|
<style:table-column-properties style:column-width="10.091cm"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.A1" style:family="table-cell">
|
<style:style style:name="Table4.A1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.B1" style:family="table-cell">
|
<style:style style:name="Table4.B1" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.A2" style:family="table-cell">
|
<style:style style:name="Table4.A2" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="Table4.B2" style:family="table-cell">
|
<style:style style:name="Table4.B2" style:family="table-cell">
|
||||||
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.0382in" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
<style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000">
|
||||||
<style:background-image/>
|
<style:background-image/>
|
||||||
</style:table-cell-properties>
|
</style:table-cell-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
@@ -551,19 +527,19 @@
|
|||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</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: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="0cm" fo:margin-right="0cm" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P14" 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="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="002df6ba" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="002df6ba" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P15" 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="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="002cc9ef" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="002cc9ef" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P16" 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="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" 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="Table_20_Contents">
|
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
@@ -582,144 +558,90 @@
|
|||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P21" 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="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P22" 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="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false" fo:line-height="100%"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="003bba97" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="003bba97" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="0046f4f2" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false"/>
|
||||||
|
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" fo:font-weight="bold" 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="P24" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P24" 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:text-properties style:font-name="Cantarell" fo:font-size="7pt" fo:font-weight="bold" 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="Cantarell" fo:font-size="7pt" fo:font-weight="bold" 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="P25" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" fo:font-weight="bold" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
|
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="002b1070" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P26" 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="11.28cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="002b1070" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="002b1070" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
|
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
|
||||||
<style:paragraph-properties fo:margin-left="4.4409in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="002b1070" 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: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="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="003da5ab" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="003da5ab" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||||
|
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
||||||
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
|
</style:style>
|
||||||
|
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
||||||
<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="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
||||||
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Table_20_Heading">
|
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="003bba97" officeooo:paragraph-rsid="003bba97" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="003bba97" officeooo:paragraph-rsid="003bba97" 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:master-page-name="">
|
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Text_20_body" style:master-page-name="">
|
||||||
<style:paragraph-properties style:page-number="auto"/>
|
<style:paragraph-properties style:page-number="auto"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<loext:graphic-properties draw:fill="none"/>
|
<loext:graphic-properties draw:fill="none"/>
|
||||||
<style:paragraph-properties fo:margin-left="0.3937in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0835in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false" fo:background-color="transparent"/>
|
<style:paragraph-properties fo:margin-left="1cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false" fo:background-color="transparent"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="0019f6b5" officeooo:paragraph-rsid="0019f6b5" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="0019f6b5" officeooo:paragraph-rsid="0019f6b5" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:paragraph-properties fo:break-before="column"/>
|
<style:paragraph-properties fo:break-before="column"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="0019f6b5" officeooo:paragraph-rsid="0024fff1" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="0019f6b5" officeooo:paragraph-rsid="0024fff1" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P38" 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-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
|
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="003fc8ab" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:paragraph-rsid="003fc8ab" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P39" 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:text-properties style:font-name="Cantarell" fo:font-size="8pt" officeooo:rsid="00452a7b" officeooo:paragraph-rsid="00452a7b" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Text_20_body">
|
|
||||||
<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="Cantarell" fo:font-size="8pt" style:text-underline-style="none" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" style:text-underline-style="none" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="P41" 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:break-before="column"/>
|
<style:paragraph-properties fo:break-before="column"/>
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001bf6f1" officeooo:paragraph-rsid="0024fff1" 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="Cantarell" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001bf6f1" officeooo:paragraph-rsid="0024fff1" 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="P42" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties style:font-name="Cantarell" 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 style:font-name="Cantarell" 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="P43" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Text_20_body">
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="8pt" fo:font-weight="bold" 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 style:font-name="Cantarell" fo:font-size="8pt" fo:font-weight="bold" 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="P44" style:family="paragraph" style:parent-style-name="Text_20_body">
|
<style:style style:name="P42" 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="0cm" fo:margin-bottom="0.011cm" style:contextual-spacing="false"/>
|
||||||
<style:text-properties style:font-name="Cantarell" 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 style:font-name="Cantarell" 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="P45" style:family="paragraph" style:parent-style-name="Heading_20_1">
|
<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="Cantarell" fo:font-size="10pt" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:paragraph-rsid="003f07ae" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Text_20_body">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="10pt" officeooo:paragraph-rsid="003f07ae" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Text_20_body">
|
|
||||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
|
||||||
<style:text-properties style:font-name="Cantarell" fo:font-size="10pt" style:text-underline-style="none" officeooo:paragraph-rsid="003f07ae" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
|
||||||
<style:text-properties fo:font-size="9pt" style:font-size-complex="9pt"/>
|
<style:text-properties fo:font-size="9pt" style:font-size-complex="9pt"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<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-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: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>
|
||||||
@@ -735,56 +657,26 @@
|
|||||||
<style:style style:name="T5" style:family="text">
|
<style:style style:name="T5" style:family="text">
|
||||||
<style:text-properties officeooo:rsid="003fc8ab"/>
|
<style:text-properties officeooo:rsid="003fc8ab"/>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:style style:name="T6" style:family="text">
|
|
||||||
<style:text-properties fo:font-size="12pt" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
|
|
||||||
</style:style>
|
|
||||||
<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: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(0cm, 0cm, 0cm, 0cm)" 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>
|
||||||
<style:style style:name="Sect1" style:family="section">
|
<style:style style:name="Sect1" style:family="section">
|
||||||
<style:section-properties text:dont-balance-text-columns="true" style:editable="false">
|
<style:section-properties text:dont-balance-text-columns="true" style:editable="false">
|
||||||
<style:columns fo:column-count="2" fo:column-gap="0in">
|
<style:columns fo:column-count="2" fo:column-gap="0cm">
|
||||||
<style:column style:rel-width="32767*" fo:start-indent="0in" fo:end-indent="0in"/>
|
<style:column style:rel-width="32767*" fo:start-indent="0cm" fo:end-indent="0cm"/>
|
||||||
<style:column style:rel-width="32768*" fo:start-indent="0in" fo:end-indent="0in"/>
|
<style:column style:rel-width="32768*" fo:start-indent="0cm" fo:end-indent="0cm"/>
|
||||||
</style:columns>
|
</style:columns>
|
||||||
</style:section-properties>
|
</style:section-properties>
|
||||||
</style:style>
|
</style:style>
|
||||||
<style:page-layout style:name="pm1">
|
<style:page-layout style:name="pm1">
|
||||||
<style:page-layout-properties fo:page-width="8.5in" fo:page-height="11in" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0.7874in" fo:margin-bottom="0.7874in" fo:margin-left="0.4764in" fo:margin-right="0.3819in" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="44" style:layout-grid-base-height="0.2165in" style:layout-grid-ruby-height="0in" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:footnote-max-height="0in" loext:margin-gutter="0in">
|
<style:page-layout-properties fo:page-width="21.59cm" fo:page-height="27.94cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="1.21cm" fo:margin-right="0.97cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="44" style:layout-grid-base-height="0.55cm" style:layout-grid-ruby-height="0cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
|
||||||
<style:footnote-sep style:width="0.0071in" style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
|
<style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
|
||||||
</style:page-layout-properties>
|
</style:page-layout-properties>
|
||||||
<style:header-style>
|
<style:header-style>
|
||||||
<style:header-footer-properties fo:min-height="0in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.1965in" fo:background-color="transparent" draw:fill="none" draw:fill-color="#99ccff"/>
|
<style:header-footer-properties fo:min-height="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="0.499cm" fo:background-color="transparent" draw:fill="none" draw:fill-color="#99ccff"/>
|
||||||
</style:header-style>
|
</style:header-style>
|
||||||
<style:footer-style>
|
<style:footer-style>
|
||||||
<style:header-footer-properties fo:min-height="0in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.1965in"/>
|
<style:header-footer-properties fo:min-height="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm"/>
|
||||||
</style:footer-style>
|
</style:footer-style>
|
||||||
</style:page-layout>
|
</style:page-layout>
|
||||||
<style:style style:name="dp1" style:family="drawing-page">
|
<style:style style:name="dp1" style:family="drawing-page">
|
||||||
@@ -825,7 +717,7 @@
|
|||||||
<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="P48"><draw:frame draw:style-name="fr1" draw:name="Imagen3" text:anchor-type="char" svg:x="0.0835in" svg:y="0.1118in" svg:width="3.1181in" svg:height="0.678in" draw:z-index="0"><draw:image draw:mime-type="image/png">
|
<text:p text:style-name="P43"><draw:frame draw:style-name="fr1" draw:name="Imagen3" text:anchor-type="char" svg:x="0.212cm" svg:y="0.284cm" svg:width="7.92cm" svg:height="1.722cm" draw:z-index="0"><draw:image draw:mime-type="image/png">
|
||||||
<office:binary-data>iVBORw0KGgoAAAANSUhEUgAAATsAAABFCAYAAAA1g0HCAAAAAXNSR0IArs4c6QAAADhlWElm
|
<office:binary-data>iVBORw0KGgoAAAANSUhEUgAAATsAAABFCAYAAAA1g0HCAAAAAXNSR0IArs4c6QAAADhlWElm
|
||||||
TU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAABO6ADAAQAAAABAAAARQAA
|
TU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAABO6ADAAQAAAABAAAARQAA
|
||||||
AACTFYNyAABAAElEQVR4Aey9B3xc13XuuwAMeu+VBECwV5FiJ0VRpKhmVVvFRXYcO4mdn/1y
|
AACTFYNyAABAAElEQVR4Aey9B3xc13XuuwAMeu+VBECwV5FiJ0VRpKhmVVvFRXYcO4mdn/1y
|
||||||
@@ -1308,53 +1200,47 @@
|
|||||||
</draw:frame></text:p>
|
</draw:frame></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="P46"><text:placeholder text:placeholder-type="text"><choose test=""></text:placeholder></text:p>
|
<text:p text:style-name="P9"><text:placeholder text:placeholder-type="text"><choose test=""></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><when test="purchase.state == 'draft'"></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"><when test="purchase.state == 'draft'"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P45"><text:span text:style-name="T4">C</text:span><text:span text:style-name="T5">OMPRA EN ESTADO BORRADOR</text:span></text:p>
|
<text:p text:style-name="P8"><text:span text:style-name="T4">C</text:span><text:span text:style-name="T5">OMPRA EN ESTADO BORRADOR</text:span></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><when test="purchase.state == 'quotation'"></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"><when test="purchase.state == 'quotation'"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P45"><text:span text:style-name="T4">C</text:span><text:span text:style-name="T5">OMPRA</text:span> N°: <text:placeholder text:placeholder-type="text"><purchase.full_number></text:placeholder></text:p>
|
<text:p text:style-name="P8"><text:span text:style-name="T4">C</text:span><text:span text:style-name="T5">OMPRA</text:span> N°: <text:placeholder text:placeholder-type="text"><purchase.full_number></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"><otherwise test=""></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"><otherwise test=""></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P45">O<text:span text:style-name="T5">RDEN DE COMPRA</text:span> N°: <text:placeholder text:placeholder-type="text"><purchase.full_number></text:placeholder></text:p>
|
<text:p text:style-name="P8">O<text:span text:style-name="T5">RDEN DE COMPRA</text:span> N°: <text:placeholder text:placeholder-type="text"><purchase.full_number></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"></otherwise></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"></otherwise></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P47"><text:placeholder text:placeholder-type="text"></choose></text:placeholder></text:p>
|
<text:p text:style-name="P10"><text:placeholder text:placeholder-type="text"></choose></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="P26"/>
|
<text:p text:style-name="P25"/>
|
||||||
<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"/>
|
||||||
<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="P37"><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="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="P27"><text:span text:style-name="T1">NIT:</text:span> 901091201-1</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="P27">Regimen Común</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="P27">Actividad Economica 4690</text:p>
|
||||||
<text:p text:style-name="P51">Regimen Común</text:p>
|
<text:p text:style-name="P27">CARRERA 16 No 52-85 PISO 4</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="P27"><text:span text:style-name="T1">Tel:</text:span> 7163487-3000931 <text:s text:c="4"/>BOGOTA</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="P27"><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="purchase.set_lang(purchase.party.lang)"></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"><replace text:p="purchase.set_lang(purchase.party.lang)"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"><for each="line in purchase.report_address.splitlines()"></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"><for each="line in purchase.report_address.splitlines()"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"><line></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"><line></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"><if test="purchase.party.tax_identifier"></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"><if test="purchase.party.tax_identifier"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"><purchase.party.tax_identifier.type_string></text:placeholder>: <text:placeholder text:placeholder-type="text"><purchase.party.tax_identifier.code></text:placeholder></text:p>
|
<text:p text:style-name="P27"><text:placeholder text:placeholder-type="text"><purchase.party.tax_identifier.type_string></text:placeholder>: <text:placeholder text:placeholder-type="text"><purchase.party.tax_identifier.code></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P28"><text:placeholder text:placeholder-type="text"></if></text:placeholder></text:p>
|
<text:p text:style-name="P27"><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:section text:style-name="Sect1" text:name="Section1">
|
<text:section text:style-name="Sect1" text:name="Section1">
|
||||||
<text:p text:style-name="P37"/>
|
<text:p text:style-name="P36"/>
|
||||||
<text:p text:style-name="P39"><text:span text:style-name="T1">Descripción: </text:span><text:span text:style-name="T7"><text:placeholder text:placeholder-type="text"><purchase.description></text:placeholder></text:span></text:p>
|
|
||||||
</text:section>
|
</text:section>
|
||||||
<table:table table:name="Table1" table:style-name="Table1">
|
<table:table table:name="Table1" table:style-name="Table1">
|
||||||
<table:table-column table:style-name="Table1.A"/>
|
<table:table-column table:style-name="Table1.A"/>
|
||||||
@@ -1365,19 +1251,19 @@
|
|||||||
<table:table-header-rows>
|
<table:table-header-rows>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P32">Descrip<text:span text:style-name="T4">c</text:span>i<text:span text:style-name="T1">ó</text:span>n</text:p>
|
<text:p text:style-name="P31">Descrip<text:span text:style-name="T4">c</text:span>i<text:span text:style-name="T1">ó</text:span>n</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P33">Cantidad</text:p>
|
<text:p text:style-name="P32">Cantidad</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P33">Precio u/n</text:p>
|
<text:p text:style-name="P32">Precio u/n</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
<table:table-cell table:style-name="Table1.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P33">Impuestos</text:p>
|
<text:p text:style-name="P32">Impuestos</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table1.E1" office:value-type="string">
|
<table:table-cell table:style-name="Table1.E1" office:value-type="string">
|
||||||
<text:p text:style-name="P33">Total</text:p>
|
<text:p text:style-name="P32">Total</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table-header-rows>
|
</table:table-header-rows>
|
||||||
@@ -1410,9 +1296,19 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Table1.A5" office:value-type="string">
|
<table:table-cell table:style-name="Table1.A5" office:value-type="string">
|
||||||
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"><if test="line.product"></text:placeholder></text:p>
|
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text"><choose></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"><line.product.rec_name></text:placeholder></text:p>
|
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text"><when test="line.product_supplier"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text"></if></text:placeholder><text:tab/></text:p>
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"><line.product_supplier.rec_name></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"><when test="line.product"></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"><line.product.rec_name></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"></when></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"></choose></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"><if test="line.description"></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"><for each="description in line.description.split('\n')"></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:soft-page-break/><text:placeholder text:placeholder-type="text"><description></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
|
<text:p text:style-name="P15"><text:placeholder text:placeholder-type="text"></if></text:placeholder></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:soft-page-break/></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>
|
||||||
@@ -1431,7 +1327,7 @@
|
|||||||
</table:table-row>
|
</table:table-row>
|
||||||
<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="P17"><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/>
|
||||||
@@ -1551,7 +1447,7 @@
|
|||||||
<table:table-column table:style-name="Table2.B"/>
|
<table:table-column table:style-name="Table2.B"/>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell office:value-type="string">
|
<table:table-cell office:value-type="string">
|
||||||
<text:p text:style-name="P29"/>
|
<text:p text:style-name="P28"/>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell office:value-type="string">
|
<table:table-cell office:value-type="string">
|
||||||
<table:table table:name="Table4" table:style-name="Table4">
|
<table:table table:name="Table4" table:style-name="Table4">
|
||||||
@@ -1559,38 +1455,38 @@
|
|||||||
<table:table-column table:style-name="Table4.B"/>
|
<table:table-column table:style-name="Table4.B"/>
|
||||||
<table:table-row>
|
<table:table-row>
|
||||||
<table:table-cell table:style-name="Table4.A1" office:value-type="string">
|
<table:table-cell table:style-name="Table4.A1" office:value-type="string">
|
||||||
<text:p text:style-name="P31">Total (<text:span text:style-name="T4">Sin impuesto</text:span>):</text:p>
|
<text:p text:style-name="P30">Total (<text:span text:style-name="T4">Sin impuesto</text:span>):</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table4.B1" office:value-type="string">
|
<table:table-cell table:style-name="Table4.B1" office:value-type="string">
|
||||||
<text:p text:style-name="P30"><text:placeholder text:placeholder-type="text"><format_currency(purchase.untaxed_amount, purchase.party.lang, purchase.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P29"><text:placeholder text:placeholder-type="text"><format_currency(purchase.untaxed_amount, purchase.party.lang, purchase.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="Table4.A2" office:value-type="string">
|
<table:table-cell table:style-name="Table4.A2" office:value-type="string">
|
||||||
<text:p text:style-name="P31"><text:span text:style-name="T4">Impuestos</text:span>:</text:p>
|
<text:p text:style-name="P30"><text:span text:style-name="T4">Impuestos</text:span>:</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table4.B2" office:value-type="string">
|
<table:table-cell table:style-name="Table4.B2" office:value-type="string">
|
||||||
<text:p text:style-name="P30"><text:placeholder text:placeholder-type="text"><format_currency(purchase.tax_amount, purchase.party.lang, purchase.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P29"><text:placeholder text:placeholder-type="text"><format_currency(purchase.tax_amount, purchase.party.lang, purchase.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="Table4.A2" office:value-type="string">
|
<table:table-cell table:style-name="Table4.A2" office:value-type="string">
|
||||||
<text:p text:style-name="P31">Total:</text:p>
|
<text:p text:style-name="P30">Total:</text:p>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
<table:table-cell table:style-name="Table4.B2" office:value-type="string">
|
<table:table-cell table:style-name="Table4.B2" office:value-type="string">
|
||||||
<text:p text:style-name="P30"><text:placeholder text:placeholder-type="text"><format_currency(purchase.total_amount, purchase.party.lang, purchase.currency)></text:placeholder></text:p>
|
<text:p text:style-name="P29"><text:placeholder text:placeholder-type="text"><format_currency(purchase.total_amount, purchase.party.lang, purchase.currency)></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="P29"/>
|
<text:p text:style-name="P28"/>
|
||||||
</table:table-cell>
|
</table:table-cell>
|
||||||
</table:table-row>
|
</table:table-row>
|
||||||
</table:table>
|
</table:table>
|
||||||
<text:p text:style-name="P37"><text:placeholder text:placeholder-type="text"><for each="comment in (purchase.comment or '').split('\n')"></text:placeholder></text:p>
|
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text"><for each="comment in (purchase.comment or '').split('\n')"></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P37"><text:placeholder text:placeholder-type="text"><comment></text:placeholder></text:p>
|
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text"><comment></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P37"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P37"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text"></for></text:placeholder></text:p>
|
||||||
<text:p text:style-name="P44"/>
|
<text:p text:style-name="P42"/>
|
||||||
</office:text>
|
</office:text>
|
||||||
</office:body>
|
</office:body>
|
||||||
</office:document>
|
</office:document>
|
||||||
4607
report/Sale.fodt
4607
report/Sale.fodt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2589
report/Service.fodt
2589
report/Service.fodt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
233
sale.py
233
sale.py
@@ -1,75 +1,59 @@
|
|||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import ModelView, fields
|
from trytond.model import ModelView, ModelSQL, fields
|
||||||
from trytond.pyson import Eval, If
|
from trytond.modules.currency.fields import Monetary
|
||||||
|
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 (
|
||||||
set_employee)
|
employee_field, set_employee, reset_employee)
|
||||||
|
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
from trytond.wizard import (
|
from trytond.wizard import (
|
||||||
Button, StateAction, StateView, Wizard)
|
Button, StateAction, StateTransition, 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):
|
||||||
'Sale'
|
'Sale'
|
||||||
__name__ = 'sale.sale'
|
__name__ = 'sale.sale'
|
||||||
|
|
||||||
quote_number = fields.Char("Quote Number", readonly=True)
|
|
||||||
|
|
||||||
sale_type = fields.Selection([
|
sale_type = fields.Selection([('maintenance', 'Maintenance'),
|
||||||
('maintenance', 'Maintenance'),
|
|
||||||
('equipments', 'Equipments'),
|
('equipments', 'Equipments'),
|
||||||
('replaces', 'Replaces')],
|
('replaces', 'Replaces')], "Sale Type", required=True,
|
||||||
"Sale Type", required=True,
|
states={'readonly': Eval('state') != 'draft'})
|
||||||
states={
|
maintenance_type = fields.Selection([('', ""),
|
||||||
'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_ref = fields.Reference("Contract Base", selection='get_origin_contract',
|
||||||
"Contract Base", selection='get_origin_contract',
|
domain=[('party', '=', Eval('party')),
|
||||||
domain={
|
('state', '=', 'closed')],
|
||||||
'optical_equipment.contract': [
|
states={'invisible': (Eval('sale_type') != 'maintenance')},
|
||||||
('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.sale_date.states['required'] = True
|
|
||||||
cls._buttons.update({
|
cls._buttons.update({
|
||||||
'draft': {
|
'draft': {
|
||||||
'invisible': (Eval('state').in_(
|
'invisible': (Eval('state').in_(
|
||||||
['cancelled', 'draft']))},
|
['cancelled', 'draft'])) | (Eval('shipment_state') == 'sent')}})
|
||||||
'report': {}})
|
|
||||||
|
|
||||||
cls._transitions |= set((
|
cls._transitions |= set((
|
||||||
('draft', 'quotation'),
|
('draft', 'quotation'),
|
||||||
@@ -85,31 +69,24 @@ class Sale(metaclass=PoolMeta):
|
|||||||
('cancelled', 'draft'),
|
('cancelled', 'draft'),
|
||||||
('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):
|
||||||
Model = Pool().get('ir.model')
|
Model = Pool().get('ir.model')
|
||||||
@@ -118,71 +95,8 @@ 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):
|
|
||||||
Shipment = super(Sale, self)._get_shipment_sale(Shipment, key)
|
|
||||||
Shipment.sale_type = self.sale_type
|
|
||||||
Shipment.service_maintenance_initial = \
|
|
||||||
True if self.sale_type != 'equipments' else False
|
|
||||||
|
|
||||||
return Shipment
|
|
||||||
|
|
||||||
@ classmethod
|
|
||||||
def set_quote_number(cls, sales):
|
|
||||||
'''
|
|
||||||
Fill the number field with the sale sequence
|
|
||||||
'''
|
|
||||||
pool = Pool()
|
|
||||||
Config = pool.get('optical_equipment.configuration')
|
|
||||||
config = Config(1)
|
|
||||||
for sale in sales:
|
|
||||||
if config.equipment_sequence is not None:
|
|
||||||
if not sale.quote_number:
|
|
||||||
try:
|
|
||||||
sale.quote_number = config.sale_quote_number.get()
|
|
||||||
cls.save(sales)
|
|
||||||
except UserError:
|
|
||||||
raise UserError(str('Validation Error'))
|
|
||||||
else:
|
|
||||||
raise UserError(
|
|
||||||
gettext('optical_equipment.msg_not_sequence_quote'))
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def copy(cls, sales, default=None):
|
|
||||||
today = datetime.today().date()
|
|
||||||
if default is None:
|
|
||||||
default = {}
|
|
||||||
else:
|
|
||||||
default = default.copy()
|
|
||||||
default.setdefault('number', None)
|
|
||||||
default.setdefault('invoice_state', 'none')
|
|
||||||
default.setdefault('invoices_ignored', None)
|
|
||||||
default.setdefault('shipment_state', 'none')
|
|
||||||
default.setdefault('sale_date', today)
|
|
||||||
default.setdefault('quoted_by')
|
|
||||||
default.setdefault('confirmed_by')
|
|
||||||
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')
|
|
||||||
def quote(cls, sales):
|
|
||||||
for sale in sales:
|
|
||||||
sale.check_for_quotation()
|
|
||||||
cls.set_quote_number(sales)
|
|
||||||
|
|
||||||
# for sale in sales:
|
|
||||||
# sale.set_advance_payment_term()
|
|
||||||
# cls.save(sales)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
@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):
|
||||||
@@ -194,9 +108,10 @@ 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' and not sale.agended:
|
if sale.sale_type == 'maintenance':
|
||||||
for line in sale.lines:
|
for line in sale.lines:
|
||||||
maintenanceService = MaintenanceService(
|
maintenanceService = MaintenanceService(
|
||||||
description=sale.description,
|
description=sale.description,
|
||||||
@@ -204,19 +119,15 @@ 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=(
|
contract_origin=sale.contract_ref if sale.contract_ref else None,
|
||||||
sale.contract_ref.id
|
sale_origin=line,
|
||||||
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)
|
|
||||||
with transaction.set_context(
|
with transaction.set_context(
|
||||||
queue_scheduled_at=config.sale_process_after,
|
queue_scheduled_at=config.sale_process_after,
|
||||||
queue_batch=context.get('queue_batch', True)):
|
queue_batch=context.get('queue_batch', True)):
|
||||||
@@ -228,6 +139,14 @@ 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):
|
||||||
@@ -236,17 +155,22 @@ 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(
|
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'equipments',
|
||||||
If(Eval('_parent_sale.sale_type') == 'replaces',
|
[('equipment', '=', True)], []))
|
||||||
[('replacement', '=', True)], []))
|
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'replaces',
|
||||||
|
[('replacement', '=', True),
|
||||||
|
('maintenance_activity', '=', True)], []))
|
||||||
|
cls.quantity.states['readonly'] = Eval('_parent_sale.sale_type') == 'equipments'
|
||||||
|
|
||||||
@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:
|
||||||
@@ -265,8 +189,7 @@ 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
|
# Set taxes before unit_price to have taxes in context of sale 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:
|
||||||
@@ -286,13 +209,11 @@ 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.unit_price = Product.get_sale_price([self.product],
|
||||||
[self.product],
|
self.quantity or 0)[self.product.id]
|
||||||
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(
|
||||||
@@ -324,6 +245,7 @@ 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))
|
||||||
|
|
||||||
@@ -340,7 +262,7 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
|
|
||||||
move = Move()
|
move = Move()
|
||||||
move.quantity = quantity
|
move.quantity = quantity
|
||||||
move.unit = self.unit
|
move.uom = 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
|
||||||
@@ -356,32 +278,3 @@ 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()
|
|
||||||
|
|||||||
58
sale.xml
58
sale.xml
@@ -1,13 +1,6 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!--This file file is part of Tryton. The COPYRIGHT file at the top level
|
<!--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. -->
|
||||||
of this repository contains the full copyright notices and license terms. -->
|
|
||||||
<tryton>
|
<tryton>
|
||||||
<data>
|
|
||||||
<record model="ir.ui.view" id="sale_view_tree">
|
|
||||||
<field name="model">sale.sale</field>
|
|
||||||
<field name="inherit" ref="sale.sale_view_tree"/>
|
|
||||||
<field name="name">sale_tree</field>
|
|
||||||
</record>
|
|
||||||
<record model="ir.ui.view" id="sale_view_form">
|
<record model="ir.ui.view" id="sale_view_form">
|
||||||
<field name="model">sale.sale</field>
|
<field name="model">sale.sale</field>
|
||||||
<field name="inherit" ref="sale.sale_view_form"/>
|
<field name="inherit" ref="sale.sale_view_form"/>
|
||||||
@@ -18,32 +11,11 @@
|
|||||||
<field name="inherit" ref="sale.product_view_list_sale_line"/>
|
<field name="inherit" ref="sale.product_view_list_sale_line"/>
|
||||||
<field name="name">product_list_sale_line</field>
|
<field name="name">product_list_sale_line</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.sequence" id="sequence_quote_sale">
|
|
||||||
<field name="name">Sale Quote</field>
|
|
||||||
<field name="sequence_type" ref="sale.sequence_type_sale"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.report" id="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>
|
||||||
<field name="report_name">sale.sale</field>
|
<field name="report_name">sale.sale</field>
|
||||||
<field name="report">optical_equipment/report/Sale_Internal.fodt</field>
|
<field name="report">optical_equipment/report/Sale.fodt</field>
|
||||||
<field name="single" eval="True"/>
|
<field name="single" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.keyword" id="report_sale_keyword">
|
<record model="ir.action.keyword" id="report_sale_keyword">
|
||||||
@@ -51,30 +23,4 @@
|
|||||||
<field name="model">sale.sale,-1</field>
|
<field name="model">sale.sale,-1</field>
|
||||||
<field name="action" ref="report_sale"/>
|
<field name="action" ref="report_sale"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.report" id="report_sale_internal">
|
|
||||||
<field name="name">Sale Equipments Internal</field>
|
|
||||||
<field name="model">sale.sale</field>
|
|
||||||
<field name="report_name">sale.sale</field>
|
|
||||||
<field name="report">optical_equipment/report/Sale.fodt</field>
|
|
||||||
<field name="single" eval="True"/>
|
|
||||||
</record>
|
|
||||||
<record model="ir.action.keyword" id="report_sale_internal_keyword">
|
|
||||||
<field name="keyword">form_print</field>
|
|
||||||
<field name="model">sale.sale,-1</field>
|
|
||||||
<field name="action" ref="report_sale_internal"/>
|
|
||||||
</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='',
|
description='Modúlo a medida para optica',
|
||||||
long_description=read('README.rst'),
|
long_description=read('README.rst'),
|
||||||
author='Tryton',
|
author='OneTeam',
|
||||||
author_email='bugs@tryton.org',
|
author_email='info@onecluster.org',
|
||||||
url='http://www.tryton.org/',
|
url='http://www.tryton.org/',
|
||||||
keywords='',
|
keywords='',
|
||||||
package_dir={'trytond.modules.optical_equipment': '.'},
|
package_dir={'trytond.modules.smart_vision': '.'},
|
||||||
packages=(
|
packages=(
|
||||||
['trytond.modules.optical_equipment']
|
['trytond.modules.smart_vision']
|
||||||
+ ['trytond.modules.optical_equipment.%s' % p
|
+ ['trytond.modules.smart_vision.%s' % p
|
||||||
for p in find_packages()]
|
for p in find_packages()]
|
||||||
),
|
),
|
||||||
package_data={
|
package_data={
|
||||||
'trytond.modules.optical_equipment': (info.get('xml', [])
|
'trytond.modules.smart_vision': (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,7 +115,6 @@ 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',
|
||||||
@@ -135,6 +134,6 @@ setup(name=name,
|
|||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
entry_points="""
|
entry_points="""
|
||||||
[trytond.modules]
|
[trytond.modules]
|
||||||
optical_equipment = trytond.modules.optical_equipment
|
smart_vision = trytond.modules.smart_vision
|
||||||
""", # noqa: E501
|
""", # noqa: E501
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
<!--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>
|
||||||
|
|||||||
@@ -1,2 +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.
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 5.2 KiB |
@@ -1,495 +0,0 @@
|
|||||||
===========================
|
|
||||||
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 OpticalEquipmentTestCase(ModuleTestCase):
|
class SmartVisionTestCase(ModuleTestCase):
|
||||||
"Test Optical Equipment module"
|
"Test Smart Vision module"
|
||||||
module = 'optical_equipment'
|
module = 'smart_vision'
|
||||||
|
|
||||||
|
|
||||||
del ModuleTestCase
|
del ModuleTestCase
|
||||||
|
|||||||
@@ -1,8 +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.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=./**/optical_equipment/* -m unittest discover -s tests
|
coverage run --include=.*/smart_vision/* -m unittest discover -s tests
|
||||||
coverage report --include=./**/optical_equipment/* --omit=*/tests/*
|
coverage report --include=.*/smart_vision/* --omit=*/tests/*
|
||||||
deps =
|
deps =
|
||||||
coverage
|
coverage
|
||||||
postgresql: psycopg2 >= 2.7.0
|
postgresql: psycopg2 >= 2.7.0
|
||||||
|
|||||||
39
tryton.cfg
39
tryton.cfg
@@ -1,31 +1,34 @@
|
|||||||
[tryton]
|
[tryton]
|
||||||
version=7.0.0
|
version=6.6
|
||||||
depends:
|
depends:
|
||||||
ir
|
ir
|
||||||
company
|
|
||||||
account_product
|
|
||||||
party
|
party
|
||||||
|
company
|
||||||
|
account_co_co
|
||||||
|
account_co_pyme
|
||||||
|
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:
|
||||||
company.xml
|
address.xml
|
||||||
equipment.xml
|
|
||||||
calibration.xml
|
|
||||||
contract.xml
|
|
||||||
diary.xml
|
|
||||||
agended.xml
|
|
||||||
configuration.xml
|
|
||||||
maintenance.xml
|
|
||||||
move.xml
|
|
||||||
party.xml
|
party.xml
|
||||||
uom.xml
|
|
||||||
product.xml
|
product.xml
|
||||||
purchase.xml
|
equipment.xml
|
||||||
|
contract.xml
|
||||||
|
configuration_equipment.xml
|
||||||
sale.xml
|
sale.xml
|
||||||
balance_sale_party.xml
|
purchase.xml
|
||||||
|
uom.xml
|
||||||
|
move.xml
|
||||||
|
message.xml
|
||||||
|
diary.xml
|
||||||
|
maintenance.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='active']" position="after">
|
<xpath expr="/form/group[@id='checkboxes']/field[@name='delivery']" 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='street']" position="replace"> -->
|
<xpath expr="//field[@name='name']" position="after">
|
||||||
<!-- <field name="street" expand="1"/> -->
|
<field name="street" expand="1"/>
|
||||||
<!-- </xpath> -->
|
</xpath>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -1,35 +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>
|
|
||||||
<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>
|
|
||||||
@@ -2,11 +2,8 @@
|
|||||||
<!-- 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>
|
||||||
<label name="old_propietary"/>
|
<label name="equipment"/>
|
||||||
<field name="old_propietary"/>
|
<field name="equipment" colspan="3"/>
|
||||||
<newline/>
|
|
||||||
<field name="equipments" colspan="3"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="new_propietary"/>
|
<label name="new_propietary"/>
|
||||||
<field name="new_propietary" colspan="3"/>
|
<field name="new_propietary" colspan="3"/>
|
||||||
<label name="new_address"/>
|
<label name="new_address"/>
|
||||||
|
|||||||
@@ -1,16 +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>
|
|
||||||
<label name="old_propietary"/>
|
|
||||||
<field name="old_propietary"/>
|
|
||||||
<newline/>
|
|
||||||
<field name="maintenance_service" colspan="3"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="new_propietary"/>
|
|
||||||
<field name="new_propietary" colspan="3"/>
|
|
||||||
<label name="new_address"/>
|
|
||||||
<field name="new_address" colspan="3"/>
|
|
||||||
<label name="change_date"/>
|
|
||||||
<field name="change_date" colspan="3"/>
|
|
||||||
</form>
|
|
||||||
@@ -1,54 +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>
|
|
||||||
<separator id="sequences" string="Sequences" colspan="4"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="equipment_sequence"/>
|
|
||||||
<field name="equipment_sequence"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="maintenance_sequence"/>
|
|
||||||
<field name="maintenance_sequence"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="agended_sequence"/>
|
|
||||||
<field name="agended_sequence"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="contract_sequence"/>
|
|
||||||
<field name="contract_sequence"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="sale_quote_number"/>
|
|
||||||
<field name="sale_quote_number"/>
|
|
||||||
<newline/>
|
|
||||||
|
|
||||||
<separator id="environmental_conditions" string="Environmental Conditions" colspan="4"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="temperature_min"/>
|
|
||||||
<field name="temperature_min"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="temperature_max"/>
|
|
||||||
<field name="temperature_max"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="temperature_uom"/>
|
|
||||||
<field name="temperature_uom"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="moisture_min"/>
|
|
||||||
<field name="moisture_min"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="moisture_max"/>
|
|
||||||
<field name="moisture_max"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="moisture_uom"/>
|
|
||||||
<field name="moisture_uom"/>
|
|
||||||
<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>
|
|
||||||
@@ -27,14 +27,11 @@ 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="current_equipments"/>
|
<field name="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"/>
|
||||||
@@ -42,9 +39,8 @@ 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="6" id="button">
|
<group col="2" colspan="2" 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>
|
||||||
|
|||||||
9
view/contract_tree.xml
Normal file
9
view/contract_tree.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?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,22 +2,16 @@
|
|||||||
<!-- 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" col="2">
|
<group id="create_contract">
|
||||||
<label name="party"/>
|
<label name="party"/>
|
||||||
<field name="party"/>
|
<field name="party"/>
|
||||||
<newline/>
|
|
||||||
<label name="invoice_address"/>
|
|
||||||
<field name="invoice_address"/>
|
|
||||||
<newline/>
|
|
||||||
<label name="contact"/>
|
<label name="contact"/>
|
||||||
<field name="contact"/>
|
<field name="contact"/>
|
||||||
<newline/>
|
<label name="invoice_address"/>
|
||||||
|
<field name="invoice_address"/>
|
||||||
<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>
|
||||||
|
|||||||
10
view/create_invoice_contract_form.xml
Normal file
10
view/create_invoice_contract_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. -->
|
||||||
|
<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>
|
||||||
36
view/create_prorogue_form.xml
Normal file
36
view/create_prorogue_form.xml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<?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>
|
||||||
31
view/create_subscription_form.xml
Normal file
31
view/create_subscription_form.xml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?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>
|
||||||
@@ -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. -->
|
|
||||||
<data>
|
|
||||||
<xpath expr="//field[@name='supervisor']" position="after">
|
|
||||||
<label name="invima"/>
|
|
||||||
<field name="invima"/>
|
|
||||||
<newline/>
|
|
||||||
</xpath>
|
|
||||||
</data>
|
|
||||||
@@ -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. -->
|
||||||
<form>
|
<calendar
|
||||||
<label name="sale_date"/>
|
dtstart="date_expected"
|
||||||
<field name="sale_date"/>
|
dtend="date_expected">
|
||||||
</form>
|
</calendar>
|
||||||
@@ -1,9 +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.-->
|
|
||||||
<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,6 +1,5 @@
|
|||||||
<?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. -->
|
||||||
<tree editable="1">
|
<data>
|
||||||
<field name="name_pattern" expand="1"/>
|
</data>
|
||||||
</tree>
|
|
||||||
@@ -1,11 +1,9 @@
|
|||||||
<?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. -->
|
||||||
<form>
|
<data>
|
||||||
<!-- <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"/>
|
||||||
</form>
|
</xpath>
|
||||||
|
</data>
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
<field name="equipment"/>
|
<field name="equipment"/>
|
||||||
<label name="service_maintenance"/>
|
<label name="service_maintenance"/>
|
||||||
<field name="service_maintenance"/>
|
<field name="service_maintenance"/>
|
||||||
<label name="equipment_calibrate"/>
|
|
||||||
<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"/>
|
||||||
@@ -33,6 +31,8 @@
|
|||||||
<field name="clean_int_ext"/>
|
<field name="clean_int_ext"/>
|
||||||
<label name="clean_eyes"/>
|
<label name="clean_eyes"/>
|
||||||
<field name="clean_eyes"/>
|
<field name="clean_eyes"/>
|
||||||
|
<label name="optical"/>
|
||||||
|
<field name="optical"/>
|
||||||
<label name="check_calibration"/>
|
<label name="check_calibration"/>
|
||||||
<field name="check_calibration"/>
|
<field name="check_calibration"/>
|
||||||
</page>
|
</page>
|
||||||
@@ -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" view_ids="optical_equipment.calibration_total_view_tree,optical_equipment.calibration_total_view_form"/>
|
<field name="calibration_total"/>
|
||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
<page string="Graph" id="graph">
|
<page string="Graph" id="graph">
|
||||||
@@ -73,18 +73,11 @@
|
|||||||
</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">
|
||||||
<button name="in_progress"/>
|
<button name="in_progress"/>
|
||||||
<button name="finished"/>
|
<button name="finished"/>
|
||||||
<button name="samples"/>
|
|
||||||
<button name="calibrate"/>
|
<button name="calibrate"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -14,11 +14,9 @@
|
|||||||
<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="description"/>
|
<label name="quantity"/>
|
||||||
<field name="description" xexpand="1"/>
|
<field name="quantity"/>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -13,8 +13,4 @@
|
|||||||
<field name="mistake"/>
|
<field name="mistake"/>
|
||||||
<label name="mistake_rate"/>
|
<label name="mistake_rate"/>
|
||||||
<field name="mistake_rate"/>
|
<field name="mistake_rate"/>
|
||||||
<label name="product"/>
|
|
||||||
<field name="product" invisible="1"/>
|
|
||||||
<label name="maintenance" />
|
|
||||||
<field name="maintenance"/>
|
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -21,58 +21,30 @@
|
|||||||
<label name="maintenance_type"/>
|
<label name="maintenance_type"/>
|
||||||
<field name="maintenance_type"/>
|
<field name="maintenance_type"/>
|
||||||
<newline/>
|
<newline/>
|
||||||
<label name="temperature_min"/>
|
|
||||||
<field name="temperature_min"/>
|
|
||||||
<label name="temperature_max"/>
|
|
||||||
<field name="temperature_max"/>
|
|
||||||
<label name="temperature_uom"/>
|
|
||||||
<field name="temperature_uom"/>
|
|
||||||
<label name="moisture_min"/>
|
|
||||||
<field name="moisture_min"/>
|
|
||||||
<label name="moisture_max"/>
|
|
||||||
<field name="moisture_max"/>
|
|
||||||
<label name="moisture_uom"/>
|
|
||||||
<field name="moisture_uom"/>
|
|
||||||
<notebook colspan="6">
|
<notebook colspan="6">
|
||||||
<page string="General" id="general" col="2">
|
<page string="General" id="general">
|
||||||
<label name="technical"/>
|
|
||||||
<field name="technical"/>
|
|
||||||
<newline/>
|
|
||||||
<label 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"/>
|
<label name="state_agended"/>
|
||||||
<field name="state_agended"/>
|
<field name="state_agended"/>
|
||||||
|
<label name="technical"/>
|
||||||
|
<field name="technical"/>
|
||||||
|
<label name="estimated_agended"/>
|
||||||
|
<field name="estimated_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"/>
|
||||||
</page>
|
</page>
|
||||||
<page string="Agendes" id="agendes">
|
<page string="Agendes" id="agendes">
|
||||||
<group col="-1" id="current_agended">
|
|
||||||
<label name="current_agended"/>
|
|
||||||
<field name="current_agended"/>
|
|
||||||
</group>
|
|
||||||
<newline/>
|
|
||||||
<field name="history_agended"/>
|
<field name="history_agended"/>
|
||||||
</page>
|
</page>
|
||||||
<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,7 +3,6 @@
|
|||||||
this repository contains the full copyright notices and license terms.-->
|
this repository contains the full copyright notices and license terms.-->
|
||||||
<tree>
|
<tree>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="maintenance_type"/>
|
|
||||||
<field name="propietary"/>
|
<field name="propietary"/>
|
||||||
<field name="propietary_address"/>
|
<field name="propietary_address"/>
|
||||||
<field name="sale_origin"/>
|
<field name="sale_origin"/>
|
||||||
|
|||||||
@@ -3,9 +3,6 @@
|
|||||||
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"/>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user