84 Commits
6.2 ... 7.0

Author SHA1 Message Date
202e27aac8 Fix: Se añaden iconos 2024-04-29 19:59:04 -05:00
a6baf2ee59 Fix: Clean Home 2024-04-29 13:50:31 -05:00
00b2898408 Fix: Contrato Origen en la venta se añade id para campo Many2One en servicio de Mantenimiento 2024-04-29 12:57:10 -05:00
cbc273be00 Fix: Clean Home 2024-04-29 12:09:16 -05:00
0c306a8574 Fix: Se añade Dominio a contract_origin 2024-04-29 11:53:33 -05:00
c247a4720a Fix: Clean Home 2024-04-29 11:37:01 -05:00
111e19a33d Fix: Bugs en produccion 2024-04-20 17:35:18 +00:00
mongar
b6e3ff5bc1 Feat: Actualización de la carpeta optical_equipment 2024-04-17 15:22:20 -05:00
b981dcd670 fix: se limpia código para migración 6.8 2023-11-07 16:20:37 -05:00
224c2d65e9 Merge branch '62to64' of https://gitea.onecluster.org/OneTeam/trytondo-optical_equipment
fusionar ramas
2023-11-06 20:22:37 -05:00
Rodia
84cf02962a Merge branch '6.4' into 62to64 2023-11-06 20:07:33 -05:00
35eaa0554b Merge branch '62to64' into 6.4
Se acopla a rama oficial 6.4
2023-11-06 20:10:24 -05:00
eb466555a0 Se evita crear otro servicio de mantenimiento en caso de que ya haya uno creado 2023-11-02 11:16:49 -05:00
e5d77c2f89 se cambia el parametro sale en set_number 2023-10-12 00:13:54 -05:00
5442a7cb0e Se cambia firma en documentos 2023-09-24 21:57:35 -05:00
d040c2560e Se cambia firma en documentos 2023-09-24 21:48:58 -05:00
92113f32cf Se añade tecnico responsable 2023-09-24 21:08:31 -05:00
4019750629 Se limpia la casa 2023-09-24 19:04:44 -05:00
97281a351b Se añade descripción en linea de mantenimiento correctivo 2023-09-11 11:14:50 -05:00
b7dd21f7a6 Se limpia la casa 2023-09-11 10:16:25 -05:00
659f08cbf6 Se añade campo plazo de pago pero como una descripcion 2023-09-05 09:49:09 -05:00
6e40402b99 fix: Create Prorroga 2023-08-10 12:18:18 -05:00
2538a8716c fix: Se añade formato de Prorroga 2023-08-10 10:22:29 -05:00
4bbcbec88e fix: se añade id del pago al balance por tercero 2023-08-10 09:49:02 -05:00
a90840111b fix: Se añade número de ID al soporte de pago 2023-08-10 08:59:36 -05:00
042ea6c796 fix: Se quita actividades de mantenimiento preventivo cuando sea de tipo correctivo 2023-08-10 08:49:18 -05:00
6a8ebf7215 fix: Se hace visible button closed 2023-07-31 08:06:55 -05:00
Rodia
0aace73d54 Merge pull request '6.4' (#101) from 6.4 into master
Reviewed-on: #101
2023-07-29 21:13:58 -05:00
d69283f90e update optical equipment 2023-07-05 14:33:32 +00:00
53a51aeb75 update fields contract and equipment 2023-06-05 14:22:39 -05:00
1c73640e95 change in domain of field contract_ref, change of list to dic 2023-05-29 14:42:08 -05:00
f3dba62675 add cron for contract expiration 2023-05-29 13:39:21 -05:00
65ac48edaa add cron for contract expiration 2023-05-29 13:28:55 -05:00
bbd7f691e4 update button cancel in contract 2023-05-29 10:48:46 -05:00
dbcd054b3b change date in reports in maintenance service 2023-05-25 14:15:41 -05:00
e1de811be3 add report maintenances historys 2023-05-23 15:52:04 -05:00
216a297752 add report maintenances historys 2023-05-23 15:51:47 -05:00
b4e6cf0936 update page break in calibration 2023-05-23 12:03:24 -05:00
c0291a0c11 update shipmentOut 2023-05-17 10:09:23 -05:00
7803f6402c Add return equipments 2023-05-16 13:04:50 -05:00
cadb113039 modify states draft button in sale 2023-05-15 23:47:35 -05:00
0a60a455cf add maintenanceService Unique 2023-05-15 23:45:00 -05:00
0cb98f7622 update tag risk in CV and CVS 2023-05-14 23:05:44 -05:00
e1604e5e72 update tag risk in CV and CVS 2023-05-14 23:01:49 -05:00
53403ba227 change zone of equipment in shipment_out 2023-05-14 22:20:09 -05:00
75d37438e7 delete buttons process 2023-05-14 21:29:30 -05:00
89fc98bc01 add file confirm_sale_date_form 2023-05-14 20:23:09 -05:00
3fa095f003 add sale confirm date 2023-05-04 07:59:53 -05:00
fd871a8039 add form change propietary equipment 2023-05-02 07:33:18 -05:00
97c7d0db0c update 2023-04-24 16:01:07 -05:00
f0d9576391 update report balance sale for party 2023-04-16 22:51:06 -05:00
cb9141c431 update report balance sale for party 2023-04-16 22:50:31 -05:00
d7a189110d add report balance to sales 2023-04-16 20:54:43 -05:00
c48c49e55a add report balance to sales 2023-04-16 20:40:16 -05:00
fe958b90f4 add report balance to sales 2023-04-16 20:39:47 -05:00
02e75ea907 Merge branch '62to64' of https://gitea.onecluster.org/OneTeam/trytondo-optical_equipment into 62to64 2023-04-16 18:26:57 -05:00
52e57af7d8 update price_contract 2023-04-16 18:26:11 -05:00
4032460588 update unit_price in contract 2023-04-10 17:25:18 +00:00
8c878949f2 update unit_price in contract 2023-04-10 17:23:55 +00:00
477651227e update reports 2023-04-10 01:19:47 -05:00
f372d8d496 update reports Maintenance 2023-04-10 01:08:16 -05:00
db8615b7a0 update form create contract 2023-04-05 13:13:53 -05:00
ea6d5ebcbd correction to wizard for create contract 2023-04-05 13:00:42 -05:00
b3e07eff1b update report maintenance 2023-04-04 22:28:41 -05:00
fa0df0bb99 update report maintenance 2023-04-04 22:28:23 -05:00
3551cf4f43 update report 2023-04-04 13:03:08 -05:00
dae8317b24 add button for agended in maintenance service form 2023-04-04 12:42:55 -05:00
e363262f49 add payment form 2023-04-04 00:28:32 -05:00
2c9aba7bdc add payment form 2023-04-04 00:28:23 -05:00
58cb1d7246 update sales 2023-04-03 16:03:10 -05:00
73b66669a5 update sales 2023-04-03 14:45:49 -05:00
4a92021f1f add traslations 2023-04-03 14:33:00 -05:00
7cab021a5e add traslations 2023-04-03 14:28:07 -05:00
b387f2b10b add reports 2023-04-03 13:50:50 -05:00
35c74076b5 add reports 2023-04-03 13:50:43 -05:00
4a5f756dbe add module equipments 2023-04-03 02:27:00 -05:00
5818090bbf add module equipments 2023-04-03 02:26:53 -05:00
63f4f24f53 add module equipments 2023-04-03 01:59:15 -05:00
95e6ed60f3 add model purchase 2023-04-02 01:18:16 -05:00
48ef146c44 model of products 2023-03-31 11:31:18 -05:00
b766a9ceda model of products 2023-03-31 10:36:44 -05:00
f0faa4058f model of products 2023-03-31 10:33:07 -05:00
5f73e49550 update tryton 62 to 64 2023-03-29 12:01:59 -05:00
23a6450be0 clear branch 2023-03-29 11:46:55 -05:00
114 changed files with 65779 additions and 6632 deletions

5
.gitignore vendored
View File

@@ -28,11 +28,6 @@ share/python-wheels/
.installed.cfg .installed.cfg
*.egg *.egg
MANIFEST MANIFEST
GPATH
GRTAGS
GTAGS
# PyInstaller # PyInstaller
# Usually these files are written by a python script from a template # Usually these files are written by a python script from a template

0
CHANGELOG Normal file
View File

View File

@@ -1,4 +1,4 @@
Copyright (C) 2022 trytondo-smart-vision Copyright (C) 2023
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by

View File

@@ -2,4 +2,5 @@ include CHANGELOG
include COPYRIGHT include COPYRIGHT
include LICENSE include LICENSE
include README.rst include README.rst
include icons/LICENSE
graft doc graft doc

View File

@@ -1,56 +1,73 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool from trytond.pool import Pool
from . import (address, diary, party, product, purchase, sale, from . import (agended, balance_sale_party, calibration, configuration,
equipment, configuration_equipment, contract, maintenance, move, exceptions) contract, company, diary, equipment, party, product,
maintenance, move, purchase, sale)
__all__ = ['register']
def register(): def register():
Pool.register( Pool.register(
address.Address, company.Employee,
equipment.OpticalEquipment,
equipment.EquipmentParty,
contract.Contract,
contract.ContractMaintenanceServices,
equipment.EquipmentContract,
equipment.EquipmentMaintenance,
equipment.ChangePropietary,
equipment.ChangeEquipment,
agended.AgendedInitial,
agended.ReAgended,
agended.ServiceMaintenanceAgended,
calibration.Calibration,
calibration.CalibrationSample,
configuration.Configuration,
diary.Diary, diary.Diary,
contract.Cron,
contract.ContractEquipment,
contract.CreateContractInitial,
party.Address,
party.Party, party.Party,
product.Template, product.Template,
product.Product, product.Product,
product.Pattern, product.Pattern,
product.UsePattern,
product.Image,
purchase.Purchase, purchase.Purchase,
purchase.Line, purchase.Line,
equipment.OpticalEquipment, sale.Sale,
equipment.EquipmentMaintenance, sale.SaleDate,
equipment.EquipmentParty, sale.SaleLine,
equipment.ChangePropietary,
equipment.ChangeEquipment,
configuration_equipment.Configuration,
maintenance.Calibration,
maintenance.CreateContractInitial,
maintenance.CalibrationSample,
maintenance.Maintenance,
maintenance.MaintenanceService, maintenance.MaintenanceService,
maintenance.MaintenanceActivity, maintenance.MaintenanceServiceLine,
maintenance.MaintenanceLine, maintenance.MaintenanceLine,
maintenance.AgendedInitial, maintenance.MaintenanceActivity,
maintenance.ReAgended,
maintenance.ServiceMaintenanceAgended,
maintenance.ChangePropietaryMaintenance, maintenance.ChangePropietaryMaintenance,
move.Move, move.Move,
move.ShipmentOut, move.ShipmentOut,
move.ShipmentOutReturn,
move.ShipmentInternal, move.ShipmentInternal,
sale.Sale, move.ShipmentOutReturn,
sale.SaleLine, balance_sale_party.BalanceSalePartyStart,
contract.Contract, module='optical_equipment', type_='model'
contract.ContractEquipment, )
contract.ContractMaintenanceServices,
module='optical_equipment', type_='model')
Pool.register( Pool.register(
maintenance.AssingAgended, agended.AssingAgended,
maintenance.ReAssingAgended, agended.ReAssingAgended,
maintenance.CreateContract, contract.CreateContract,
maintenance.NewPropietaryMaintenance,
equipment.NewPropietary, equipment.NewPropietary,
maintenance.NewPropietaryMaintenance,
balance_sale_party.PrintBalanceSaleParty,
sale.ConfirmSaleDate,
module='optical_equipment', type_='wizard') module='optical_equipment', type_='wizard')
Pool.register( Pool.register(
maintenance.CalibrationReport, calibration.CalibrationReport,
maintenance.MaintenanceServiceReport,
contract.ContractReport, contract.ContractReport,
equipment.EquipmentReport, equipment.EquipmentReport,
maintenance.MaintenanceServiceReport,
move.PickingListDeliveryReport, move.PickingListDeliveryReport,
move.CapacitationReport, move.CapacitationReport,
balance_sale_party.BalanceSaleParty,
module='optical_equipment', type_='report') module='optical_equipment', type_='report')

View File

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

View File

@@ -1,11 +0,0 @@
from trytond.pool import PoolMeta
from trytond.model import fields
from trytond.pyson import Eval, If
class Address(metaclass=PoolMeta):
__name__ = 'party.address'
campus = fields.Boolean("Campus")
party_related = fields.Many2One('party.party', "Party Related",
states ={ 'invisible': (~Eval("campus"))})

View File

@@ -1,15 +0,0 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<record model="ir.ui.view" id="address_view_tree">
<field name="model">party.address</field>
<field name="inherit" ref="party.address_view_tree"/>
<field name="name">address_tree</field>
</record>
<record model="ir.ui.view" id="address_view_form">
<field name="model">party.address</field>
<field name="inherit" ref="party.address_view_form"/>
<field name="name">address_form</field>
</record>
</tryton>

144
agended.py Normal file
View File

@@ -0,0 +1,144 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import ModelSQL, ModelView, fields
from trytond.wizard import Button, StateAction, StateView, Wizard
from trytond.pool import Pool
from datetime import timedelta
class AgendedInitial(ModelView):
'Agended maintenance service'
__name__ = 'optical_equipment_maintenance.agended'
maintenance_service = fields.Many2One(
'optical_equipment_maintenance.service',
'Maintenaince Service',
required=True,
domain=[('state', '=', 'draft')],
)
estimated_agended = fields.DateTime('Date Maintenance', required=True)
technical = fields.Many2One('company.employee', 'Technical', required=True)
class AssingAgended(Wizard):
'Assing Agended'
__name__ = 'optical_equipment_maintenance.assing_agended'
start = StateView(
'optical_equipment_maintenance.agended',
'optical_equipment.assing_agended_view_form',
[
Button('Cancel', 'end', 'tryton-cancel'),
Button('Assing', 'assing_agended', 'tryton-ok', default=True),
],
)
assing_agended = StateAction(
'optical_equipment.act_maintenance_service_form')
def default_start(self, fields):
if len(self.records) > 0:
default = {'maintenance_service': self.records[0].id}
else:
default = {'maintenance_service': None}
return default
def do_assing_agended(self, action):
pool = Pool()
Diary = pool.get('optical_equipment_maintenance.diary')
Config = pool.get('optical_equipment.configuration')
config = Config(3)
diary = Diary(
code=config.agended_sequence.get(),
maintenance_service=self.start.maintenance_service,
date_expected=self.start.estimated_agended,
date_estimated=self.start.estimated_agended + timedelta(days=15),
date_end=self.start.estimated_agended + timedelta(days=15),
technical=self.start.technical.id,
state='agended',
)
diary.save()
maintenanceService = self.start.maintenance_service
maintenanceService.estimated_agended = self.start.estimated_agended
maintenanceService.technical = self.start.technical
maintenanceService.state_agended = 'agended'
maintenanceService.state = 'agended'
maintenanceService.current_agended = diary.id
maintenanceService.history_agended += (diary.id,)
maintenanceService.set_code(maintenanceService)
maintenanceService.save()
class ReAgended(ModelView):
'Agended maintenance service'
__name__ = 'optical_equipment_maintenance.reagended'
maintenance_service = fields.Many2One(
'optical_equipment_maintenance.service',
'Maintenaince Service',
required=True,
domain=[('state', '=', 'failed')],
)
estimated_agended = fields.DateTime('Date Maintenance', required=True)
technical = fields.Many2One('company.employee', 'Technical', required=True)
class ReAssingAgended(Wizard):
'Assing Agended'
__name__ = 'optical_equipment_maintenance.reassing_agended'
start = StateView(
'optical_equipment_maintenance.reagended',
'optical_equipment.reassing_agended_view_form',
[
Button('Cancel', 'end', 'tryton-cancel'),
Button('Assing', 'assing_agended', 'tryton-ok', default=True),
],
)
assing_agended = StateAction(
'optical_equipment.act_maintenance_service_form')
def default_start(self, fields):
if len(self.records) > 0:
default = {'maintenance_service': self.records[0].id}
else:
default = {'maintenance_service': None}
return default
def do_assing_agended(self, action):
pool = Pool()
Diary = pool.get('optical_equipment_maintenance.diary')
diary = Diary(
maintenance_service=self.start.maintenance_service,
date_expected=self.start.estimated_agended,
date_estimated=self.start.estimated_agended + timedelta(days=15),
date_end=self.start.estimated_agended + timedelta(days=15),
technical=self.start.technical.id,
state='agended',
)
diary.save()
maintenanceService = self.start.maintenance_service
maintenanceService.estimated_agended = self.start.estimated_agended
maintenanceService.technical = self.start.technical
maintenanceService.state_agended = 'agended'
maintenanceService.state = 'agended'
maintenanceService.history_agended += (diary.id,)
maintenanceService.save()
class ServiceMaintenanceAgended(ModelSQL):
'Service Maintenance - Agended'
__name__ = 'optical_equipment_maintenance.service-maintenance.diary'
maintenance_service = fields.Many2One(
'optical_equipment_maintenance.service', 'Maintenance Service'
)
agended = fields.Many2One('optical_equipment_maintenance.diary', 'Agended')

33
agended.xml Normal file
View File

@@ -0,0 +1,33 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="assing_agended_view_form">
<field name="model">optical_equipment_maintenance.agended</field>
<field name="type">form</field>
<field name="name">assing_agended_form</field>
</record>
<record model="ir.action.wizard" id="act_assing_agended">
<field name="name">Assing Agended</field>
<field name="wiz_name">optical_equipment_maintenance.assing_agended</field>
</record>
<record model="ir.ui.view" id="reassing_agended_view_form">
<field name="model">optical_equipment_maintenance.reagended</field>
<field name="type">form</field>
<field name="name">reassing_agended_form</field>
</record>
<record model="ir.action.wizard" id="act_reassing_agended">
<field name="name">ReAssing Agended</field>
<field name="wiz_name">optical_equipment_maintenance.reassing_agended</field>
</record>
<menuitem parent="menu_diary"
action="act_assing_agended"
sequence="30"
id="menu_assing_agended_form"/>
<menuitem parent="menu_diary"
action="act_reassing_agended"
sequence="40"
id="menu_reassing_agended_form"/>
</data>
</tryton>

163
balance_sale_party.py Normal file
View File

@@ -0,0 +1,163 @@
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from trytond.model import ModelView, fields
from trytond.wizard import Wizard, StateView, Button, StateReport
from trytond.report import Report
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.pyson import Eval
from trytond.exceptions import UserError
__all__ = ['BalanceSalePartyStart',
'PrintBalanceSaleParty', 'BalanceSaleParty']
class BalanceSalePartyStart(ModelView):
'Balance Party Start'
__name__ = 'optical_equipment.print_balance_sale_party.start'
fiscalyear = fields.Many2One('account.fiscalyear', 'Fiscal Year',
required=True)
party = fields.Many2One('party.party', 'Party', required=True)
start_period = fields.Many2One(
'account.period',
'Start Period',
domain=[
('start_date', '<=', (Eval('end_period'), 'start_date')),
],
depends=['fiscalyear', 'end_period'],
)
end_period = fields.Many2One(
'account.period',
'End Period',
domain=[('start_date', '>=', (Eval('start_period'), 'start_date'))],
depends=['start_period'],
)
company = fields.Many2One('company.company', 'Company', required=True)
party_type = fields.Selection(
[('out', 'Customer')], 'Party Type', required=True)
@staticmethod
def default_company():
return Transaction().context.get('company')
@staticmethod
def default_party_type():
return 'out'
class PrintBalanceSaleParty(Wizard):
'Print Balance Sale Party'
__name__ = 'optical_equipment.print_balance_sale_party'
start = StateView(
'optical_equipment.print_balance_sale_party.start',
'optical_equipment.print_balance_sale_party_start_view_form',
[
Button('Cancel', 'end', 'tryton-cancel'),
Button('Print', 'print_', 'tryton-print', default=True),
],
)
print_ = StateReport('optical_equipment.balance_sale_party')
def default_start(self, fields):
if len(self.records) > 0:
default = {'party': self.records[0].party.id}
else:
default = {'party': None}
return default
def do_print_(self, action):
party = None
party_type = None
if self.start.party:
party = self.start.party.id
if self.start.party_type:
party_type = self.start.party_type
data = {
'company': self.start.company.id,
'party': party,
'party_type': party_type,
'start_period': (
self.start.start_period.id if self.start.start_period else None
),
'end_period':
self.start.end_period.id if self.start.end_period else None,
}
return action, data
def transition_print_(self):
return 'end'
class BalanceSaleParty(Report):
__name__ = 'optical_equipment.balance_sale_party'
@classmethod
def get_context(cls, records, header, data):
report_context = super(BalanceSaleParty, cls).get_context(
records, header, data)
pool = Pool()
Company = pool.get('company.company')
Period = pool.get('account.period')
Sale = pool.get('sale.sale')
Party = pool.get('party.party')
start_period = None
end_period = None
party = None
company = Company(data['company'])
dom_sale = [('state', 'in', ['processing', 'done'])]
if data.get('party'):
party = data['party']
dom_sale.append(('party', '=', party))
if data.get('start_period'):
start_period = Period(data['start_period'])
dom_sale.append(('sale_date', '>=', start_period.start_date))
if data.get('end_period'):
end_period = Period(data['end_period'])
dom_sale.append(('sale_date', '<=', end_period.start_date))
sales = Sale.search(
dom_sale,
order=[('sale_date', 'DESC'), ('id', 'DESC')],
)
res = {}
id_ = party
party_ = Party.search(['id', '=', party])[0]
name = party_.rec_name
try:
if party_.identifiers:
id_number = party_.identifiers[0].code
else:
id_number = ''
except IndexError:
pass
res[id_] = {'name': name, 'id_number': id_number, 'party': party_}
if (not sales):
err = 'Este Tercero no Cuenta Con Ventas en Proceso ó Confirmadas.'
raise UserError(str(err))
res[id_]['sales'] = sales
report_context['records'] = res.values()
report_context['start_period'] =\
start_period.name if start_period else '*'
report_context['end_period'] = end_period.name if end_period else '*'
report_context['company'] = company
residual_amount = 0
for sale in sales:
residual_amount += sale.residual_amount
report_context['residual_amount'] = residual_amount
return report_context

28
balance_sale_party.xml Normal file
View File

@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.action.report" id="report_balance_sale_party">
<field name="name">Balance by Party</field>
<field name="model"></field>
<field name="report_name">optical_equipment.balance_sale_party</field>
<field name="report">optical_equipment/report/balance_sale_party.fods</field>
<field name="template_extension">ods</field>
</record>
<record model="ir.ui.view" id="print_balance_sale_party_start_view_form">
<field name="model">optical_equipment.print_balance_sale_party.start</field>
<field name="type">form</field>
<field name="name">print_balance_sale_party_start_form</field>
</record>
<record model="ir.action.wizard" id="wizard_print_balance_sale_party">
<field name="name">Print Balance Sale by Party</field>
<field name="wiz_name">optical_equipment.print_balance_sale_party</field>
</record>
<menuitem
parent="sale.menu_reporting"
action="wizard_print_balance_sale_party"
id="menu_print_balance_sale_party"
icon="tryton-print"/>
</data>
</tryton>

113
calibration.py Normal file
View File

@@ -0,0 +1,113 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import ModelSQL, ModelView, fields, sequence_ordered
from trytond.pyson import Eval, If
from trytond.pool import Pool
from trytond.modules.company import CompanyReport
from trytond.transaction import Transaction
_digits = (16, 2)
_states = {'readonly': If(Eval('state') != 'draft', True)}
class Calibration(ModelSQL, ModelView):
'Calibration of Maintenance'
__name__ = 'optical_equipment.maintenance.calibration'
_states = {'readonly': True}
maintenance = fields.Many2One(
'optical_equipment.maintenance',
'Maintenance',
ondelete='CASCADE',
required=True,
)
graph_dates = fields.Char('Graph Dates', readonly=True)
diopter = fields.Float('Diopter', states=_states)
mean = fields.Float('Mean', states=_states)
dev_std = fields.Float('Standart Desviation', states=_states)
uncertain_type_A = fields.Float('Uncertain Type A', states=_states)
uncertain_pattern = fields.Float('Uncertain Pattern', states=_states)
k_c_calibration = fields.Float('K Crt Calibration', states=_states)
uncertain_U_b1 = fields.Float('U_b1', states=_states)
d_resolution = fields.Float('d_resolution', states=_states)
uncertain_U_b2_dig = fields.Float('U_b2', states=_states)
uncertain_U_b2_ana = fields.Float('U_b2', states=_states)
uncertain_combinated = fields.Float('U_combinated', states=_states)
uncertain_eff = fields.Float('U eff', states=_states)
t_student = fields.Float('T Student', states=_states)
uncertain_expanded = fields.Float('Uexpand', _digits, states=_states)
state = fields.Char('State')
class CalibrationSample(sequence_ordered(), ModelView, ModelSQL):
'Samples of Calibration'
__name__ = 'optical_equipment.maintenance.calibration_sample'
maintenance = fields.Many2One(
'optical_equipment.maintenance', 'Maintenance')
product = fields.Function(fields.Integer(
'Product ID'), 'on_change_with_product')
number_sample = fields.Float('Sample #', _digits)
value_patterns = fields.Many2One(
'optical_equipment.product_pattern',
'Value Pattern',
ondelete='RESTRICT',
required=True,
domain=[('product', '=', Eval('product'))],
depends=['product'],
)
value_equipment = fields.Float(
'Value in Equipment',
_digits,
required=True,
states={'readonly': Eval('value_patterns') is None},
)
mistake = fields.Float('Mistake', _digits)
mistake_rate = fields.Float(
'% Mistake', _digits, states={'readonly': True}, depends=['mistake']
)
@fields.depends('maintenance', '_parent_maintenance.equipment')
def on_change_with_product(self, name=None):
if self.maintenance:
return self.maintenance.equipment.product.template.id
@fields.depends(
'value_patterns', 'value_equipment', 'mistake', 'mistake_rate')
def on_change_value_equipment(self):
if self.value_patterns:
pattern = self.value_patterns.pattern
if float(pattern) < 0:
self.mistake = pattern - self.value_equipment
else:
if pattern > self.value_equipment:
self.mistake = pattern - self.value_equipment
else:
self.mistake = -pattern + self.value_equipment
if pattern == self.value_equipment:
self.mistake_rate = 0
else:
self.mistake_rate = abs(
self.mistake / pattern) * 100
class CalibrationReport(CompanyReport):
__name__ = 'optical_equipment.maintenance'
@classmethod
def execute(cls, ids, data):
with Transaction().set_context(address_with_party=True):
return super(CalibrationReport, cls).execute(ids, data)
@classmethod
def get_context(cls, records, header, data):
pool = Pool()
Date = pool.get('ir.date')
context = super().get_context(records, header, data)
context['today'] = Date.today()
return context

52
calibration.xml Normal file
View File

@@ -0,0 +1,52 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="maintenance_calibration_view_form">
<field name="model">optical_equipment.maintenance.calibration_sample</field>
<field name="type">form</field>
<field name="name">maintenance_sample_form</field>
</record>
<record model="ir.ui.view" id="maintenance_calibration_view_tree">
<field name="model">optical_equipment.maintenance.calibration_sample</field>
<field name="type">tree</field>
<field name="priority" eval="10"/>
<field name="name">maintenance_calibration_tree</field>
</record>
<record model="ir.ui.view" id="calibration_total_view_tree">
<field name="model">optical_equipment.maintenance.calibration</field>
<field name="type">tree</field>
<field name="name">calibration_total_tree</field>
</record>
<record model="ir.ui.view" id="calibration_total_view_form">
<field name="model">optical_equipment.maintenance.calibration</field>
<field name="type">form</field>
<field name="name">calibration_total_form</field>
</record>
<record model="ir.action.report" id="report_calibration">
<field name="name">Calibration</field>
<field name="model">optical_equipment.maintenance</field>
<field name="report_name">optical_equipment.maintenance</field>
<field name="report">optical_equipment/report/Calibration.fodt</field>
<field name="single" eval="True"/>
</record>
<record model="ir.action.keyword" id="report_calibration_keyword">
<field name="keyword">form_print</field>
<field name="model">optical_equipment.maintenance,-1</field>
<field name="action" ref="report_calibration"/>
</record>
<record model="ir.action.report" id="report_calibrations">
<field name="name">Calibrations</field>
<field name="model">optical_equipment_maintenance.service</field>
<field name="report_name">optical_equipment_maintenance.service</field>
<field name="report">optical_equipment/report/Calibrations.fodt</field>
<field name="single" eval="True"/>
</record>
<record model="ir.action.keyword" id="report_calibrations_keyword">
<field name="keyword">form_print</field>
<field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="report_calibrations"/>
</record>
</data>
</tryton>

9
company.py Normal file
View File

@@ -0,0 +1,9 @@
from trytond.pool import PoolMeta
from trytond.model import fields
class Employee(metaclass=PoolMeta):
'Company'
__name__ = 'company.employee'
invima = fields.Char('Invima')

12
company.xml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level
of this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="employee_view_form">
<field name="model">company.employee</field>
<field name="inherit" ref="company.employee_view_form"/>
<field name="name">employee_form</field>
</record>
</data>
</tryton>

83
configuration.py Normal file
View File

@@ -0,0 +1,83 @@
from trytond.model import ModelSingleton, ModelSQL, ModelView, fields
from trytond.pyson import Id, Eval
class Configuration(ModelSingleton, ModelSQL, ModelView):
"Equipment Configuration"
__name__ = "optical_equipment.configuration"
equipment_sequence = fields.Many2One(
"ir.sequence",
"Equipment Sequence",
domain=[
("sequence_type", "=", Id(
"optical_equipment", "sequence_type_equipment"))
],
required=True
)
maintenance_sequence = fields.Many2One(
"ir.sequence",
"Maintenance Sequence",
domain=[
(
"sequence_type",
"=",
Id("optical_equipment", "sequence_type_maintenances"),
)
],
required=True
)
sale_quote_number = fields.Many2One(
"ir.sequence",
"Sale Quote Number",
domain=[("sequence_type", "=", Id("sale", "sequence_type_sale"))],
required=True
)
agended_sequence = fields.Many2One(
"ir.sequence",
"Agended Sequence",
domain=[
("sequence_type", "=", Id(
"optical_equipment", "sequence_type_agended"))
],
required=True
)
contract_sequence = fields.Many2One(
"ir.sequence",
"Contract Sequence",
domain=[
("sequence_type", "=", Id(
"optical_equipment", "sequence_type_contract"))
],
required=True
)
temperature_min = fields.Float("Temp Min", required=True)
temperature_max = fields.Float("Temp Max", required=True)
temperature_uom = fields.Many2One(
"product.uom",
"Temperature UOM", required=True,
domain=[("category", "=", Id(
"optical_equipment", "uom_cat_temperature"))],
depends={"temperature_min"},
)
moisture_min = fields.Float("Moisture Min", required=True)
moisture_max = fields.Float("Moisture Max", required=True)
moisture_uom = fields.Many2One(
"product.uom",
"Moisture UOM",
required=True,
domain=[
("category", "=", Id(
"optical_equipment", "uom_cat_relative_humedity"))
],
depends={"moisture_min"},
)
technician_responsible = fields.Many2One(
"company.employee", "Technician Responsible",
required=True
)
invima = fields.Char(
"Invima", states={"required": Eval("technician_responsible", True)}
)
technician_signature = fields.Binary("Technician Signature",
required=True)

81
configuration.xml Normal file
View File

@@ -0,0 +1,81 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.action.act_window" id="act_optical_equipment_configuration_form">
<field name="name">Configuration</field>
<field name="res_model">optical_equipment.configuration</field>
</record>
<record model="ir.ui.view" id="optical_equipment_configuration_view_form">
<field name="model">optical_equipment.configuration</field>
<field name="type">form</field>
<field name="name">configuration_form</field>
</record>
<record model="ir.action.act_window.view" id="act_optical_equipment_configuration_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="optical_equipment_configuration_view_form"/>
<field name="act_window" ref="act_optical_equipment_configuration_form"/>
</record>
<menuitem
name="Configuration"
parent="menu_equipment"
sequence="0"
id="menu_equipment_configuration"
icon="tryton-settings"/>
<menuitem
parent="menu_equipment_configuration"
action="act_optical_equipment_configuration_form"
sequence="10"
id="menu_optical_equipment_configuration"
icon="tryton-list"/>
<record model="res.group" id="group_maintenance_admin">
<field name="name">Maintenance Administration</field>
</record>
<record model="res.user-res.group"
id="user_admin_group_maintenance_admin">
<field name="user" ref="res.user_admin"/>
<field name="group" ref="group_maintenance_admin"/>
</record>
<record model="ir.ui.menu-res.group"
id="menu_party_group_equipment_admin">
<field name="menu" ref="menu_equipment"/>
<field name="group" ref="group_equipment_admin"/>
</record>
<record model="ir.sequence.type" id="sequence_type_equipment">
<field name="name">Equipment</field>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_equipment_group_admin">
<field name="sequence_type" ref="sequence_type_equipment"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_equipment_group_equipment_admin">
<field name="sequence_type" ref="sequence_type_equipment"/>
<field name="group" ref="group_equipment_admin"/>
</record>
<record model="ir.sequence" id="sequence_equipment">
<field name="name">Equipment</field>
<field name="sequence_type" ref="sequence_type_equipment"/>
</record>
<record model="ir.sequence.type" id="sequence_type_maintenances">
<field name="name">Maintenances</field>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_maintenance_group_admin">
<field name="sequence_type" ref="sequence_type_maintenances"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_maintenance_group_maintenance_admin">
<field name="sequence_type" ref="sequence_type_maintenances"/>
<field name="group" ref="group_maintenance_admin"/>
</record>
<record model="ir.sequence" id="sequence_maintenances">
<field name="name">Maintenance</field>
<field name="sequence_type" ref="sequence_type_maintenances"/>
</record>
</data>
</tryton>

View File

@@ -1,36 +0,0 @@
from trytond.model import (
ModelSingleton, ModelSQL, ModelView, fields)
from trytond.pyson import Id
from trytond.modules.company.model import (
CompanyMultiValueMixin, CompanyValueMixin)
class Configuration(ModelSingleton, ModelSQL, ModelView, CompanyMultiValueMixin):
'Equipment Configuration'
__name__='optical_equipment.configuration'
equipment_sequence = fields.Many2One('ir.sequence', "Equipment Sequence",
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_equipment'))
])
maintenance_sequence = fields.Many2One('ir.sequence', "Maintenance Sequence",
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_maintenances'))
])
agended_sequence = fields.Many2One('ir.sequence', "Agended Sequence",
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_agended'))
])
contract_sequence = fields.Many2One('ir.sequence', "Contract Sequence",
domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_contract'))
])
temperature_min = fields.Float("Temp Min")
temperature_max = fields.Float("Temp Max")
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
depends=['itemperature_min'])
moisture_min = fields.Float("Moisture Min")
moisture_max = fields.Float("Moisture Max")
moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
depends=['moisture_min'])
sale_quote_number = fields.Many2One('ir.sequence', "Sale Quote Number",
domain=[
('sequence_type', '=', Id('sale','sequence_type_sale'))
])

View File

@@ -1,33 +0,0 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="optical_equipment_configuration_view_form">
<field name="model">optical_equipment.configuration</field>
<field name="type">form</field>
<field name="name">optical_equipment_configuration_form</field>
</record>
<record model="ir.action.act_window" id="act_optical_equipment_configuration_form">
<field name="name">Configuration</field>
<field name="res_model">optical_equipment.configuration</field>
</record>
<record model="ir.action.act_window.view" id="act_optical_equipment_configuration_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="optical_equipment_configuration_view_form"/>
<field name="act_window" ref="act_optical_equipment_configuration_form"/>
</record>
<menuitem
name="Configuration"
parent="menu_equipment"
sequence="0"
id="menu_equipment_configuration"
icon="tryton-settings"/>
<menuitem
parent="menu_equipment_configuration"
action="act_optical_equipment_configuration_form"
sequence="10"
id="menu_optical_equipment_configuration"
icon="tryton-list"/>
</data>
</tryton>

View File

@@ -1,19 +1,29 @@
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.model import ( from trytond.model import ModelSQL, ModelView, Workflow, fields
ModelSQL, ModelView, Workflow, fields)
from trytond.modules.company import CompanyReport from trytond.modules.company import CompanyReport
from trytond.pyson import Eval, If, Bool from trytond.pyson import Eval, If, Bool
from trytond.modules.company.model import set_employee
from trytond.exceptions import UserError from trytond.exceptions import UserError
from trytond.transaction import Transaction from trytond.transaction import Transaction
from trytond.wizard import ( from trytond.wizard import Button, StateAction, StateView, Wizard
Button, StateAction, StateTransition, StateView, Wizard)
from trytond.modules.currency.fields import Monetary from trytond.modules.currency.fields import Monetary
from trytond.modules.product import price_digits from trytond.modules.product import price_digits
import datetime import datetime
from datetime import timedelta from datetime import timedelta, date
from trytond.i18n import gettext
class Cron(metaclass=PoolMeta):
__name__ = 'ir.cron'
@classmethod
def __setup__(cls):
super().__setup__()
cls.method.selection.append((
'optical_equipment.contract|contract_expiration',
'Contract Expiration'
))
class Contract(Workflow, ModelSQL, ModelView): class Contract(Workflow, ModelSQL, ModelView):
@@ -22,60 +32,113 @@ class Contract(Workflow, ModelSQL, ModelView):
_rec_name = 'number' _rec_name = 'number'
_order_name = 'number' _order_name = 'number'
company = fields.Many2One( company = fields.Many2One(
'company.company', "Company", required=True, select=True, 'company.company',
'Company',
required=True,
states={ states={
'readonly': (Eval('state') != 'draft') | Eval('party', True), 'readonly': (Eval('state') != 'draft') | Eval('party', True),
},help="Make the subscription belong to the company.") },
help='Make the subscription belong to the company.',
)
number = fields.Char( number = fields.Char(
"Number", readonly=True, select=True, 'Number', readonly=True,
help="The main identification of the subscription.") help='The main identification of the subscription.'
)
reference = fields.Char( reference = fields.Char(
"Reference", select=True, 'Reference',
help="The identification of an external origin.") help='The identification of an external origin.'
description = fields.Char("Description", )
description = fields.Char(
'Description',
states={ states={
'readonly': Eval('state') != 'draft', 'readonly': Eval('state') != 'draft',
}) },
)
party = fields.Many2One( party = fields.Many2One(
'party.party', "Party", required=True, 'party.party',
'Party',
required=True,
states={ states={
'readonly': (Eval('state') != 'draft') | Eval('party', True), 'readonly': (Eval('state') != 'draft') | Eval('party', True),
},help="The party who subscribes.") },
contact = fields.Many2One('party.contact_mechanism', "Contact", required=True) help='The party who subscribes.',
invoice_address = fields.Many2One('party.address', 'Invoice Address', )
required=True, domain=[('party', '=', Eval('party'))], equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
states={ contact = fields.Many2One(
'readonly': (Eval('state') != 'draft') | Eval('party', True), 'party.contact_mechanism', 'Contact', required=True)
}) invoice_address = fields.Many2One(
start_date = fields.Date("Start Date", required=True,) 'party.address',
end_date = fields.Date("End Date", 'Invoice Address',
domain=['OR', required=True,
('end_date', '>=', If( domain=[('party', '=', Eval('party'))],
Bool(Eval('start_date')), states={
Eval('start_date', datetime.date.min), 'readonly': (Eval('state') != 'draft') | Eval('party', True),
datetime.date.min)), },
('end_date', '=', None), )
], start_date = fields.Date(
states={ 'Start Date',
'readonly': Eval('state') != 'draft', required=True,
}) )
maintenance_services = fields.Many2Many('optical_equipment_maintenance.service-equipment.contract', end_date = fields.Date(
'contract', 'maintenance_services', "Prorogues", 'End Date',
states={'readonly': Eval('state') != 'draft'}) domain=[
equipments = fields.One2Many('optical_equipment.equipment', 'contract', "Equipments", 'OR',
states={'readonly': Eval('state') != 'draft'}) (
price_contract = Monetary("Price Contract", digits=price_digits, currency='currency', required=True, 'end_date',
states={'readonly': Eval('state') != 'draft'}) '>=',
state = fields.Selection([ If(
('draft', "Draft"), Bool(Eval('start_date')),
('running', "Running"), Eval('start_date', datetime.date.min),
('closed', "Closed"), datetime.date.min,
('cancelled', "Cancelled"), ),
], "State", readonly=True, required=False, sort=False, ),
help="The current state of the subscription.") ('end_date', '=', None),
],
states={
'readonly': Eval('state') != 'draft',
},
)
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):
@@ -83,19 +146,34 @@ class Contract(Workflow, ModelSQL, ModelView):
cls._order = [ cls._order = [
('number', 'DESC NULLS FIRST'), ('number', 'DESC NULLS FIRST'),
('id', 'DESC'), ('id', 'DESC'),
] ]
cls._transitions = ({ cls._transitions = {
('draft', 'running'), ('draft', 'running'),
('running', 'draft'), ('running', 'draft'),
('running', 'closed'), ('running', 'closed'),
('running', 'cancelled'), ('running', 'cancelled'),
}) ('cancelled', 'draft'),
cls._buttons.update({ }
'draft': {'invisible': Eval('state').in_(['draft','closed'])}, cls._buttons.update(
'running': {'invisible': Eval('state').in_(['cancelled', 'running'])}, {
'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])} 'draft': {
}) 'invisible':
Eval('state').in_(['draft', 'closed'])
},
'running': {
'invisible':
Eval('state').in_(['cancelled', 'running'])
},
'closed': {
'invisible':
Eval('state').in_(['draft', 'cancelled'])
},
'cancelled': {
'invisible':
Eval('state').in_(['draft', 'cancelled'])
},
}
)
@staticmethod @staticmethod
def default_company(): def default_company():
@@ -110,8 +188,8 @@ class Contract(Workflow, ModelSQL, ModelView):
pool = Pool() pool = Pool()
Config = pool.get('optical_equipment.configuration') Config = pool.get('optical_equipment.configuration')
config = Config(4) config = Config(4)
if config.contract_sequence != None: if config.contract_sequence is not None:
if not contracts[0].number: if not contracts[0].number:
try: try:
contracts[0].number = config.contract_sequence.get() contracts[0].number = config.contract_sequence.get()
@@ -119,54 +197,87 @@ class Contract(Workflow, ModelSQL, ModelView):
except UserError: except UserError:
raise UserError(str('Validation Error')) raise UserError(str('Validation Error'))
else: else:
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment')) raise UserError(
gettext('optical_equipment.msg_not_sequence_equipment'))
@classmethod
def contract_expiration(cls):
contracts_to_expire = cls.search(
[('state', '=', 'running'), ('end_date', '<=', date.today())]
)
if contracts_to_expire != []:
for contract in contracts_to_expire:
cls.closed([contract])
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('draft') @Workflow.transition('draft')
def draft(cls, contracts): def draft(cls, contracts):
contract = contracts[0] contract = contracts[0]
for equipment in contract.equipments: for equipment in contract.current_equipments:
equipment.state = "uncontrated" equipment.state = 'uncontrated'
equipment.contract_history += (contract.id,) equipment.contract_history += (contract.id,)
equipment.save() equipment.save()
contract.save()
@classmethod
@ModelView.button
@Workflow.transition('closed')
def closed(cls, contracts):
contract = contracts[0]
for equipment in contract.current_equipments:
equipment.state = 'uncontrated'
equipment.save()
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('running') @Workflow.transition('running')
def running(cls, contracts): def running(cls, contracts):
contract = contracts[0] contract = contracts[0]
for equipment in contract.equipments: for equipment in contract.current_equipments:
equipment.state = "contrated" equipment.state = 'contrated'
equipment.contract_history += (contract.id,) equipment.contract_history += (contract.id,)
equipment.save() equipment.save()
cls.set_number(contracts) cls.set_number(contracts)
contract.state='running' contract.state = 'running'
contract.save() contract.save()
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('cancelled') @Workflow.transition('cancelled')
def cancelled(cls, contracts): def cancelled(cls, contracts):
pass contract = contracts[0]
for equipment in contract.current_equipments:
equipment.state = 'uncontrated'
equipment.save()
class ContractMaintenanceServices(ModelSQL): class ContractMaintenanceServices(ModelSQL):
'Contract - Maintenance Services' 'Contract - Maintenance Services'
__name__ = 'optical_equipment_maintenance.service-equipment.contract' __name__ = 'optical_equipment_maintenance.service-equipment.contract'
maintenance_services = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", select=True) maintenance_services = fields.Many2One(
contract = fields.Many2One('optical_equipment.contract', "Contract") 'optical_equipment_maintenance.service',
'Maintenance Service',
)
contract = fields.Many2One('optical_equipment.contract', 'Contract')
class ContractEquipment(ModelSQL): class ContractEquipment(ModelSQL):
'Optical Equipment - Contract' 'Optical Equipment - Contract'
__name__ = 'optical_equipment.contract-optical_equipment.equipment' __name__ = 'optical_equipment.contract-optical_equipment.equipment'
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True) equipment = fields.Many2One(
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True) 'optical_equipment.equipment',
'Equipment',
)
contract = fields.Many2One(
'optical_equipment.contract',
'Contract',
)
class ContractReport(CompanyReport): class ContractReport(CompanyReport):
__name__ = 'optical_equipment.contract' __name__ = 'optical_equipment.contract'
@@ -184,3 +295,160 @@ class ContractReport(CompanyReport):
context['today'] = Date.today() context['today'] = Date.today()
return context return context
class CreateContractInitial(ModelView, ModelSQL):
'Create Contract Inicial'
__name__ = 'optical_equipment_create.contract'
currency = fields.Many2One('currency.currency', 'Currency', required=True)
company = fields.Many2One(
'company.company',
'Company',
readonly=True,
required=True,
help='Make the subscription belong to the company.',
)
party = fields.Many2One(
'party.party', 'Party', required=True, help='The party who subscribes.'
)
invoice_address = fields.Many2One(
'party.address',
'Invoice Address',
required=True,
domain=[('party', '=', Eval('party'))],
)
payment_term = fields.Many2One(
'account.invoice.payment_term', 'Payment Term')
contact = fields.Many2One(
'party.contact_mechanism',
'Contact',
required=True,
domain=[('party', '=', Eval('party'))],
context={
'company': Eval('company', -1),
},
)
start_date = fields.Date('Start Date', required=True)
end_date = fields.Date(
'End Date',
domain=[
'OR',
(
'end_date',
'>=',
If(
Bool(Eval('start_date')),
Eval('start_date', datetime.date.min),
datetime.date.min,
),
),
('end_date', '=', None),
],
)
unit_price = Monetary(
'Unit Price', digits=price_digits, currency='currency', required=True
)
@staticmethod
def default_company():
return Transaction().context.get('company')
@staticmethod
def default_currency():
Company = Pool().get('company.company')
if Transaction().context.get('company'):
company = Company(Transaction().context['company'])
return company.currency.id
@classmethod
def default_start_date(cls):
pool = Pool()
Date = pool.get('ir.date')
return Date.today()
@fields.depends('party')
def on_change_party(self):
pool = Pool()
Date = pool.get('ir.date')
if self.party:
self.invoice_address = self.party.address_get(type='invoice')
if self.party.customer_type == 'ips':
self.end_date = Date.today() + timedelta(days=182)
else:
self.end_date = Date.today() + timedelta(days=365)
class CreateContract(Wizard):
__name__ = 'optical_equipment.maintenance.contract'
start = StateView(
'optical_equipment_create.contract',
'optical_equipment.create_contract_view_form',
[
Button('Cancel', 'end', 'tryton-cancel'),
Button('Create', 'create_contract', 'tryton-ok', default=True),
],
)
create_contract = StateAction('optical_equipment.act_contract_form')
def default_start(self, fields):
if self.record:
default = {
'party': self.record.propietary.id,
'invoice_address': self.record.propietary_address.id,
'unit_price': (
self.record.sale_origin.amount
if self.record.sale_origin.__name__ == 'sale.line'
else self.record.sale_origin.total_amount
),
}
return default
@property
def _subscription_start(self):
return dict(
party=self.start.party,
contact=self.start.contact,
start_date=self.start.start_date,
end_date=self.start.end_date,
invoice_address=self.start.invoice_address,
unit_price=self.start.unit_price,
)
def do_create_contract(self, action):
maintenance_service = self.records[0]
pool = Pool()
Contract = pool.get('optical_equipment.contract')
dates = self._subscription_start
prorogues = (maintenance_service,)
equipments = []
for line in maintenance_service.lines:
equipments.append(line.equipment.id)
if maintenance_service.contract_origin:
contract = maintenance_service.contract_origin
contract.history_equipments += tuple(equipments)
contract.current_equipments = equipments
contract.invoice_address = dates['invoice_address']
contract.contact = dates['contact']
contract.start_date = dates['start_date']
contract.end_date = dates['end_date']
contract.maintenance_services += prorogues
contract.state = 'draft'
contract.price_contract = dates['unit_price']
else:
contract = Contract(
party=dates['party'],
invoice_address=dates['invoice_address'],
contact=dates['contact'],
start_date=dates['start_date'],
end_date=dates['end_date'],
maintenance_services=prorogues,
current_equipments=equipments,
state='draft',
price_contract=dates['unit_price'],
)
contract.save()

View File

@@ -1,135 +1,171 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. --> <!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<record model="ir.ui.view" id="contract_view_form"> <data>
<field name="model">optical_equipment.contract</field> <record model="ir.ui.view" id="contract_view_form">
<field name="type">form</field> <field name="model">optical_equipment.contract</field>
<field name="name">contract_form</field> <field name="type">form</field>
</record> <field name="name">contract_form</field>
<record model="ir.ui.view" id="contract_view_list"> </record>
<field name="model">optical_equipment.contract</field> <record model="ir.ui.view" id="contract_view_list">
<field name="type">tree</field> <field name="model">optical_equipment.contract</field>
<field name="name">contract_list</field> <field name="type">tree</field>
</record> <field name="name">contract_list</field>
<record model="ir.action.act_window" id="act_contract_form"> </record>
<field name="name">Contracts</field> <record model="ir.action.act_window" id="act_contract_form">
<field name="res_model">optical_equipment.contract</field> <field name="name">Contracts</field>
</record> <field name="res_model">optical_equipment.contract</field>
<record model="ir.action.act_window.view" </record>
id="act_contract_form_view1"> <record model="ir.action.act_window.view"
<field name="sequence" eval="10"/> id="act_contract_form_view1">
<field name="view" ref="contract_view_list"/> <field name="sequence" eval="10"/>
<field name="act_window" ref="act_contract_form"/> <field name="view" ref="contract_view_list"/>
</record> <field name="act_window" ref="act_contract_form"/>
<record model="ir.action.act_window.view" </record>
id="act_contract_form_view2"> <record model="ir.action.act_window.view"
<field name="sequence" eval="20"/> id="act_contract_form_view2">
<field name="view" ref="contract_view_form"/> <field name="sequence" eval="20"/>
<field name="act_window" ref="act_contract_form"/> <field name="view" ref="contract_view_form"/>
</record> <field name="act_window" ref="act_contract_form"/>
<record model="ir.action.act_window.domain" </record>
id="act_contract_form_domain_draft"> <record model="ir.action.act_window.domain"
<field name="name">Draft</field> id="act_contract_form_domain_draft">
<field name="sequence" eval="10"/> <field name="name">Draft</field>
<field name="domain" eval="[('state', '=', 'draft')]" pyson="1"/> <field name="sequence" eval="10"/>
<field name="count" eval="True"/> <field name="domain" eval="[('state', '=', 'draft')]" pyson="1"/>
<field name="act_window" ref="act_contract_form"/> <field name="count" eval="True"/>
</record> <field name="act_window" ref="act_contract_form"/>
<record model="ir.action.act_window.domain" </record>
id="act_contract_form_domain_running"> <record model="ir.action.act_window.domain"
<field name="name">Running</field> id="act_contract_form_domain_running">
<field name="sequence" eval="30"/> <field name="name">Running</field>
<field name="domain" eval="[('state', '=', 'running')]" pyson="1"/> <field name="sequence" eval="30"/>
<field name="count" eval="True"/> <field name="domain" eval="[('state', '=', 'running')]" pyson="1"/>
<field name="act_window" ref="act_contract_form"/> <field name="count" eval="True"/>
</record> <field name="act_window" ref="act_contract_form"/>
<record model="ir.action.act_window.domain" </record>
id="act_contract_form_domain_closed"> <record model="ir.action.act_window.domain"
<field name="name">Closed</field> id="act_contract_form_domain_closed">
<field name="sequence" eval="40"/> <field name="name">Closed</field>
<field name="domain" eval="[('state', '=', 'closed')]" pyson="1"/> <field name="sequence" eval="40"/>
<field name="count" eval="True"/> <field name="domain" eval="[('state', '=', 'closed')]" pyson="1"/>
<field name="act_window" ref="act_contract_form"/> <field name="count" eval="True"/>
</record> <field name="act_window" ref="act_contract_form"/>
<record model="ir.action.act_window.domain" </record>
id="act_contract_form_domain_all"> <record model="ir.action.act_window.domain"
<field name="name">All</field> id="act_contract_form_domain_all">
<field name="sequence" eval="9999"/> <field name="name">All</field>
<field name="domain"></field> <field name="sequence" eval="9999"/>
<field name="act_window" ref="act_contract_form"/> <field name="domain"></field>
</record> <field name="act_window" ref="act_contract_form"/>
<record model="ir.model.button" id="draft_running_button"> </record>
<field name="name">draft</field> <record model="ir.model.button" id="draft_running_button">
<field name="string">Draft</field> <field name="name">draft</field>
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/> <field name="string">Draft</field>
</record> <field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
<record model="ir.model.button" id="contrac_running_button"> </record>
<field name="name">running</field> <record model="ir.model.button" id="contrac_running_button">
<field name="string">Run</field> <field name="name">running</field>
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/> <field name="string">Run</field>
</record> <field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
<record model="ir.model.button" id="contract_cancelled_button"> </record>
<field name="name">cancelled</field> <record model="ir.model.button" id="contract_closed_button">
<field name="string">Cancel</field> <field name="name">closed</field>
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/> <field name="string">Closed</field>
</record> <field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
<record model="res.group" id="group_contract_admin"> </record>
<field name="name">Contract Administration</field> <record model="ir.model.button" id="contract_cancelled_button">
</record> <field name="name">cancelled</field>
<record model="res.user-res.group" <field name="string">Cancel</field>
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
</record>
<record model="res.group" id="group_contract_admin">
<field name="name">Contract Administration</field>
</record>
<record model="res.user-res.group"
id="user_admin_group_contract_admin"> id="user_admin_group_contract_admin">
<field name="user" ref="res.user_admin"/> <field name="user" ref="res.user_admin"/>
<field name="group" ref="group_contract_admin"/> <field name="group" ref="group_contract_admin"/>
</record> </record>
<record model="ir.sequence.type" id="sequence_type_contract"> <record model="ir.sequence.type" id="sequence_type_contract">
<field name="name">Contract</field> <field name="name">Contract</field>
</record> </record>
<record model="ir.sequence.type-res.group" <record model="ir.sequence.type-res.group"
id="sequence_type_contract_group_admin"> id="sequence_type_contract_group_admin">
<field name="sequence_type" ref="sequence_type_contract"/> <field name="sequence_type" ref="sequence_type_contract"/>
<field name="group" ref="res.group_admin"/> <field name="group" ref="res.group_admin"/>
</record> </record>
<record model="ir.sequence.type-res.group" <record model="ir.sequence.type-res.group"
id="sequence_type_contract_group_contract_admin"> id="sequence_type_contract_group_contract_admin">
<field name="sequence_type" ref="sequence_type_contract"/> <field name="sequence_type" ref="sequence_type_contract"/>
<field name="group" ref="group_contract_admin"/> <field name="group" ref="group_contract_admin"/>
</record> </record>
<record model="ir.sequence" id="sequence_contract"> <record model="ir.sequence" id="sequence_contract">
<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.action.report" id="report_contract"> <record model="ir.ui.view" id="create_contract_view_form">
<field name="name">Contract</field> <field name="model">optical_equipment_create.contract</field>
<field name="model">optical_equipment.contract</field> <field name="type">form</field>
<field name="report_name">optical_equipment.contract</field> <field name="name">create_contract_form</field>
<field name="report">optical_equipment/report/Contract.fodt</field> </record>
<field name="single" eval="True"/> <record model="ir.action.wizard" id="maintenance_create_contract">
</record> <field name="name">Create Contract</field>
<record model="ir.action.keyword" id="report_contract_keyword"> <field name="wiz_name">optical_equipment.maintenance.contract</field>
<field name="keyword">form_print</field> <field name="model">optical_equipment_maintenance.service</field>
<field name="model">optical_equipment.contract,-1</field> </record>
<field name="action" ref="report_contract"/> <record model="ir.action.keyword" id="maintenance_create_contract_keyword">
</record> <field name="keyword">form_action</field>
<record model="ir.action.report" id="report_prorrogation"> <field name="model">optical_equipment_maintenance.service,-1</field>
<field name="name">Prorrogation</field> <field name="action" ref="maintenance_create_contract"/>
<field name="model">optical_equipment.contract</field> </record>
<field name="report_name">optical_equipment.contract</field> <record model="ir.action.report" id="report_contract">
<field name="report">optical_equipment/report/Prorrogation.fodt</field> <field name="name">Contract</field>
<field name="single" eval="True"/> <field name="model">optical_equipment.contract</field>
</record> <field name="report_name">optical_equipment.contract</field>
<record model="ir.action.keyword" id="report_prorrogation_keyword"> <field name="report">optical_equipment/report/Contract.fodt</field>
<field name="keyword">form_print</field> <field name="single" eval="True"/>
<field name="model">optical_equipment.contract,-1</field> </record>
<field name="action" ref="report_prorrogation"/> <record model="ir.action.keyword" id="report_contract_keyword">
</record> <field name="keyword">form_print</field>
<menuitem <field name="model">optical_equipment.contract,-1</field>
parent="menu_equipment" <field name="action" ref="report_contract"/>
name="Contracts Management" </record>
sequence="50" <record model="ir.action.report" id="report_prorrogation">
id="menu_contracts"/> <field name="name">Prorrogation</field>
<menuitem <field name="model">optical_equipment.contract</field>
parent="menu_contracts" <field name="report_name">optical_equipment.contract</field>
action="act_contract_form" <field name="report">optical_equipment/report/Prorrogation.fodt</field>
sequence="30" <field name="single" eval="True"/>
id="menu_contract_form"/> </record>
<record model="ir.action.keyword" id="report_prorrogation_keyword">
<field name="keyword">form_print</field>
<field name="model">optical_equipment.contract,-1</field>
<field name="action" ref="report_prorrogation"/>
</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
parent="menu_equipment"
name="Contracts Management"
sequence="50"
id="menu_contracts"
icon="equipment_contract"/>
<menuitem
parent="menu_contracts"
action="act_contract_form"
sequence="30"
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>

View File

@@ -1,23 +1,27 @@
from trytond.model import ( from trytond.model import (
ModelSQL, ModelView, fields) ModelSQL, ModelView, fields)
class Diary(ModelSQL, ModelView): class Diary(ModelSQL, ModelView):
'Diary' 'Diary'
__name__ = 'optical_equipment_maintenance.diary' __name__ = 'optical_equipment_maintenance.diary'
_rec_name = 'code' _rec_name = 'code'
code = fields.Char("Code", select=True,states={'readonly': True }) code = fields.Char("Code", states={'readonly': True})
date_expected = fields.DateTime("Expected Date", required=True) date_expected = fields.DateTime("Expected Date", required=True)
date_estimated = fields.DateTime("Estimated Date") date_estimated = fields.DateTime("Estimated Date")
date_end = fields.DateTime("Date End") date_end = fields.DateTime("Date End")
maintenance_service = fields.Many2One('optical_equipment_maintenance.service', 'Maintenance Service', required=True) maintenance_service = fields.Many2One(
'optical_equipment_maintenance.service', 'Maintenance Service',
required=True)
technical = fields.Many2One('company.employee', "Technical", required=True) technical = fields.Many2One('company.employee', "Technical", required=True)
state = fields.Selection([('draft', "Draft"), state = fields.Selection([('draft', "Draft"),
('agended', "Agended"), ('agended', "Agended"),
('in_progress', "In Progress"), ('in_progress', "In Progress"),
('failed', "Failed"), ('failed', "Failed"),
('finished', "Finished") ('finished', "Finished")
], "State", required=True, readonly=True, sort=True) ], "State",
required=True, readonly=True, sort=True)
@classmethod @classmethod
def default_state(self): def default_state(self):

View File

@@ -94,13 +94,19 @@
<field name="name">Agended</field> <field name="name">Agended</field>
<field name="sequence_type" ref="sequence_type_agended"/> <field name="sequence_type" ref="sequence_type_agended"/>
</record> </record>
<record model="ir.ui.icon" id="optical_equipment_schedule_icon">
<field name="name">equipment_schedule</field>
<field name="path">icons/calendar-days-solid.svg</field>
</record>
<menuitem parent="menu_equipment" <menuitem parent="menu_equipment"
name="Diary" name="Diary"
sequence="10" sequence="10"
id="menu_diary"/> id="menu_diary"
icon="equipment_schedule"/>
<menuitem parent="menu_diary" <menuitem parent="menu_diary"
action="act_agended_list_form" action="act_agended_list_form"
sequence="20" sequence="20"
id="menu_agended_list_form"/> id="menu_agended_list_form"
icon="equipment_schedule"/>
</data> </data>
</tryton> </tryton>

View File

@@ -1,9 +1,10 @@
################### ########################
Smart Vision Module Optical Equipment Module
################### ########################
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
usage usage
design design
releases

7
doc/releases.rst Normal file
View File

@@ -0,0 +1,7 @@
.. _releases-index:
=============
Release notes
=============
.. include:: ../CHANGELOG

View File

@@ -1,23 +1,20 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of # This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms. # this repository contains the full copyright notices and license terms.
import datetime
from collections import defaultdict
from trytond.pool import Pool from trytond.pool import Pool
from trytond.model import ( from trytond.model import \
DeactivableMixin, Workflow, ModelSQL, ModelView, Unique, fields) DeactivableMixin, Workflow, ModelSQL, ModelView, fields
from trytond.pyson import Eval, If from trytond.pyson import Eval
from trytond.transaction import Transaction from trytond.transaction import Transaction
from trytond.i18n import gettext from trytond.i18n import gettext
from trytond.exceptions import UserError from trytond.exceptions import UserError
from trytond.model.exceptions import AccessError from trytond.model.exceptions import AccessError
from trytond.wizard import ( from trytond.wizard import Button, StateAction, StateView, Wizard
Button, StateAction, StateTransition, StateView, Wizard)
from trytond.modules.company import CompanyReport from trytond.modules.company import CompanyReport
_MAINTENANCE_FREQUENCY = [("none", ''), _MAINTENANCE_FREQUENCY = [
("6", 'Seis Meses'), ('none', ''), ('6', 'Seis Meses'), ('12', 'Doce Meses')]
("12", 'Doce Meses')]
class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView): class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
'Optical Equipment' 'Optical Equipment'
@@ -25,103 +22,193 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
_rec_name = 'rec_name' _rec_name = 'rec_name'
_order_name = 'code' _order_name = 'code'
_states={ _states = {
'readonly': Eval('state') != 'draft', 'readonly': Eval('state') != 'draft',
} }
_states_product = {'readonly': Eval('product', True)}
_depends = ['state'] _depends = ['state']
_states_serial={ _states_serial = {
'readonly': Eval('state') != 'draft', 'readonly': Eval('state') != 'draft',
} }
code = fields.Char( code = fields.Char('Code', states={'readonly': True})
"Code", select=True,states={'readonly': True })
state = fields.Selection(
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)
domain=[('party', '=', Eval('propietary'))], contract = fields.Many2One(
states=_states 'optical_equipment.contract', 'Contract', ondelete='CASCADE'
) )
propietarys = fields.Many2Many('optical_equipment.equipment-party.party', 'equipment', 'party', "Propietarys") location = fields.Many2One(
product = fields.Many2One('product.product', "Product", 'stock.location',
domain=[('equipment', '=', True)], 'Location',
states=_states, states=_states,
depends=['equipment'] )
) propietary = fields.Many2One(
refurbish = fields.Boolean("Refurbish", 'party.party',
states=_states,) 'Propietary',
equipment_type = fields.Char('type', states={'readonly': If('product', True)}) required=True,
risk = fields.Char('Type risk',states={'readonly': If('product', True)}) states=_states,
use = fields.Char('Use', states={'readonly': If('product', True)}) )
biomedical_class = fields.Char('Biomedical Class', states={'readonly': If('product', True)}) propietary_address = fields.Many2One(
main_tecnology = fields.Char('Main tecnology', states={'readonly': If('product', True)}) 'party.address',
calibration = fields.Boolean("Apply calibration", states={'readonly': If('product', True)}) 'Propietary Address',
mark_category = fields.Many2One('product.category', 'Mark', required=True, required=True,
domain=[('parent', '=', None), domain=[('party', '=', Eval('propietary'))],
('accounting', '=', False)], states=_states,
states=_states )
) propietarys = fields.Many2Many(
model_category = fields.Many2One('product.category', "Model", required=True, 'optical_equipment.equipment-party.party',
domain=[('parent', '=', Eval('mark_category')), 'equipment', 'party', 'Propietarys'
('accounting', '=', False)], )
states=_states,) product = fields.Many2One(
reference_category = fields.Many2One('product.category', "Reference", 'product.product',
domain=[('parent', '=', Eval('model_category'))], 'Product',
states=_states, domain=[('equipment', '=', True)],
depends=['model_category'] states=_states,
) )
origin_country = fields.Many2One('country.country',"Origin Country", refurbish = fields.Boolean(
states=_states,) 'Refurbish',
states=_states,
software_version = fields.Char("Software version", size=None, )
states=_states,) equipment_type = fields.Char('type', states=_states_product)
useful_life = fields.Integer("Useful life", risk = fields.Char('Type risk', states=_states_product)
states=_states,) use = fields.Char('Use', states=_states_product)
warranty = fields.Integer("Warranty", biomedical_class = fields.Char('Biomedical Class', states=_states_product)
states=_states,) main_tecnology = fields.Char('Main tecnology', states=_states_product)
serial = fields.Char("Serial", size=None, calibration = fields.Boolean('Apply calibration', states=_states_product)
states=_states_serial, mark_category = fields.Many2One(
depends=_depends) 'product.category',
health_register = fields.Char("Health Register", size=None, 'Mark',
states=_states,) required=True,
contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'equipment','contract', "Contracts", states={'readonly': True}) domain=[('parent', '=', None), ('accounting', '=', False)],
maintenance_history = fields.Function( states=_states,
fields.Many2Many('optical_equipment.maintenance-optical_equipment.equipment', )
'equipment', 'maintenance',"Maintenances"), 'get_maintenances_of_equipment') model_category = fields.Many2One(
software_version = fields.Char("Software version", size=None, 'product.category',
states=_states,) 'Model',
required=True,
domain=[('parent', '=', Eval('mark_category')),
('accounting', '=', False)],
states=_states,
)
reference_category = fields.Many2One(
'product.category',
'Reference',
domain=[('parent', '=', Eval('model_category'))],
states=_states,
depends=['model_category'],
)
origin_country = fields.Many2One(
'country.country',
'Origin Country',
states=_states,
)
software_version = fields.Char(
'Software version',
size=None,
states=_states,
)
useful_life = fields.Integer(
'Useful life',
states=_states,
)
warranty = fields.Integer(
'Warranty',
states=_states,
)
serial = fields.Char('Serial', size=None,
states=_states_serial, depends=_depends)
health_register = fields.Char(
'Health Register',
size=None,
states=_states,
)
# contract_history =
# fields.Many2Many('optical_equipment.contract-optical_equipment.equipment',
# 'equipment','contract', 'Contracts', states={'readonly': True})
contract_history = fields.Function(
fields.One2Many('optical_equipment.contract',
'equipment', 'Contracts'),
'get_contracts_of_equipment',
)
maintenance_history = fields.Function(
fields.Many2Many(
'optical_equipment.maintenance-optical_equipment.equipment',
'equipment',
'maintenance',
'Maintenances',
),
'get_maintenances_of_equipment',
)
software_version = fields.Char(
'Software version',
size=None,
states=_states,
)
maintenance_frequency = fields.Selection(
_MAINTENANCE_FREQUENCY, 'Maintenance Frequency',
depends=['propietary']
)
purchase_origin = fields.Reference(
'Purchase Origin',
selection='get_origin', states={'readonly': True}
)
sale_destination = fields.Reference(
'Sale Destination',
selection='get_destination', states={'readonly': True}
)
shipment_destination = fields.Reference(
'Stock Move', selection='get_shipment', states={'readonly': True}
)
rec_name = fields.Function(fields.Char('rec_name'), 'get_rec_name')
technician_responsible = fields.Function(
fields.Char('Technician Responsible'), 'get_technical'
)
invima = fields.Function(fields.Char('Invima'), 'get_invima')
maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency",
depends=['propietary'])
purchase_origin = fields.Reference("Purchase Origin", selection='get_origin',select=True,
states={'readonly': True})
sale_destination = fields.Reference("Sale Destination", selection='get_destination',select=True,
states={'readonly': True})
shipment_destination = fields.Reference("Stock Move", selection='get_shipment', select=True,
states={'readonly': True})
rec_name = fields.Function(fields.Char("rec_name"), 'get_rec_name')
del _states_serial, _states, _depends del _states_serial, _states, _depends
def get_technical(self, name):
pool = Pool()
ConfigurationEquipment = pool.get('optical_equipment.configuration')
config = ConfigurationEquipment(1)
if config.technician_responsible:
technician_responsible = config.technician_responsible
return technician_responsible.party.name
def get_invima(self, name):
pool = Pool()
ConfigurationEquipment = pool.get('optical_equipment.configuration')
config = ConfigurationEquipment(1)
if config.technician_responsible.invima:
return config.technician_responsible.invima
@fields.depends('product', 'serial', 'code') @fields.depends('product', 'serial', 'code')
def get_rec_name(self, name): def get_rec_name(self, name):
name = str(self.product.name) + '@' + str(self.serial) + '/' + str(self.code) name = str(self.product.name) + '@' + \
str(self.serial) + '/' + str(self.code)
return name return name
@staticmethod @staticmethod
def _get_shipment(): def _get_shipment():
'Return list of Model names for shipment Reference' 'Return list of Model names for shipment Reference'
@@ -131,7 +218,7 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
'stock.shipment.out.return', 'stock.shipment.out.return',
'stock.shipment.in.return', 'stock.shipment.in.return',
'stock.shipment.internal', 'stock.shipment.internal',
] ]
@classmethod @classmethod
def get_shipment(cls): def get_shipment(cls):
@@ -165,7 +252,6 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
return [Sale.__name__] return [Sale.__name__]
@classmethod @classmethod
def get_destination(cls): def get_destination(cls):
Model = Pool().get('ir.model') Model = Pool().get('ir.model')
@@ -174,21 +260,24 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
return [(None, '')] + [(m, get_name(m)) for m in models] return [(None, '')] + [(m, get_name(m)) for m in models]
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
super(OpticalEquipment, cls).__setup__() super(OpticalEquipment, cls).__setup__()
cls._transitions = ({ cls._transitions = {
('draft', 'registred'), ('draft', 'registred'),
('registred', 'draft'), ('registred', 'draft'),
('registred', 'uncontrated'), ('registred', 'uncontrated'),
('uncontrated', 'contrated'), ('uncontrated', 'contrated'),
}) }
cls._buttons.update({ cls._buttons.update(
'draft': { {
'invisible': Eval('state') != 'registred'}, 'draft': {'invisible': Eval('state') != 'registred'},
'registred': { 'registred': {
'invisible': Eval('state').in_(['registred', 'uncontrated', 'contrated'])}} 'invisible': Eval('state').in_(
['registred', 'uncontrated', 'contrated']
)
},
}
) )
@classmethod @classmethod
@@ -196,9 +285,9 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
pool = Pool() pool = Pool()
Config = pool.get('optical_equipment.configuration') Config = pool.get('optical_equipment.configuration')
config = Config(1) config = Config(1)
for equipment in equipments: for equipment in equipments:
if config.equipment_sequence != None: if config.equipment_sequence is not None:
if not equipment.code: if not equipment.code:
try: try:
equipment.code = config.equipment_sequence.get() equipment.code = config.equipment_sequence.get()
@@ -206,24 +295,50 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
except UserError: except UserError:
raise UserError(str('Validation Error')) raise UserError(str('Validation Error'))
else: else:
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment')) raise UserError(
gettext('optical_equipment.msg_not_sequence_equipment'))
def get_contracts_of_equipment(self, records):
pool = Pool()
ContractsEquipment = pool.get('optical_equipment.contract')
contractsEquipment = set()
contractsEquipment = ContractsEquipment.search(
[('party', '=', self.propietary),
('history_equipments', 'in', [self.id])]
)
contracts = []
for key in contractsEquipment:
contracts.append(key.id)
return contracts
def get_maintenances_of_equipment(self, records): def get_maintenances_of_equipment(self, records):
pool = Pool() pool = Pool()
MaintenancesEquipment = pool.get('optical_equipment.maintenance') MaintenancesEquipment = pool.get('optical_equipment.maintenance')
maintenancesEquipment = set() maintenancesEquipment = set()
maintenancesEquipment = MaintenancesEquipment.search(['equipment', '=', self.id]) maintenancesEquipment = MaintenancesEquipment.search(
['equipment', '=', self.id]
)
maintenances = [] maintenances = []
for key in maintenancesEquipment: for key in maintenancesEquipment:
maintenances.append(key.id) maintenances.append(key.id)
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'
@staticmethod @staticmethod
def default_company(): def default_company():
@@ -232,61 +347,63 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
@fields.depends('propietary', 'maintenance_frequency') @fields.depends('propietary', 'maintenance_frequency')
def on_change_propietary(self): def on_change_propietary(self):
if self.propietary: if self.propietary:
if self.propietary.client_type == 'ips': if self.propietary.customer_type == 'ips':
self.maintenance_frequency = "6" self.maintenance_frequency = '6'
else: else:
self.maintenance_frequency = "12" self.maintenance_frequency = '12'
else: else:
self.maintenance_frequency = "none" self.maintenance_frequency = 'none'
@fields.depends('product', 'equipment_type','use', @fields.depends('product', 'equipment_type',
'biomedical_class', 'calibration', 'use', 'biomedical_class', 'calibration',
'mark_category', 'model_category') 'mark_category', 'model_category')
def on_change_product(self): def on_change_product(self):
if self.product: if self.product:
self.equipment_type=self.product.equipment_type self.equipment_type = self.product.equipment_type
self.use=self.product.use self.use = self.product.use
self.biomedical_class=self.product.biomedical_class self.biomedical_class = self.product.biomedical_class
self.calibration=self.product.calibration self.calibration = self.product.calibration
self.mark_category=self.product.mark_category self.mark_category = self.product.mark_category
self.model_category=self.product.model_category self.model_category = self.product.model_category
self.reference_category=self.product.reference_category self.reference_category = self.product.reference_category
self.useful_life=self.product.useful_life if self.product.useful_life else int(0) self.useful_life = (
self.calibration=True if self.product.calibration else False self.product.useful_life if self.product.useful_life else int(
self.warranty=self.product.warranty if self.product.warranty else int(0) 0)
self.risk=self.product.risk )
self.origin_country=self.product.origin_country self.calibration = True if self.product.calibration else False
self.use=self.product.use self.warranty =\
self.biomedical_class=self.product.biomedical_class self.product.warranty if self.product.warranty else int(0)
self.risk = self.product.risk
self.origin_country = self.product.origin_country
self.use = self.product.use
self.biomedical_class = self.product.biomedical_class
else: else:
self.equipment_type=None self.equipment_type = None
self.use=None self.use = None
self.biomedical_class=None self.biomedical_class = None
self.calibration=None self.calibration = None
self.mark_category=None self.mark_category = None
self.model_category=None self.model_category = None
self.reference_category=None self.reference_category = None
self.useful_life=None self.useful_life = None
self.calibration=False self.calibration = False
self.warranty=None self.warranty = None
self.risk=None self.risk = None
self.origin_country=None self.origin_country = None
self.use=None self.use = None
self.biomedical_class=None self.biomedical_class = None
self.refurbish=None self.refurbish = None
self.serial=None self.serial = None
self.health_register=None self.health_register = None
self.software_version=None self.software_version = None
@classmethod @classmethod
def delete(cls, equipments): def delete(cls, equipments):
for equipment in equipments: for equipment in equipments:
if equipment.purchase_origin: if equipment.purchase_origin:
raise AccessError( raise AccessError(gettext('estos equipos no se pueden borrar'))
gettext('estos equipos no se pueden borrar')) elif equipment.state != 'draft' and equipment.serial is not None:
elif equipment.state != 'draft' and equipment.serial != None: raise AccessError(gettext('estos equipos no se pueden borrar'))
raise AccessError(
gettext('estos equipos no se pueden borrar'))
super(OpticalEquipment, cls).delete(equipments) super(OpticalEquipment, cls).delete(equipments)
@classmethod @classmethod
@@ -300,48 +417,80 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
@Workflow.transition('registred') @Workflow.transition('registred')
def registred(cls, equipments): def registred(cls, equipments):
for i in equipments: for i in equipments:
if i.serial == None: if i.serial is None:
raise UserError(str("El Equipo no cuenta con un Serial")) raise UserError(str('El Equipo no cuenta con un Serial'))
else: else:
cls.set_code(equipments) cls.set_code(equipments)
class EquipmentMaintenance(ModelSQL, ModelView): class EquipmentMaintenance(ModelSQL, ModelView):
'Optical Equipment - Equipment - Maintenance' 'Optical Equipment - Equipment - Maintenance'
__name__ ='optical_equipment.maintenance-optical_equipment.equipment' __name__ = 'optical_equipment.maintenance-optical_equipment.equipment'
equipment = fields.Many2One(
'optical_equipment.equipment',
'Equipment',
)
maintenance = fields.Many2One(
'optical_equipment.maintenance',
'Maintenances',
)
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenances', select=True)
class EquipmentContract(ModelSQL, ModelView): class EquipmentContract(ModelSQL, ModelView):
'Optical Equipment - Contracs Equipment' 'Optical Equipment - Contracs Equipment'
__name__ = 'optical_equipment.contract-optical_equipment.equipment' __name__ = 'optical_equipment.contract-optical_equipment.equipment'
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True) equipment = fields.Many2One(
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True) 'optical_equipment.equipment',
'Equipment',
)
contract = fields.Many2One(
'optical_equipment.contract',
'Contract',
)
class EquipmentParty(ModelSQL, ModelView): class EquipmentParty(ModelSQL, ModelView):
'Optical Equipment - Party' 'Optical Equipment - Party'
__name__ = 'optical_equipment.equipment-party.party' __name__ = 'optical_equipment.equipment-party.party'
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", select=True) equipment = fields.Many2One(
party = fields.Many2One('party.party', "Party", select=True) 'optical_equipment.equipment',
'Equipment',
)
party = fields.Many2One(
'party.party',
'Party',
)
class ChangePropietary(ModelView): class ChangePropietary(ModelView):
'Change of Propietary Equipment' 'Change of Propietary Equipment'
__name__ = 'optical_equipment.change_propietary.form' __name__ = 'optical_equipment.change_propietary.form'
old_propietary = fields.Many2One('party.party', 'Old Propietary', old_propietary = fields.Many2One(
states={'required': True}) 'party.party', 'Old Propietary', states={'required': True}
equipments = fields.Many2Many('optical_equipment.equipment', None, None, "Equipments", )
domain=[('propietary', '=', Eval('old_propietary'))], equipments = fields.Many2Many(
depends=['old_propietary']) 'optical_equipment.equipment',
new_propietary = fields.Many2One('party.party', "New Propietary", None,
states={'required': True}) None,
new_address = fields.Many2One('party.address', "New Address", required=True, 'Equipments',
domain=[('party', '=', Eval('new_propietary'))], domain=[('propietary', '=', Eval('old_propietary'))],
states={'required': True}) depends=['old_propietary'],
change_date = fields.Date("Change Date", readonly=True) )
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):
@@ -354,15 +503,18 @@ class NewPropietary(Wizard):
'Change Propietary' 'Change Propietary'
__name__ = 'optical_equipment.change_propietary' __name__ = 'optical_equipment.change_propietary'
start = StateView('optical_equipment.change_propietary.form', start = StateView(
'optical_equipment.change_propietary_view_form',[ 'optical_equipment.change_propietary.form',
Button('Cancel', 'end', 'tryton-cancel'), 'optical_equipment.change_propietary_view_form',
Button('Create', 'change_propietary', 'tryton-ok', default=True), [
]) Button('Cancel', 'end', 'tryton-cancel'),
change_propietary = StateAction('optical_equipment.act_optical_equipment_form') Button('Create', 'change_propietary', 'tryton-ok', default=True),
],
)
change_propietary = StateAction(
'optical_equipment.act_optical_equipment_form')
def do_change_propietary(self, action): def do_change_propietary(self, action):
old_propietary = self.start.old_propietary
equipments = self.start.equipments equipments = self.start.equipments
new_propietary = self.start.new_propietary new_propietary = self.start.new_propietary
new_address = self.start.new_address new_address = self.start.new_address
@@ -371,17 +523,23 @@ class NewPropietary(Wizard):
equipment.propietarys += (equipment.propietary,) equipment.propietarys += (equipment.propietary,)
equipment.propietary = new_propietary equipment.propietary = new_propietary
equipment.propietary_address = new_address equipment.propietary_address = new_address
equipment.maintenance_frequency = "6" if new_propietary.client_type == 'ips' else "12" equipment.maintenance_frequency = (
'6' if new_propietary.customer_type == 'ips' else '12'
)
equipment.save() equipment.save()
class ChangeEquipment(ModelSQL): class ChangeEquipment(ModelSQL):
'Change Equipment' 'Change Equipment'
__name__ = 'optical_equipment.equipment-change_propietary.form' __name__ = 'optical_equipment.equipment-change_propietary.form'
maintenance_service = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service") maintenance_service = fields.Many2One(
'optical_equipment_maintenance.service', 'Maintenance Service'
)
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment') equipment = fields.Many2One('optical_equipment.equipment', 'Equipment')
change = fields.Many2One('optical_equipment.change_propietary.form', 'Change') change = fields.Many2One(
'optical_equipment.change_propietary.form', 'Change')
class EquipmentReport(CompanyReport): class EquipmentReport(CompanyReport):
__name__ = 'optical_equipment.equipment' __name__ = 'optical_equipment.equipment'

View File

@@ -11,18 +11,6 @@
<field name="user" ref="res.user_admin"/> <field name="user" ref="res.user_admin"/>
<field name="group" ref="group_equipment_admin"/> <field name="group" ref="group_equipment_admin"/>
</record> </record>
<record model="res.group" id="group_maintenance_admin">
<field name="name">Maintenance Administration</field>
</record>
<record model="res.user-res.group"
id="user_admin_group_maintenance_admin">
<field name="user" ref="res.user_admin"/>
<field name="group" ref="group_maintenance_admin"/>
</record>
<menuitem
name="Equipment"
sequence="40"
id="menu_equipment"/>
<record model="ir.action.act_window" id="act_optical_equipment_form"> <record model="ir.action.act_window" id="act_optical_equipment_form">
<field name="name">Equipments</field> <field name="name">Equipments</field>
<field name="res_model">optical_equipment.equipment</field> <field name="res_model">optical_equipment.equipment</field>
@@ -31,12 +19,12 @@
<record model="ir.ui.view" id="optical_equipment_view_tree"> <record model="ir.ui.view" id="optical_equipment_view_tree">
<field name="model">optical_equipment.equipment</field> <field name="model">optical_equipment.equipment</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="name">optical_equipment_tree</field> <field name="name">equipment_tree</field>
</record> </record>
<record model="ir.ui.view" id="optical_equipment_view_form"> <record model="ir.ui.view" id="optical_equipment_view_form">
<field name="model">optical_equipment.equipment</field> <field name="model">optical_equipment.equipment</field>
<field name="type">form</field> <field name="type">form</field>
<field name="name">optical_equipment_form</field> <field name="name">equipment_form</field>
</record> </record>
<record model="ir.action.act_window.view" id="act_optical_equipment_view1"> <record model="ir.action.act_window.view" id="act_optical_equipment_view1">
<field name="sequence" eval="10"/> <field name="sequence" eval="10"/>
@@ -75,7 +63,6 @@
<field name="count" eval="True"/> <field name="count" eval="True"/>
<field name="act_window" ref="act_optical_equipment_form"/> <field name="act_window" ref="act_optical_equipment_form"/>
</record> </record>
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_contrated"> <record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_contrated">
<field name="name">Contrated</field> <field name="name">Contrated</field>
<field name="sequence" eval="30"/> <field name="sequence" eval="30"/>
@@ -102,11 +89,6 @@
<field name="confirm">Are you sure you want to registred these equipments?</field> <field name="confirm">Are you sure you want to registred these equipments?</field>
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/> <field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
</record> </record>
<menuitem parent="menu_equipment"
action="act_optical_equipment_form"
sequence="60"
id="menu_optical_equipment_form"/>
<record model="ir.action.act_window" id="act_optical_equipment_form1"> <record model="ir.action.act_window" id="act_optical_equipment_form1">
<field name="name">Serials</field> <field name="name">Serials</field>
<field name="res_model">optical_equipment.equipment</field> <field name="res_model">optical_equipment.equipment</field>
@@ -115,7 +97,7 @@
<record model="ir.ui.view" id="optical_equipment_view_tree1"> <record model="ir.ui.view" id="optical_equipment_view_tree1">
<field name="model">optical_equipment.equipment</field> <field name="model">optical_equipment.equipment</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="name">optical_equipment_serial_tree</field> <field name="name">equipment_serial_tree</field>
</record> </record>
<record model="ir.action.act_window.view" id="act_optical_equipment_view3"> <record model="ir.action.act_window.view" id="act_optical_equipment_view3">
<field name="sequence" eval="10"/> <field name="sequence" eval="10"/>
@@ -131,52 +113,6 @@
<field name="count" eval="True"/> <field name="count" eval="True"/>
<field name="act_window" ref="act_optical_equipment_form1"/> <field name="act_window" ref="act_optical_equipment_form1"/>
</record> </record>
<menuitem
parent="menu_equipment"
action="act_optical_equipment_form1"
sequence="70"
id="menu_optical_equipment_serial_form"/>
<record model="ir.ui.menu-res.group"
id="menu_party_group_equipment_admin">
<field name="menu" ref="menu_equipment"/>
<field name="group" ref="group_equipment_admin"/>
</record>
<record model="ir.sequence.type" id="sequence_type_equipment">
<field name="name">Equipment</field>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_equipment_group_admin">
<field name="sequence_type" ref="sequence_type_equipment"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_equipment_group_equipment_admin">
<field name="sequence_type" ref="sequence_type_equipment"/>
<field name="group" ref="group_equipment_admin"/>
</record>
<record model="ir.sequence" id="sequence_equipment">
<field name="name">Equipment</field>
<field name="sequence_type" ref="sequence_type_equipment"/>
</record>
<record model="ir.sequence.type" id="sequence_type_maintenances">
<field name="name">Maintenances</field>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_maintenance_group_admin">
<field name="sequence_type" ref="sequence_type_maintenances"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.sequence.type-res.group"
id="sequence_type_maintenance_group_maintenance_admin">
<field name="sequence_type" ref="sequence_type_maintenances"/>
<field name="group" ref="group_maintenance_admin"/>
</record>
<record model="ir.sequence" id="sequence_maintenances">
<field name="name">Maintenance</field>
<field name="sequence_type" ref="sequence_type_maintenances"/>
</record>
<record model="ir.action.report" id="report_equipment"> <record model="ir.action.report" id="report_equipment">
<field name="name">Equipment</field> <field name="name">Equipment</field>
<field name="model">optical_equipment.equipment</field> <field name="model">optical_equipment.equipment</field>
@@ -216,5 +152,31 @@
<field name="model">optical_equipment.equipment,-1</field> <field name="model">optical_equipment.equipment,-1</field>
<field name="action" ref="equipment_change_propietary"/> <field name="action" ref="equipment_change_propietary"/>
</record> </record>
<record model="ir.ui.icon" id="optical_equipment_serials_icon">
<field name="name">equipment_serial</field>
<field name="path">icons/barcode-solid.svg</field>
</record>
<record model="ir.ui.icon" id="optical_equipment_optical_icon">
<field name="name">optical</field>
<field name="path">icons/microscope-solid.svg</field>
</record>
<menuitem
name="Equipment"
sequence="40"
id="menu_equipment"
icon="optical"/>
<menuitem
parent="menu_equipment"
action="act_optical_equipment_form"
sequence="60"
id="menu_optical_equipment_form"
icon="optical"/>
<menuitem
parent="menu_equipment"
action="act_optical_equipment_form1"
sequence="70"
id="menu_optical_equipment_serial_form"
icon="equipment_serial"/>
</data> </data>
</tryton> </tryton>

View File

@@ -1,11 +0,0 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.exceptions import UserError
from trytond.model.exceptions import ValidationError
class InvalidNumberPurchases(UserError):
pass
class NotSequenceEquipment(ValidationError):
pass

202
icons/LICENSE Normal file
View File

@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

1
icons/barcode-solid.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z"/></svg>

After

Width:  |  Height:  |  Size: 814 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"/></svg>

After

Width:  |  Height:  |  Size: 942 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z"/></svg>

After

Width:  |  Height:  |  Size: 916 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>

After

Width:  |  Height:  |  Size: 690 B

View File

@@ -74,6 +74,10 @@ msgctxt "field:product.template,calibration:"
msgid "Apply calibration" msgid "Apply calibration"
msgstr "Aplica calibración" msgstr "Aplica calibración"
msgctxt "field:product.template,maintenance_required:"
msgid "Maintenance Required"
msgstr "Requiere Mantenimiento"
msgctxt "field:product.template,observation:" msgctxt "field:product.template,observation:"
msgid "Observation" msgid "Observation"
msgstr "Observación" msgstr "Observación"
@@ -134,6 +138,10 @@ msgctxt "field:product.template,uncertainy_pattern:"
msgid "Uncertainy Pattern" msgid "Uncertainy Pattern"
msgstr "Incertidumbre Patrón" msgstr "Incertidumbre Patrón"
msgctxt "field:product.template,use_pattern:"
msgid "Use Pattern"
msgstr "Patrón Utilizado"
msgctxt "field:product.template,k_pattern:" msgctxt "field:product.template,k_pattern:"
msgid "K Pattern" msgid "K Pattern"
msgstr "Patrón K" msgstr "Patrón K"
@@ -158,6 +166,10 @@ msgctxt "field:product.template,k_pattern_list:"
msgid "List of patterns K" msgid "List of patterns K"
msgstr "Lista de patrones K" msgstr "Lista de patrones K"
msgctxt "field:product.template,preventive_activities:"
msgid "Preventive Activities"
msgstr "Actividades Preventivas"
msgctxt "field:optical_equipment.configuration,equipment_sequence:" msgctxt "field:optical_equipment.configuration,equipment_sequence:"
msgid "Equipment Sequence" msgid "Equipment Sequence"
msgstr "Secuencia de Equipos" msgstr "Secuencia de Equipos"
@@ -351,8 +363,16 @@ msgid "Serials"
msgstr "Seriales" msgstr "Seriales"
msgctxt "model:ir.ui.menu,name:menu_maintenance_form" msgctxt "model:ir.ui.menu,name:menu_maintenance_form"
msgid "Maintenances" msgid "Maintenance Lines"
msgstr "Mantenimientos" msgstr "Líneas de Mantenimiento"
msgctxt "model:ir.ui.menu,name:menu_properties_equipments"
msgid "Properties of Equipments"
msgstr "Propiedades de Equipos"
msgctxt "model:ir.ui.menu,name:menu_pattern"
msgid "Pattern Use"
msgstr "Patrónes de Calibración"
msgctxt "model:ir.sequence,name:sequence_equipment" msgctxt "model:ir.sequence,name:sequence_equipment"
msgid "Equipment" msgid "Equipment"
@@ -654,6 +674,18 @@ msgctxt "field:optical_equipment_maintenance.service,code:"
msgid "Code" msgid "Code"
msgstr "Código" msgstr "Código"
msgctxt "field:optical_equipment_maintenance.service,technician_responsible:"
msgid "Technician Responsible"
msgstr "Técnico Reponsable"
msgctxt "field:optical_equipment_maintenance.service,invima:"
msgid "Invima"
msgstr "Invima"
msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
msgid "Initial"
msgstr "Inicial"
msgctxt "selection:optical_equipment.maintenance,maintenance_type:" msgctxt "selection:optical_equipment.maintenance,maintenance_type:"
msgid "Preventive" msgid "Preventive"
msgstr "Preventivo" msgstr "Preventivo"
@@ -666,6 +698,10 @@ msgctxt "field:optical_equipment.maintenance,description_activity:"
msgid "Activity" msgid "Activity"
msgstr "Descripción del Mantenimiento" msgstr "Descripción del Mantenimiento"
msgctxt "field:optical_equipment.maintenance,equipment_calibrate:"
msgid "Calibrate Equipment"
msgstr "Equipo Calibrable"
msgctxt "field:optical_equipment.maintenance,temperature_min:" msgctxt "field:optical_equipment.maintenance,temperature_min:"
msgid "Temp Min" msgid "Temp Min"
msgstr "Temp Min" msgstr "Temp Min"
@@ -686,6 +722,50 @@ msgctxt "field:optical_equipment.maintenance,moisture_uom:"
msgid "Moisture UOM" msgid "Moisture UOM"
msgstr "Humedad UOM" msgstr "Humedad UOM"
msgctxt "field:optical_equipment.maintenance.line,line_replace:"
msgid "Replace"
msgstr "Repuesto"
msgctxt "field:optical_equipment.maintenance.line,line_maintenance_activity:"
msgid "Maintenance Activity"
msgstr "Actividad de Mantenimiento"
msgctxt "field:optical_equipment.maintenance.line,maintenance:"
msgid "Maintenance"
msgstr "Mantenimiento"
msgctxt "field:optical_equipment.maintenance.line,replacement:"
msgid "Replacement"
msgstr "Reemplazo"
msgctxt "field:optical_equipment.maintenance.line,maintenance_activity:"
msgid "Maintenance activity"
msgstr "Actividad de Mantenimiento"
msgctxt "field:optical_equipment.maintenance.line,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:optical_equipment.maintenance.line,actual_quantity:"
msgid "Actual Quantity"
msgstr "Cantidad Actual"
msgctxt "field:optical_equipment.maintenance.line,unit:"
msgid "Unit"
msgstr "Unidad"
msgctxt "field:optical_equipment.maintenance.line,product_uom_category:"
msgid "Product Uom Category"
msgstr "Categoría de unidad de producto"
msgctxt "field:optical_equipment.maintenance.line,description:"
msgid "Description"
msgstr "Detalles"
msgctxt "field:optical_equipment.maintenance.line,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:optical_equipment.maintenance,temperature_uom:" msgctxt "field:optical_equipment.maintenance,temperature_uom:"
msgid "Temperature UOM" msgid "Temperature UOM"
msgstr "Temperatura UOM" msgstr "Temperatura UOM"
@@ -702,6 +782,10 @@ msgctxt "field:sale.sale,quote_number:"
msgid "Quote Number" msgid "Quote Number"
msgstr "Cotización #" msgstr "Cotización #"
msgctxt "field:sale.sale,payment_term_description:"
msgid "Payment Term"
msgstr "Plazo de Pago"
msgctxt "field:sale.sale,description:sale." msgctxt "field:sale.sale,description:sale."
msgid "Description" msgid "Description"
msgstr "Tiempo de Entrega" msgstr "Tiempo de Entrega"
@@ -726,6 +810,18 @@ msgctxt "field:optical_equipment_maintenance.service,maintenance_type:"
msgid "Maintenance Type" msgid "Maintenance Type"
msgstr "Tipo de Mantenimiento" msgstr "Tipo de Mantenimiento"
msgctxt "selection:optical_equipment_maintenance.service,maintenance_type:"
msgid "Initial"
msgstr "Inicial"
msgctxt "selection:optical_equipment_maintenance.service,maintenance_type:"
msgid "Preventive"
msgstr "Preventivo"
msgctxt "selection:optical_equipment_maintenance.service,maintenance_type:"
msgid "Corrective"
msgstr "Correctivo"
msgctxt "field:optical_equipment_maintenance.service,propietary:" msgctxt "field:optical_equipment_maintenance.service,propietary:"
msgid "Propietary" msgid "Propietary"
msgstr "Propietario" msgstr "Propietario"
@@ -782,12 +878,8 @@ msgctxt "field:optical_equipment_maintenance.service,moisture_uom:"
msgid "Moisture UOM" msgid "Moisture UOM"
msgstr "Humedad UOM" msgstr "Humedad UOM"
msgctxt "field:party.party,client_type:" msgctxt "field:party.party,customer_type:"
msgid "Client type" msgid "Customer type"
msgstr "Tipo de Cliente"
msgctxt "field:party.party,client_type:"
msgid "Client type"
msgstr "Tipo de Cliente" msgstr "Tipo de Cliente"
msgctxt "field:product.template,software_required:" msgctxt "field:product.template,software_required:"
@@ -1138,6 +1230,14 @@ msgctxt "selection:optical_equipment.maintenance,state:"
msgid "Finished" msgid "Finished"
msgstr "Finalizado" msgstr "Finalizado"
msgctxt "model:ir.model.button,string:assing_agended_button"
msgid "Assing Agended"
msgstr "Agendar"
msgctxt "model:ir.model.button,string:reassing_agended_button"
msgid "Reassing Agended"
msgstr "Reagendar"
msgctxt "model:ir.model.button,string:maintenance_service_draft_button" msgctxt "model:ir.model.button,string:maintenance_service_draft_button"
msgid "Draft" msgid "Draft"
msgstr "Borrador" msgstr "Borrador"
@@ -1330,6 +1430,10 @@ msgctxt "field:optical_equipment_create.contract,end_date:"
msgid "End Date" msgid "End Date"
msgstr "Fecha Final" msgstr "Fecha Final"
msgctxt "field:optical_equipment_create.contract,unit_price:"
msgid "Unit Price"
msgstr "Precio Unitario"
msgctxt "field:stock.move,equipment:" msgctxt "field:stock.move,equipment:"
msgid "Equipment" msgid "Equipment"
msgstr "Equipo" msgstr "Equipo"
@@ -1379,6 +1483,34 @@ msgctxt "field:stock.shipment.out,service_maintenance_initial:"
msgid "Maintenance Initial" msgid "Maintenance Initial"
msgstr "Mantenimiento Inicial" msgstr "Mantenimiento Inicial"
msgctxt "field:optical_equipment.print_balance_sale_party.start,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:optical_equipment.print_balance_sale_party.start,party:"
msgid "Party"
msgstr "Tercero"
msgctxt "field:optical_equipment.print_balance_sale_party.start,start_period:"
msgid "Start Period"
msgstr "Periodo Inicial"
msgctxt "field:optical_equipment.print_balance_sale_party.start,end_period:"
msgid "End Period"
msgstr "Periodo Final"
msgctxt "field:optical_equipment.print_balance_sale_party.start,party_type:"
msgid "Party Type"
msgstr "Tipo"
msgctxt "selection:optical_equipment.print_balance_sale_party.start,party_type:"
msgid "Customer"
msgstr "Cliente"
msgctxt "model:ir.ui.menu,name:menu_print_balance_sale_party"
msgid "Print Balance Sale by Party"
msgstr "Estado de Cuenta por Tercero"
msgctxt "model:ir.model.button,string:maintenance_initial_button" msgctxt "model:ir.model.button,string:maintenance_initial_button"
msgid "Maintenance Initial" msgid "Maintenance Initial"
msgstr "Mantenimiento Inicial" msgstr "Mantenimiento Inicial"
@@ -1407,10 +1539,18 @@ msgctxt "model:ir.action,name:report_calibration"
msgid "Calibration" msgid "Calibration"
msgstr "Calibración" msgstr "Calibración"
msgctxt "model:ir.action,name:report_calibrations"
msgid "Calibrations"
msgstr "Calibraciones"
msgctxt "model:ir.action,name:report_maintenance_timeline" msgctxt "model:ir.action,name:report_maintenance_timeline"
msgid "Time Line Maintenance Service" msgid "Time Line Maintenance Service"
msgstr "Cronograma de Mantenimiento" msgstr "Cronograma de Mantenimiento"
msgctxt "model:ir.action,name:report_service"
msgid "Service"
msgstr "Registro de Mantenimiento Preventivo"
msgctxt "model:ir.action,name:report_equipment" msgctxt "model:ir.action,name:report_equipment"
msgid "Equipment" msgid "Equipment"
msgstr "Hoja de Vida" msgstr "Hoja de Vida"
@@ -1419,6 +1559,10 @@ msgctxt "model:ir.action,name:report_history_maintenance"
msgid "Maintenance History" msgid "Maintenance History"
msgstr "Historico de Mantenimiento" msgstr "Historico de Mantenimiento"
msgctxt "model:ir.action,name:report_historys_maintenances"
msgid "Maintenances Historys"
msgstr "Historicos de Mantenimiento"
msgctxt "model:ir.action,name:report_capacitation" msgctxt "model:ir.action,name:report_capacitation"
msgid "Capacitation" msgid "Capacitation"
msgstr "Certificado de Capacitación" msgstr "Certificado de Capacitación"
@@ -1433,4 +1577,21 @@ msgstr "Cambiar Propietario al Servicio de Mantenimiento"
msgctxt "model:ir.action,name:maintenance_create_contract" msgctxt "model:ir.action,name:maintenance_create_contract"
msgid "Create Contract" msgid "Create Contract"
msgstr "Crear Contrato" msgstr "Crear Contrato"
msgctxt "model:optical_equipment.use_pattern,name_pattern:schematic_eye"
msgid "Schematic Eye"
msgstr "Ojo Esquemático"
msgctxt "model:optical_equipment.use_pattern,name_pattern:trial_lens"
msgid "Trial Lens"
msgstr "Lentes de Prueba"
msgctxt "model:optical_equipment.use_pattern,name_pattern:calibration_weights"
msgid "Calibration Weights"
msgstr "Pesas de Calibración"
msgctxt "model:optical_equipment.use_pattern,name_pattern:calibration_spheres"
msgid "Calibration Spheres"
msgstr "Esferas de Calibración"

File diff suppressed because it is too large Load Diff

View File

@@ -3,32 +3,12 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<data> <data>
<record model="ir.action.act_window" id="act_maintenance_form">
<field name="name">Maintenances</field>
<field name="res_model">optical_equipment.maintenance</field>
<field name="search_value"></field>
</record>
<record model="ir.ui.view" id= "maintenance_view_tree">
<field name="model">optical_equipment.maintenance</field>
<field name="type">tree</field>
<field name="name">maintenance_tree</field>
</record>
<record model="ir.ui.view" id="maintenance_view_form">
<field name="model">optical_equipment.maintenance</field>
<field name="type">form</field>
<field name="name">maintenance_form</field>
</record>
<record model="ir.ui.view" id="change_propietary_maintenance_view_form">
<field name="model">optical_equipment.change_propietary_maintenance.form</field>
<field name="type">form</field>
<field name="name">change_propietary_maintenance_form</field>
</record>
<record model="ir.action.act_window" id="act_maintenance_service_form"> <record model="ir.action.act_window" id="act_maintenance_service_form">
<field name="name">Services Maintenance</field> <field name="name">Services Maintenance</field>
<field name="res_model">optical_equipment_maintenance.service</field> <field name="res_model">optical_equipment_maintenance.service</field>
<field name="search_value"></field> <field name="search_value"></field>
</record> </record>
<record model="ir.ui.view" id= "maintenance_service_view_tree"> <record model="ir.ui.view" id="maintenance_service_view_tree">
<field name="model">optical_equipment_maintenance.service</field> <field name="model">optical_equipment_maintenance.service</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="name">maintenance_service_tree</field> <field name="name">maintenance_service_tree</field>
@@ -38,87 +18,16 @@
<field name="type">form</field> <field name="type">form</field>
<field name="name">maintenance_service_form</field> <field name="name">maintenance_service_form</field>
</record> </record>
<record model="ir.ui.view" id= "maintenance_equipment_view_form"> <record model="ir.action.act_window.view" id="act_maintenance_service_view1">
<field name="model">optical_equipment.maintenance-optical_equipment.equipment</field>
<field name="inherit" ref="maintenance_view_form"/>
<field name="name">maintenance_equipment_form</field>
</record>
<record model="ir.ui.view" id="maintenance_activity_view_form">
<field name="model">optical_equipment_maintenance.activity</field>
<field name="type">form</field>
<field name="name">maintenance_activity_form</field>
</record>
<record model="ir.ui.view" id="maintenance_activity_view_tree">
<field name="model">optical_equipment_maintenance.activity</field>
<field name="type">tree</field>
<field name="priority" eval="10"/>
<field name="name">maintenance_activity_tree</field>
</record>
<record model="ir.action.act_window.view" id="act_maintenance_view1">
<field name="sequence" eval="10"/> <field name="sequence" eval="10"/>
<field name="view" ref="maintenance_view_tree"/> <field name="view" ref="maintenance_service_view_tree"/>
<field name="act_window" ref="act_maintenance_form"/> <field name="act_window" ref="act_maintenance_service_form"/>
</record> </record>
<record model="ir.action.act_window.view" id="act_maintenance_view2"> <record model="ir.action.act_window.view" id="act_maintenance_service_view2">
<field name="sequence" eval="20"/> <field name="sequence" eval="20"/>
<field name="view" ref="maintenance_view_form"/> <field name="view" ref="maintenance_service_view_form"/>
<field name="act_window" ref="act_maintenance_form"/> <field name="act_window" ref="act_maintenance_service_form"/>
</record> </record>
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_draft">
<field name="name">Draft</field>
<field name="sequence" eval="10"/>
<field name="domain"
eval="[('state', '=', 'draft')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_finished">
<field name="name">Finished</field>
<field name="sequence" eval="40"/>
<field name="domain"
eval="[('state', '=', 'finished')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_all">
<field name="name">All</field>
<field name="sequence" eval="9999"/>
<field name="domain"></field>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.model.button" id="maintenance_service_draft_button">
<field name="name">draft</field>
<field name="string">Draft</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record>
<record model="ir.model.button" id="maintenance_service_in_progress_button">
<field name="name">in_progress</field>
<field name="string">In progress</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record>
<record model="ir.model.button" id="maintenance_service_finished_button">
<field name="name">finished</field>
<field name="string">Finished</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record>
<record model="ir.model.button" id="maintenance_finished_button">
<field name="name">finished</field>
<field name="string">Finished</field>
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record>
<record model="ir.model.button" id="maintenance_samples_button">
<field name="name">samples</field>
<field name="string">Generate Samples</field>
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record>
<record model="ir.model.button" id="maintenance_calibrate_button">
<field name="name">calibrate</field>
<field name="string">Calibrate</field>
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_draft"> <record model="ir.action.act_window.domain" id="act_maintenance_service_form_domain_draft">
<field name="name">Draft</field> <field name="name">Draft</field>
<field name="sequence" eval="10"/> <field name="sequence" eval="10"/>
@@ -170,6 +79,76 @@
<field name="domain"></field> <field name="domain"></field>
<field name="act_window" ref="act_maintenance_service_form"/> <field name="act_window" ref="act_maintenance_service_form"/>
</record> </record>
<record model="ir.action.act_window" id="act_maintenance_form">
<field name="name">Maintenance Lines</field>
<field name="res_model">optical_equipment.maintenance</field>
<field name="search_value"></field>
</record>
<record model="ir.ui.view" id= "maintenance_view_tree">
<field name="model">optical_equipment.maintenance</field>
<field name="type">tree</field>
<field name="name">maintenance_tree</field>
</record>
<record model="ir.ui.view" id="maintenance_view_form">
<field name="model">optical_equipment.maintenance</field>
<field name="type">form</field>
<field name="name">maintenance_form</field>
</record>
<record model="ir.action.act_window.view" id="act_maintenance_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="maintenance_view_tree"/>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.action.act_window.view" id="act_maintenance_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="maintenance_view_form"/>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.ui.view" id="change_propietary_maintenance_view_form">
<field name="model">optical_equipment.change_propietary_maintenance.form</field>
<field name="type">form</field>
<field name="name">change_propietary_maintenance_form</field>
</record>
<record model="ir.ui.view" id= "maintenance_equipment_view_form">
<field name="model">optical_equipment.maintenance-optical_equipment.equipment</field>
<field name="type">form</field>
<field name="name">maintenance_equipment_form</field>
</record>
<record model="ir.ui.view" id="maintenance_activity_view_form">
<field name="model">optical_equipment_maintenance.activity</field>
<field name="type">form</field>
<field name="name">maintenance_activity_form</field>
</record>
<record model="ir.ui.view" id="maintenance_activity_view_tree">
<field name="model">optical_equipment_maintenance.activity</field>
<field name="type">tree</field>
<field name="priority" eval="10"/>
<field name="name">maintenance_activity_tree</field>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_draft">
<field name="name">Draft</field>
<field name="sequence" eval="10"/>
<field name="domain"
eval="[('state', '=', 'draft')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_finished">
<field name="name">Finished</field>
<field name="sequence" eval="40"/>
<field name="domain"
eval="[('state', '=', 'finished')]"
pyson="1"/>
<field name="count" eval="True"/>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.action.act_window.domain" id="act_maintenance_form_domain_all">
<field name="name">All</field>
<field name="sequence" eval="9999"/>
<field name="domain"></field>
<field name="act_window" ref="act_maintenance_form"/>
</record>
<record model="ir.ui.view" id="maintenance_line_view_form"> <record model="ir.ui.view" id="maintenance_line_view_form">
<field name="model">optical_equipment.maintenance.line</field> <field name="model">optical_equipment.maintenance.line</field>
<field name="type">form</field> <field name="type">form</field>
@@ -180,72 +159,76 @@
<field name="type">tree</field> <field name="type">tree</field>
<field name="name">maintenance_line_tree</field> <field name="name">maintenance_line_tree</field>
</record> </record>
<record model="ir.ui.view" id="maintenance_calibration_view_form"> <record model="ir.model.button" id="assing_agended_button">
<field name="model">optical_equipment.maintenance.calibration_sample</field> <field name="name">assing_agended</field>
<field name="type">form</field> <field name="string">Assing Agended</field>
<field name="name">maintenance_sample_form</field> <field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record>
<record 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.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>
<record model="ir.action.wizard" id="act_assing_agended"> <record model="ir.model.button" id="reassing_agended_button">
<field name="name">Assing Agended</field> <field name="name">reassing_agended</field>
<field name="wiz_name">optical_equipment_maintenance.assing_agended</field> <field name="string">Reassing Agended</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record> </record>
<record model="ir.ui.view" id="reassing_agended_view_form"> <record model="ir.model.button" id="maintenance_service_draft_button">
<field name="model">optical_equipment_maintenance.reagended</field> <field name="name">draft</field>
<field name="type">form</field> <field name="string">Draft</field>
<field name="name">reassing_agended_form</field> <field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record> </record>
<record model="ir.action.wizard" id="act_reassing_agended"> <record model="ir.model.button" id="maintenance_service_in_progress_button">
<field name="name">ReAssing Agended</field> <field name="name">in_progress</field>
<field name="wiz_name">optical_equipment_maintenance.reassing_agended</field> <field name="string">In progress</field>
<field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record> </record>
<record model="ir.ui.view" id="create_contract_view_form"> <record model="ir.model.button" id="maintenance_service_finished_button">
<field name="model">optical_equipment_create.contract</field> <field name="name">finished</field>
<field name="type">form</field> <field name="string">Finished</field>
<field name="name">create_contract_form</field> <field name="model" search="[('model', '=', 'optical_equipment_maintenance.service')]"/>
</record> </record>
<record model="ir.action.wizard" id="maintenance_create_contract"> <record model="ir.model.button" id="maintenance_in_progress_button">
<field name="name">Create Contract</field> <field name="name">in_progress</field>
<field name="wiz_name">optical_equipment.maintenance.contract</field> <field name="string">In progress</field>
<field name="model">optical_equipment_maintenance.service</field> <field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record> </record>
<record model="ir.action.keyword" id="maintenance_create_contract_keyword">
<field name="keyword">form_action</field> <record model="ir.model.button" id="maintenance_finished_button">
<field name="model">optical_equipment_maintenance.service,-1</field> <field name="name">finished</field>
<field name="action" ref="maintenance_create_contract"/> <field name="string">Finished</field>
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record>
<record model="ir.model.button" id="maintenance_samples_button">
<field name="name">samples</field>
<field name="string">Generate Samples</field>
<field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
</record> </record>
<record model="ir.action.report" id="report_calibration"> <record model="ir.model.button" id="maintenance_calibrate_button">
<field name="name">Calibration</field> <field name="name">calibrate</field>
<field name="model">optical_equipment.maintenance</field> <field name="string">Calibrate</field>
<field name="report_name">optical_equipment.maintenance</field> <field name="model" search="[('model', '=', 'optical_equipment.maintenance')]"/>
<field name="report">optical_equipment/report/Calibration.fodt</field> </record>
<record model="ir.action.report" id="report_service">
<field name="name">Service</field>
<field name="model">optical_equipment_maintenance.service</field>
<field name="report_name">optical_equipment_maintenance.service</field>
<field name="report">optical_equipment/report/Service.fodt</field>
<field name="single" eval="True"/> <field name="single" eval="True"/>
</record> </record>
<record model="ir.action.keyword" id="report_calibration_keyword"> <record model="ir.action.keyword" id="report_service_keyword">
<field name="keyword">form_print</field> <field name="keyword">form_print</field>
<field name="model">optical_equipment.maintenance,-1</field> <field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="report_calibration"/> <field name="action" ref="report_service"/>
</record> </record>
<record model="ir.action.report" id="report_cvs">
<field name="name">Hojas de Vida</field>
<field name="model">optical_equipment_maintenance.service</field>
<field name="report_name">optical_equipment_maintenance.service</field>
<field name="report">optical_equipment/report/CVS_Equipments.fodt</field>
<field name="single" eval="True"/>
</record>
<record model="ir.action.keyword" id="report_cvs_keyword">
<field name="keyword">form_print</field>
<field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="report_cvs"/>
</record>
<record 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>
<field name="model">optical_equipment.maintenance</field> <field name="model">optical_equipment.maintenance</field>
@@ -270,6 +253,18 @@
<field name="model">optical_equipment_maintenance.service,-1</field> <field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="report_maintenance_timeline"/> <field name="action" ref="report_maintenance_timeline"/>
</record> </record>
<record model="ir.action.report" id="report_historys_maintenances">
<field name="name">Maintenances Historys</field>
<field name="model">optical_equipment_maintenance.service</field>
<field name="report_name">optical_equipment_maintenance.service</field>
<field name="report">optical_equipment/report/Maintenances_Historys.fodt</field>
<field name="single" eval="True"/>
</record>
<record model="ir.action.keyword" id="report_historys_maintenances_keyword">
<field name="keyword">form_print</field>
<field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="report_historys_maintenances"/>
</record>
<record model="ir.action.wizard" id="equipment_change_propietary_maintenance"> <record model="ir.action.wizard" id="equipment_change_propietary_maintenance">
<field name="name">Change Propietary Maintenance</field> <field name="name">Change Propietary Maintenance</field>
<field name="wiz_name">optical_equipment.change_propietary_maintenance</field> <field name="wiz_name">optical_equipment.change_propietary_maintenance</field>
@@ -280,21 +275,20 @@
<field name="model">optical_equipment_maintenance.service,-1</field> <field name="model">optical_equipment_maintenance.service,-1</field>
<field name="action" ref="equipment_change_propietary_maintenance"/> <field name="action" ref="equipment_change_propietary_maintenance"/>
</record> </record>
<record model="ir.ui.icon" id="optical_equipment_health_icon">
<field name="name">equipment_health</field>
<field name="path">icons/heart-pulse-solid.svg</field>
</record>
<menuitem parent="menu_equipment" <menuitem parent="menu_equipment"
action="act_maintenance_service_form" action="act_maintenance_service_form"
sequence="20" sequence="20"
id="menu_maintenance_service_form"/> id="menu_maintenance_service_form"
icon="equipment_health"/>
<menuitem parent="menu_maintenance_service_form" <menuitem parent="menu_maintenance_service_form"
action="act_maintenance_form" action="act_maintenance_form"
sequence="30" sequence="30"
id="menu_maintenance_form"/> id="menu_maintenance_form"
<menuitem parent="menu_diary" icon="equipment_health"/>
action="act_assing_agended"
sequence="30"
id="menu_assing_agended_form"/>
<menuitem parent="menu_diary"
action="act_reassing_agended"
sequence="40"
id="menu_reassing_agended_form"/>
</data> </data>
</tryton> </tryton>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="msg_invalid_number_purchases">
<field name="text">Please, select only one purchase.</field>
</record>
<record model="ir.message" id="msg_serial_unique">
<field name="text">The serial number of equipment, should be unique.</field>
</record>
<record model="ir.message" id="msg_not_sequence_equipment">
<field name="text">You do not have a sequence assigned for equipments</field>
</record>
</data>
</tryton>

16
messages.xml Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="line_without_serial">
<field name="text">La linea de envio se encuentra sin serial. Debe asignar un equipo a cada linea correspondiente.</field>
</record>
<record model="ir.message" id="msg_not_sequence_equipment">
<field name="text">Asigne una secuencia para enumerar equipos.</field>
</record>
<record model="ir.message" id="msg_finished_mantenance_service">
<field name="text">Debe finalizar las líneas de Mantenimiento Primero.</field>
</record>
</data>
</tryton>

374
move.py
View File

@@ -1,32 +1,89 @@
from trytond.model import fields, ModelSQL, ModelView, Workflow, dualmethod from trytond.model import fields, ModelView, Workflow
from trytond.modules.company import CompanyReport from trytond.modules.company import CompanyReport
from trytond.modules.company.model import employee_field, set_employee from trytond.modules.company.model import set_employee
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval, If from trytond.pyson import Eval, If
from trytond.exceptions import UserError from trytond.exceptions import UserError
from itertools import groupby from itertools import groupby
from trytond.transaction import Transaction from trytond.transaction import Transaction, without_check_access
from trytond.model.exceptions import ValidationError
from trytond.i18n import gettext
from functools import wraps
def process_sale(moves_field):
def _process_sale(func):
@wraps(func)
def wrapper(cls, shipments):
pool = Pool()
Sale = pool.get('sale.sale')
transaction = Transaction()
context = transaction.context
with without_check_access():
sales = set(
m.sale
for s in cls.browse(shipments)
for m in getattr(s, moves_field)
if m.sale
)
func(cls, shipments)
if sales:
with transaction.set_context(
queue_batch=context.get('queue_batch', True)
):
Sale.__queue__.process(sales)
return wrapper
return _process_sale
class Move(metaclass=PoolMeta): class Move(metaclass=PoolMeta):
"Stock Move" 'Stock Move'
__name__ = "stock.move" __name__ = 'stock.move'
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", _states = {
domain=[('state', '=', 'registred'), 'invisible': ~Eval('product_equipment'),
('product','=', Eval('product')) 'readonly': (Eval('state').in_(['cancelled', 'done'])),
], }
states={'invisible': If(~Eval('product_equipment'), True),
'readonly': (Eval('state').in_(['cancelled', 'done'])),}, product_equipment = fields.Function(
depends=['product_equipment']) fields.Boolean('It Equipment'), 'get_product_equipment'
equipment_serial = fields.Function(fields.Char('Serial', )
states={'readonly': True,
'invisible': If(~Eval('product_equipment'), True)}, return_equipment = fields.Boolean(
depends=['product_equipment']), 'Devolución',
'get_equipment_serial') states=_states)
product_equipment = fields.Function(fields.Boolean("It Equipment"),'get_product_equipment')
equipment = fields.Many2One(
'optical_equipment.equipment',
'Equipment',
domain=[
If(
Eval('return_equipment', True),
('state', 'in', ['uncontrated', 'contrated']),
('state', '=', 'registred'),
),
('product', '=', Eval('product')),
],
states=_states,
depends=['product_equipment'],
)
equipment_serial = fields.Function(
fields.Char(
'Serial',
states=_states,
depends=['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):
if self.product.equipment: if self.product.equipment:
@@ -40,15 +97,8 @@ class Move(metaclass=PoolMeta):
return self.equipment.serial return self.equipment.serial
else: else:
return None return None
@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']) @fields.depends('equipment', methods=['get_equipment_serial'])
def on_change_equipment(self): def on_change_equipment(self):
if self.equipment: if self.equipment:
self.product = self.equipment.product.id self.product = self.equipment.product.id
@@ -58,69 +108,95 @@ class Move(metaclass=PoolMeta):
class ShipmentOut(metaclass=PoolMeta): class ShipmentOut(metaclass=PoolMeta):
"Customer Shipment" 'Customer Shipment'
__name__ = 'stock.shipment.out' __name__ = 'stock.shipment.out'
service_maintenance_initial = fields.Boolean('Maintenance Initial', states={'readonly': True}) service_maintenance_initial = fields.Boolean(
'Maintenance Initial', states={'readonly': True}
)
sale_type = fields.Char('Type sale origin') sale_type = fields.Char('Type sale origin')
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
super(ShipmentOut, cls).__setup__() super(ShipmentOut, cls).__setup__()
cls._buttons.update({ cls._buttons.update(
'maintenance_initial': { {
'invisible': ((Eval('service_maintenance_initial',True)) 'maintenance_initial': {
| (Eval('sale_type').in_(['maintenance', 'replaces'])))} 'invisible': (
}) (Eval('service_maintenance_initial', True))
| (Eval('sale_type').in_(['maintenance', 'replaces']))
)
}
}
)
@classmethod @classmethod
def view_attributes(cls): def view_attributes(cls):
return super(ShipmentOut, cls).view_attributes() + [ return super(ShipmentOut, cls).view_attributes() + [
('//page[@name="inventory_moves"]', 'states', { (
'invisible': False, "//page[@name='inventory_moves']",
}),] 'states',
{
'invisible': False,
},
),
]
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('done') @Workflow.transition('done')
@set_employee('done_by') @set_employee('done_by')
@process_sale('outgoing_moves')
def done(cls, shipments): def done(cls, shipments):
pool = Pool() pool = Pool()
Move = pool.get('stock.move') Move = pool.get('stock.move')
Date = pool.get('ir.date') Date = pool.get('ir.date')
Locations = pool.get('stock.location')
Equipments = pool.get('optical_equipment.equipment') Equipments = pool.get('optical_equipment.equipment')
for shipment in shipments: for shipment in shipments:
for move in shipment.inventory_moves: for move in shipment.inventory_moves:
count = 0 count = 0
if move.equipment: if not move.equipment:
equipment = move.equipment count += 1
Id = equipment.id continue
equipment = Equipments.search(['id', '=',Id])[0]
equipment.propietary = shipment.customer.id equipment = move.equipment
equipment.propietary_address= shipment.delivery_address.id Id = equipment.id
equipment.state="uncontrated" equipment = Equipments.search(['id', '=', Id])[0]
equipment.shipment_destination = shipment equipment.propietary = shipment.customer.id
equipment.sale_destination = shipment.outgoing_moves[count].origin equipment.propietary_address = shipment.delivery_address.id
equipment.propietarys += (shipment.customer,) equipment.location = Locations.search(
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12" ['name', '=', 'Customer'])[0].id
count+=1 equipment.state = 'uncontrated'
equipment.save() equipment.shipment_destination = shipment
else: equipment.sale_destination =\
count+=1 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([ Move.delete([
m for s in shipments for m in s.outgoing_moves m for s in shipments
if m.state == 'staging']) for m in s.outgoing_moves
if m.state == 'staging'
])
Move.do([m for s in shipments for m in s.outgoing_moves]) Move.do([m for s in shipments for m in s.outgoing_moves])
for company, c_shipments in groupby( iterator = groupby(shipments, key=lambda s: s.company)
shipments, key=lambda s: s.company): for company, c_shipments in iterator:
with Transaction().set_context(company=company.id): with Transaction().set_context(company=company.id):
today = Date.today() today = Date.today()
cls.write([s for s in c_shipments if not s.effective_date], { cls.write(
[s for s in c_shipments if not s.effective_date],
{
'effective_date': today, 'effective_date': today,
}) },
)
@classmethod @classmethod
@ModelView.button @ModelView.button
@@ -128,63 +204,99 @@ class ShipmentOut(metaclass=PoolMeta):
pool = Pool() pool = Pool()
MaintenanceService = pool.get('optical_equipment_maintenance.service') MaintenanceService = pool.get('optical_equipment_maintenance.service')
Maintenance = pool.get('optical_equipment.maintenance') Maintenance = pool.get('optical_equipment.maintenance')
SaleLine = pool.get('sale.line')
Equipments = pool.get('optical_equipment.equipment')
for shipment in shipments: for shipment in shipments:
sale_origin = shipment.outgoing_moves[0].origin.sale.id
saleLine = SaleLine(
type='line',
quantity=1,
unit_price=0,
sale=sale_origin)
saleLine.save()
maintenanceService = MaintenanceService(
sale_date=shipment.outgoing_moves[0].origin.sale.sale_date,
sale_origin=saleLine,
maintenance_type='initial',
propietary=shipment.customer.id,
propietary_address=shipment.delivery_address.id,
state='draft')
maintenanceService.save()
serial = False serial = False
number_equipments = 0
maintenance_required = 0
for move in shipment.inventory_moves: for move in shipment.inventory_moves:
if move.product_equipment and move.equipment: if move.product_equipment and move.equipment:
serial = True serial = True
number_equipments += 1
if move.equipment.product.maintenance_required:
maintenance_required += 1
elif not move.product_equipment: elif not move.product_equipment:
serial = True serial = True
else: else:
serial = False serial = False
if serial == True: if number_equipments < 1 or maintenance_required < 1:
for move in shipment.inventory_moves:
if move.product_equipment and move.equipment:
maintenance = Maintenance(
service_maintenance=maintenanceService.id,
maintenance_type='initial',
propietary=shipment.customer.id,
equipment_calibrate= True if move.equipment.product.calibration else False,
propietary_address=shipment.delivery_address.id,
equipment=move.equipment.id,
initial_operation = move.equipment.product.initial_operation,
check_equipment = move.equipment.product.template.check_equipment,
check_electric_system = move.equipment.product.template.check_electric_system,
clean_int_ext = move.equipment.product.template.clean_int_ext,
clean_eyes = move.equipment.product.template.clean_eyes,
check_calibration = move.equipment.product.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()
shipment.service_maintenance_initial = True shipment.service_maintenance_initial = True
shipment.save() 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: else:
raise UserError(str('Por favor Primero debe Asignar un serial a todos los Equipos.')) 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:
valid = \
move.product_equipment \
and move.equipment \
and move.equipment.product.template.maintenance_required
if (not valid):
continue
template = move.equipment.product.template
maintenance = Maintenance(
service_maintenance=maintenanceService.id,
maintenance_type='initial',
propietary=shipment.customer.id,
equipment_calibrate=(
True if move.equipment.product.calibration else False
),
propietary_address=shipment.delivery_address.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()
shipment.service_maintenance_initial = True
shipment.save()
@classmethod
@ModelView.button
@Workflow.transition('picked')
@set_employee('picked_by')
def pick(cls, shipments):
super(ShipmentOut, cls).pick(shipments)
for shipment in shipments:
for line in shipment.inventory_moves:
if line.product.equipment and not line.equipment:
raise ValidationError(
gettext("optical_equipment.line_without_serial"))
class ShipmentInternal(metaclass=PoolMeta): class ShipmentInternal(metaclass=PoolMeta):
@@ -205,20 +317,57 @@ class ShipmentInternal(metaclass=PoolMeta):
if move.equipment: if move.equipment:
move.equipment.location = shipment.to_location move.equipment.location = shipment.to_location
move.equipment.save() move.equipment.save()
Move.do([m for s in shipments for m in s.incoming_moves]) Move.do([m for s in shipments for m in s.incoming_moves])
cls.write([s for s in shipments if not s.effective_date], { cls.write(
'effective_date': Date.today(),}) [s for s in shipments if not s.effective_date],
{
'effective_date': Date.today(),
},
)
class ShipmentOutReturn(metaclass=PoolMeta): class ShipmentOutReturn(metaclass=PoolMeta):
"Customer Shipment Return" 'Customer Shipment Return'
__name__ = 'stock.shipment.out.return' __name__ = 'stock.shipment.out.return'
service_maintenance_initial = fields.Boolean('Maintenance Initial', states={'readonly': True}) service_maintenance_initial = fields.Boolean(
'Maintenance Initial', states={'readonly': True}
)
sale_type = fields.Char('Type sale origin') sale_type = fields.Char('Type sale origin')
@classmethod
@ModelView.button
@Workflow.transition('received')
@set_employee('received_by')
def receive(cls, shipments):
Move = Pool().get('stock.move')
Equipments = Pool().get('optical_equipment.equipment')
Move.do([m for s in shipments for m in s.incoming_moves])
for s in shipments:
for m in s.incoming_moves:
if not m.equipment:
continue
equipment = m.equipment
Id = equipment.id
equipment = Equipments.search(['id', '=', Id])[0]
equipment.propietary = s.company.party.id
equipment.propietary_address = s.company.party.addresses[0].id
equipment.location = m.to_location.id
equipment.state = 'registred'
equipment.save()
cls.create_inventory_moves(shipments)
# Set received state to allow done transition
cls.write(shipments, {'state': 'received'})
to_do = [
s for s in shipments if s.warehouse_storage == s.warehouse_input]
if to_do:
cls.done(to_do)
class PickingListDeliveryReport(CompanyReport): class PickingListDeliveryReport(CompanyReport):
__name__ = 'stock.shipment.out.picking_list1' __name__ = 'stock.shipment.out.picking_list1'
@@ -236,6 +385,7 @@ class PickingListDeliveryReport(CompanyReport):
return context return context
class CapacitationReport(CompanyReport): class CapacitationReport(CompanyReport):
__name__ = 'stock.shipment.out.capacitation_note' __name__ = 'stock.shipment.out.capacitation_note'

View File

@@ -2,41 +2,43 @@
<!--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>
<record model="ir.ui.view" id="move_view_list_shipment"> <data>
<field name="model">stock.move</field> <record model="ir.ui.view" id="move_view_list_shipment">
<field name="inherit" ref="stock.move_view_list_shipment"/> <field name="model">stock.move</field>
<field name="name">move_list_shipment</field> <field name="inherit" ref="stock.move_view_list_shipment"/>
</record> <field name="name">move_list_shipment</field>
<record model="ir.ui.view" id="move_view_form"> </record>
<field name="model">stock.move</field> <record model="ir.ui.view" id="move_view_form">
<field name="inherit" ref="stock.move_view_form"/> <field name="model">stock.move</field>
<field name="name">move_form</field> <field name="inherit" ref="stock.move_view_form"/>
</record> <field name="name">move_form</field>
<record model="ir.model.button" id="maintenance_initial_button"> </record>
<field name="name">maintenance_initial</field> <record model="ir.model.button" id="maintenance_initial_button">
<field name="string">Maintenance Initial</field> <field name="name">maintenance_initial</field>
<field name="model" search="[('model', '=', 'stock.shipment.out')]"/> <field name="string">Maintenance Initial</field>
</record> <field name="model" search="[('model', '=', 'stock.shipment.out')]"/>
<record model="ir.action.report" id="report_shipment_out_picking_list1"> </record>
<record model="ir.action.report" id="report_shipment_out_picking_list1">
<field name="name">Acta Entrega</field> <field name="name">Acta Entrega</field>
<field name="model">stock.shipment.out</field> <field name="model">stock.shipment.out</field>
<field name="report_name">stock.shipment.out.picking_list1</field> <field name="report_name">stock.shipment.out.picking_list1</field>
<field name="report">optical_equipment/report/Delivery_Certificated.fodt</field> <field name="report">optical_equipment/report/Delivery_Certificated.fodt</field>
</record> </record>
<record model="ir.action.keyword" id="report_shipment_out_picking_list1_keyword"> <record model="ir.action.keyword" id="report_shipment_out_picking_list1_keyword">
<field name="keyword">form_print</field> <field name="keyword">form_print</field>
<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"> <record model="ir.action.report" id="report_capacitation">
<field name="name">Capacitation</field> <field name="name">Capacitation</field>
<field name="model">stock.shipment.out</field> <field name="model">stock.shipment.out</field>
<field name="report_name">stock.shipment.out.picking_list1</field> <field name="report_name">stock.shipment.out.picking_list1</field>
<field name="report">optical_equipment/report/Capacitation.fodt</field> <field name="report">optical_equipment/report/Capacitation.fodt</field>
</record> </record>
<record model="ir.action.keyword" id="report_capacitation_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">stock.shipment.out,-1</field> <field name="model">stock.shipment.out,-1</field>
<field name="action" ref="report_capacitation"/> <field name="action" ref="report_capacitation"/>
</record> </record>
</data>
</tryton> </tryton>

View File

@@ -1,12 +1,28 @@
from trytond.pool import PoolMeta # This file is part of Tryton. The COPYRIGHT file at the top level of
from trytond.model import ModelSQL, ModelView, fields # this repository contains the full copyright notices and license terms.
from . import equipment
from trytond.pool import PoolMeta
from trytond.model import fields
from trytond.pyson import Eval
_CUSTOMER_TYPE = [("ips", "IPS"), ("optica", "Optica"), ("otro", "Otro")]
_CLIENT_TYPE = [('ips', 'IPS'),
('optica', 'Optica'),
('otro', 'Otro')]
class Party(metaclass=PoolMeta): class Party(metaclass=PoolMeta):
__name__ = 'party.party' __name__ = "party.party"
client_type = fields.Selection(_CLIENT_TYPE, 'Client type') customer_type = fields.Selection(_CUSTOMER_TYPE, "Customer Type")
@classmethod
def default_customer_type(csl):
return "otro"
class Address(metaclass=PoolMeta):
__name__ = "party.address"
campus = fields.Boolean("Campus")
party_related = fields.Many2One(
"party.party", "Party Related", states={"invisible": (~Eval("campus"))}
)

View File

@@ -2,14 +2,27 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of <!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<record model="ir.ui.view" id="party_view_form"> <data>
<field name="model">party.party</field> <record model="ir.ui.view" id="party_view_tree">
<field name="inherit" ref="party.party_view_form"/>
<field name="name">party_form</field>
</record>
<record model="ir.ui.view" id="party_view_tree">
<field name="model">party.party</field> <field name="model">party.party</field>
<field name="inherit" ref="party.party_view_tree"/> <field name="inherit" ref="party.party_view_tree"/>
<field name="name">party_tree</field> <field name="name">party_tree</field>
</record> </record>
<record model="ir.ui.view" id="party_view_form">
<field name="model">party.party</field>
<field name="inherit" ref="party.party_view_form"/>
<field name="name">party_form</field>
</record>
<!-- Party Address -->
<record model="ir.ui.view" id="address_view_tree">
<field name="model">party.address</field>
<field name="inherit" ref="party.address_view_tree"/>
<field name="name">address_tree</field>
</record>
<record model="ir.ui.view" id="address_view_form">
<field name="model">party.address</field>
<field name="inherit" ref="party.address_view_form"/>
<field name="name">address_form</field>
</record>
</data>
</tryton> </tryton>

View File

@@ -1,195 +1,260 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of # This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms # this repository contains the full copyright notices and license terms
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.model import ( from trytond.model import ModelView, ModelSQL, fields
ModelView, ModelSQL, fields, Exclude)
from trytond.pyson import Bool, If, Eval, Id from trytond.pyson import Bool, If, Eval, Id
from trytond.exceptions import UserError
_RISK = [('n/a', "No aplíca"), _RISK = [
('I', 'I'), ("n/a", "No aplíca"),
('IIA', 'IIA'), ("uno", "I"),
('IIB', 'IIB')] ("dosA", "IIA"),
("dosB", "IIB")]
_USE = [('', ""), _USE = [
('medico', 'Médico'), ("", ""),
('basico', 'Basico'), ("medico", "Médico"),
('apoyo', 'Apoyo')] ("basico", "Basico"),
("apoyo", "Apoyo")]
_BIOMEDICAL_CLASS = [ _BIOMEDICAL_CLASS = [
('n/a', "No aplíca"), ("n/a", "No aplíca"),
('diagnostico', 'Diagnóstico'), ("diagnostico", "Diagnóstico"),
('rehabilitación', 'Rehabilitación')] ("rehabilitación", "Rehabilitación"),
]
_MAIN_TECNOLOGY = [ _MAIN_TECNOLOGY = [
('', ""), ("", ""),
('mecanico', 'Mecánico'), ("mecanico", "Mecánico"),
('electrico', 'Electrico'), ("electrico", "Electrico"),
('electronico', 'Electrónico'), ("electronico", "Electrónico"),
('hidraulico', 'Hidraulico'), ("hidraulico", "Hidraulico"),
('neumatico', 'Neumatico')] ("neumatico", "Neumatico"),
]
_EQUIPMENT_TYPE = [ _EQUIPMENT_TYPE = [
('', ""), ("", ""),
('mobiliario_optico', 'Mobiliario óptico'), ("mobiliario_optico", "Mobiliario óptico"),
('refraccion', 'Refracción'), ("refraccion", "Refracción"),
('medicion', 'Medicion'), ("medico", "Medicion"),
('accesorios', 'Accesorios')] ("accesorios", "Accesorios"),
]
NON_MEASURABLE = ['service'] NON_MEASURABLE = ["service"]
class Template(metaclass=PoolMeta): class Template(metaclass=PoolMeta):
'Template' "Template"
__name__ = 'product.template' __name__ = "product.template"
product = fields.Many2One('optical_equipment.maintenance', "Maintenance Activity", product = fields.Many2One(
ondelete='CASCADE', select=True) "optical_equipment.maintenance",
equipment = fields.Boolean('It is equipment', "Maintenance Activity",
states={'invisible': Eval('type', 'goods') != 'goods', ondelete="CASCADE",
},depends=['type'] )
) 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),
) },
equipment_type = fields.Selection(_EQUIPMENT_TYPE, 'Equipment type', )
states={'required': Eval('equipment', False)}, replacement = fields.Boolean(
depends=['equipment'] "Replacement",
) states={
risk = fields.Selection(_RISK, 'Type risk') "invisible": Eval("type", "goods") != "goods",
use = fields.Selection(_USE, 'Use', "readonly": If(Eval("equipment", True), True)
states={'required': Eval('equipment', False)}, | If(Eval("maintenance_activity", True), True),
depends=['equipment'] },
) )
biomedical_class = fields.Selection(_BIOMEDICAL_CLASS,'Biomedical Class',
states={'required': Eval('equipment', False)}, maintenance_required = fields.Boolean(
depends=['equipment'] "Miantenance Required",
) states={
main_tecnology = fields.Selection(_MAIN_TECNOLOGY,'Main tecnology', "invisible": (Eval("type", "goods") != "goods")}
states={'required': Eval('equipment', False)}, )
depends=['equipment'] equipment_type = fields.Selection(
) _EQUIPMENT_TYPE, "Equipment type",
states={"required": Eval("equipment", False)}
)
risk = fields.Selection(_RISK, "Type risk")
use = fields.Selection(
_USE,
"Use",
states={"required": Eval("equipment", False)},
depends={"equipment"},
)
biomedical_class = fields.Selection(
_BIOMEDICAL_CLASS,
"Biomedical Class",
states={"required": Eval("equipment", False)},
)
main_tecnology = fields.Selection(
_MAIN_TECNOLOGY, "Main tecnology",
states={"required": Eval("equipment", False)})
calibration = fields.Boolean("Apply calibration") calibration = fields.Boolean("Apply calibration")
observation = fields.Text('Observation') observation = fields.Text("Observation")
mark_category = fields.Many2One('product.category', 'Mark',
domain=[('parent', '=', None),
('accounting', '=', False)],
states={'required': Eval('equipment', False)},
depends=['equipment']
)
model_category = fields.Many2One('product.category', "Model",
domain=[('parent', '=', Eval('mark_category')),
('accounting', '=', False)],
states={'required': Eval('equipment', False)},
depends=['equipment']
)
reference_category = fields.Many2One('product.category', "Reference",
domain=[('parent', '=', Eval('model_category'))],
)
origin_country = fields.Many2One('country.country',"Origin Country")
refurbish = fields.Boolean('Refurbish')
software_required = fields.Boolean("Software Required")
software_version = fields.Char("Software version",
states={'invisible': If(~Eval('software_required'), True)},
depends=['software_required'])
#These are measurements required for the equipments, are in this place # Mark, Category, Reference
mark_category = fields.Many2One(
"product.category",
"Mark",
domain=[("parent", "=", None), ("accounting", "=", False)],
states={"required": Eval("equipment", False)},
)
model_category = fields.Many2One(
"product.category",
"Model",
domain=[
("parent", "=", Eval("mark_category")),
("accounting", "=", False)],
states={"required": Eval("equipment", False)})
reference_category = fields.Many2One(
"product.category",
"Reference",
states={
"required": (Eval("equipment", True))
},
domain=[("parent", "=", Eval("model_category"))])
# Information Equipment
origin_country = fields.Many2One("country.country", "Origin Country")
refurbish = fields.Boolean("Refurbish")
software_required = fields.Boolean("Software Required")
software_version = fields.Char(
"Software version",
states={"invisible": ~Eval("software_required", True)},
depends={"software_required"},
)
# These are measurements required for the equipments, are in this place
# for manage of class 'product.template' # for manage of class 'product.template'
temperature_min = fields.Float("Temp Min") temperature_min = fields.Float("Temp Min")
temperature_max = fields.Float("Temp Max") temperature_max = fields.Float("Temp Max")
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM', temperature_uom = fields.Many2One(
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))], "product.uom",
states={'invisible' : If(Eval('temperature_min') == None, True)}, "Temperature UOM",
depends=['itemperature_min'] domain=[
) ("category", "=", Id("optical_equipment", "uom_cat_temperature"))],
states={'invisible': (~Eval('temperature_min', True))}
)
frequency = fields.Float("Frequency") frequency = fields.Float("Frequency")
frequency_uom = fields.Many2One('product.uom', "Frequency UOM", frequency_uom = fields.Many2One(
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))], "product.uom",
states={'invisible' : If(Eval('frequency') == None, True)}, "Frequency UOM",
depends=['frequency'] domain=[
) ("category", "=", Id("optical_equipment", "uom_cat_frequency"))],
states={'invisible': (Eval('frequency', True))})
moisture_min = fields.Float("Moisture Min") moisture_min = fields.Float("Moisture Min")
moisture_max = fields.Float("Moisture Max") moisture_max = fields.Float("Moisture Max")
moisture_uom = fields.Many2One('product.uom', "Moisture UOM", moisture_uom = fields.Many2One(
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))], "product.uom",
states={'invisible' : If(Eval('moisture_min') == None, True)}, "Moisture UOM",
depends=['moisture_min'] domain=[
) ("category", "=", Id(
"optical_equipment", "uom_cat_relative_humedity"))
],
states={'invisible': (~Eval('moisture_min', True))})
electrical_equipment = fields.Boolean("Electrical Equipment") electrical_equipment = fields.Boolean("Electrical Equipment")
frequency = fields.Float("Frequency", frequency = fields.Float(
states={'invisible': ~Bool(Eval('electrical_equipment'))}) "Frequency", states={"invisible": ~Bool(Eval("electrical_equipment"))}
frequency_uom = fields.Many2One('product.uom', "Frequency UOM", )
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))], frequency_uom = fields.Many2One(
states={'invisible' : If(Eval('frequency') == None, True) | "product.uom",
~Eval('electrical_equipment', True)}, "Frequency UOM",
depends=['frequency'] domain=[
) ("category", "=", Id("optical_equipment", "uom_cat_frequency"))],
voltageAC = fields.Float("Voltage AC", states={'invisible': (~Eval('frequency', True))
states={'invisible': ~Bool(Eval('electrical_equipment'))}) | ~Eval('electrical_equipment', True)},)
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM", voltageAC = fields.Float(
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))], "Voltage AC", states={"invisible": ~Bool(Eval("electrical_equipment"))}
states={'invisible' : If(Eval('voltageAC') == None, True) | )
~Eval('electrical_equipment', True)}, voltageAC_uom = fields.Many2One(
depends=['voltageAC'] "product.uom",
) "Voltage AC UOM",
voltageDC = fields.Float("Voltage DC", domain=[
states={'invisible': ~Bool(Eval('electrical_equipment'))}) ("category", "=", Id(
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM", "optical_equipment", "uom_cat_electrical_tension"))
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))], ],
states={'invisible' : If(Eval('voltageDC') == None, True) | states={'invisible': (~Eval('voltageAC', True))
~Eval('electrical_equipment', True)}, | ~Eval('electrical_equipment', True)},
depends=['voltageDC']) )
voltageDC = fields.Float(
"Voltage DC", states={"invisible": ~Bool(Eval("electrical_equipment"))}
)
voltageDC_uom = fields.Many2One(
"product.uom",
"Voltage DC UOM",
domain=[
("category", "=", Id(
"optical_equipment", "uom_cat_electrical_tension"))],
states={'invisible': (
~Eval('voltageDC', True) | ~Eval(
'electrical_equipment', True))},)
useful_life = fields.Integer("Useful life") useful_life = fields.Integer("Useful life")
warranty = fields.Integer("Warranty") warranty = fields.Integer("Warranty")
#### calibration parameters # calibration parameters
use_pattern = fields.Selection([ use_pattern = fields.Many2One(
('', ""), "optical_equipment.use_pattern",
('ojo_esquematico', "Ojo esquematico"), "Use Pattern",
('lente_prueba', "Lente de Prueba"), ondelete="RESTRICT",
('pesas_calibration', "Pesas de Calibración"), states={"required": Eval("calibration", True)},)
('esferas_calibration', "Esferas de Calibración")], "Patrón Utilizado", states={'required': Eval('calibration', True)}) measuring_range = fields.Selection(
measuring_range = fields.Selection([ [("dioptria", "Dioptria"),
('No Aplíca', ""), ("mmhg", "mmHg")], "Rango de Medición")
('dioptria', "Dioptria"), MEP = fields.Float(
('mmhg', "mmHg")], "Rango de Medición", states={'required': Eval('calibration', True)}) "MEP",
MEP = fields.Float("MEP", states={'required': Eval('calibration', False)},) states={"required": Eval("calibration", False)},)
uncertainy_pattern = fields.Float("Uncertainy Pattern", states={'required': Eval('calibration', True)}, uncertainy_pattern = fields.Float(
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10") "Uncertainy Pattern",
k_pattern = fields.Char("K Pattern",states={'required': Eval('calibration', False)}, states={"required": Eval("calibration", True)},
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10") help="Agregar valores separados por ',' Ej:-5,+5,-10,+10",)
k_pattern_list = fields.One2Many('optical_equipment.product_pattern', 'product', "List of patterns K", k_pattern = fields.Char(
states={'required': Eval('calibration', False)},) "K Pattern",
resolution_type = fields.Selection([('',""), states={"required": Eval("calibration", False)},
('analoga', "Analoga"), help="Agregar valores separados por ',' Ej:-5,+5,-10,+10",
('digital', "Digital")], "Resolution Type", )
states={'required': Eval('calibration', False)}, k_pattern_list = fields.One2Many(
depends=['calibration']) "optical_equipment.product_pattern",
d_resolution = fields.Float("Resolution d", "product",
states={'invisible': If(Eval('resolution_type') != 'digital', True)}, "List of patterns K",
depends=['resolution_type']) states={"required": Eval("calibration", False)},
analog_resolution = fields.Float("Analog resolution", )
states={'invisible': If(Eval('resolution_type') != 'analoga', True),}, resolution_type = fields.Selection(
depends=['resolution_type']) [("", ""), ("analoga", "Analoga"), ("digital", "Digital")],
a_factor_resolution = fields.Float("(a) Resolution", "Resolution Type",
states={'invisible': If(Eval('resolution_type') != 'analoga', True)}, states={"required": Eval("calibration", False)},
depends=['resolution_type']) )
Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},)
d_resolution = fields.Float(
#maintenance activities "Resolution d",
initial_operation = fields.Boolean("Verificación inicial de funcionamiento") states={
'invisible': (Eval('resolution_type') != 'digital'),
'required': (Eval('resolution_type') == 'digital')
})
analog_resolution = fields.Float(
"Analog resolution",
states={'invisible': (Eval('resolution_type') != 'analoga'), },
)
a_factor_resolution = fields.Float(
"(a) Resolution",
states={'invisible': (Eval('resolution_type') != 'analoga')},
)
Usubi = fields.Integer("Usub i", states={
"required": Eval("calibration", False)})
# maintenance activities
initial_operation = fields.Boolean(
"Verificación inicial de funcionamiento")
check_equipment = fields.Boolean("Revisión del Equipo") check_equipment = fields.Boolean("Revisión del Equipo")
check_electric_system = fields.Boolean("Revisión del sistema electríco") check_electric_system = fields.Boolean("Revisión del sistema electríco")
clean_int_ext = fields.Boolean("Limpieza interior y exterior") clean_int_ext = fields.Boolean("Limpieza interior y exterior")
@@ -197,166 +262,171 @@ class Template(metaclass=PoolMeta):
optical = fields.Boolean("Optical") optical = fields.Boolean("Optical")
check_calibration = fields.Boolean("Verificar Calibración") check_calibration = fields.Boolean("Verificar Calibración")
# Maintenance activites Preventives
preventive_activities = fields.Text("Preventive Activities")
@classmethod @classmethod
def view_attributes(cls): def view_attributes(cls):
return super(Template, cls).view_attributes() + [ return super(Template, cls).view_attributes() + [
('//page[@id="features"]', 'states', { (
'invisible': ~Eval('equipment'), "//page[@id='features']",
}), "states",
('//page[@id="calibration"]', 'states', { {
'invisible': ~Eval('calibration')},) "invisible": ~Eval("equipment"),
] },
),
(
"//page[@id='calibration']",
"states",
{"invisible": ~Eval("calibration")},
),
(
"//page[@id='maintenance_activities']",
"states",
{"invisible": ~Eval("maintenance_required")},
),
]
@classmethod @classmethod
@fields.depends('measuring_range') @fields.depends("measuring_range")
def default_measuring_range(self): def default_measuring_range(self):
return 'dioptria' return "dioptria"
@classmethod @classmethod
@fields.depends('temperature_min') @fields.depends("temperature_min")
def default_temperature_min(self): def default_temperature_min(self):
return 0 return 0
@classmethod @classmethod
@fields.depends('temperature_max') @fields.depends("temperature_max")
def default_temperature_max(self): def default_temperature_max(self):
return 0 return 0
@classmethod @classmethod
@fields.depends('temperature') def default_frequency(cls):
def default_temperature_uom(self):
pool = Pool()
measurement = None
Measurements = pool.get('product.uom')
if Measurements.search(['name', '=', 'Celsius']) != []:
measurement = Measurements.search(['name', '=', 'Celsius'])[0].id
return measurement
@staticmethod
def default_frequency_uom():
pool = Pool()
measurement = None
Measurements = pool.get('product.uom')
if Measurements.search(['name', '=', 'Hertz']) != []:
measurement = Measurements.search(['name', '=', 'Hertz'])[0].id
return measurement
@staticmethod
def default_frequency():
return 0 return 0
@staticmethod @classmethod
def default_frequency_uom(): def default_moisture_min(cls):
pool = Pool()
Measurements = pool.get('product.uom')
measurement = Measurements.search(['name', '=', 'Hertz'])[0].id
return measurement
@staticmethod
def default_moisture_min():
return 0 return 0
@staticmethod @classmethod
def default_moisture_max(): def default_moisture_max(cls):
return 0 return 0
@staticmethod @classmethod
def default_voltageAC_uom(): def default_voltageDC(cls):
pool = Pool()
measurement = None
Measurements = pool.get('product.uom')
if Measurements.search(['name', '=', 'Volt']) != []:
measurement = Measurements.search(['name', '=', 'Volt'])[0].id
return measurement
@staticmethod
def default_voltageAC():
return 0 return 0
@staticmethod @classmethod
def default_voltageAC_uom(): def default_voltageAC(cls):
pool = Pool()
Measurements = pool.get('product.uom')
measurement = Measurements.search(['name', '=', 'Volt'])[0].id
return measurement
@staticmethod
def default_voltageDC():
return 0 return 0
@fields.depends('voltageDC', 'voltageDC_uom')
def on_change_voltageDC_uom(self):
pool = Pool()
Measurements = pool.get('product.uom')
measurement = Measurements.search(['name', '=', 'Volt'])[0].id
self.voltageDC_uom = measurement
@staticmethod
def default_risk(): def default_risk():
return 'n/a' return "n/a"
@staticmethod
def default_use(): def default_use():
return None return None
@staticmethod
def default_biomedical_class(): def default_biomedical_class():
return 'n/a' return "n/a"
@staticmethod
def default_main_tecnology(): def default_main_tecnology():
return None return None
@staticmethod
def default_calibration(): def default_calibration():
return False return False
@staticmethod
def default_use_pattern():
return ''
@staticmethod
def default_refurbish(): def default_refurbish():
return False return False
@classmethod
@fields.depends("temperature")
def default_temperature_uom(self):
pool = Pool()
Measurements = pool.get("product.uom")
measurement = Measurements.search(["name", "=", "Celsius"])[0].id
@fields.depends('software_required', 'software_version') return measurement
def on_change_with_sotfware_required(self):
self.software_version = None @classmethod
def default_frequency_uom(cls):
@fields.depends('d_resolution', 'analog_resolution', 'a_factor_resolution') pool = Pool()
Measurements = pool.get("product.uom")
measurement = Measurements.search(["name", "=", "Hertz"])[0].id
return measurement
@classmethod
def default_moisture_uom(cls):
pool = Pool()
Measurements = pool.get("product.uom")
measurement = Measurements.search(
["name", "=", "Relative Humedity"])[0].id
return measurement
@classmethod
def default_voltageAC_uom(cls):
pool = Pool()
Measurements = pool.get("product.uom")
measurement = Measurements.search(["name", "=", "Volt"])[0].id
return measurement
@classmethod
def default_voltageDC_uom(cls):
pool = Pool()
Measurements = pool.get("product.uom")
measurement = Measurements.search(["name", "=", "Volt"])[0].id
return measurement
@fields.depends("voltageDC", "voltageDC_uom")
def on_change_voltageDC_uom(self):
pool = Pool()
Measurements = pool.get("product.uom")
measurement = Measurements.search(["name", "=", "Volt"])[0].id
self.voltageDC_uom = measurement
# @fields.depends('software_required', 'software_version')
# def on_change_with_sotfware_required(self):
# self.software_version = None
@fields.depends("d_resolution", "analog_resolution", "a_factor_resolution")
def on_change_resolution_type(self): def on_change_resolution_type(self):
self.d_resolution = None self.d_resolution = None
self.analog_resolution = None self.analog_resolution = None
self.a_factor_resolution = None self.a_factor_resolution = None
@fields.depends("equipment", "replacement")
@fields.depends('equipment', 'replacement')
def on_change_equipment(self): def on_change_equipment(self):
if self.equipment: if self.equipment:
self.replacement=False self.replacement = False
self.maintenance_activity=False self.maintenance_activity = False
self.calibration=False self.calibration = False
self.mark_category = None
@fields.depends('mark_category', 'model_category', 'reference_category') 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")
def on_change_mark_category(self): def on_change_mark_category(self):
if not self.mark_category: if not self.mark_category:
self.model_category = None self.model_category = None
self.reference_category = None self.reference_category = None
@fields.depends('model_category', 'reference_category') @fields.depends("model_category", "reference_category")
def on_change_model_category(self): def on_change_model_category(self):
if not self.model_category: if not self.model_category:
self.reference_category = None self.reference_category = None
@fields.depends('electrical_equipment') @fields.depends("electrical_equipment")
def on_change_electrical_equipment(self): def on_change_electrical_equipment(self):
if self.electrical_equipment: if self.electrical_equipment:
self.voltageAC = 0 self.voltageAC = 0
@@ -369,13 +439,13 @@ class Template(metaclass=PoolMeta):
default = {} default = {}
else: else:
default = default.copy() default = default.copy()
default.setdefault('code', None) default.setdefault("code", None)
default.setdefault('images', None) default.setdefault("images", None)
return super().copy(templates, default=default) return super().copy(templates, default=default)
class Product(metaclass=PoolMeta): class Product(metaclass=PoolMeta):
__name__ = 'product.product' __name__ = "product.product"
@classmethod @classmethod
def copy(cls, products, default=None): def copy(cls, products, default=None):
@@ -384,15 +454,19 @@ class Product(metaclass=PoolMeta):
else: else:
default = default.copy() default = default.copy()
default.setdefault('suffix_code', None) default.setdefault("suffix_code", None)
default.setdefault('code', None) default.setdefault("code", None)
default.setdefault('poduct', None) default.setdefault("poduct", None)
default.setdefault('images', None) default.setdefault("images", None)
return super().copy(products, default=default) return super().copy(products, default=default)
class Image(metaclass=PoolMeta): class Image(metaclass=PoolMeta):
__name__ = 'product.image' __name__ = "product.image"
@classmethod
def __setup__(cls):
super().__setup__()
@classmethod @classmethod
def copy(cls, images, default=None): def copy(cls, images, default=None):
@@ -400,17 +474,30 @@ class Image(metaclass=PoolMeta):
default = {} default = {}
else: else:
default = default.copy() default = default.copy()
default.setdefault('template', None) default.setdefault("template", None)
default.setdefault('product', None) default.setdefault("product", None)
return super().copy(images, default=default) return super().copy(images, default=default)
class UsePattern(ModelSQL, ModelView):
"Use Pattern"
__name__ = "optical_equipment.use_pattern"
_rec_name = "name_pattern"
name_pattern = fields.Char("Name Pattern", required=True)
class Pattern(ModelSQL, ModelView): class Pattern(ModelSQL, ModelView):
"Pattern K of equipment" "Pattern K of equipment"
__name__ = 'optical_equipment.product_pattern' __name__ = "optical_equipment.product_pattern"
_rec_name = 'pattern' _rec_name = "rec_name"
product = fields.Many2One('product.template', "Template", ondelete='CASCADE')
pattern = fields.Float("Value Pattern")
product = fields.Many2One(
"product.template", "Template", ondelete="CASCADE")
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)

View File

@@ -3,16 +3,53 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<data> <data>
<record model="ir.action.act_window" id="act_use_pattern">
<field name="name">Use Pattern</field>
<field name="res_model">optical_equipment.use_pattern</field>
</record>
<record model="ir.ui.view" id="use_pattern_view_tree">
<field name="model">optical_equipment.use_pattern</field>
<field name="type">tree</field>
<field name="name">use_pattern_tree</field>
</record>
<record model="ir.ui.view" id="use_pattern_view_form">
<field name="model">optical_equipment.use_pattern</field>
<field name="type">form</field>
<field name="name">use_pattern_form</field>
</record>
<record model="ir.action.act_window.view" id="act_use_pattern_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="use_pattern_view_tree"/>
<field name="act_window" ref="act_use_pattern"/>
</record>
<record model="ir.action.act_window.view" id="act_use_pattern_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="use_pattern_view_form"/>
<field name="act_window" ref="act_use_pattern"/>
</record>
<menuitem
name="Properties of Equipments"
parent="product.menu_configuration"
sequence="10"
id="menu_properties_equipments"
icon="tryton-settings"/>
<menuitem
parent="menu_properties_equipments"
name="Pattern Use"
action="act_use_pattern"
sequence="10"
id="menu_pattern"
icon="tryton-list"/>
<record model="ir.ui.view" id="template_view_form1"> <record model="ir.ui.view" id="template_view_form1">
<field name="model">product.template</field> <field name="model">product.template</field>
<field name="inherit" ref="product.template_view_form"/> <field name="inherit" ref="product.template_view_form"/>
<field name="name">template_form</field> <field name="name">template_form</field>
</record>
<record model="ir.ui.view" id="template_view_tree1">
<field name="model">product.template</field>
<field name="inherit" ref="product.template_view_tree"/>
<field name="name">template_tree</field>
</record> </record>
<!-- <record model="ir.ui.view" id="template_view_tree1"> -->
<!-- <field name="model">product.template</field> -->
<!-- <field name="inherit" ref="product.template_view_tree"/> -->
<!-- <field name="name">template_tree</field> -->
<!-- </record> -->
<record model="ir.ui.view" id="pattern_view_form"> <record model="ir.ui.view" id="pattern_view_form">
<field name="model">optical_equipment.product_pattern</field> <field name="model">optical_equipment.product_pattern</field>
<field name="type">form</field> <field name="type">form</field>
@@ -23,5 +60,19 @@
<field name="type">tree</field> <field name="type">tree</field>
<field name="name">pattern_tree</field> <field name="name">pattern_tree</field>
</record> </record>
<!--Patterns use-->
<record model="optical_equipment.use_pattern" id="schematic_eye">
<field name="name_pattern">Schematic Eye</field>
</record>
<record model="optical_equipment.use_pattern" id="trial_lens">
<field name="name_pattern">Trial Lens</field>
</record>
<record model="optical_equipment.use_pattern" id="calibration_weights">
<field name="name_pattern">Calibration Weights</field>
</record>
<record model="optical_equipment.use_pattern" id="calibration_spheres">
<field name="name_pattern">Calibration Spheres</field>
</record>
</data> </data>
</tryton> </tryton>

View File

@@ -1,20 +1,16 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of # This file is part of Tryton. The COPYRIGHT file at the top level of
#txhis repository contains the full copyright notices and license terms # txhis repository contains the full copyright notices and license terms
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.model import ( from trytond.model import ModelView, fields
ModelView, ModelSQL, Workflow, fields) from trytond.modules.product import round_price
from trytond.modules.product import price_digits, round_price
from trytond.pyson import Eval, If, Bool from trytond.pyson import Eval, If, Bool
from trytond.exceptions import UserError from trytond.exceptions import UserError
from trytond.i18n import gettext
from .exceptions import (
InvalidNumberPurchases)
from trytond.transaction import Transaction from trytond.transaction import Transaction
class Purchase(metaclass=PoolMeta): class Purchase(metaclass=PoolMeta):
__name__ = 'purchase.purchase' "Purchase Equipment"
__name__ = "purchase.purchase"
equipment_create = fields.Boolean("Equipments Creates", readonly=True) equipment_create = fields.Boolean("Equipments Creates", readonly=True)
@@ -22,10 +18,10 @@ class Purchase(metaclass=PoolMeta):
def __setup__(cls): def __setup__(cls):
super(Purchase, cls).__setup__() super(Purchase, cls).__setup__()
cls._buttons.update({ cls._buttons.update({
'create_equipments': { "create_equipments": {
'invisible': If(Eval('invoice_state') == 'none', True) | "invisible": If(Eval("invoice_state") == "none", True)
If(Bool(Eval('equipment_create')), True), | If(Bool(Eval("equipment_create")), True),
'depends': ['invoice_state'],} "depends": ["invoice_state"]}
}) })
@classmethod @classmethod
@@ -35,15 +31,15 @@ class Purchase(metaclass=PoolMeta):
else: else:
default = default.copy() default = default.copy()
default.setdefault('number', None) default.setdefault("number", None)
default.setdefault('invoice_state', 'none') default.setdefault("invoice_state", "none")
default.setdefault('invoices_ignored', None) default.setdefault("invoices_ignored", None)
default.setdefault('moves', None) default.setdefault("moves", None)
default.setdefault('shipment_state', 'none') default.setdefault("shipment_state", "none")
default.setdefault('purchase_date', None) default.setdefault("purchase_date", None)
default.setdefault('quoted_by') default.setdefault("quoted_by")
default.setdefault('confirmed_by') default.setdefault("confirmed_by")
default.setdefault('equipment_create', None) default.setdefault("equipment_create", None)
return super(Purchase, cls).copy(purchases, default=default) return super(Purchase, cls).copy(purchases, default=default)
@@ -52,97 +48,124 @@ class Purchase(metaclass=PoolMeta):
def create_equipments(cls, purchases): def create_equipments(cls, purchases):
if len(purchases) == 1: if len(purchases) == 1:
pool = Pool() pool = Pool()
Equipment = pool.get('optical_equipment.equipment') Equipment = pool.get("optical_equipment.equipment")
Config = pool.get('optical_equipment.configuration')
config = Config(1)
purchase = purchases[0] purchase = purchases[0]
for line in purchase.lines: for line in purchase.lines:
if line.product.equipment: if not line.product.equipment:
for i in range(0,int(line.quantity)):
equipment = Equipment(
company=line.company,
location=line.to_location,
equipment_type=line.product.equipment_type,
propietary=line.company.party,
propietary_address=line.address_equipment,
product=line.product,
model_category=line.product.model_category,
mark_category=line.product.mark_category,
reference_category=line.product.reference_category,
useful_life=line.product.useful_life if line.product.useful_life else 0,
calibration=True if line.product.calibration else False,
warranty=line.product.warranty if line.product.warranty else 0,
risk=line.product.risk,
origin_country=line.product.origin_country,
use=line.product.use,
biomedical_class=line.product.biomedical_class,
refurbish=line.refurbish,
serial=None if line.quantity > 1 else line.serial_equipment,
health_register=line.health_register,
software_version=line.product.software_version if line.product.software_required else "No Aplica",
maintenance_frequency="none",
purchase_origin=line,
)
equipment.save()
else:
continue continue
for i in range(0, int(line.quantity)):
equipment = Equipment(
company=line.company,
location=line.to_location,
equipment_type=line.product.equipment_type,
propietary=line.company.party,
propietary_address=line.address_equipment,
product=line.product,
model_category=line.product.model_category,
mark_category=line.product.mark_category,
reference_category=line.product.reference_category,
useful_life=(
line.product.useful_life if
line.product.useful_life else 0
),
calibration=(
True if line.product.calibration
else False),
warranty=(
line.product.warranty if
line.product.warranty else 0),
risk=line.product.risk,
origin_country=line.product.origin_country,
use=line.product.use,
biomedical_class=line.product.biomedical_class,
refurbish=line.refurbish,
serial=(None if line.quantity > 1
else line.serial_equipment),
health_register=line.health_register,
software_version=(
line.product.software_version
if line.product.software_required
else "No Aplica"
),
maintenance_frequency="none",
purchase_origin=line,
)
equipment.save()
purchase.equipment_create = True purchase.equipment_create = True
cls.save(purchases) cls.save(purchases)
else: else:
raise InvalidNumberPurchases( raise UserError(str("Número de Compras Invalido."))
gettext('purchase.msg_invalid_number_purchases'))
class Line(metaclass=PoolMeta): class Line(metaclass=PoolMeta):
__name__ = 'purchase.line' "Purchase Line Equipment"
__name__ = "purchase.line"
origin_country = origin_country = fields.Many2One('country.country',"Origin Country") origin_country = fields.Many2One("country.country", "Origin Country")
address_equipment = fields.Many2One('party.address', "Direccion", required=True) address_equipment = fields.Many2One(
serial_equipment = fields.Char("Serial", size=None, "party.address", "Direccion", required=True)
states={'invisible': If(Eval('quantity') > 1, True), serial_equipment = fields.Char(
},depends=['quantity']) "Serial",
size=None,
# states={'invisible': Decimal(Eval('quantity')) > 1}
)
refurbish = fields.Boolean("Refurbish") refurbish = fields.Boolean("Refurbish")
product_equipment = fields.Boolean("Product Equipment", product_equipment = fields.Boolean(
states={'readonly': True}) "Product Equipment", states={"readonly": True})
software_version = fields.Char("Software version") software_version = fields.Char("Software version")
health_register = fields.Char("Health Register", states={'required': Eval('product_equipment', True)}) health_register = fields.Char(
"Health Register", states={"required": Eval("product_equipment", True)}
)
@classmethod @classmethod
def default_address_equipment(cls): def default_address_equipment(cls):
pool = Pool() pool = Pool()
Company = pool.get('company.company') Company = pool.get("company.company")
company = Transaction().context.get('company') company = Transaction().context.get("company")
if company: if company:
company = Company(company) company = Company(company)
return company.party.addresses[0].id return company.party.addresses[0].id
@fields.depends( @fields.depends(
'product', 'quantity', methods=['_get_context_purchase_price']) "product", "quantity", methods=["_get_context_purchase_price"])
def on_change_quantity(self): def on_change_quantity(self):
Product = Pool().get('product.product') Product = Pool().get("product.product")
if self.quantity > 1 or self.quantity < 1: if self.quantity and (self.quantity > 1 or self.quantity < 1):
self.serial_equipment = None self.serial_equipment = None
if not self.product: if not self.product:
self.serial_equipment = None self.serial_equipment = None
return return
with Transaction().set_context(self._get_context_purchase_price()): with Transaction().set_context(self._get_context_purchase_price()):
self.unit_price = Product.get_purchase_price([self.product], self.unit_price = Product.get_purchase_price(
abs(self.quantity or 0))[self.product.id] [self.product], abs(self.quantity or 0)
)[self.product.id]
if self.unit_price: if self.unit_price:
self.unit_price = round_price(self.unit_price) self.unit_price = round_price(self.unit_price)
@fields.depends('product', 'unit', 'purchase', @fields.depends(
'_parent_purchase.party', '_parent_purchase.invoice_party', "product",
'product_supplier', 'product_equipment', "unit",
'serial_equipment', 'software_version', "purchase",
'health_register', 'refurbish', methods=['compute_taxes', 'compute_unit_price', "_parent_purchase.party",
'_get_product_supplier_pattern']) "_parent_purchase.invoice_party",
"product_supplier",
"product_equipment",
"serial_equipment",
"software_version",
"health_register",
"refurbish",
methods=[
"compute_taxes",
"compute_unit_price",
"_get_product_supplier_pattern",])
def on_change_product(self): def on_change_product(self):
if not self.product: if not self.product:
self.product_equipment = False self.product_equipment = False
@@ -155,7 +178,6 @@ class Line(metaclass=PoolMeta):
self.unit_price = None self.unit_price = None
self.unit = None self.unit = None
return return
party = None party = None
@@ -169,27 +191,30 @@ class Line(metaclass=PoolMeta):
if not self.unit or self.unit.category != category: if not self.unit or self.unit.category != category:
self.unit = self.product.purchase_uom self.unit = self.product.purchase_uom
product_suppliers = list(self.product.product_suppliers_used( product_suppliers = list(
**self._get_product_supplier_pattern())) self.product.product_suppliers_used(
**self._get_product_supplier_pattern())
)
if len(product_suppliers) == 1: if len(product_suppliers) == 1:
self.product_supplier, = product_suppliers (self.product_supplier,) = product_suppliers
elif (self.product_supplier elif (self.product_supplier
and self.product_supplier not in product_suppliers): and self.product_supplier not in product_suppliers):
self.product_supplier = None self.product_supplier = None
self.unit_price = self.compute_unit_price() self.unit_price = self.compute_unit_price()
self.type = 'line' self.type = "line"
self.amount = self.on_change_with_amount() self.amount = self.on_change_with_amount()
if self.product.equipment: if self.product.equipment:
self.product_equipment = True self.product_equipment = True
self.address_equipment = self.default_address_equipment() self.address_equipment = self.default_address_equipment()
if self.product.software_required: if self.product.software_required:
self.software_version = self.product.software_version self.software_version = self.product.software_version
@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),
})]

View File

@@ -3,31 +3,29 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<data> <data>
<record model="ir.ui.view" id="purchase_line_view_form">
<field name="model">purchase.line</field>
<field name="inherit" ref="purchase.purchase_line_view_form"/>
<field name="name">purchase_line_form</field>
</record>
<record model="ir.ui.view" id="purchase_view_form"> <record model="ir.ui.view" id="purchase_view_form">
<field name="model">purchase.purchase</field> <field name="model">purchase.purchase</field>
<field name="inherit" ref="purchase.purchase_view_form"/> <field name="inherit" ref="purchase.purchase_view_form"/>
<field name="name">purchase_form</field> <field name="name">purchase_form</field>
</record> </record>
<record model="ir.ui.view" id="purchase_line_view_form">
<field name="model">purchase.line</field>
<field name="inherit" ref="purchase.purchase_line_view_form"/>
<field name="name">purchase_line_form</field>
</record>
<record model="ir.ui.view" id="product_view_list_purchase_line"> <record model="ir.ui.view" id="product_view_list_purchase_line">
<field name="model">product.product</field> <field name="model">product.product</field>
<field name="inherit" ref="purchase.product_view_list_purchase_line"/> <field name="inherit" ref="purchase.product_view_list_purchase_line"/>
<field name="name">product_list_purchase_line</field> <field name="name">product_list_purchase_line</field>
</record> </record>
<record model="ir.ui.view" id="purchase_configuration_view_form">
<field name="model">purchase.configuration</field>
<field name="inherit" ref="purchase.purchase_configuration_view_form"/>
<field name="name">configuration_form</field>
</record>
<record model="ir.model.button" id="purchase_create_equipments"> <record model="ir.model.button" id="purchase_create_equipments">
<field name="name">create_equipments</field> <field name="name">create_equipments</field>
<field name="string">Create Equipments</field> <field name="string">Create Equipments</field>
<field name="model" search="[('model', '=', 'purchase.purchase')]"/> <field name="model" search="[('model', '=', 'purchase.purchase')]"/>
</record> </record>
<record model="ir.action.report" id="purchase.report_purchase">
<field name="active" eval="False"/>
</record>
<record model="ir.action.report" id="report_purchase"> <record model="ir.action.report" id="report_purchase">
<field name="name">Purchase</field> <field name="name">Purchase</field>
<field name="model">purchase.purchase</field> <field name="model">purchase.purchase</field>

2044
report/CVS_Equipments.fodt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2172
report/Calibrations.fodt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
<office:meta><meta:creation-date>2022-08-14T09:29:40.387726317</meta:creation-date><dc:date>2023-03-21T00:52:14.611168052</dc:date><meta:editing-duration>PT4H14M17S</meta:editing-duration><meta:editing-cycles>73</meta:editing-cycles><meta:generator>LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1</meta:generator><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="1" meta:paragraph-count="56" meta:word-count="176" meta:character-count="1886" meta:non-whitespace-character-count="1763"/></office:meta> <office:meta><meta:creation-date>2022-08-14T09:29:40.387726317</meta:creation-date><dc:date>2023-04-10T01:17:53.781803899</dc:date><meta:editing-duration>PT4H14M43S</meta:editing-duration><meta:editing-cycles>75</meta:editing-cycles><meta:generator>LibreOffice/7.4.6.2$Linux_X86_64 LibreOffice_project/40$Build-2</meta:generator><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="1" meta:paragraph-count="56" meta:word-count="176" meta:character-count="1886" meta:non-whitespace-character-count="1763"/></office:meta>
<office:settings> <office:settings>
<config:config-item-set config:name="ooo:view-settings"> <config:config-item-set config:name="ooo:view-settings">
<config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item> <config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item>
@@ -13,8 +13,8 @@
<config:config-item-map-indexed config:name="Views"> <config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry> <config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item> <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
<config:config-item config:name="ViewLeft" config:type="long">14215</config:config-item> <config:config-item config:name="ViewLeft" config:type="long">15563</config:config-item>
<config:config-item config:name="ViewTop" config:type="long">1822</config:config-item> <config:config-item config:name="ViewTop" config:type="long">6064</config:config-item>
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item> <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleTop" config:type="long">0</config:config-item> <config:config-item config:name="VisibleTop" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleRight" config:type="long">25790</config:config-item> <config:config-item config:name="VisibleRight" config:type="long">25790</config:config-item>
@@ -91,7 +91,7 @@
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/> <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item> <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
<config:config-item config:name="Rsid" config:type="int">1730641</config:config-item> <config:config-item config:name="Rsid" config:type="int">1812387</config:config-item>
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/> <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item> <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
@@ -479,314 +479,316 @@
</style:style> </style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P3" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties officeooo:paragraph-rsid="00066dfa"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P4" style:family="paragraph" style:parent-style-name="Footer">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Footer"> <style:style style:name="P5" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style> </style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P6" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P9" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P10" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P11" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style> </style:style>
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
</style:style>
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P13" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
</style:style>
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/> <style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:style style:name="P14" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/> <style:text-properties style:font-name="Nimbus Sans" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style> </style:style>
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P15" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Footer">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P17" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0012e334" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
</style:style>
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" fo:background-color="transparent" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e5f26" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000eca68" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Footer">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00066dfa" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P19" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="026544ec" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P20" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties officeooo:paragraph-rsid="00201d29"/>
</style:style>
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties officeooo:paragraph-rsid="00066dfa"/>
</style:style>
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
</style:style> </style:style>
<style:style style:name="P58" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:style style:name="P22" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="7pt" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
</style:style> </style:style>
<style:style style:name="T1" style:family="text"> <style:style style:name="P23" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T2" style:family="text"> <style:style style:name="P24" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000eca68" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000d5b36" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000cde7f" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0018cb79" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000d5b36" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="000cde7f" officeooo:paragraph-rsid="000e5f26" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000e86ef" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0012e334" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0012e334" officeooo:paragraph-rsid="0013690d" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000eca68" officeooo:paragraph-rsid="0012e334" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0049dca0" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="7pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Open Sans Condensed" fo:font-size="10.5pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="10.5pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="10.5pt"/>
</style:style>
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="000e86ef" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:color="#000000" loext:opacity="100%" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="0012e334" style:font-name-asian="Calibri" style:font-size-asian="7pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Calibri" style:font-size-complex="7pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties officeooo:paragraph-rsid="00066dfa"/>
</style:style>
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties officeooo:paragraph-rsid="00201d29"/>
</style:style>
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="000a373e" officeooo:paragraph-rsid="000a373e" fo:background-color="transparent" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T1" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T3" style:family="text"> <style:style style:name="T2" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T4" style:family="text"> <style:style style:name="T3" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T5" style:family="text"> <style:style style:name="T4" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T6" style:family="text"> <style:style style:name="T5" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T6" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T7" style:family="text"> <style:style style:name="T7" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T8" style:family="text"> <style:style style:name="T8" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T9" style:family="text"> <style:style style:name="T9" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/>
</style:style> </style:style>
<style:style style:name="T10" style:family="text"> <style:style style:name="T10" style:family="text">
<style:text-properties officeooo:rsid="026544ec"/> <style:text-properties style:text-underline-style="none" officeooo:rsid="026544ec"/>
</style:style> </style:style>
<style:style style:name="T11" style:family="text"> <style:style style:name="T11" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/>
</style:style> </style:style>
<style:style style:name="T12" style:family="text"> <style:style style:name="T12" style:family="text">
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
</style:style>
<style:style style:name="T13" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T14" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="000cde7f" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T15" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="000d5b36" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T16" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="0012e334" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T17" style:family="text">
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T18" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="000d5b36" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T19" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T20" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T21" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-weight-complex="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T22" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T23" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T24" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T25" style:family="text"> <style:style style:name="T13" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T26" style:family="text"> <style:style style:name="T14" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T27" style:family="text"> <style:style style:name="T15" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="026544ec"/>
</style:style> </style:style>
<style:style style:name="T28" style:family="text"> <style:style style:name="T16" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/> <style:text-properties fo:color="#333333" loext:opacity="100%" style:text-underline-style="none" officeooo:rsid="0049dca0"/>
</style:style> </style:style>
<style:style style:name="T29" style:family="text"> <style:style style:name="T17" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T30" style:family="text"> <style:style style:name="T18" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T31" style:family="text"> <style:style style:name="T19" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T32" style:family="text"> <style:style style:name="T20" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="T33" style:family="text"> <style:style style:name="T21" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T22" style:family="text">
<style:text-properties officeooo:rsid="026544ec"/> <style:text-properties officeooo:rsid="026544ec"/>
</style:style> </style:style>
<style:style style:name="T34" style:family="text"> <style:style style:name="T23" style:family="text">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="T24" style:family="text">
<style:text-properties style:language-asian="es" style:country-asian="CO"/>
</style:style>
<style:style style:name="T25" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T26" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="000cde7f" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T27" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="000d5b36" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T28" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="0012e334" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T29" style:family="text">
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T30" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="000d5b36" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T31" style:family="text">
<style:text-properties fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T32" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T33" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-weight-complex="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T34" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" style:font-style-asian="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T35" style:family="text">
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Droid Sans Japanese" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" officeooo:rsid="000cde7f" style:font-style-asian="normal" style:text-emphasize="none"/>
</style:style>
<style:style style:name="T36" style:family="text">
<style:text-properties style:text-underline-style="none" officeooo:rsid="026544ec"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics"> <style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/> <style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style> </style:style>
@@ -1471,25 +1473,25 @@
</draw:frame></text:p> </draw:frame></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.B1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.B1" office:value-type="string">
<text:p text:style-name="P3"><text:span text:style-name="T1"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;company and company.header&quot;&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P3"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;company and company.header&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;line in company.header.split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P3"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;line in company.header.split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text">&lt;line&gt;</text:placeholder></text:p> <text:p text:style-name="P3"><text:placeholder text:placeholder-type="text">&lt;line&gt;</text:placeholder></text:p>
<text:p text:style-name="P4"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P3"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
<text:p text:style-name="P5"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P4"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P5"><text:placeholder text:placeholder-type="text">&lt;company.rec_name if company else &apos;&apos;&gt;</text:placeholder></text:p> <text:p text:style-name="P4"><text:placeholder text:placeholder-type="text">&lt;company.rec_name if company else &apos;&apos;&gt;</text:placeholder></text:p>
<text:p text:style-name="P6"><text:placeholder text:placeholder-type="text" text:description="if test=&quot;company&quot;">&lt;if test=&quot;company&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P5"><text:placeholder text:placeholder-type="text" text:description="if test=&quot;company&quot;">&lt;if test=&quot;company&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P7"><text:span text:style-name="T2">NIT:</text:span><text:span text:style-name="T3"> </text:span><text:span text:style-name="T4"><text:placeholder text:placeholder-type="text">&lt;company.party.identifiers[0].code&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P6"><text:span text:style-name="T1">NIT:</text:span><text:span text:style-name="T2"> </text:span><text:span text:style-name="T3"><text:placeholder text:placeholder-type="text">&lt;company.party.identifiers[0].code&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P8">Regimen Común</text:p> <text:p text:style-name="P7">Regimen Común</text:p>
<text:p text:style-name="P8"><text:span text:style-name="T4">Actividad Economica 46</text:span><text:span text:style-name="T5">59</text:span></text:p> <text:p text:style-name="P7"><text:span text:style-name="T3">Actividad Economica 46</text:span><text:span text:style-name="T4">59</text:span></text:p>
<text:p text:style-name="P9"><text:span text:style-name="T6">Dirección: </text:span><text:span text:style-name="T4"><text:placeholder text:placeholder-type="text">&lt;company.party.addresses[0].street&gt;</text:placeholder></text:span><text:span text:style-name="T4"><text:s/></text:span><text:span text:style-name="T4"><text:placeholder text:placeholder-type="text">&lt;company.party.addresses[0].city&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P8"><text:span text:style-name="T5">Dirección: </text:span><text:span text:style-name="T6"><text:placeholder text:placeholder-type="text">&lt;company.party.addresses[0].street&gt;</text:placeholder></text:span><text:span text:style-name="T6"><text:s/></text:span><text:span text:style-name="T6"><text:placeholder text:placeholder-type="text">&lt;company.party.addresses[0].city&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P10"><text:span text:style-name="T7">Teléfono:</text:span><text:span text:style-name="T8"> </text:span><text:span text:style-name="T3"><text:placeholder text:placeholder-type="text">&lt;company.party.phone&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P9"><text:span text:style-name="T7">Teléfono:</text:span><text:span text:style-name="T6"> </text:span><text:span text:style-name="T8"><text:placeholder text:placeholder-type="text">&lt;company.party.phone&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P11"><text:span text:style-name="T9">Celular: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text">&lt;company.party.mobile&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P10"><text:span text:style-name="T9">Celular: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text">&lt;company.party.mobile&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P11"><text:span text:style-name="T11">E-mail</text:span><text:span text:style-name="T9">: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text">&lt;company.party.email&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P10"><text:span text:style-name="T11">E-mail</text:span><text:span text:style-name="T9">: </text:span><text:span text:style-name="T10"><text:placeholder text:placeholder-type="text">&lt;company.party.email&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P12"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P11"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
</table:table> </table:table>
<text:p text:style-name="P13"/> <text:p text:style-name="P12"/>
</style:header> </style:header>
</style:master-page> </style:master-page>
</office:master-styles> </office:master-styles>
@@ -1502,54 +1504,54 @@
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/> <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/> <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
</text:sequence-decls> </text:sequence-decls>
<text:p text:style-name="P21"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;shipment in records&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P24"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;shipment in records&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P23"><text:span text:style-name="T14">ACTA DE ENTREGA DE EQUIPOS No <text:s text:c="2"/></text:span><text:span text:style-name="T19"><text:placeholder text:placeholder-type="text">&lt;shipment.number&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P26"><text:span text:style-name="T26">ACTA DE ENTREGA DE EQUIPOS No <text:s text:c="2"/></text:span><text:span text:style-name="T31"><text:placeholder text:placeholder-type="text">&lt;shipment.number&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P32"/> <text:p text:style-name="P35"/>
<table:table table:name="Tabla3" table:style-name="Tabla3"> <table:table table:name="Tabla3" table:style-name="Tabla3">
<table:table-column table:style-name="Tabla3.A"/> <table:table-column table:style-name="Tabla3.A"/>
<table:table-column table:style-name="Tabla3.B"/> <table:table-column table:style-name="Tabla3.B"/>
<table:table-row table:style-name="Tabla3.1"> <table:table-row table:style-name="Tabla3.1">
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P30"><text:span text:style-name="T15">Fecha </text:span><text:span text:style-name="T16">de entrega</text:span><text:span text:style-name="T15">:</text:span><text:span text:style-name="T18"> </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text">&lt;shipment.effective_date and format_date(shipment.effective_date, user.language) or &apos;&apos;&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P33"><text:span text:style-name="T27">Fecha </text:span><text:span text:style-name="T28">de entrega</text:span><text:span text:style-name="T27">:</text:span><text:span text:style-name="T30"> </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text">&lt;shipment.effective_date and format_date(shipment.effective_date, user.language) or &apos;&apos;&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P42"><text:span text:style-name="T23">O</text:span><text:span text:style-name="T22">rden de compra: </text:span><text:span text:style-name="T20"><text:placeholder text:placeholder-type="text" text:description="shipment.outgoing_moves[0].origin.sale.number">&lt;shipment.outgoing_moves[0].origin.sale.number&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P45"><text:span text:style-name="T35">O</text:span><text:span text:style-name="T34">rden de compra: </text:span><text:span text:style-name="T32"><text:placeholder text:placeholder-type="text" text:description="shipment.outgoing_moves[0].origin.sale.number">&lt;shipment.outgoing_moves[0].origin.sale.number&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row table:style-name="Tabla3.1"> <table:table-row table:style-name="Tabla3.1">
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P25"><text:span text:style-name="T14">Cliente</text:span><text:span text:style-name="T13">:</text:span><text:span text:style-name="T17"> </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.rec_name&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P28"><text:span text:style-name="T26">Cliente</text:span><text:span text:style-name="T25">:</text:span><text:span text:style-name="T29"> </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.rec_name&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P26"><text:span text:style-name="T13">Nit / C.C: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.tax_identifier.code&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P29"><text:span text:style-name="T25">Nit / C.C: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.tax_identifier.code&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row table:style-name="Tabla3.1"> <table:table-row table:style-name="Tabla3.1">
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P41">Ciudad: <text:span text:style-name="T21"><text:placeholder text:placeholder-type="text">&lt;shipment.delivery_address.subdivision_municipality.name&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P44">Ciudad: <text:span text:style-name="T33"><text:placeholder text:placeholder-type="text">&lt;shipment.delivery_address.subdivision_municipality.name&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P27"><text:span text:style-name="T13">Movil: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.mobile&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P30"><text:span text:style-name="T25">Movil: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.mobile&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row table:style-name="Tabla3.1"> <table:table-row table:style-name="Tabla3.1">
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P26"><text:span text:style-name="T13">Teléfono: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.phone&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P29"><text:span text:style-name="T25">Teléfono: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text">&lt;shipment.customer.phone&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P28"><text:span text:style-name="T13">Entregado en: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text">&lt;shipment.delivery_address.street&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P31"><text:span text:style-name="T25">Entregado en: </text:span><text:span text:style-name="T29"><text:placeholder text:placeholder-type="text">&lt;shipment.delivery_address.street&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row table:style-name="Tabla3.1"> <table:table-row table:style-name="Tabla3.1">
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P37"/> <text:p text:style-name="P40"/>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla3.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla3.A1" office:value-type="string">
<text:p text:style-name="P38"/> <text:p text:style-name="P41"/>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
</table:table> </table:table>
<text:p text:style-name="P29"/> <text:p text:style-name="P32"/>
<table:table table:name="Tabla1" table:style-name="Tabla1"> <table:table table:name="Tabla1" table:style-name="Tabla1">
<table:table-column table:style-name="Tabla1.A"/> <table:table-column table:style-name="Tabla1.A"/>
<table:table-column table:style-name="Tabla1.B"/> <table:table-column table:style-name="Tabla1.B"/>
@@ -1558,27 +1560,27 @@
<table:table-column table:style-name="Tabla1.F"/> <table:table-column table:style-name="Tabla1.F"/>
<table:table-row table:style-name="Tabla1.1"> <table:table-row table:style-name="Tabla1.1">
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
<text:p text:style-name="P19">Código</text:p> <text:p text:style-name="P57">Código</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
<text:p text:style-name="P19">Equipo</text:p> <text:p text:style-name="P57">Equipo</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
<text:p text:style-name="P19">Marca</text:p> <text:p text:style-name="P57">Marca</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
<text:p text:style-name="P19">Modelo</text:p> <text:p text:style-name="P57">Modelo</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
<text:p text:style-name="P19">Serial</text:p> <text:p text:style-name="P57">Serial</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.F1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.F1" office:value-type="string">
<text:p text:style-name="P19">Cant</text:p> <text:p text:style-name="P57">Cant</text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla1.A2" table:number-columns-spanned="6" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A2" table:number-columns-spanned="6" office:value-type="string">
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text" text:description="for each=&quot;move in shipment.inventory_moves&quot;">&lt;for each=&quot;move in shipment.inventory_moves&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text" text:description="for each=&quot;move in shipment.inventory_moves&quot;">&lt;for each=&quot;move in shipment.inventory_moves&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1588,31 +1590,31 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla1.A3" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A3" office:value-type="string">
<text:p text:style-name="P33"><text:placeholder text:placeholder-type="text">&lt;move.product.code&gt;</text:placeholder></text:p> <text:p text:style-name="P36"><text:placeholder text:placeholder-type="text">&lt;move.product.code&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.B3" office:value-type="string"> <table:table-cell table:style-name="Tabla1.B3" office:value-type="string">
<text:p text:style-name="P24"><text:placeholder text:placeholder-type="text">&lt;move.product.name&gt;</text:placeholder></text:p> <text:p text:style-name="P27"><text:placeholder text:placeholder-type="text">&lt;move.product.name&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.C3" office:value-type="string"> <table:table-cell table:style-name="Tabla1.C3" office:value-type="string">
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;move.product.mark_category&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P21"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;move.product.mark_category&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P34"><text:placeholder text:placeholder-type="text">&lt;move.product.mark_category.name&gt;</text:placeholder></text:p> <text:p text:style-name="P37"><text:placeholder text:placeholder-type="text">&lt;move.product.mark_category.name&gt;</text:placeholder></text:p>
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P21"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.D3" office:value-type="string"> <table:table-cell table:style-name="Tabla1.D3" office:value-type="string">
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;move.product.model_category&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P21"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;move.product.model_category&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P36"><text:placeholder text:placeholder-type="text">&lt;move.product.model_category.name&gt;</text:placeholder></text:p> <text:p text:style-name="P39"><text:placeholder text:placeholder-type="text">&lt;move.product.model_category.name&gt;</text:placeholder></text:p>
<text:p text:style-name="P58"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P22"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.E3" office:value-type="string"> <table:table-cell table:style-name="Tabla1.E3" office:value-type="string">
<text:p text:style-name="P34"><text:placeholder text:placeholder-type="text">&lt;move.equipment_serial&gt;</text:placeholder></text:p> <text:p text:style-name="P37"><text:placeholder text:placeholder-type="text">&lt;move.equipment_serial&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla1.F3" office:value-type="string"> <table:table-cell table:style-name="Tabla1.F3" office:value-type="string">
<text:p text:style-name="P35"><text:placeholder text:placeholder-type="text">&lt;format_number_symbol(move.quantity, user.language, move.uom, digits=move.uom.digits)&gt;</text:placeholder></text:p> <text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;format_number_symbol(move.quantity, user.language, move.uom, digits=move.uom.digits)&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla1.A4" table:number-columns-spanned="6" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A4" table:number-columns-spanned="6" office:value-type="string">
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P43"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1621,25 +1623,25 @@
<table:covered-table-cell/> <table:covered-table-cell/>
</table:table-row> </table:table-row>
</table:table> </table:table>
<text:p text:style-name="P20"/> <text:p text:style-name="P23"/>
<text:p text:style-name="P31">En mi calidad de Supervisor y/o Representante legal de la entidad contratante y /o comprador, una vez verificados las especificaciones técnicas y funcionamiento de los equipos descritos en el cuadro anterior, me permito hacer la recepción a satisfacción.</text:p> <text:p text:style-name="P34">En mi calidad de Supervisor y/o Representante legal de la entidad contratante y /o comprador, una vez verificados las especificaciones técnicas y funcionamiento de los equipos descritos en el cuadro anterior, me permito hacer la recepción a satisfacción.</text:p>
<text:p text:style-name="P31"/> <text:p text:style-name="P34"/>
<text:p text:style-name="P31">La entrega de los equipos se realiza con los manuales de usuario, manifiestos de importación y hojas de vida.</text:p> <text:p text:style-name="P34">La entrega de los equipos se realiza con los manuales de usuario, manifiestos de importación y hojas de vida.</text:p>
<text:p text:style-name="P31"/> <text:p text:style-name="P34"/>
<table:table table:name="Tabla2" table:style-name="Tabla2"> <table:table table:name="Tabla2" table:style-name="Tabla2">
<table:table-column table:style-name="Tabla2.A"/> <table:table-column table:style-name="Tabla2.A"/>
<table:table-column table:style-name="Tabla2.B"/> <table:table-column table:style-name="Tabla2.B"/>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
<text:p text:style-name="P43">Cordialmente</text:p> <text:p text:style-name="P46">Cordialmente</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
<text:p text:style-name="P43">Cordialmente Recibido a satisfacción.</text:p> <text:p text:style-name="P46">Cordialmente Recibido a satisfacción.</text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
<text:p text:style-name="P43"><draw:frame draw:style-name="fr2" draw:name="Image1" text:anchor-type="char" svg:x="0.1854in" svg:y="0.0571in" svg:width="1.3909in" svg:height="0.7693in" draw:z-index="1"><draw:image draw:mime-type="image/png"> <text:p text:style-name="P46"><draw:frame draw:style-name="fr2" draw:name="Image1" text:anchor-type="char" svg:x="0.1854in" svg:y="0.0571in" svg:width="1.3909in" svg:height="0.7693in" draw:z-index="1"><draw:image draw:mime-type="image/png">
<office:binary-data>iVBORw0KGgoAAAANSUhEUgAABA4AAAI+CAYAAAA8dEjXAAKLKElEQVR4nOz9B4Bd13UeCn97 <office:binary-data>iVBORw0KGgoAAAANSUhEUgAABA4AAAI+CAYAAAA8dEjXAAKLKElEQVR4nOz9B4Bd13UeCn97
n3PvnV4ADHolwQawgypUBWXKsmRZcgMSx3qOXCIlTpzELY5f/j+Did9L3OTYUiyHcpEtK3YC n3PvnV4ADHolwQawgypUBWXKsmRZcgMSx3qOXCIlTpzELY5f/j+Did9L3OTYUiyHcpEtK3YC
qFik1QtAkaIosYoEwAIQvc8Mps9t55z91lp7n5kLYFBIAkRbH3lw5557et3ft9f6Vuycg0Kh qFik1QtAkaIosYoEwAIQvc8Mps9t55z91lp7n5kLYFBIAkRbH3lw5557et3ft9f6Vuycg0Kh
@@ -4732,28 +4734,28 @@
</office:binary-data> </office:binary-data>
</draw:image> </draw:image>
</draw:frame></text:p> </draw:frame></text:p>
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43">_______________________________________</text:p> <text:p text:style-name="P46">_______________________________________</text:p>
<text:p text:style-name="P43">JESUS ANTONIO GIRALDO GRACIA</text:p> <text:p text:style-name="P46">JESUS ANTONIO GIRALDO GRACIA</text:p>
<text:p text:style-name="P43">C.E.O. (Gerente General)<text:tab/></text:p> <text:p text:style-name="P46">C.E.O. (Gerente General)<text:tab/></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43"/> <text:p text:style-name="P46"/>
<text:p text:style-name="P43">_________________________________________</text:p> <text:p text:style-name="P46">_________________________________________</text:p>
<text:p text:style-name="P45">NOMBRE</text:p> <text:p text:style-name="P48">NOMBRE</text:p>
<text:p text:style-name="P43">C.C</text:p> <text:p text:style-name="P46">C.C</text:p>
<text:p text:style-name="P43">CARGO</text:p> <text:p text:style-name="P46">CARGO</text:p>
<text:p text:style-name="P43">TEL/CEL</text:p> <text:p text:style-name="P46">TEL/CEL</text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
</table:table> </table:table>
<text:p text:style-name="P44"/> <text:p text:style-name="P47"/>
<text:p text:style-name="P22"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P25"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
</office:text> </office:text>
</office:body> </office:body>
</office:document> </office:document>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,30 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rpt="http://openoffice.org/2005/report" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
<office:meta><meta:generator>LibreOffice/7.3.7.2$Linux_X86_64 LibreOffice_project/30$Build-2</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:32</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="83" meta:word-count="200" meta:character-count="2406" meta:non-whitespace-character-count="2284"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta> <office:meta><meta:generator>LibreOffice/7.4.6.2$Linux_X86_64 LibreOffice_project/40$Build-2</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:32</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="88" meta:word-count="206" meta:character-count="2679" meta:non-whitespace-character-count="2560"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
<office:settings> <office:settings>
<config:config-item-set config:name="ooo:view-settings"> <config:config-item-set config:name="ooo:view-settings">
<config:config-item config:name="ViewAreaTop" config:type="long">38336</config:config-item> <config:config-item config:name="ViewAreaTop" config:type="long">11950</config:config-item>
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item> <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
<config:config-item config:name="ViewAreaWidth" config:type="long">20048</config:config-item> <config:config-item config:name="ViewAreaWidth" config:type="long">28825</config:config-item>
<config:config-item config:name="ViewAreaHeight" config:type="long">8733</config:config-item> <config:config-item config:name="ViewAreaHeight" config:type="long">12920</config:config-item>
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item> <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item> <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
<config:config-item-map-indexed config:name="Views"> <config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry> <config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item> <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
<config:config-item config:name="ViewLeft" config:type="long">1711</config:config-item> <config:config-item config:name="ViewLeft" config:type="long">4925</config:config-item>
<config:config-item config:name="ViewTop" config:type="long">4852</config:config-item> <config:config-item config:name="ViewTop" config:type="long">15117</config:config-item>
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item> <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleTop" config:type="long">38336</config:config-item> <config:config-item config:name="VisibleTop" config:type="long">11950</config:config-item>
<config:config-item config:name="VisibleRight" config:type="long">20047</config:config-item> <config:config-item config:name="VisibleRight" config:type="long">28824</config:config-item>
<config:config-item config:name="VisibleBottom" config:type="long">47068</config:config-item> <config:config-item config:name="VisibleBottom" config:type="long">24869</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item> <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
<config:config-item config:name="ZoomFactor" config:type="short">170</config:config-item> <config:config-item config:name="ZoomFactor" config:type="short">170</config:config-item>
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item> <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
<config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item> <config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
<config:config-item config:name="HideWhitespace" config:type="boolean">false</config:config-item>
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item> <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
</config:config-item-map-entry> </config:config-item-map-entry>
</config:config-item-map-indexed> </config:config-item-map-indexed>
@@ -55,6 +56,7 @@
<config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item> <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
<config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item> <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
<config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item> <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="WordLikeWrapForAsCharFlys" config:type="boolean">false</config:config-item>
<config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item> <config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item> <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item> <config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
@@ -82,13 +84,14 @@
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item> <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
<config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item> <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
<config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item> <config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
<config:config-item config:name="AutoFirstLineIndentDisregardLineSpace" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item> <config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
<config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item> <config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
<config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item> <config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/> <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item> <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
<config:config-item config:name="Rsid" config:type="int">4897608</config:config-item> <config:config-item config:name="Rsid" config:type="int">4987782</config:config-item>
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/> <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item> <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
@@ -102,6 +105,7 @@
<config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item> <config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">false</config:config-item>
<config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item> <config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item> <config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
<config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
<config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item> <config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
<config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item> <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
<config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item> <config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
@@ -109,6 +113,7 @@
<config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item> <config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
<config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item> <config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item>
<config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item> <config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="NoNumberingShowFollowBy" config:type="boolean">false</config:config-item>
<config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/> <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
<config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item> <config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item> <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
@@ -159,11 +164,11 @@
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false"> <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
<style:tab-stops/> <style:tab-stops/>
</style:paragraph-properties> </style:paragraph-properties>
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none"/> <style:text-properties style:use-window-font-color="true" loext:opacity="0%" loext:color-lum-mod="100%" loext:color-lum-off="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none"/>
</style:default-style> </style:default-style>
<style:default-style style:family="paragraph"> <style:default-style style:family="paragraph">
<style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="lr-tb"/> <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="lr-tb"/>
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false"/> <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-name-asian="Andale Sans UI" style:font-size-asian="10.5pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Andale Sans UI" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
</style:default-style> </style:default-style>
<style:default-style style:family="table"> <style:default-style style:family="table">
<style:table-properties table:border-model="collapsing"/> <style:table-properties table:border-model="collapsing"/>
@@ -683,6 +688,38 @@
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="7pt" officeooo:paragraph-rsid="0046f4f2" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="7pt" officeooo:paragraph-rsid="0046f4f2" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="026544ec" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese" fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="004b7ff9" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T1" style:family="text"> <style:style style:name="T1" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style> </style:style>
@@ -704,6 +741,30 @@
<style:style style:name="T7" style:family="text"> <style:style style:name="T7" style:family="text">
<style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/> <style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/>
</style:style> </style:style>
<style:style style:name="T8" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T9" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T10" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" officeooo:rsid="026544ec"/>
</style:style>
<style:style style:name="T11" style:family="text">
<style:text-properties fo:color="#333333" loext:opacity="100%" officeooo:rsid="0030ce45"/>
</style:style>
<style:style style:name="T12" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T13" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="026544ec" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T14" style:family="text">
<style:text-properties fo:color="#666666" loext:opacity="100%" fo:font-weight="bold" officeooo:rsid="001cd488" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T15" style:family="text">
<style:text-properties officeooo:rsid="026544ec"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics"> <style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/> <style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0in, 0in, 0in, 0in)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style> </style:style>
@@ -1268,11 +1329,16 @@
<table:table-row table:style-name="Tabla1.1"> <table:table-row table:style-name="Tabla1.1">
<table:table-cell table:style-name="Tabla1.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla1.A1" office:value-type="string">
<text:p text:style-name="P38"><text:span text:style-name="T2">Fecha</text:span><text:span text:style-name="T1">: </text:span><text:span text:style-name="T1"><text:placeholder text:placeholder-type="text">&lt;format_date(purchase.purchase_date or today, purchase.party.lang)&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P38"><text:span text:style-name="T2">Fecha</text:span><text:span text:style-name="T1">: </text:span><text:span text:style-name="T1"><text:placeholder text:placeholder-type="text">&lt;format_date(purchase.purchase_date or today, purchase.party.lang)&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P28"><text:span text:style-name="T1">NIT:</text:span> 901091201-1</text:p> <text:p text:style-name="P55"><text:placeholder text:placeholder-type="text" text:description="if test=&quot;purchase.company&quot;">&lt;if test=&quot;purchase.company&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P28">Regimen Común</text:p> <text:p text:style-name="P56"><text:placeholder text:placeholder-type="text" text:description="purchase.company and purchase.company.rec_name">&lt;purchase.company and purchase.company.rec_name&gt;</text:placeholder></text:p>
<text:p text:style-name="P28">Actividad Economica 4690</text:p> <text:p text:style-name="P50"><text:span text:style-name="T9">NIT:</text:span><text:span text:style-name="T13"> </text:span><text:span text:style-name="T12"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.identifiers[0].code">&lt;purchase.company.party.identifiers[0].code&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P28">CARRERA 16 No 52-85 PISO 4</text:p> <text:p text:style-name="P51">Regimen Común</text:p>
<text:p text:style-name="P28"><text:span text:style-name="T1">Tel:</text:span> 7163487-3000931 <text:s text:c="4"/>BOGOTA</text:p> <text:p text:style-name="P51"><text:span text:style-name="T12">Actividad Economica 46</text:span><text:span text:style-name="T14">59</text:span></text:p>
<text:p text:style-name="P52"><text:span text:style-name="T8">Dirección: </text:span><text:span text:style-name="T12"><text:placeholder text:placeholder-type="text" text:description="purchase.company.party.addresses[0].street">&lt;purchase.company.party.addresses[0].street&gt;</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">&lt;purchase.company.party.addresses[0].city&gt;</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">&lt;purchase.company.party.phone&gt;</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">&lt;purchase.company.party.mobile&gt;</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">&lt;purchase.company.party.email&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P54"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</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">&lt;replace text:p=&quot;set_lang(purchase.party.lang)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P28"><text:placeholder text:placeholder-type="text">&lt;replace text:p=&quot;set_lang(purchase.party.lang)&quot;&gt;</text:placeholder></text:p>
@@ -1349,7 +1415,7 @@
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder><text:tab/></text:p> <text:p text:style-name="P49"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder><text:tab/></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Table1.B5" office:value-type="string"> <table:table-cell table:style-name="Table1.B5" office:value-type="string">
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text">&lt;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)&gt;</text:placeholder></text:p> <text:p text:style-name="P18"><text:placeholder text:placeholder-type="text">&lt;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)&gt;</text:placeholder><text:soft-page-break/></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Table1.C5" office:value-type="string"> <table:table-cell table:style-name="Table1.C5" office:value-type="string">
<text:p text:style-name="P19"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.unit_price, purchase.party.lang, purchase.currency, digits=line.__class__.unit_price.digits[1])&gt;</text:placeholder></text:p> <text:p text:style-name="P19"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.unit_price, purchase.party.lang, purchase.currency, digits=line.__class__.unit_price.digits[1])&gt;</text:placeholder></text:p>
@@ -1363,7 +1429,6 @@
<text:p text:style-name="P18"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.amount, purchase.party.lang, purchase.currency)&gt;</text:placeholder></text:p> <text:p text:style-name="P18"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.amount, purchase.party.lang, purchase.currency)&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<text:soft-page-break/>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Table1.A2" table:number-columns-spanned="5" office:value-type="string"> <table:table-cell table:style-name="Table1.A2" table:number-columns-spanned="5" office:value-type="string">
<text:p text:style-name="P23"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p> <text:p text:style-name="P23"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p>

View File

@@ -1,31 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
<office:meta><meta:generator>LibreOffice/7.4.5.1$Linux_X86_64 LibreOffice_project/40$Build-1</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:33</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="4" meta:paragraph-count="146" meta:word-count="462" meta:character-count="4424" meta:non-whitespace-character-count="4078"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta> <office:meta><meta:generator>LibreOffice/7.4.7.2$Linux_X86_64 LibreOffice_project/40$Build-2</meta:generator><meta:creation-date>2008-06-07T15:28:22</meta:creation-date><dc:date>2009-01-10T16:03:33</dc:date><meta:editing-cycles>1</meta:editing-cycles><meta:editing-duration>PT0S</meta:editing-duration><meta:document-statistic meta:table-count="4" meta:image-count="2" meta:object-count="0" meta:page-count="4" meta:paragraph-count="147" meta:word-count="462" meta:character-count="4423" meta:non-whitespace-character-count="4077"/><meta:user-defined meta:name="Info 1"/><meta:user-defined meta:name="Info 2"/><meta:user-defined meta:name="Info 3"/><meta:user-defined meta:name="Info 4"/></office:meta>
<office:settings> <office:settings>
<config:config-item-set config:name="ooo:view-settings"> <config:config-item-set config:name="ooo:view-settings">
<config:config-item config:name="ViewAreaTop" config:type="long">9169</config:config-item> <config:config-item config:name="ViewAreaTop" config:type="long">68703</config:config-item>
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item> <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
<config:config-item config:name="ViewAreaWidth" config:type="long">27224</config:config-item> <config:config-item config:name="ViewAreaWidth" config:type="long">30628</config:config-item>
<config:config-item config:name="ViewAreaHeight" config:type="long">11643</config:config-item> <config:config-item config:name="ViewAreaHeight" config:type="long">13744</config:config-item>
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item> <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item> <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
<config:config-item-map-indexed config:name="Views"> <config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry> <config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item> <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
<config:config-item config:name="ViewLeft" config:type="long">15392</config:config-item> <config:config-item config:name="ViewLeft" config:type="long">5383</config:config-item>
<config:config-item config:name="ViewTop" config:type="long">17563</config:config-item> <config:config-item config:name="ViewTop" config:type="long">77264</config:config-item>
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item> <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleTop" config:type="long">9169</config:config-item> <config:config-item config:name="VisibleTop" config:type="long">68703</config:config-item>
<config:config-item config:name="VisibleRight" config:type="long">27222</config:config-item> <config:config-item config:name="VisibleRight" config:type="long">30626</config:config-item>
<config:config-item config:name="VisibleBottom" config:type="long">20810</config:config-item> <config:config-item config:name="VisibleBottom" config:type="long">82446</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item> <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item> <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item> <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
<config:config-item config:name="ZoomFactor" config:type="short">180</config:config-item> <config:config-item config:name="ZoomFactor" config:type="short">160</config:config-item>
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item> <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
<config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item> <config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
<config:config-item config:name="HideWhitespace" config:type="boolean">false</config:config-item>
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item> <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
</config:config-item-map-entry> </config:config-item-map-entry>
</config:config-item-map-indexed> </config:config-item-map-indexed>
@@ -91,7 +90,7 @@
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/> <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item> <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
<config:config-item config:name="Rsid" config:type="int">3198533</config:config-item> <config:config-item config:name="Rsid" config:type="int">3302942</config:config-item>
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/> <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item> <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item> <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
@@ -652,175 +651,191 @@
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="003077b6" style:font-size-asian="8pt" style:font-size-complex="8pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="003077b6" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style> </style:style>
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P34" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="026544ec" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P35" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P37" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P36" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P38" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P37" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P39" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="001ae359" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P38" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:style style:name="P40" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P39" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:style style:name="P41" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P40" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P42" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0021bfc5" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0021bfc5" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P41" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P43" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00203939" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="00203939" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P42" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P44" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="002db4b9" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="002db4b9" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P43" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:style style:name="P45" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0008048e" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0008048e" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P44" style:family="paragraph" style:parent-style-name="Table_20_Contents"> <style:style style:name="P46" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P45" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:style style:name="P47" style:family="paragraph" style:parent-style-name="Heading_20_2">
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P46" style:family="paragraph" style:parent-style-name="Heading_20_2"> <style:style style:name="P48" style:family="paragraph" style:parent-style-name="Heading_20_2">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P47" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P49" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P48" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P50" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P49" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P51" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0014b27d" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0014b27d" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P50" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P52" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties officeooo:paragraph-rsid="0023d589"/> <style:text-properties officeooo:paragraph-rsid="0023d589"/>
</style:style> </style:style>
<style:style style:name="P51" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_"> <style:style style:name="P53" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/> <loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0874in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0874in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/>
</style:style> </style:style>
<style:style style:name="P52" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_"> <style:style style:name="P54" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/> <loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-size-complex="8pt"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style> </style:style>
<style:style style:name="P53" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_"> <style:style style:name="P55" style:family="paragraph" style:parent-style-name="Normal_20__28_Web_29_">
<loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/> <loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0083in" style:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:background-color="#ffffff"/>
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="italic" fo:font-weight="bold" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="italic" fo:font-weight="bold" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-name-complex="Segoe UI" style:font-size-complex="8pt"/>
</style:style> </style:style>
<style:style style:name="P54" style:family="paragraph" style:parent-style-name="Table_20_Heading"> <style:style style:name="P56" style:family="paragraph" style:parent-style-name="Table_20_Heading">
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Table_20_Heading"> <style:style style:name="P57" style:family="paragraph" style:parent-style-name="Table_20_Heading">
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="00203939" officeooo:paragraph-rsid="00203939" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="00203939" officeooo:paragraph-rsid="00203939" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Table_20_Heading"> <style:style style:name="P58" style:family="paragraph" style:parent-style-name="Table_20_Heading">
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="003bba97" officeooo:paragraph-rsid="003bba97" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="003bba97" officeooo:paragraph-rsid="003bba97" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P57" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_"> <style:style style:name="P59" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001cd488" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="001cd488" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P58" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_"> <style:style style:name="P60" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="00244514" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P59" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P61" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="7pt" fo:font-weight="bold" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P60" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P62" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:line-height="100%" fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:line-height="100%" fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P61" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P63" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/> <style:text-properties fo:color="#000000" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="9pt" fo:language="en" fo:country="US" fo:font-weight="bold" officeooo:rsid="002a4c57" officeooo:paragraph-rsid="002ee59e" style:letter-kerning="true" style:font-name-asian="Liberation Sans1" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="9pt" style:language-complex="ar" style:country-complex="SA" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P62" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_"> <style:style style:name="P64" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/> <style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-weight-asian="bold" style:font-name-complex="Cantarell1" style:font-size-complex="7pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P63" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_"> <style:style style:name="P65" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
<style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-name-complex="Cantarell1" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Cantarell1" fo:font-size="7pt" officeooo:paragraph-rsid="002706d3" style:font-size-asian="7pt" style:font-name-complex="Cantarell1" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P64" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_"> <style:style style:name="P66" style:family="paragraph" style:parent-style-name="Text_20_body_20__28_user_29_">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/> <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false"/>
<style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/> <style:text-properties style:font-name="Cantarell" fo:font-size="7pt" officeooo:paragraph-rsid="0027ed94" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="P65" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P67" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P66" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P68" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="0023d589" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P67" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P69" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001dc758" officeooo:paragraph-rsid="001dc758" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P68" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P69" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P70" style:family="paragraph" style:parent-style-name="Standard"> <style:style style:name="P70" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P71" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P72" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/> <style:text-properties style:font-name="Droid Sans Japanese" fo:font-size="8pt" fo:font-weight="normal" officeooo:rsid="001cd488" officeooo:paragraph-rsid="001cd488" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style> </style:style>
<style:style style:name="P71" style:family="paragraph" style:parent-style-name="Text_20_body"> <style:style style:name="P73" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:paragraph-rsid="002ee59e"/> <style:text-properties officeooo:paragraph-rsid="002ee59e"/>
</style:style> </style:style>
<style:style style:name="P72" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P73" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P74" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P74" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P75" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P75" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-style-complex="normal" style:font-weight-complex="normal"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0030ce45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style> </style:style>
<style:style style:name="P76" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P76" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-weight-complex="normal"/>
</style:style> </style:style>
<style:style style:name="P77" style:family="paragraph" style:parent-style-name="Header"> <style:style style:name="P77" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/> <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="solid" style:text-underline-type="double" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0030ce45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/> <style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-weight="bold" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P78" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0in" style:auto-text-indent="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="8pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P79" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="02b1d5d8" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P80" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:color="#666666" loext:opacity="100%" style:font-name="Droid Sans Japanese1" fo:font-size="8pt" style:text-underline-style="none" fo:font-weight="bold" officeooo:rsid="0266c2a9" officeooo:paragraph-rsid="0030ce45" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P81" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0043in" style:contextual-spacing="false" fo:line-height="100%"/>
<style:text-properties style:font-name="Droid Sans Japanese1" fo:font-size="7pt" officeooo:paragraph-rsid="0032661e" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style> </style:style>
<style:style style:name="T1" style:family="text"> <style:style style:name="T1" style:family="text">
<style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="00203939" style:font-weight-asian="bold" style:font-weight-complex="bold"/> <style:text-properties style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" officeooo:rsid="00203939" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
@@ -1680,45 +1695,45 @@
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/> <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
</text:sequence-decls> </text:sequence-decls>
<text:p text:style-name="P16"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;sale in records&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P16"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;sale in records&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P71"><text:placeholder text:placeholder-type="text">&lt;choose test=&quot;&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P73"><text:placeholder text:placeholder-type="text">&lt;choose test=&quot;&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P17"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;sale.quote_number != None or sale.number != None&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P17"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;sale.quote_number != None or sale.number != None&quot;&gt;</text:placeholder></text:p>
<table:table table:name="Tabla2" table:style-name="Tabla2"> <table:table table:name="Tabla2" table:style-name="Tabla2">
<table:table-column table:style-name="Tabla2.A"/> <table:table-column table:style-name="Tabla2.A"/>
<table:table-column table:style-name="Tabla2.B"/> <table:table-column table:style-name="Tabla2.B"/>
<table:table-row table:style-name="Tabla2.1"> <table:table-row table:style-name="Tabla2.1">
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
<text:p text:style-name="P69"><text:span text:style-name="T12">Fecha</text:span><text:span text:style-name="T11">: </text:span><text:span text:style-name="T11"><text:placeholder text:placeholder-type="text">&lt;format_date(sale.sale_date or today, sale.party.lang)&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P71"><text:span text:style-name="T12">Fecha</text:span><text:span text:style-name="T11">: </text:span><text:span text:style-name="T11"><text:placeholder text:placeholder-type="text">&lt;format_date(sale.sale_date or today, sale.party.lang)&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla2.A1" table:number-rows-spanned="2" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" table:number-rows-spanned="2" office:value-type="string">
<text:p text:style-name="P73"><text:placeholder text:placeholder-type="text" text:description="if test=&quot;sale.company&quot;">&lt;if test=&quot;sale.company&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P76"><text:placeholder text:placeholder-type="text" text:description="if test=&quot;sale.company&quot;">&lt;if test=&quot;sale.company&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P74"><text:placeholder text:placeholder-type="text" text:description="sale.company and sale.company.rec_name">&lt;sale.company and sale.company.rec_name&gt;</text:placeholder></text:p> <text:p text:style-name="P77"><text:placeholder text:placeholder-type="text" text:description="sale.company and sale.company.rec_name">&lt;sale.company and sale.company.rec_name&gt;</text:placeholder></text:p>
<text:p text:style-name="P31"><text:span text:style-name="T33">NIT:</text:span><text:span text:style-name="T41"> </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.identifiers[0].code&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P31"><text:span text:style-name="T33">NIT:</text:span><text:span text:style-name="T41"> </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.identifiers[0].code&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P33">Regimen Común</text:p> <text:p text:style-name="P33">Regimen Común</text:p>
<text:p text:style-name="P33"><text:span text:style-name="T40">Actividad Economica 46</text:span><text:span text:style-name="T42">59</text:span></text:p> <text:p text:style-name="P33"><text:span text:style-name="T40">Actividad Economica 46</text:span><text:span text:style-name="T42">59</text:span></text:p>
<text:p text:style-name="P29"><text:span text:style-name="T32">Dirección: </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.addresses[0].street&gt;</text:placeholder></text:span><text:span text:style-name="T40"><text:s/></text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.addresses[0].city&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P34"><text:span text:style-name="T32">Dirección: </text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.addresses[0].street&gt;</text:placeholder></text:span><text:span text:style-name="T40"><text:s/></text:span><text:span text:style-name="T40"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.addresses[0].city&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P30"><text:span text:style-name="T33">Teléfono:</text:span><text:span text:style-name="T40"> </text:span><text:span text:style-name="T41"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.phone&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P35"><text:span text:style-name="T33">Teléfono:</text:span><text:span text:style-name="T40"> </text:span><text:span text:style-name="T41"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.phone&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P72"><text:span text:style-name="T34">Celular: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.mobile&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P79"><text:span text:style-name="T34">Celular: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.mobile&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P77"><text:span text:style-name="T35">E-mail</text:span><text:span text:style-name="T34">: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.email&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P80"><text:span text:style-name="T35">E-mail</text:span><text:span text:style-name="T34">: </text:span><text:span text:style-name="T43"><text:placeholder text:placeholder-type="text">&lt;sale.company.party.email&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P75"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P78"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row table:style-name="Tabla2.2"> <table:table-row table:style-name="Tabla2.2">
<table:table-cell table:style-name="Tabla2.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla2.A1" office:value-type="string">
<text:p text:style-name="P65">Cotizado a: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.propietary.name">&lt;sale.party.name&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P67">Cotizado a: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.propietary.name">&lt;sale.party.name&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P68"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;sale.party.tax_identifier&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P70"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;sale.party.tax_identifier&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P68"><text:span text:style-name="T13">Nit o Cedula</text:span><text:span text:style-name="T11">:</text:span> <text:placeholder text:placeholder-type="text">&lt;sale.party.tax_identifier.code&gt;</text:placeholder></text:p> <text:p text:style-name="P70"><text:span text:style-name="T13">Nit o Cedula</text:span><text:span text:style-name="T11">:</text:span> <text:placeholder text:placeholder-type="text">&lt;sale.party.tax_identifier.code&gt;</text:placeholder></text:p>
<text:p text:style-name="P70"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P72"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P66">Dirección: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.street">&lt;sale.invoice_address.street&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P68">Dirección: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.street">&lt;sale.invoice_address.street&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P67">Ciudad: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.subdivision_municipality">&lt;sale.invoice_address.subdivision_municipality.name&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P69">Ciudad: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.invoice_address.subdivision_municipality">&lt;sale.invoice_address.subdivision_municipality.name&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P67"><text:span text:style-name="T20">T</text:span><text:span text:style-name="T19">elefono: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.contact.value">&lt;sale.contact.value&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P69"><text:span text:style-name="T20">T</text:span><text:span text:style-name="T19">elefono: </text:span><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.contact.value">&lt;sale.contact.value&gt;</text:placeholder></text:span></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell table:style-name="Tabla2.A1"/> <table:covered-table-cell table:style-name="Tabla2.A1"/>
</table:table-row> </table:table-row>
</table:table> </table:table>
<text:p text:style-name="P51"/> <text:p text:style-name="P53"/>
<text:p text:style-name="P51">Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes</text:p> <text:p text:style-name="P53">Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes</text:p>
<text:p text:style-name="P53">Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados.</text:p> <text:p text:style-name="P55">Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados.</text:p>
<text:p text:style-name="P52"><text:span text:style-name="T16">&quot; SMART VISION cambia tu forma de ver el mundo</text:span><text:span text:style-name="T15">&quot;</text:span></text:p> <text:p text:style-name="P54"><text:span text:style-name="T16">&quot; SMART VISION cambia tu forma de ver el mundo</text:span><text:span text:style-name="T15">&quot;</text:span></text:p>
<table:table table:name="Tabla4" table:style-name="Tabla4"> <table:table table:name="Tabla4" table:style-name="Tabla4">
<table:table-column table:style-name="Tabla4.A"/> <table:table-column table:style-name="Tabla4.A"/>
<table:table-column table:style-name="Tabla4.B"/> <table:table-column table:style-name="Tabla4.B"/>
@@ -1732,37 +1747,37 @@
<table:table-header-rows> <table:table-header-rows>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P54">Descrip<text:span text:style-name="T3">c</text:span>ión</text:p> <text:p text:style-name="P56">Descrip<text:span text:style-name="T3">c</text:span>ión</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P55">Modelo</text:p> <text:p text:style-name="P57">Modelo</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P55">Marca</text:p> <text:p text:style-name="P57">Marca</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P55">Origen</text:p> <text:p text:style-name="P57">Origen</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P55">Garantia</text:p> <text:p text:style-name="P57">Garantia</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P56">Cantidad</text:p> <text:p text:style-name="P58">Cantidad</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P56">Precio u/n</text:p> <text:p text:style-name="P58">Precio u/n</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.A1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A1" office:value-type="string">
<text:p text:style-name="P55">IVA</text:p> <text:p text:style-name="P57">IVA</text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.I1" office:value-type="string"> <table:table-cell table:style-name="Tabla4.I1" office:value-type="string">
<text:p text:style-name="P56">Total</text:p> <text:p text:style-name="P58">Total</text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
</table:table-header-rows> </table:table-header-rows>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A2" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A2" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;line in sale.lines&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;line in sale.lines&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1775,7 +1790,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A3" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A3" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;choose test=&quot;&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;choose test=&quot;&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1788,7 +1803,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A4" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A4" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;line.type == &apos;line&apos;&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;line.type == &apos;line&apos;&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1801,61 +1816,61 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A5" office:value-type="string">
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;line.product.rec_name&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;line.product.rec_name&gt;</text:placeholder></text:p>
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.description&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.description&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in line.description.split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in line.description.split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p> <text:p text:style-name="P51"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p>
<text:p text:style-name="P49"><text:soft-page-break/><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P51"><text:soft-page-break/><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
<text:p text:style-name="P49"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P51"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.B5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.B5" office:value-type="string">
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.model_category&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.model_category&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P41"><text:placeholder text:placeholder-type="text">&lt;line.product.model_category.name&gt;</text:placeholder><text:soft-page-break/></text:p> <text:p text:style-name="P43"><text:placeholder text:placeholder-type="text">&lt;line.product.model_category.name&gt;</text:placeholder><text:soft-page-break/></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.C5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.C5" office:value-type="string">
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.mark_category&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.mark_category&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:soft-page-break/><text:placeholder text:placeholder-type="text">&lt;line.product.mark_category.name&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:soft-page-break/><text:placeholder text:placeholder-type="text">&lt;line.product.mark_category.name&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.D5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.D5" office:value-type="string">
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.origin_country&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.origin_country&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;line.product.origin_country.name&gt;</text:placeholder><text:soft-page-break/></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;line.product.origin_country.name&gt;</text:placeholder><text:soft-page-break/></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.E5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.E5" office:value-type="string">
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.warranty&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;if test=&quot;line.product.warranty&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;line.product.warranty&gt;</text:placeholder><text:soft-page-break/><text:s/><text:span text:style-name="T21">Meses</text:span></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;line.product.warranty&gt;</text:placeholder><text:soft-page-break/><text:s/><text:span text:style-name="T21">Meses</text:span></text:p>
<text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p> <text:p text:style-name="P42"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;/if&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.F5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.F5" office:value-type="string">
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text">&lt;format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)&gt;</text:placeholder><text:soft-page-break/></text:p> <text:p text:style-name="P41"><text:placeholder text:placeholder-type="text">&lt;format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)&gt;</text:placeholder><text:soft-page-break/></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.G5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.G5" office:value-type="string">
<text:p text:style-name="P43"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.unit_price, sale.party.lang, sale.currency)&gt;</text:placeholder></text:p> <text:p text:style-name="P45"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.unit_price, sale.party.lang, sale.currency)&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.H5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.H5" office:value-type="string">
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;tax in line.taxes&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P41"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;tax in line.taxes&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text">&lt;tax.description&gt;</text:placeholder></text:p> <text:p text:style-name="P41"><text:placeholder text:placeholder-type="text">&lt;tax.description&gt;</text:placeholder></text:p>
<text:p text:style-name="P39"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P41"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:table-cell table:style-name="Tabla4.I5" office:value-type="string"> <table:table-cell table:style-name="Tabla4.I5" office:value-type="string">
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.amount, sale.party.lang, sale.currency)&gt;</text:placeholder></text:p> <text:p text:style-name="P46"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.amount, sale.party.lang, sale.currency)&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A6" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A6" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1868,7 +1883,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A7" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A7" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;line.type == &apos;subtotal&apos;&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;line.type == &apos;subtotal&apos;&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1881,10 +1896,10 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A8" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A8" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in (line.description or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P47"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in (line.description or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p> <text:p text:style-name="P47"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p>
<text:p text:style-name="P46"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
<text:p text:style-name="P44"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.amount, sale.party.lang, sale.currency)&gt;</text:placeholder></text:p> <text:p text:style-name="P46"><text:placeholder text:placeholder-type="text">&lt;format_currency(line.amount, sale.party.lang, sale.currency)&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1897,7 +1912,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A9" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A9" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1910,7 +1925,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A10" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A10" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;line.type == &apos;title&apos;&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;when test=&quot;line.type == &apos;title&apos;&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1923,9 +1938,9 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in (line.description or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P47"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in (line.description or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p> <text:p text:style-name="P47"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p>
<text:p text:style-name="P45"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P47"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1938,7 +1953,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1951,7 +1966,7 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P38"><text:placeholder text:placeholder-type="text">&lt;otherwise test=&quot;&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P40"><text:placeholder text:placeholder-type="text">&lt;otherwise test=&quot;&quot;&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -1964,9 +1979,9 @@
</table:table-row> </table:table-row>
<table:table-row> <table:table-row>
<table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string"> <table:table-cell table:style-name="Tabla4.A11" table:number-columns-spanned="9" office:value-type="string">
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in (line.description or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;description in (line.description or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P48"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p> <text:p text:style-name="P50"><text:placeholder text:placeholder-type="text">&lt;description&gt;</text:placeholder></text:p>
<text:p text:style-name="P47"><text:soft-page-break/><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P49"><text:soft-page-break/><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
</table:table-cell> </table:table-cell>
<table:covered-table-cell/> <table:covered-table-cell/>
<table:covered-table-cell/> <table:covered-table-cell/>
@@ -2064,28 +2079,29 @@
</table:table> </table:table>
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;comment in (sale.comment or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p> <text:p text:style-name="P14"><text:placeholder text:placeholder-type="text">&lt;for each=&quot;comment in (sale.comment or &apos;&apos;).split(&apos;\n&apos;)&quot;&gt;</text:placeholder></text:p>
<text:p text:style-name="P14"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P14"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
<text:p text:style-name="P34">CONDICIONES DE NEGOCIACION Y PAGO:</text:p> <text:p text:style-name="P36">CONDICIONES DE NEGOCIACION Y PAGO:</text:p>
<text:p text:style-name="P35"><text:s text:c="2"/>Tiempo de entrega: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.description">&lt;sale.description&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P37"><text:s text:c="2"/>Tiempo de entrega: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.description">&lt;sale.description&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P36"><text:s text:c="2"/>Forma de pago: <text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.payment_term.name if sale.payment_term else &quot;&quot;">&lt;sale.payment_term.name if sale.payment_term else &quot;&quot;&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P81"><text:s text:c="2"/>Forma de pago:</text:p>
<text:p text:style-name="P34">Medios de pago:</text:p> <text:p text:style-name="P81"><text:s/><text:span text:style-name="T17"><text:placeholder text:placeholder-type="text" text:description="sale.payment_term.name if sale.payment_term else &quot;&quot;">&lt;sale.payment_term_description if sale.payment_term_description else &quot;&quot;&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>Efectivo, Consignación o transferencia a la cuenta corriente Bancolombia # 053813599-86 a nombre de SMART VISION SAS</text:p> <text:p text:style-name="P36">Medios de pago:</text:p>
<text:p text:style-name="P34">DOCUMENTACIÓN ENTREGADA CON LOS EQUIPOS</text:p> <text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>Efectivo, Consignación o transferencia a la cuenta corriente Bancolombia # 053813599-86 a nombre de SMART VISION SAS</text:p>
<text:p text:style-name="P37"><text:s text:c="2"/>- Factura</text:p> <text:p text:style-name="P36">DOCUMENTACIÓN ENTREGADA CON LOS EQUIPOS</text:p>
<text:p text:style-name="P64"><text:s text:c="2"/>- Certificado de capacitación</text:p> <text:p text:style-name="P39"><text:s text:c="2"/>- Factura</text:p>
<text:p text:style-name="P64"><text:s text:c="2"/>- Manifiesto de importación (si aplica)</text:p> <text:p text:style-name="P66"><text:s text:c="2"/>- Certificado de capacitación</text:p>
<text:p text:style-name="P64"><text:s text:c="2"/>- Hoja de vida de cada equipo </text:p> <text:p text:style-name="P66"><text:s text:c="2"/>- Manifiesto de importación (si aplica)</text:p>
<text:p text:style-name="P64"><text:s text:c="2"/>- Certificado de calibración (Para equipos usados)</text:p> <text:p text:style-name="P66"><text:s text:c="2"/>- Hoja de vida de cada equipo </text:p>
<text:p text:style-name="P34">Otras condiciones:</text:p> <text:p text:style-name="P66"><text:s text:c="2"/>- Certificado de calibración (Para equipos usados)</text:p>
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a <text:s text:c="2"/>Bogotá).</text:p> <text:p text:style-name="P36">Otras condiciones:</text:p>
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Garantía no incluye bombillos o piezas de desgaste por uso.</text:p> <text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a <text:s text:c="2"/>Bogotá).</text:p>
<text:p text:style-name="P63"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Con el envío de los equipos se entregarán las hojas de vida.</text:p> <text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Garantía no incluye bombillos o piezas de desgaste por uso.</text:p>
<text:p text:style-name="P62"><text:span text:style-name="T18"><text:s text:c="2"/></text:span><text:span text:style-name="T17">- La Factura de venta definitiva se entregada al confirmar el pago total.</text:span></text:p> <text:p text:style-name="P65"><text:span text:style-name="T23"><text:s text:c="2"/></text:span>- Con el envío de los equipos se entregarán las hojas de vida.</text:p>
<text:p text:style-name="P57"/> <text:p text:style-name="P64"><text:span text:style-name="T18"><text:s text:c="2"/></text:span><text:span text:style-name="T17">- La Factura de venta definitiva será entregada al confirmar el pago total.</text:span></text:p>
<text:p text:style-name="P57">OBSERVACIONES ADICIONALES</text:p> <text:p text:style-name="P59"/>
<text:p text:style-name="P59"><text:soft-page-break/><text:span text:style-name="T22"><text:s text:c="2"/>- </text:span><text:span text:style-name="T22"><text:placeholder text:placeholder-type="text" text:description="sale.comment">&lt;sale.comment&gt;</text:placeholder></text:span></text:p> <text:p text:style-name="P59"><text:soft-page-break/>OBSERVACIONES ADICIONALES</text:p>
<text:p text:style-name="P34"/> <text:p text:style-name="P61"><text:span text:style-name="T22"><text:s text:c="2"/>- </text:span><text:span text:style-name="T22"><text:placeholder text:placeholder-type="text" text:description="sale.comment">&lt;sale.comment&gt;</text:placeholder></text:span></text:p>
<text:p text:style-name="P58">VIGENCIA DE LA COTIZACIÓN: <text:span text:style-name="T24">30 D</text:span><text:span text:style-name="T25">ías</text:span></text:p> <text:p text:style-name="P36"/>
<text:p text:style-name="P61">Cordialmente</text:p> <text:p text:style-name="P60">VIGENCIA DE LA COTIZACIÓN: <text:span text:style-name="T24">30 D</text:span><text:span text:style-name="T25">ías</text:span></text:p>
<text:p text:style-name="P63">Cordialmente</text:p>
<table:table table:name="Tabla3" table:style-name="Tabla3"> <table:table table:name="Tabla3" table:style-name="Tabla3">
<table:table-column table:style-name="Tabla3.A"/> <table:table-column table:style-name="Tabla3.A"/>
<table:table-column table:style-name="Tabla3.B"/> <table:table-column table:style-name="Tabla3.B"/>
@@ -5195,8 +5211,8 @@
</table:table-cell> </table:table-cell>
</table:table-row> </table:table-row>
</table:table> </table:table>
<text:p text:style-name="P60"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p> <text:p text:style-name="P62"><text:placeholder text:placeholder-type="text">&lt;/when&gt;</text:placeholder></text:p>
<text:p text:style-name="P60"><text:placeholder text:placeholder-type="text">&lt;/choose&gt;</text:placeholder></text:p> <text:p text:style-name="P62"><text:placeholder text:placeholder-type="text">&lt;/choose&gt;</text:placeholder></text:p>
<text:p text:style-name="P23"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p> <text:p text:style-name="P23"><text:placeholder text:placeholder-type="text">&lt;/for&gt;</text:placeholder></text:p>
<text:p text:style-name="P20"/> <text:p text:style-name="P20"/>
<text:p text:style-name="P20"/> <text:p text:style-name="P20"/>

File diff suppressed because it is too large Load Diff

2589
report/Service.fodt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

285
sale.py
View File

@@ -1,18 +1,18 @@
from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.model import ModelView, ModelSQL, fields from trytond.model import ModelView, fields
from trytond.modules.currency.fields import Monetary from trytond.pyson import Eval, If
from trytond.pyson import Eval, Bool, If, Get, Equal
from decimal import Decimal from decimal import Decimal
from trytond.modules.product import price_digits
from trytond.transaction import Transaction from trytond.transaction import Transaction
from trytond.model import Workflow from trytond.model import Workflow
from trytond.modules.company.model import ( from trytond.modules.company.model import (
employee_field, set_employee, reset_employee) set_employee)
from trytond.exceptions import UserError from trytond.exceptions import UserError
from trytond.wizard import ( from trytond.wizard import (
Button, StateAction, StateTransition, StateView, Wizard) Button, StateAction, StateView, Wizard)
from trytond.i18n import gettext
from trytond.modules.sale.exceptions import PartyLocationError
from datetime import datetime
class Sale(metaclass=PoolMeta): class Sale(metaclass=PoolMeta):
@@ -20,100 +20,113 @@ class Sale(metaclass=PoolMeta):
__name__ = 'sale.sale' __name__ = 'sale.sale'
quote_number = fields.Char("Quote Number", readonly=True) quote_number = fields.Char("Quote Number", readonly=True)
sale_type = fields.Selection([('maintenance', 'Maintenance'),
('equipments', 'Equipments'),
('replaces', 'Replaces')], "Sale Type", required=True,
states={'readonly': Eval('state') != 'draft'})
maintenance_type = fields.Selection([('', ""),
('preventive', 'Preventive'),
('corrective', 'Corrective')
], "Maintenance Type",
states={
'invisible': Eval('sale_type') != "maintenance",
'required': Eval('sale_type') == "maintenance",
'readonly': Eval('state') != 'draft'},
depends=['sale_type'])
contract_ref = fields.Reference("Contract Base", selection='get_origin_contract', sale_type = fields.Selection([
domain=[('party', '=', Eval('party')), ('maintenance', 'Maintenance'),
('state', '=', 'closed')], ('equipments', 'Equipments'),
states={'invisible': (Eval('sale_type') != 'maintenance')}, ('replaces', 'Replaces')],
search_context={ "Sale Type", required=True,
'related_party': Eval('party'), states={
},) 'readonly': Eval('state') != 'draft'})
agended = fields.Boolean("Scheduling",states={
'invisible': (Eval('sale_type') != 'maintenance'), maintenance_type = fields.Selection([
'readonly': True}) ('', ""),
('preventive', 'Preventive'),
('corrective', 'Corrective')],
"Maintenance Type",
states={
'invisible': Eval('sale_type') != "maintenance",
'required': Eval('sale_type') == "maintenance",
'readonly': Eval('state') != 'draft'},
depends=['sale_type'])
contract_ref = fields.Reference(
"Contract Base", selection='get_origin_contract',
domain={
'optical_equipment.contract': [
('party', '=', Eval('party')),
('state', '=', 'closed'),
]},
states={
'invisible': (
Eval('sale_type') != 'maintenance')},
search_context={
'related_party': Eval('party'), })
agended = fields.Boolean("Scheduling", states={
'invisible': (Eval('sale_type') != 'maintenance')})
payment_term_description = fields.Char("Payment Term", states={
'readonly': Eval('state') != 'draft',
}, depends=['state'])
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
super(Sale, cls).__setup__() super(Sale, cls).__setup__()
cls.contact.states['required']=True cls.contact.states['required'] = True
cls.description.states['required']=True cls.description.states['required'] = True
cls.sale_date.states['required']=True cls.sale_date.states['required'] = True
cls.payment_term.states['required']=True
cls._buttons.update({ cls._buttons.update({
'draft': { 'draft': {
'invisible': (Eval('state').in_( 'invisible': (Eval('state').in_(
['cancelled', 'draft'])) | (Eval('shipment_state') == 'sent')}}) ['cancelled', 'draft']))},
'report': {}})
cls._transitions |= set(( cls._transitions |= set((
('draft', 'quotation'), ('draft', 'quotation'),
('quotation', 'confirmed'), ('quotation', 'confirmed'),
('confirmed', 'processing'), ('confirmed', 'processing'),
('confirmed', 'draft'), ('confirmed', 'draft'),
('processing', 'processing'), ('processing', 'processing'),
('processing', 'done'), ('processing', 'done'),
('done', 'processing'), ('done', 'processing'),
('draft', 'cancelled'), ('draft', 'cancelled'),
('quotation', 'cancelled'), ('quotation', 'cancelled'),
('quotation', 'draft'), ('quotation', 'draft'),
('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')
get_name = Model.get_name get_name = Model.get_name
models = cls._get_origin_contract() models = cls._get_origin_contract()
return [(None, '')] + [(m, get_name(m)) for m in models] return [(None, '')] + [(m, get_name(m)) for m in models]
def _get_shipment_sale(self, Shipment, key): def _get_shipment_sale(self, Shipment, key):
values = { Shipment = super(Sale, self)._get_shipment_sale(Shipment, key)
'customer': self.shipment_party or self.party, Shipment.sale_type = self.sale_type
'delivery_address': self.shipment_address, Shipment.service_maintenance_initial = \
'company': self.company, True if self.sale_type != 'equipments' else False
'sale_type': self.sale_type,
'service_maintenance_initial': True if self.sale_type != 'equipments' else False,
}
values.update(dict(key)) return Shipment
return Shipment(**values) @ classmethod
@classmethod
def set_quote_number(cls, sales): def set_quote_number(cls, sales):
''' '''
Fill the number field with the sale sequence Fill the number field with the sale sequence
@@ -122,7 +135,7 @@ class Sale(metaclass=PoolMeta):
Config = pool.get('optical_equipment.configuration') Config = pool.get('optical_equipment.configuration')
config = Config(1) config = Config(1)
for sale in sales: for sale in sales:
if config.equipment_sequence != None: if config.equipment_sequence is not None:
if not sale.quote_number: if not sale.quote_number:
try: try:
sale.quote_number = config.sale_quote_number.get() sale.quote_number = config.sale_quote_number.get()
@@ -130,41 +143,46 @@ class Sale(metaclass=PoolMeta):
except UserError: except UserError:
raise UserError(str('Validation Error')) raise UserError(str('Validation Error'))
else: else:
raise UserError(gettext('optical_equipment.msg_not_sequence_quote')) raise UserError(
gettext('optical_equipment.msg_not_sequence_quote'))
@classmethod @classmethod
def copy(cls, sales, default=None): def copy(cls, sales, default=None):
today = datetime.today().date()
if default is None: if default is None:
default = {} default = {}
else: else:
default = default.copy() default = default.copy()
default.setdefault('number', None) default.setdefault('number', None)
default.setdefault('invoice_state', 'none') default.setdefault('invoice_state', 'none')
default.setdefault('invoices_ignored', None) default.setdefault('invoices_ignored', None)
default.setdefault('moves', None)
default.setdefault('shipment_state', 'none') default.setdefault('shipment_state', 'none')
default.setdefault('sale_date', today)
default.setdefault('quoted_by') default.setdefault('quoted_by')
default.setdefault('confirmed_by') default.setdefault('confirmed_by')
return super(Sale, cls).copy(sales, default=default) return super(Sale, cls).copy(sales, default=default)
@classmethod
@ModelView.button_action(
'optical_equipment.wizard_print_balance_sale_party')
def report(cls, sales):
pass
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('quotation') @Workflow.transition('quotation')
def quote(cls, sales): def quote(cls, sales):
pool = Pool()
AdvancePaymentCondition = pool.get('sale.advance_payment.condition')
for sale in sales: for sale in sales:
sale.check_for_quotation() sale.check_for_quotation()
cls.set_quote_number(sales) cls.set_quote_number(sales)
for sale in sales: # for sale in sales:
sale.set_advance_payment_term() # sale.set_advance_payment_term()
cls.save(sales) # cls.save(sales)
@classmethod @classmethod
@ModelView.button @ModelView.button_action(
'optical_equipment.wizard_confirm_sale_date')
@Workflow.transition('confirmed') @Workflow.transition('confirmed')
@set_employee('confirmed_by') @set_employee('confirmed_by')
def confirm(cls, sales): def confirm(cls, sales):
@@ -176,10 +194,9 @@ class Sale(metaclass=PoolMeta):
cls.store_cache(sales) cls.store_cache(sales)
config = Configuration(1) config = Configuration(1)
MaintenanceService = pool.get('optical_equipment_maintenance.service') MaintenanceService = pool.get('optical_equipment_maintenance.service')
for sale in sales: for sale in sales:
if sale.sale_type == 'maintenance': if sale.sale_type == 'maintenance' and not sale.agended:
for line in sale.lines: for line in sale.lines:
maintenanceService = MaintenanceService( maintenanceService = MaintenanceService(
description=sale.description, description=sale.description,
@@ -187,15 +204,18 @@ class Sale(metaclass=PoolMeta):
state_agended='no_agenda', state_agended='no_agenda',
propietary=sale.party, propietary=sale.party,
propietary_address=sale.shipment_address, propietary_address=sale.shipment_address,
contract_origin=sale.contract_ref if sale.contract_ref else None, contract_origin=(
sale_origin=line, sale.contract_ref.id
if sale.contract_ref else None),
sale_origin=sale,
sale_date=sale.sale_date, sale_date=sale.sale_date,
state="draft" state="draft"
) )
maintenanceService.save() maintenanceService.save()
sale.agended = True sale.agended = True
sale.state = "confirmed"
sale.save() sale.save()
cls.set_number(sales) cls.set_number(sales)
with transaction.set_context( with transaction.set_context(
queue_scheduled_at=config.sale_process_after, queue_scheduled_at=config.sale_process_after,
@@ -208,15 +228,7 @@ 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):
super(SaleLine, cls).__setup__() super(SaleLine, cls).__setup__()
@@ -224,21 +236,19 @@ class SaleLine(metaclass=PoolMeta):
If(Eval('_parent_sale.sale_type') == 'maintenance', If(Eval('_parent_sale.sale_type') == 'maintenance',
[('type', '=', 'service'), [('type', '=', 'service'),
('maintenance_activity', '=', True)], [])) ('maintenance_activity', '=', True)], []))
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'replaces', cls.product.domain.append(
[('replacement', '=', True)], [])) If(Eval('_parent_sale.sale_type') == 'replaces',
[('replacement', '=', True)], []))
@fields.depends(
def on_change_with_unit_digits(self, name=None): 'product', 'unit', 'quantity', 'sale',
if self.unit: '_parent_sale.party', '_parent_sale.sale_type',
return self.unit.digits methods=[
return 2 '_get_tax_rule_pattern',
'_get_context_sale_price',
'on_change_with_amount'])
@fields.depends('product', 'unit', 'quantity', 'sale',
'_parent_sale.party', '_parent_sale.sale_type', methods=['_get_tax_rule_pattern',
'_get_context_sale_price','on_change_with_amount'])
def on_change_product(self): def on_change_product(self):
Product = Pool().get('product.product') Product = Pool().get('product.product')
if not self.product: if not self.product:
self.product_equipment = False self.product_equipment = False
self.unit = None self.unit = None
@@ -250,12 +260,13 @@ class SaleLine(metaclass=PoolMeta):
if self.sale.sale_type == 'equipments': if self.sale.sale_type == 'equipments':
self.quantity = 1 self.quantity = 1
if self.sale and self.sale.party: if self.sale and self.sale.party:
self.product_equipment = False self.product_equipment = False
party = self.sale.party party = self.sale.party
# Set taxes before unit_price to have taxes in context of sale price # Set taxes before unit_price
# to have taxes in context of sale price
taxes = [] taxes = []
pattern = self._get_tax_rule_pattern() pattern = self._get_tax_rule_pattern()
for tax in self.product.customer_taxes_used: for tax in self.product.customer_taxes_used:
@@ -275,11 +286,13 @@ class SaleLine(metaclass=PoolMeta):
category = self.product.sale_uom.category category = self.product.sale_uom.category
if not self.unit or self.unit.category != category: if not self.unit or self.unit.category != category:
self.unit = self.product.sale_uom self.unit = self.product.sale_uom
self.unit_digits = self.product.sale_uom.digits # self.unit_digits = self.product.sale_uom.digits
with Transaction().set_context(self._get_context_sale_price()): with Transaction().set_context(self._get_context_sale_price()):
self.unit_price = Product.get_sale_price([self.product], self.unit_price = Product.get_sale_price(
self.quantity or 0)[self.product.id] [self.product],
self.quantity or 0
)[self.product.id]
if self.unit_price: if self.unit_price:
self.unit_price = self.unit_price.quantize( self.unit_price = self.unit_price.quantize(
@@ -311,9 +324,8 @@ 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))
quantity = self.unit.round(quantity) quantity = self.unit.round(quantity)
@@ -323,12 +335,12 @@ class SaleLine(metaclass=PoolMeta):
if not self.sale.party.customer_location: if not self.sale.party.customer_location:
raise PartyLocationError( raise PartyLocationError(
gettext('sale.msg_sale_customer_location_required', gettext('sale.msg_sale_customer_location_required',
sale=self.sale.rec_name, sale=self.sale.rec_name,
party=self.sale.party.rec_name)) party=self.sale.party.rec_name))
move = Move() move = Move()
move.quantity = quantity move.quantity = quantity
move.uom = self.unit move.unit = self.unit
move.product = self.product move.product = self.product
move.from_location = self.from_location move.from_location = self.from_location
move.to_location = self.to_location move.to_location = self.to_location
@@ -338,9 +350,38 @@ class SaleLine(metaclass=PoolMeta):
if move.on_change_with_unit_price_required(): if move.on_change_with_unit_price_required():
move.unit_price = self.unit_price move.unit_price = self.unit_price
move.currency = self.sale.currency move.currency = self.sale.currency
move.planned_date = self.planned_shipping_date move.planned_date = self.planned_shipping_date
move.invoice_lines = self._get_move_invoice_lines(shipment_type) move.invoice_lines = self._get_move_invoice_lines(shipment_type)
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()

121
sale.xml
View File

@@ -1,47 +1,80 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. --> <!--This file file is part of Tryton. The COPYRIGHT file at the top level
of this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<record model="ir.ui.view" id="sale_view_tree"> <data>
<field name="model">sale.sale</field> <record model="ir.ui.view" id="sale_view_tree">
<field name="inherit" ref="sale.sale_view_tree"/> <field name="model">sale.sale</field>
<field name="name">sale_tree</field> <field name="inherit" ref="sale.sale_view_tree"/>
</record> <field name="name">sale_tree</field>
<record model="ir.ui.view" id="sale_view_form"> </record>
<field name="model">sale.sale</field> <record model="ir.ui.view" id="sale_view_form">
<field name="inherit" ref="sale.sale_view_form"/> <field name="model">sale.sale</field>
<field name="name">sale_form</field> <field name="inherit" ref="sale.sale_view_form"/>
</record> <field name="name">sale_form</field>
<record model="ir.ui.view" id="product_view_list_sale_line"> </record>
<field name="model">product.product</field> <record model="ir.ui.view" id="product_view_list_sale_line">
<field name="inherit" ref="sale.product_view_list_sale_line"/> <field name="model">product.product</field>
<field name="name">product_list_sale_line</field> <field name="inherit" ref="sale.product_view_list_sale_line"/>
</record> <field name="name">product_list_sale_line</field>
<record model="ir.sequence" id="sequence_quote_sale"> </record>
<field name="name">Sale Quote</field> <record model="ir.sequence" id="sequence_quote_sale">
<field name="sequence_type" ref="sale.sequence_type_sale"/> <field name="name">Sale Quote</field>
</record> <field name="sequence_type" ref="sale.sequence_type_sale"/>
<record model="ir.action.report" id="report_sale"> </record>
<field name="name">Sale Equipments</field> <record model="ir.action.report" id="sale.report_sale">
<field name="model">sale.sale</field> <field name="active" eval="False"/>
<field name="report_name">sale.sale</field> </record>
<field name="report">optical_equipment/report/Sale_Internal.fodt</field> <record model="ir.model.button" id="report_balance_party_sale">
<field name="single" eval="True"/> <field name="name">report</field>
</record> <field name="string">Estado de Cuenta</field>
<record model="ir.action.keyword" id="report_sale_keyword"> <field name="model" search="[('model', '=', 'sale.sale')]"/>
<field name="keyword">form_print</field> </record>
<field name="model">sale.sale,-1</field> <record model="ir.ui.view" id="confirm_sale_date_view_form">
<field name="action" ref="report_sale"/> <field name="model">optical_equipment.confirm_sale_date.form</field>
</record> <field name="type">form</field>
<record model="ir.action.report" id="report_sale_internal"> <field name="name">confirm_sale_date_form</field>
<field name="name">Sale Equipments Internal</field> </record>
<field name="model">sale.sale</field> <record model="ir.action.wizard" id="wizard_confirm_sale_date">
<field name="report_name">sale.sale</field> <field name="name">Confirm Sale Date</field>
<field name="report">optical_equipment/report/Sale.fodt</field> <field name="wiz_name">optical_equipment.confirm_sale_date</field>
<field name="single" eval="True"/> </record>
</record> <record model="ir.action.report" id="report_sale">
<record model="ir.action.keyword" id="report_sale_internal_keyword"> <field name="name">Sale Equipments</field>
<field name="keyword">form_print</field> <field name="model">sale.sale</field>
<field name="model">sale.sale,-1</field> <field name="report_name">sale.sale</field>
<field name="action" ref="report_sale_internal"/> <field name="report">optical_equipment/report/Sale_Internal.fodt</field>
</record> <field name="single" eval="True"/>
</record>
<record model="ir.action.keyword" id="report_sale_keyword">
<field name="keyword">form_print</field>
<field name="model">sale.sale,-1</field>
<field name="action" ref="report_sale"/>
</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>

View File

@@ -69,20 +69,20 @@ if minor_version % 2:
setup(name=name, setup(name=name,
version=version, version=version,
description='Modúlo a medida para optica', description='',
long_description=read('README.rst'), long_description=read('README.rst'),
author='OneTeam', author='Tryton',
author_email='info@onecluster.org', author_email='bugs@tryton.org',
url='http://www.tryton.org/', url='http://www.tryton.org/',
keywords='', keywords='',
package_dir={'trytond.modules.smart_vision': '.'}, package_dir={'trytond.modules.optical_equipment': '.'},
packages=( packages=(
['trytond.modules.smart_vision'] ['trytond.modules.optical_equipment']
+ ['trytond.modules.smart_vision.%s' % p + ['trytond.modules.optical_equipment.%s' % p
for p in find_packages()] for p in find_packages()]
), ),
package_data={ package_data={
'trytond.modules.smart_vision': (info.get('xml', []) 'trytond.modules.optical_equipment': (info.get('xml', [])
+ ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt', + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt',
'icons/*.svg', 'tests/*.rst']), 'icons/*.svg', 'tests/*.rst']),
}, },
@@ -115,6 +115,7 @@ setup(name=name,
'Natural Language :: Slovenian', 'Natural Language :: Slovenian',
'Natural Language :: Spanish', 'Natural Language :: Spanish',
'Natural Language :: Turkish', 'Natural Language :: Turkish',
'Natural Language :: Ukrainian',
'Operating System :: OS Independent', 'Operating System :: OS Independent',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.7',
@@ -134,6 +135,6 @@ setup(name=name,
zip_safe=False, zip_safe=False,
entry_points=""" entry_points="""
[trytond.modules] [trytond.modules]
smart_vision = trytond.modules.smart_vision optical_equipment = trytond.modules.optical_equipment
""", # noqa: E501 """, # noqa: E501
) )

View File

@@ -2,9 +2,11 @@
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of <!--This file file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<record model="ir.ui.view" id="shipment_out_view_form"> <data>
<field name="model">stock.shipment.out</field> <record model="ir.ui.view" id="shipment_out_view_form">
<field name="inherit" ref="stock.shipment_out_view_form"/> <field name="model">stock.shipment.out</field>
<field name="name">shipment_out_form</field> <field name="inherit" ref="stock.shipment_out_view_form"/>
</record> <field name="name">shipment_out_form</field>
</record>
</data>
</tryton> </tryton>

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

41863
tests/files/database.dump Normal file

File diff suppressed because one or more lines are too long

BIN
tests/files/signature.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1,495 @@
===========================
Optical Equipment Scenario
===========================
Imports::
>>> from proteus import Model, Wizard
>>> from trytond.tests.tools import activate_modules, set_user
>>> from datetime import date, timedelta, datetime
>>> import xml.etree.ElementTree as ET
>>> from trytond.modules.company.tests.tools import create_company, get_company
>>> from trytond.modules.account.tests.tools import (create_chart, create_fiscalyear, create_tax, get_accounts)
>>> from trytond.modules.account_invoice.tests.tools import (create_payment_term, set_fiscalyear_invoice_sequences)
>>> from decimal import Decimal
>>> import datetime
>>> today = datetime.date.today()
>>> from trytond.tools import file_open
Activate modules::
>>> config = activate_modules('optical_equipment')
Create company::
>>> _ = create_company()
>>> company = get_company()
Create user admin::
>>> Group = Model.get("res.group")
>>> User = Model.get("res.user")
>>> user = User(config.user)
>>> user.login = "admin"
>>> user.save()
>>> group, = Group().find(["name", "=", "Administration"])
>>> group
proteus.Model.get('res.group')(1)
>>> group_equipment, = Group().find(["name", "=", "Equipment Administration"])
>>> group_equipment
proteus.Model.get('res.group')(18)
>>> group.users.append(user)
>>> group.save()
>>> group_equipment.users
[proteus.Model.get('res.user')(1)]
Set employee::
>>> User = Model.get('res.user')
>>> Party = Model.get('party.party')
>>> Employee = Model.get('company.employee')
>>> employee_party = Party(name="Employee")
>>> employee_party.save()
>>> employee = Employee(party=employee_party)
>>> employee.save()
>>> user = User(config.user)
>>> user.employees.append(employee)
>>> user.employee = employee
>>> user.save()
>>> set_user(user.id)
Create fiscal year::
>>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear(company))
>>> fiscalyear.click('create_period')
Create chart of accounts::
>>> _ = create_chart(company)
>>> accounts = get_accounts(company)
>>> accounts
{'receivable': proteus.Model.get('account.account')(5), 'payable': proteus.Model.get('account.account')(4), 'revenue': proteus.Model.get('account.account')(6), 'expense': proteus.Model.get('account.account')(3), 'cash': proteus.Model.get('account.account')(2), 'tax': proteus.Model.get('account.account')(7)}
>>> revenue = accounts['revenue']
>>> expense = accounts['expense']
>>> cash = accounts['cash']
>>> Journal = Model.get('account.journal')
>>> PaymentMethod = Model.get('account.invoice.payment.method')
>>> cash_journal, = Journal.find([('type', '=', 'cash')])
>>> cash_journal.save()
>>> payment_method = PaymentMethod()
>>> payment_method.name = 'Cash'
>>> payment_method.journal = cash_journal
>>> payment_method.credit_account = cash
>>> payment_method.debit_account = cash
>>> payment_method.save()
Create tax::
>>> tax = create_tax(Decimal('.10'))
>>> tax.save()
Create configuration equipment::
>>> Config = Model.get("optical_equipment.configuration")
>>> UOM = Model.get("product.uom")
>>> celsius = UOM.find([("name", "=", "Celsius")])
>>> celsius
[proteus.Model.get('product.uom')(39)]
>>> moisture = UOM.find([("name", "=", "Relative Humedity")])
>>> moisture
[proteus.Model.get('product.uom')(42)]
>>> config = Config().find([])[0]
>>> equipment_sequence, = Model.get("ir.sequence").find(["name", "=", "Equipment"])
>>> equipment_sequence
proteus.Model.get('ir.sequence')(14)
>>> config.technician_responsible = employee
>>> with file_open("optical_equipment/tests/files/signature.png", "rb") as signature:
... config.technician_signature = signature.read()
>>> config.invima = "RH-202309-02409"
>>> config.equipment_sequence = equipment_sequence
>>> maintenance_sequence, = Model.get("ir.sequence").find(["name", "=", "Maintenance"])
>>> maintenance_sequence
proteus.Model.get('ir.sequence')(15)
>>> config.maintenance_sequence = maintenance_sequence
>>> agended_sequence, = Model.get("ir.sequence").find(["name", "=", "Agended"])
>>> agended_sequence
proteus.Model.get('ir.sequence')(13)
>>> config.agended_sequence = agended_sequence
>>> contract_sequence, = Model.get("ir.sequence").find(["name", "=", "Contract"])
>>> contract_sequence
proteus.Model.get('ir.sequence')(12)
>>> config.contract_sequence = contract_sequence
>>> sale_quote_number, = Model.get("ir.sequence").find(["name", "=", "Sale Quote"])
>>> sale_quote_number
proteus.Model.get('ir.sequence')(16)
>>> config.sale_quote_number = sale_quote_number
>>> config.temperature_min = 19
>>> config.temperature_max = 21
>>> config.temperature_uom = celsius[0]
>>> config.moisture_min = 43
>>> config.moisture_max = 45
>>> config.moisture_uom = moisture[0]
>>> config.save()
Create supplier::
>>> Party = Model.get('party.party')
>>> supplier = Party(name='Supplier')
>>> supplier.save()
Create customer type optica::
>>> customer_optica = Party(name='Customer optica', customer_type='optica')
>>> customer_optica.save()
>>> customer_optica.customer_type
'optica'
Create customer type ips::
>>> customer_ips = Party(name='Customer ips', customer_type='ips')
>>> customer_ips.save()
>>> customer_ips.customer_type
'ips'
Creaate contact optica::
>>> local_phone = customer_optica.contact_mechanisms.new()
>>> local_phone.type = 'phone'
>>> local_phone.value = '666666666'
>>> local_phone.value
'666666666'
Creaate contact ips::
>>> local_phone = customer_ips.contact_mechanisms.new()
>>> local_phone.type = 'phone'
>>> local_phone.value = '666666666'
>>> local_phone.value
'666666666'
Create account categories::
>>> ProductCategory = Model.get('product.category')
>>> optical_equitment_category = ProductCategory(name="Optical Equipment")
>>> optical_equitment_category.accounting = True
>>> optical_equitment_category.account_expense = expense
>>> optical_equitment_category.account_revenue = revenue
>>> children_1 = optical_equitment_category.childs.new(name="Optical Mobiliario")
>>> optical_equitment_category.save()
>>> len(optical_equitment_category.childs)
1
Create taxes::
>>> optical_equitment_category_tax, = optical_equitment_category.duplicate()
>>> optical_equitment_category_tax.customer_taxes.append(tax)
>>> optical_equitment_category_tax.save()
Create mark, model and reference category::
>>> mark_category = ProductCategory(name="ADLER")
>>> mark_category.save()
>>> model_category = ProductCategory(name="ADLER_01", parent=mark_category)
>>> model_category.save()
>>> reference_category = ProductCategory(name="ADLER_01", parent=model_category)
>>> reference_category.save()
>>> mark_category.childs
[proteus.Model.get('product.category')(6)]
Create product optical equipment::
>>> ProductUom = Model.get('product.uom')
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> ProductTemplate = Model.get('product.template')
>>> template = ProductTemplate()
>>> template.name = 'UNIDAD REFRACCION ESTANDAR'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.salable = True
>>> template.purchasable = True
>>> template.equipment = True
>>> template.list_price = Decimal('10')
>>> template.account_category = optical_equitment_category_tax
>>> template.maintenance_required = True
Mark Maintenance Activities::
>>> template.initial_operation = True
>>> template.check_equipment = True
>>> template.check_electric_system = True
>>> template.clean_int_ext = True
>>> template.preventive_activities = "Se verificaron las condiciones ambientales, se verificó estado físico del equipo, se verificó funcionamiento, se verificó tomas eléctricas y conexiones, se verificó el estado de los pulsadores, se verificó que el motor de la silla suba y baje, se realizó limpieza general, se lubricaron partes que lo requieren, se confirmó nuevamente funcionamiento."
Mark Calibration Required::
>>> template.calibration = True
>>> template.uncertainy_pattern = 0.1
>>> template.k_pattern = '-5.00'
>>> UsePattern = Model.get('optical_equipment.use_pattern')
>>> schematic_eye, = UsePattern.find([('name_pattern', '=', 'Schematic Eye')])
>>> template.use_pattern = schematic_eye
>>> k_pattern = template.k_pattern_list.new(pattern=-5)
>>> k_pattern.save()
>>> template.MEP = 0.1
>>> template.Usubi = 200
>>> template.resolution_type = 'digital'
>>> template.d_resolution = 0.25
>>> template.equipment_type = 'mobiliario_optico'
>>> template.biomedical_class = 'diagnostico'
>>> template.main_tecnology = 'electronico'
>>> template.mark_category = mark_category
>>> template.model_category = model_category
>>> template.use = 'medico'
>>> template.reference_category = reference_category
>>> template.save()
>>> len(template.k_pattern_list)
1
>>> product, = template.products
>>> product.name
'UNIDAD REFRACCION ESTANDAR'
Create Product Maintenance Service::
>>> maintenanceServiceProduct = ProductTemplate()
>>> maintenanceServiceProduct.name = 'Mantenimiento Correctivo'
>>> maintenanceServiceProduct.maintenance_activity = True
>>> maintenanceServiceProduct.default_uom = unit
>>> maintenanceServiceProduct.type = 'service'
>>> maintenanceServiceProduct.salable = True
>>> maintenanceServiceProduct.purchasable = True
>>> maintenanceServiceProduct.list_price = Decimal('10')
>>> maintenanceServiceProduct.account_category = optical_equitment_category_tax
>>> maintenanceServiceProduct.save()
>>> product1, = maintenanceServiceProduct.products
>>> product1.name
'Mantenimiento Correctivo'
Create payment term::
>>> payment_term = create_payment_term()
>>> payment_term.save()
Purchase 5 products:
>>> Purchase = Model.get('purchase.purchase')
>>> PurchaseLine = Model.get('purchase.line')
>>> purchase = Purchase()
>>> purchase.party = supplier
>>> purchase.payment_term = payment_term
>>> purchase.invoice_method = 'order'
>>> purchase_line = PurchaseLine()
>>> purchase.lines.append(purchase_line)
>>> purchase_line.product = product
>>> purchase_line.quantity = 2.0
>>> purchase_line.product_equipment
True
>>> purchase_line.unit_price = Decimal('6182237.0000')
>>> purchase_line.health_register = 'COL123evergreen'
>>> purchase.click('quote')
>>> purchase.click('confirm')
>>> purchase.click('create_equipments')
>>> Equipment = Model.get('optical_equipment.equipment')
>>> equipments = Equipment.find()
>>> equipments
[proteus.Model.get('optical_equipment.equipment')(1), proteus.Model.get('optical_equipment.equipment')(2)]
>>> len(equipments)
2
>>> purchase.equipment_create
1
Finalize the purchase inventory movements::
>>> for move in purchase.moves:
... move.click('do')
Registred equipment without serial::
>>> equipment_1 = equipments[0]
>>> equipment_2 = equipments[1]
>>> equipment_1.click('registred') # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
UserError: ...
>>> equipment_1.serial = "2020DM-0021167"
>>> equipment_1.click('registred')
>>> equipment_2.serial = "2020DM-002119"
>>> equipment_2.click('registred')
First sale::
>>> Sale = Model.get('sale.sale')
>>> SaleLine = Model.get('sale.line')
>>> sale = Sale()
>>> sale.party = customer_optica
>>> sale.contact = local_phone
>>> sale.description = 'El producto se debe entregar el fin de semana'
>>> sale.sale_date = today
>>> sale.sale_type = 'equipments'
>>> sale.payment_term = payment_term
>>> sale.invoice_method = 'order'
>>> sale_line = SaleLine()
>>> sale.lines.append(sale_line)
>>> sale_line.product = product
>>> sale_line.quantity = 2.0
>>> sale_line = SaleLine()
>>> sale.lines.append(sale_line)
>>> sale_line.type = 'comment'
>>> sale_line.description = 'Comment'
>>> sale_line = SaleLine()
>>> sale.lines.append(sale_line)
>>> sale_line.product = product
>>> sale_line.quantity = 3.0
>>> sale.click('quote')
>>> SaleConfirmDate = sale.click('confirm')
>>> SaleConfirmDate.form.sale_date == today
True
>>> SaleConfirmDate.execute('confirm_date')
>>> sale.state
'processing'
>>> sale.shipments
[proteus.Model.get('stock.shipment.out')(1)]
Duplicate Sale::
>>> sale.duplicate()
[proteus.Model.get('sale.sale')(2)]
Return Sale::
>>> SaleReturn = Wizard('sale.return_sale', [sale])
>>> SaleReturn.execute('return_')
Verify that the sale state could be returned to the draft state::
>>> sale.click("draft")
>>> sale.state
'draft'
>>> sale_line = SaleLine()
>>> sale.lines.append(sale_line)
>>> sale_line.product = product
>>> sale_line.quantity = 2.0
>>> sale.click('quote')
>>> SaleConfirmDate = sale.click('confirm')
>>> SaleConfirmDate.execute('confirm_date')
>>> sale.shipments
[proteus.Model.get('stock.shipment.out')(1), proteus.Model.get('stock.shipment.out')(2)]
Verify that the shipment cannot be assigned if the shipment lines do not have equipment::
>>> shipment_one = sale.shipments[0]
>>> shipment_one.click('pick') # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
ValidationError: ...
Restrict assignment when the shipment has no serialized items::
>>> shipment_one = sale.shipments[0]
>>> line_one = shipment_one.inventory_moves[0]
>>> line_one.equipment = equipment_1
>>> line_one.equipment_serial
'2020DM-0021167'
>>> line_two = shipment_one.inventory_moves[1]
>>> line_two.equipment = equipment_2
>>> line_two.equipment_serial
'2020DM-002119'
>>> shipment_one.click('assign_try')
>>> shipment_one.click('pick')
>>> shipment_one.click('pack')
>>> shipment_one.click('done')
Create a new Maintenance Service::
>>> shipment_one.click('maintenance_initial')
>>> MantenanceServices = Model.get("optical_equipment_maintenance.service")
>>> mantenanceServices, = MantenanceServices.find()
>>> mantenanceServices
proteus.Model.get('optical_equipment_maintenance.service')(1)
>>> mantenanceServices.state
'draft'
>>> MaintenanceLines = Model.get("optical_equipment.maintenance")
>>> maintenanceLines = MaintenanceLines.find()
>>> maintenanceLines
[proteus.Model.get('optical_equipment.maintenance')(1), proteus.Model.get('optical_equipment.maintenance')(2)]
>>> maintenanceLines[0].state
'draft'
>>> maintenance_1 = maintenanceLines[0]
>>> maintenance_2 = maintenanceLines[1]
>>> maintenance_1.equipment.state
'uncontrated'
>>> maintenance_1.equipment.propietary == customer_optica
True
>>> maintenance_1.equipment.propietary_address.street
>>> maintenance_2.equipment.state
'uncontrated'
>>> maintenance_2.equipment.propietary == customer_optica
True
>>> maintenance_2.equipment.propietary_address.street
Assing schedule to maintenance service::
>>> AssingSchedule = Wizard('optical_equipment_maintenance.assing_agended', [mantenanceServices])
>>> AssingSchedule.form.estimated_agended = datetime.datetime.now()
>>> AssingSchedule.form.technical = employee
>>> AssingSchedule.execute('assing_agended')
>>> mantenanceServices.state
'agended'
>>> mantenanceServices.click('in_progress')
>>> mantenanceServices.state
'in_progress'
>>> mantenanceServices.lines
[proteus.Model.get('optical_equipment.maintenance')(1), proteus.Model.get('optical_equipment.maintenance')(2)]
Calibrate Maintenance Lines::
>>> mantenance_lines = mantenanceServices.lines
>>> mantenance_line_one = mantenance_lines[0]
>>> mantenance_line_two = mantenance_lines[1]
>>> mantenance_line_one.click('samples')
>>> len(mantenance_line_one.lines_calibration)
5
>>> mantenance_line_one.click('calibrate')
>>> mantenance_line_one.calibration_total
[proteus.Model.get('optical_equipment.maintenance.calibration')(1)]
>>> len(mantenance_line_one.graph_calibration)
14857
>>> mantenance_line_one.click('finished')
>>> mantenance_line_one.state
'finished'
Finished Maintenance Service::
>>> mantenanceServices.click('finished') # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
ValidationError: ...
>>> mantenance_line_two.click('samples')
>>> len(mantenance_line_two.lines_calibration)
5
>>> mantenance_line_two.click('calibrate')
>>> mantenance_line_two.calibration_total
[proteus.Model.get('optical_equipment.maintenance.calibration')(2)]
>>> len(mantenance_line_two.graph_calibration)
14857
>>> mantenance_line_two.click('finished')
>>> mantenanceServices.click('finished')
>>> mantenanceServices.state
'finished'
Create a New Contract::
Sale Maintenance Service::
>>> sale2 = Sale()
>>> sale2.party = customer_optica
>>> sale2.contact = local_phone
>>> sale2.description = 'El producto se debe entregar el fin de semana'
>>> sale2.sale_date = today
>>> sale2.sale_type = 'maintenance'
>>> sale2.maintenance_type = 'corrective'
>>> sale2.payment_term = payment_term
>>> sale2.invoice_method = 'order'
>>> sale_line = SaleLine()
>>> sale2.lines.append(sale_line)
>>> sale_line.product = product1
>>> sale_line.quantity = 1.0
>>> sale2.click('quote')
>>> SaleConfirmDate = sale2.click('confirm')
>>> SaleConfirmDate.form.sale_date == today
True
>>> SaleConfirmDate.execute('confirm_date')
>>> sale2.state
'processing'
>>> sale2.shipments
[]

View File

@@ -2,9 +2,9 @@
from trytond.tests.test_tryton import ModuleTestCase from trytond.tests.test_tryton import ModuleTestCase
class SmartVisionTestCase(ModuleTestCase): class OpticalEquipmentTestCase(ModuleTestCase):
"Test Smart Vision module" "Test Optical Equipment module"
module = 'smart_vision' module = 'optical_equipment'
del ModuleTestCase del ModuleTestCase

8
tests/test_scenario.py Normal file
View File

@@ -0,0 +1,8 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.tests.test_tryton import load_doc_tests
def load_tests(*args, **kwargs):
return load_doc_tests(__name__, __file__, *args, **kwargs)

View File

@@ -4,8 +4,8 @@ envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
[testenv] [testenv]
extras = test extras = test
commands = commands =
coverage run --include=.*/smart_vision/* -m unittest discover -s tests coverage run --include=./**/optical_equipment/* -m unittest discover -s tests
coverage report --include=.*/smart_vision/* --omit=*/tests/* coverage report --include=./**/optical_equipment/* --omit=*/tests/*
deps = deps =
coverage coverage
postgresql: psycopg2 >= 2.7.0 postgresql: psycopg2 >= 2.7.0

View File

@@ -1,35 +1,31 @@
[tryton] [tryton]
version=6.2 version=7.0.0
depends: depends:
ir ir
party
company company
account_co_co account_product
account_co_pyme party
account_invoice
account_stock_continental
product product
product_attribute
product_image
product_measurements product_measurements
purchase purchase
sale sale
stock
country
sale_history
sale_advance_payment
sale_amendment
xml: xml:
address.xml company.xml
party.xml equipment.xml
account.xml calibration.xml
product.xml contract.xml
equipment.xml diary.xml
contract.xml agended.xml
configuration_equipment.xml configuration.xml
sale.xml maintenance.xml
purchase.xml move.xml
uom.xml party.xml
move.xml uom.xml
message.xml product.xml
diary.xml purchase.xml
maintenance.xml sale.xml
shipment.xml balance_sale_party.xml
shipment.xml
messages.xml

View File

@@ -7,7 +7,7 @@ this repository contains the full copyright notices and license terms. -->
<label name="party_related"/> <label name="party_related"/>
<field name="party_related"/> <field name="party_related"/>
</xpath> </xpath>
<xpath expr="/form/group[@id='checkboxes']/field[@name='delivery']" position="after"> <xpath expr="/form/group[@id='checkboxes']/field[@name='active']" position="after">
<label name="campus"/> <label name="campus"/>
<field name="campus"/> <field name="campus"/>
</xpath> </xpath>

View File

@@ -2,7 +2,7 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of <!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<data> <data>
<xpath expr="//field[@name='name']" position="after"> <!-- <xpath expr="//field[@name='street']" position="replace"> -->
<field name="street" expand="1"/> <!-- <field name="street" expand="1"/> -->
</xpath> <!-- </xpath> -->
</data> </data>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form>
<label name="diopter"/>
<field name="diopter"/>
<label name="dev_std"/>
<field name="dev_std"/>
<label name="uncertain_type_A"/>
<field name="uncertain_type_A"/>
<label name="uncertain_pattern"/>
<field name="uncertain_pattern"/>
<label name="k_c_calibration"/>
<field name="k_c_calibration"/>
<label name="uncertain_U_b1"/>
<field name="uncertain_U_b1"/>
<label name="d_resolution"/>
<field name="d_resolution"/>
<label name="uncertain_U_b2_dig"/>
<field name="uncertain_U_b2_dig"/>
<label name="uncertain_U_b2_ana"/>
<field name="uncertain_U_b2_ana"/>
<label name="uncertain_combinated"/>
<field name="uncertain_combinated"/>
<label name="uncertain_eff"/>
<field name="uncertain_eff"/>
<label name="t_student"/>
<field name="t_student"/>
<label name="uncertain_expanded"/>
<field name="uncertain_expanded"/>
<label name="graph_dates"/>
<field name="graph_dates"/>
<label name="state"/>
<field name="state"/>
</form>

View File

@@ -4,6 +4,7 @@ this repository contains the full copyright notices and license terms. -->
<form> <form>
<separator id="sequences" string="Sequences" colspan="4"/> <separator id="sequences" string="Sequences" colspan="4"/>
<newline/>
<label name="equipment_sequence"/> <label name="equipment_sequence"/>
<field name="equipment_sequence"/> <field name="equipment_sequence"/>
<newline/> <newline/>
@@ -18,8 +19,10 @@ this repository contains the full copyright notices and license terms. -->
<newline/> <newline/>
<label name="sale_quote_number"/> <label name="sale_quote_number"/>
<field name="sale_quote_number"/> <field name="sale_quote_number"/>
<newline/> <newline/>
<separator id="environmental_conditions" string="Environmental Conditions" colspan="4"/> <separator id="environmental_conditions" string="Environmental Conditions" colspan="4"/>
<newline/>
<label name="temperature_min"/> <label name="temperature_min"/>
<field name="temperature_min"/> <field name="temperature_min"/>
<newline/> <newline/>
@@ -38,4 +41,14 @@ this repository contains the full copyright notices and license terms. -->
<label name="moisture_uom"/> <label name="moisture_uom"/>
<field name="moisture_uom"/> <field name="moisture_uom"/>
<newline/> <newline/>
<separator id="technician_responsible" string="Technician Responsible" colspan="4"/>
<label name="technician_responsible"/>
<field name="technician_responsible"/>
<label name="invima"/>
<field name="invima"/>
<label name="technician_signature"/>
<field name="technician_signature"/>
</form> </form>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of <!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<calendar <form>
dtstart="date_expected" <label name="sale_date"/>
dtend="date_expected"> <field name="sale_date"/>
</calendar> </form>

View File

@@ -27,11 +27,14 @@ this repository contains the full copyright notices and license terms. -->
<field name="maintenance_services"/> <field name="maintenance_services"/>
</page> </page>
<page string="Equipments" id="equipments"> <page string="Equipments" id="equipments">
<field name="equipments"/> <field name="current_equipments"/>
</page>
<page string="History Equipments" id="history_equipments">
<field name="history_equipments"/>
</page> </page>
<page string="Other Info" id="other"> <page string="Other Info" id="other">
<label name="company"/> <!-- <label name="company"/> -->
<field name="company"/> <!-- <field name="company"/> -->
</page> </page>
</notebook> </notebook>
<label name="price_contract"/> <label name="price_contract"/>
@@ -39,9 +42,10 @@ this repository contains the full copyright notices and license terms. -->
<newline/> <newline/>
<label name="state"/> <label name="state"/>
<field name="state"/> <field name="state"/>
<group col="2" colspan="2" id="button"> <group col="6" id="button">
<button name="draft"/> <button name="draft"/>
<button name="cancelled"/> <button name="closed"/>
<button name="cancelled"/>
<button name="running"/> <button name="running"/>
</group> </group>
</form> </form>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. -->
<tree>
<field name="number"/>
<field name="reference"/>
<field name="party"/>
<field name="start_date"/>
<field name="end_date"/>
</tree>

View File

@@ -2,16 +2,22 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level <!-- This file is part of Tryton. The COPYRIGHT file at the top level
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<form> <form>
<group id="create_contract"> <group id="create_contract" col="2">
<label name="party"/> <label name="party"/>
<field name="party"/> <field name="party"/>
<label name="contact"/> <newline/>
<field name="contact"/>
<label name="invoice_address"/> <label name="invoice_address"/>
<field name="invoice_address"/> <field name="invoice_address"/>
<newline/>
<label name="contact"/>
<field name="contact"/>
<newline/>
<label name="start_date"/> <label name="start_date"/>
<field name="start_date"/> <field name="start_date"/>
<label name="end_date"/> <label name="end_date"/>
<field name="end_date"/> <field name="end_date"/>
<newline/>
<label name="unit_price"/>
<field name="unit_price"/>
</group> </group>
</form> </form>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form col="2">
<image name="tryton-question" xexpand="0" xfill="0"/>
<group col="2" xexpand="1" id="create_date">
<label string="Create Subscription Invoices for date" id="create"/>
<field name="date"/>
</group>
</form>

View File

@@ -1,36 +0,0 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level
this repository contains the full copyright notices and license terms. -->
<form>
<group id="create_prorogue">
<label name="party"/>
<field name="party"/>
<label name="contact"/>
<field name="contact"/>
<newline/>
<label name="initial_contract"/>
<field name="initial_contract" colspan="3"/>
<label name="invoice_address"/>
<field name="invoice_address"/>
<label name="payment_term"/>
<field name="payment_term"/>
<newline/>
<label name="invoice_recurrence"/>
<field name="invoice_recurrence"/>
<newline/>
<label name="start_date"/>
<field name="start_date"/>
<label name="end_date"/>
<field name="end_date"/>
<label name="invoice_start_date"/>
<field name="invoice_start_date"/>
<label name="service"/>
<field name="service"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit_price"/>
<field name="unit_price"/>
</group>
<newline/>
<field name="equipments"/>
</form>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level
this repository contains the full copyright notices and license terms. -->
<form>
<group id="create_subscription">
<label name="party"/>
<field name="party"/>
<label name="contact"/>
<field name="contact"/>
<label name="invoice_address"/>
<field name="invoice_address"/>
<label name="invoice_recurrence"/>
<field name="invoice_recurrence"/>
<label name="start_date"/>
<field name="start_date"/>
<label name="end_date"/>
<field name="end_date"/>
<label name="invoice_start_date"/>
<field name="invoice_start_date"/>
<label name="service"/>
<field name="service"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit_price"/>
<field name="unit_price"/>
<label name="payment_term"/>
<field name="payment_term"/>
</group>
<newline/>
<field name="equipments"/>
</form>

10
view/employee_form.xml Normal file
View File

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

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms.-->
<tree>
<field name="value_patterns" expand="1"/>
<field name="value_equipment" expand="1"/>
<field name="mistake" expand="1"/>
<field name="mistake_rate" expand="1"/>
</tree>

View File

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

View File

@@ -17,7 +17,7 @@
<label name="service_maintenance"/> <label name="service_maintenance"/>
<field name="service_maintenance"/> <field name="service_maintenance"/>
<label name="equipment_calibrate"/> <label name="equipment_calibrate"/>
<field name="equipment_calibrate" invisible="1"/> <field name="equipment_calibrate"/>
<newline/> <newline/>
<label name="description_activity"/> <label name="description_activity"/>
<field name="description_activity" colspan="3"/> <field name="description_activity" colspan="3"/>
@@ -64,8 +64,8 @@
<newline/> <newline/>
<group colspan="6" yexpand="1" id="lines_calibration"> <group colspan="6" yexpand="1" id="lines_calibration">
<field name="lines_calibration"/> <field name="lines_calibration"/>
<newline/> <newline/>
<field name="calibration_total"/> <field name="calibration_total" view_ids="optical_equipment.calibration_total_view_tree,optical_equipment.calibration_total_view_form"/>
</group> </group>
</page> </page>
<page string="Graph" id="graph"> <page string="Graph" id="graph">
@@ -73,6 +73,12 @@
</page> </page>
</notebook> </notebook>
<newline/> <newline/>
<label name="technician_responsible"/>
<field name="technician_responsible"/>
<label name="invima"/>
<field name="invima"/>
<label name="state"/> <label name="state"/>
<field name="state"/> <field name="state"/>
<group id="button"> <group id="button">

View File

@@ -14,9 +14,11 @@
<label name="maintenance_activity"/> <label name="maintenance_activity"/>
<field name="maintenance_activity"/> <field name="maintenance_activity"/>
<newline/> <newline/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit"/> <label name="unit"/>
<field name="unit"/> <field name="unit"/>
<newline/> <newline/>
<label name="quantity"/> <label name="description"/>
<field name="quantity"/> <field name="description" xexpand="1"/>
</form> </form>

View File

@@ -34,13 +34,16 @@
<label name="moisture_uom"/> <label name="moisture_uom"/>
<field name="moisture_uom"/> <field name="moisture_uom"/>
<notebook colspan="6"> <notebook colspan="6">
<page string="General" id="general"> <page string="General" id="general" col="2">
<label name="state_agended"/>
<field name="state_agended"/>
<label name="technical"/> <label name="technical"/>
<field name="technical"/> <field name="technical"/>
<newline/>
<label name="estimated_agended"/> <label name="estimated_agended"/>
<field name="estimated_agended"/> <field name="estimated_agended" widget="date"/>
<label name="estimated_agended" string="Hora"/>
<field name="estimated_agended" widget="time"/>
<label name="state_agended"/>
<field name="state_agended"/>
</page> </page>
<page string="Lines Of Mantenaince" id="lines_maintenance"> <page string="Lines Of Mantenaince" id="lines_maintenance">
<field name="lines"/> <field name="lines"/>
@@ -56,13 +59,21 @@
<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="in_progress"/> <button name="reassing_agended" string="Reassing Agended"/>
<button name="finished"/> <button name="assing_agended" string="Assing Agended"/>
<button name="in_progress"/>
<button name="finished"/>
</group> </group>
</form> </form>

View File

@@ -3,6 +3,9 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<data> <data>
<xpath expr="/form/field[@name='product']" position="after"> <xpath expr="/form/field[@name='product']" position="after">
<newline/>
<label name="return_equipment"/>
<field name="return_equipment"/>
<newline/> <newline/>
<label name="equipment"/> <label name="equipment"/>
<field name="equipment"/> <field name="equipment"/>

View File

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

View File

@@ -3,11 +3,7 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<data> <data>
<xpath expr="/form/group[@id='header']" position="inside"> <xpath expr="/form/group[@id='header']" position="inside">
<label name="client_type"/> <label name="customer_type"/>
<field name="client_type"/> <field name="customer_type"/>
</xpath>
<xpath expr="/form/notebook/page[@id='general']" position="after">
<page string="Equipments Party" id="equipments_party">
</page>
</xpath> </xpath>
</data> </data>

Some files were not shown because too many files have changed in this diff Show More