diff --git a/logistic/__init__.py b/logistic/__init__.py index c31abb9..ec88327 100644 --- a/logistic/__init__.py +++ b/logistic/__init__.py @@ -1,36 +1,16 @@ # -*- coding: utf-8 -*- ############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# +# For copyright and license notices, see __openerp__.py file in module root +# directory ############################################################################## - - -import product -import waybill_expense -import waybill -import travel -import requirement -import waybill_driver_payment -import location -import vehicle -import partner -import wizard -import report - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +from . import waybill +from . import wizard +from . import travel +from . import vehicle +from . import location +from . import product +from . import requirement +from . import res_partner +from . import waybill_expense +from . import waybill_driver_payment +from . import account_invoice diff --git a/logistic/__openerp__.py b/logistic/__openerp__.py index 569f70d..61c63a1 100644 --- a/logistic/__openerp__.py +++ b/logistic/__openerp__.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- ############################################################################## # -# Logistic -# Copyright (C) 2014 No author. -# No email +# Copyright (C) 2015 ADHOC SA (http://www.adhoc.com.ar) +# All Rights Reserved. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -21,56 +20,61 @@ ############################################################################## -{ 'active': False, - 'author': 'No author.', - 'category': u'base.module_category_knowledge_management', - 'demo_xml': [], - 'depends': [ u'purchase', - u'account', - u'product', - u'sale', - u'fleet', - u'mail'], - 'description': u'Logistic', - 'init_xml': [], +{'active': False, + 'author': 'ADHOC.', + 'category': 'base.module_category_knowledge_management', + 'demo': [ + 'data/demo/res.partner.csv', + 'data/demo/logistic.location.csv', + 'data/demo/product.product.csv', + 'data/demo/fleet.vehicle.csv', + 'data/demo/logistic.waybill.csv', + 'data/demo/logistic.travel.csv', + # 'data/demo/product.supplierinfo.csv', + 'data/demo/documents/logistic.requirement.csv', + 'data/demo/maintenances/logistic.requirement.csv', + 'data/demo/logistic.requirement.xml', + ], + 'depends': ['purchase', + 'account', + 'product', + 'sale', + 'fleet', + 'mail'], + 'description': """ +Logistic +""", 'installable': True, 'license': 'AGPL-3', - 'name': u'Logistic', + 'name': 'Logistic', 'test': [], - 'update_xml': [ u'security/logistic_group.xml', - u'view/product_view.xml', - u'view/waybill_expense_view.xml', - u'view/waybill_view.xml', - u'view/travel_view.xml', - u'view/requirement_view.xml', - u'view/waybill_driver_payment_view.xml', - u'view/location_view.xml', - u'view/vehicle_view.xml', - u'view/partner_view.xml', - u'view/logistic_menuitem.xml', - u'data/product_properties.xml', - u'data/waybill_expense_properties.xml', - u'data/waybill_properties.xml', - u'data/travel_properties.xml', - u'data/requirement_properties.xml', - u'data/waybill_driver_payment_properties.xml', - u'data/location_properties.xml', - u'data/vehicle_properties.xml', - u'data/partner_properties.xml', - u'data/product_track.xml', - u'data/waybill_expense_track.xml', - u'data/waybill_track.xml', - u'data/travel_track.xml', - u'data/requirement_track.xml', - u'data/waybill_driver_payment_track.xml', - u'data/location_track.xml', - u'data/vehicle_track.xml', - u'data/partner_track.xml', - u'workflow/waybill_workflow.xml', - u'workflow/requirement_workflow.xml', - u'workflow/waybill_driver_payment_workflow.xml', - 'security/ir.model.access.csv'], - 'version': 'No version', - 'website': ''} + 'data': [ + # 'wizard/travel_sale_order.xml', + 'security/logistic_group.xml', + 'wizard/travel_make_invoice.xml', + 'wizard/expense_make_invoice.xml', + 'view/partner_view.xml', + 'view/waybill_view.xml', + 'view/product_view.xml', + 'view/travel_view.xml', + 'view/waybill_expense_view.xml', + 'view/fleet_view.xml', + 'view/requirement_view.xml', + 'view/purchase_order.xml', + 'view/waybill_driver_payment_view.xml', + 'view/location_view.xml', + 'view/logistic_menuitem.xml', + 'data/waybill_sequence.xml', + 'data/cron.xml', + 'workflow/waybill_workflow.xml', + 'workflow/requirement_workflow.xml', + 'workflow/waybill_driver_payment_workflow.xml', + 'security/ir.model.access.csv', + ], + 'version': '8.0.0.1.1', + 'css': [ + 'static/src/css/logistic.css', + ], + 'website': 'www.adhoc.com.ar'} # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/logistic_x/account_invoice.py b/logistic/account_invoice.py similarity index 100% rename from logistic_x/account_invoice.py rename to logistic/account_invoice.py diff --git a/logistic/data/README b/logistic/data/README deleted file mode 100644 index e69de29..0000000 diff --git a/logistic_x/data/cron.xml b/logistic/data/cron.xml similarity index 100% rename from logistic_x/data/cron.xml rename to logistic/data/cron.xml diff --git a/logistic_x/data/demo/documents/logistic.requirement.csv b/logistic/data/demo/documents/logistic.requirement.csv similarity index 100% rename from logistic_x/data/demo/documents/logistic.requirement.csv rename to logistic/data/demo/documents/logistic.requirement.csv diff --git a/logistic_x/data/demo/fleet.vehicle.csv b/logistic/data/demo/fleet.vehicle.csv similarity index 100% rename from logistic_x/data/demo/fleet.vehicle.csv rename to logistic/data/demo/fleet.vehicle.csv diff --git a/logistic_x/data/demo/logistic.location.csv b/logistic/data/demo/logistic.location.csv similarity index 100% rename from logistic_x/data/demo/logistic.location.csv rename to logistic/data/demo/logistic.location.csv diff --git a/logistic_x/data/demo/logistic.requirement.xml b/logistic/data/demo/logistic.requirement.xml similarity index 58% rename from logistic_x/data/demo/logistic.requirement.xml rename to logistic/data/demo/logistic.requirement.xml index af145b0..c730d25 100644 --- a/logistic_x/data/demo/logistic.requirement.xml +++ b/logistic/data/demo/logistic.requirement.xml @@ -3,43 +3,43 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/logistic_x/data/demo/logistic.travel.csv b/logistic/data/demo/logistic.travel.csv similarity index 100% rename from logistic_x/data/demo/logistic.travel.csv rename to logistic/data/demo/logistic.travel.csv diff --git a/logistic_x/data/demo/logistic.waybill.csv b/logistic/data/demo/logistic.waybill.csv similarity index 100% rename from logistic_x/data/demo/logistic.waybill.csv rename to logistic/data/demo/logistic.waybill.csv diff --git a/logistic_x/data/demo/maintenances/logistic.requirement.csv b/logistic/data/demo/maintenances/logistic.requirement.csv similarity index 100% rename from logistic_x/data/demo/maintenances/logistic.requirement.csv rename to logistic/data/demo/maintenances/logistic.requirement.csv diff --git a/logistic_x/data/demo/product.product.csv b/logistic/data/demo/product.product.csv similarity index 100% rename from logistic_x/data/demo/product.product.csv rename to logistic/data/demo/product.product.csv diff --git a/logistic_x/data/demo/product.supplierinfo.csv b/logistic/data/demo/product.supplierinfo.csv similarity index 100% rename from logistic_x/data/demo/product.supplierinfo.csv rename to logistic/data/demo/product.supplierinfo.csv diff --git a/logistic_x/data/demo/res.partner.csv b/logistic/data/demo/res.partner.csv similarity index 100% rename from logistic_x/data/demo/res.partner.csv rename to logistic/data/demo/res.partner.csv diff --git a/logistic/data/location_properties.xml b/logistic/data/location_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/location_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/location_track.xml b/logistic/data/location_track.xml deleted file mode 100644 index d4fc6a4..0000000 --- a/logistic/data/location_track.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/logistic/data/partner_properties.xml b/logistic/data/partner_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/partner_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/partner_track.xml b/logistic/data/partner_track.xml deleted file mode 100644 index d4fc6a4..0000000 --- a/logistic/data/partner_track.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/logistic/data/product_properties.xml b/logistic/data/product_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/product_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/product_track.xml b/logistic/data/product_track.xml deleted file mode 100644 index d4fc6a4..0000000 --- a/logistic/data/product_track.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/logistic/data/requirement_properties.xml b/logistic/data/requirement_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/requirement_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/requirement_track.xml b/logistic/data/requirement_track.xml deleted file mode 100644 index 2a03dd9..0000000 --- a/logistic/data/requirement_track.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - Draft - logistic.requirement - - Draft - - - OK - logistic.requirement - - OK - - - Next To Renew - logistic.requirement - - Next To Renew - - - Need Renew - logistic.requirement - - Need Renew - - - Renewal Requested - logistic.requirement - - Renewal Requested - - - Renewed - logistic.requirement - - Renewed - - - Cancelled - logistic.requirement - - Cancelled - - - - diff --git a/logistic/data/travel_properties.xml b/logistic/data/travel_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/travel_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/travel_track.xml b/logistic/data/travel_track.xml deleted file mode 100644 index d4fc6a4..0000000 --- a/logistic/data/travel_track.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/logistic/data/vehicle_properties.xml b/logistic/data/vehicle_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/vehicle_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/vehicle_track.xml b/logistic/data/vehicle_track.xml deleted file mode 100644 index d4fc6a4..0000000 --- a/logistic/data/vehicle_track.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/logistic/data/waybill_driver_payment_properties.xml b/logistic/data/waybill_driver_payment_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/waybill_driver_payment_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/waybill_driver_payment_track.xml b/logistic/data/waybill_driver_payment_track.xml deleted file mode 100644 index a969f91..0000000 --- a/logistic/data/waybill_driver_payment_track.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - Draft - logistic.waybill_driver_payment - - Draft - - - Paid - logistic.waybill_driver_payment - - Paid - - - Cancelled - logistic.waybill_driver_payment - - Cancelled - - - - diff --git a/logistic/data/waybill_expense_properties.xml b/logistic/data/waybill_expense_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/waybill_expense_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic/data/waybill_expense_track.xml b/logistic/data/waybill_expense_track.xml deleted file mode 100644 index d4fc6a4..0000000 --- a/logistic/data/waybill_expense_track.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/logistic/data/waybill_properties.xml b/logistic/data/waybill_properties.xml deleted file mode 100644 index 8a6a6c1..0000000 --- a/logistic/data/waybill_properties.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/logistic_x/data/waybill_sequence.xml b/logistic/data/waybill_sequence.xml similarity index 100% rename from logistic_x/data/waybill_sequence.xml rename to logistic/data/waybill_sequence.xml diff --git a/logistic/data/waybill_track.xml b/logistic/data/waybill_track.xml deleted file mode 100644 index 659c9f0..0000000 --- a/logistic/data/waybill_track.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - Active - logistic.waybill - - Active - - - Closed - logistic.waybill - - Closed - - - Cancelled - logistic.waybill - - Cancelled - - - - diff --git a/logistic/i18n/es.po b/logistic/i18n/es.po new file mode 100644 index 0000000..237a6c6 --- /dev/null +++ b/logistic/i18n/es.po @@ -0,0 +1,1488 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * logistic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-23 15:59+0000\n" +"PO-Revision-Date: 2015-09-23 13:04-0300\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 1.5.4\n" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: selection:logistic.waybill,state:0 +msgid "Active" +msgstr "Activo" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Additional Properties" +msgstr "Opciones" + +#. module: logistic +#: model:product.template,name:logistic.product_product_07_product_template +msgid "Bromatología" +msgstr "Bromatología" + +#. module: logistic +#: model:product.template,name:logistic.product_product_03_product_template +msgid "Buenos Aires – Rosario" +msgstr "Buenos Aires – Rosario" + +#. module: logistic +#: view:logistic.location:logistic.view_logistic_location_filter +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "By Attribute" +msgstr "Por Atributo" + +#. module: logistic +#: view:logistic.location:logistic.view_logistic_location_filter +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "By object" +msgstr "By object" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: logistic +#: selection:logistic.requirement,state:0 selection:logistic.waybill,state:0 +#: selection:logistic.waybill_driver_payment,state:0 +msgid "Cancelled" +msgstr "Cancelado" + +#. module: logistic +#: code:addons/logistic/requirement.py:227 +#, python-format +msgid "" +"Cannot cancel requirements that has a renewed by requirement! You must first " +"delete the related renewed by requirement." +msgstr "" +"Cannot cancel requirements that has a renewed by requirement! You must first " +"delete the related renewed by requirement." + +#. module: logistic +#: code:addons/logistic/requirement.py:216 +#, python-format +msgid "Cannot delete requirement(s) which are not in draft or cancelled state." +msgstr "" +"Cannot delete requirement(s) which are not in draft or cancelled state." + +#. module: logistic +#: field:fleet.vehicle,capacity:0 +msgid "Capacity (pallets)" +msgstr "Capacidad (pallets)" + +#. module: logistic +#: selection:fleet.vehicle,type:0 +msgid "Car" +msgstr "Auto" + +#. module: logistic +#: model:product.template,name:logistic.product_product_10_product_template +msgid "Carnet Municipal" +msgstr "Carnet Municipal" + +#. module: logistic +#: model:product.template,name:logistic.product_product_13_product_template +msgid "Carnet Sanitario" +msgstr "Carnet Sanitario" + +#. module: logistic +#: view:fleet.vehicle:logistic.view_logistic_vehicle_filter +msgid "Cars" +msgstr "Autos" + +#. module: logistic +#: code:addons/logistic/waybill.py:169 +#, python-format +msgid "Charged" +msgstr "Litros Cargados" + +#. module: logistic +#: help:logistic.travel.make.invoice,grouped:0 +msgid "Check the box to group the invoices for the same customers" +msgstr "Marque la casilla para agrupar facturas para el mismo cliente" + +#. module: logistic +#: help:logistic.expense.make.invoice,grouped:0 +msgid "Check the box to group the invoices for the same suppliers" +msgstr "" +"Marque la casilla para agrupar las facturas para los mismos proveedores" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Close" +msgstr "Cerrar" + +#. module: logistic +#: selection:logistic.waybill,state:0 +msgid "Closed" +msgstr "Cerrado" + +#. module: logistic +#: field:logistic.waybill,company_id:0 +msgid "Company" +msgstr "Compania" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_configuration +msgid "Configuration" +msgstr "Configuración" + +#. module: logistic +#: code:addons/logistic/requirement.py:373 +#, python-format +msgid "Configuration Error!" +msgstr "Configuration Error!" + +#. module: logistic +#: code:addons/logistic/waybill.py:173 +#, python-format +msgid "Consumed Liters" +msgstr "Litros Consumidos" + +#. module: logistic +#: code:addons/logistic/waybill.py:183 +#, python-format +msgid "Consumption" +msgstr "Consumo (l/km)" + +#. module: logistic +#: field:logistic.waybill,consumption:0 +msgid "Consumption (l/km)" +msgstr "Consumo (l/km)" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_form +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Create Invoice" +msgstr "Crear Factura" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "Create Invoices" +msgstr "Crear Facturas" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "Create invoices" +msgstr "Crear Facturas" + +#. module: logistic +#: field:logistic.expense.make.invoice,create_uid:0 +#: field:logistic.location,create_uid:0 +#: field:logistic.requirement,create_uid:0 field:logistic.travel,create_uid:0 +#: field:logistic.travel.make.invoice,create_uid:0 +#: field:logistic.waybill,create_uid:0 +#: field:logistic.waybill_driver_payment,create_uid:0 +#: field:logistic.waybill_expense,create_uid:0 +msgid "Created by" +msgstr "Created by" + +#. module: logistic +#: field:logistic.expense.make.invoice,create_date:0 +#: field:logistic.location,create_date:0 +#: field:logistic.requirement,create_date:0 +#: field:logistic.travel,create_date:0 +#: field:logistic.travel.make.invoice,create_date:0 +#: field:logistic.waybill,create_date:0 +#: field:logistic.waybill_driver_payment,create_date:0 +#: field:logistic.waybill_expense,create_date:0 +msgid "Created on" +msgstr "Created on" + +#. module: logistic +#: model:product.template,name:logistic.product_product_15_product_template +msgid "Cubierta Bridgestone" +msgstr "Cubierta Bridgestone" + +#. module: logistic +#: field:logistic.waybill,currency_id:0 +msgid "Currency" +msgstr "Moneda" + +#. module: logistic +#: model:product.template,name:logistic.product_product_12_product_template +msgid "Curso FTP" +msgstr "Curso FTP" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,partner_id:0 +msgid "Customer" +msgstr "Cliente" + +#. module: logistic +#: model:product.template,name:logistic.product_product_02_product_template +msgid "Córdoba – Buenos Aires" +msgstr "Córdoba – Buenos Aires" + +#. module: logistic +#: field:logistic.requirement,date:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,date:0 +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: field:logistic.waybill_driver_payment,date:0 +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,date:0 +msgid "Date" +msgstr "Fecha" + +#. module: logistic +#: field:logistic.waybill,date_finish:0 +msgid "Date Finish" +msgstr "Fecha Terminado" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +msgid "Date From" +msgstr "Fecha desde" + +#. module: logistic +#: field:logistic.waybill,date_start:0 +msgid "Date Start" +msgstr "Fecha Comienzo" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +msgid "Date To" +msgstr "Fecha hasta" + +#. module: logistic +#: help:logistic.requirement,message_last_post:0 +#: help:logistic.waybill,message_last_post:0 +#: help:logistic.waybill_driver_payment,message_last_post:0 +msgid "Date of the last message posted on the record." +msgstr "Fecha del último mensaje publicado en el historial." + +#. module: logistic +#: field:product.product,default_range:0 +msgid "Default Range" +msgstr "Rango por Defecto" + +#. module: logistic +#: field:product.product,default_validity_days:0 +msgid "Default Validity Days" +msgstr "Días de Validación por Defecto" + +#. module: logistic +#: field:product.product,default_warning_days:0 +msgid "Default Warning Days" +msgstr "Días de Advertencia por Defecto" + +#. module: logistic +#: field:product.product,default_warning_range:0 +msgid "Default Warning Range" +msgstr "Rango de Advertencia por Defecto" + +#. module: logistic +#: code:addons/logistic/waybill.py:214 +#, python-format +msgid "Distance" +msgstr "Distancia" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,invoice_state:0 +msgid "Do not Invoice" +msgstr "No Facturar" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "Do you really want to create the invoice(s)?" +msgstr "Quiere realmente crear la(s) factura(s)?" + +#. module: logistic +#: selection:logistic.requirement,type:0 +#: selection:product.product,service_subtype:0 +msgid "Document" +msgstr "Documento" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +#: field:fleet.vehicle,document_ids:0 +#: view:product.product:logistic.view_logistic_product_filter +#: view:res.partner:logistic.view_logistic_partner_form +#: field:res.partner,document_ids:0 +msgid "Documents" +msgstr "Documentos" + +#. module: logistic +#: selection:logistic.requirement,state:0 +#: selection:logistic.waybill_driver_payment,state:0 +msgid "Draft" +msgstr "Borrador" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,partner_id:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,driver_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: field:logistic.waybill,driver_id:0 +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: field:logistic.waybill_driver_payment,driver_id:0 +msgid "Driver" +msgstr "Conductor" + +#. module: logistic +#: field:logistic.waybill,driver_payment_id:0 +msgid "Driver Payment" +msgstr "Pago de Conductor" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_driver_payment_driver_payments +#: model:ir.ui.menu,name:logistic.menu_driver_payments +msgid "Driver Payments" +msgstr "Pagos de Conductores" + +#. module: logistic +#: field:logistic.waybill,driver_product_id:0 +#: field:res.partner,driver_product_id:0 +msgid "Driver Product" +msgstr "Producto de Conductor" + +#. module: logistic +#: code:addons/logistic/waybill.py:218 +#, python-format +msgid "Driver Total" +msgstr "Conductor Total" + +#. module: logistic +#: field:logistic.waybill,driver_unit_price:0 +msgid "Driver Unit Price" +msgstr "Precio por Unidad del Conductor" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_partner_drivers +#: model:ir.ui.menu,name:logistic.menu_drivers +msgid "Drivers" +msgstr "Conductores" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_waybill +msgid "Email Thread" +msgstr "Hilo de Mensajes" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Engine Options" +msgstr "Opciones del motor" + +#. module: logistic +#: code:addons/logistic/requirement.py:357 +#: code:addons/logistic/requirement.py:360 +#: code:addons/logistic/requirement.py:363 code:addons/logistic/travel.py:167 +#: code:addons/logistic/travel.py:196 code:addons/logistic/travel.py:243 +#: code:addons/logistic/travel.py:298 code:addons/logistic/travel.py:319 +#: code:addons/logistic/travel.py:338 code:addons/logistic/travel.py:351 +#: code:addons/logistic/travel.py:403 code:addons/logistic/waybill.py:432 +#: code:addons/logistic/waybill.py:435 +#: code:addons/logistic/waybill_expense.py:79 +#: code:addons/logistic/waybill_expense.py:126 +#: code:addons/logistic/waybill_expense.py:186 +#: code:addons/logistic/waybill_expense.py:206 +#: code:addons/logistic/waybill_expense.py:225 +#: code:addons/logistic/waybill_expense.py:238 +#: code:addons/logistic/waybill_expense.py:285 +#: code:addons/logistic/wizard/travel_sale_order.py:58 +#: code:addons/logistic/wizard/travel_sale_order.py:146 +#: code:addons/logistic/wizard/travel_sale_order.py:149 +#: code:addons/logistic/wizard/travel_sale_order.py:152 +#, python-format +msgid "Error!" +msgstr "Error!" + +#. module: logistic +#: code:addons/logistic/travel.py:80 +#, python-format +msgid "Error! From date must be lower then to date." +msgstr "Error! From date must be lower then to date." + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_expense_make_invoice +msgid "Expense Make Invoice" +msgstr "Facturar Gasto" + +#. module: logistic +#: field:logistic.waybill,waybill_expense_ids:0 +msgid "Expenses" +msgstr "Gastos" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_expense_expenses_to_invoice +#: model:ir.ui.menu,name:logistic.menu_expenses_to_invoice +msgid "Expenses to Invoice" +msgstr "Gastos a Facturar" + +#. module: logistic +#: field:logistic.requirement,expiration_date:0 +msgid "Expiration Date" +msgstr "Fecha de Expiración" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Final" +msgstr "Final" + +#. module: logistic +#: field:logistic.waybill,final_liters:0 +msgid "Final Liters" +msgstr "Litros Finales" + +#. module: logistic +#: field:logistic.waybill,final_odometer_id:0 +#: field:logistic.waybill,wagon_final_odometer_id:0 +msgid "Final Odometer" +msgstr "Odómetro Final" + +#. module: logistic +#: field:logistic.requirement,message_follower_ids:0 +#: field:logistic.waybill,message_follower_ids:0 +#: field:logistic.waybill_driver_payment,message_follower_ids:0 +msgid "Followers" +msgstr "Seguidores" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,from_date:0 +msgid "From" +msgstr "Desde" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +msgid "From Location" +msgstr "Desde Ubicación" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Fuel" +msgstr "Combustible" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:287 +#, python-format +msgid "Gastos de Hoja de Ruta" +msgstr "Gastos de Hoja de Ruta" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "General Properties" +msgstr "Propiedades generales" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "Group By..." +msgstr "Agrupar Por..." + +#. module: logistic +#: field:logistic.expense.make.invoice,grouped_line:0 +#: field:logistic.travel.make.invoice,grouped_line:0 +msgid "Group the Invoice Lines" +msgstr "Agrupar por lineas de factura" + +#. module: logistic +#: field:logistic.expense.make.invoice,grouped:0 +#: field:logistic.travel.make.invoice,grouped:0 +msgid "Group the invoices" +msgstr "Agrupar las Facturas" + +#. module: logistic +#: code:addons/logistic/travel.py:407 +#, python-format +msgid "Hoja de Ruta" +msgstr "Hoja de Ruta" + +#. module: logistic +#: help:logistic.requirement,message_summary:0 +#: help:logistic.waybill,message_summary:0 +#: help:logistic.waybill_driver_payment,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." + +#. module: logistic +#: field:logistic.expense.make.invoice,id:0 field:logistic.location,id:0 +#: field:logistic.requirement,id:0 field:logistic.travel,id:0 +#: field:logistic.travel.make.invoice,id:0 field:logistic.waybill,id:0 +#: field:logistic.waybill_driver_payment,id:0 +#: field:logistic.waybill_expense,id:0 +msgid "ID" +msgstr "ID" + +#. module: logistic +#: help:logistic.requirement,message_unread:0 +#: help:logistic.waybill,message_unread:0 +#: help:logistic.waybill_driver_payment,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "If checked new messages require your attention." + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Information" +msgstr "Información" + +#. module: logistic +#: model:ir.model,name:logistic.model_fleet_vehicle +msgid "Information on a vehicle" +msgstr "Información en un vehículo" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Initial" +msgstr "Inicial" + +#. module: logistic +#: field:logistic.waybill,initial_liters:0 +msgid "Initial Liters" +msgstr "Litros Iniciales" + +#. module: logistic +#: code:addons/logistic/requirement.py:124 code:addons/logistic/waybill.py:195 +#: field:logistic.requirement,initial_odometer_id:0 +#: field:logistic.waybill,initial_odometer_id:0 +#: field:logistic.waybill,wagon_initial_odometer_id:0 +#, python-format +msgid "Initial Odometer" +msgstr "Odómetro Inicial" + +#. module: logistic +#: model:product.template,name:logistic.product_product_05_product_template +msgid "Inspección Técnica Vehicular" +msgstr "Inspección Técnica Vehicular" + +#. module: logistic +#: view:res.partner:logistic.view_logistic_partner_form +msgid "Internal Notes" +msgstr "Notas internas" + +#. module: logistic +#: code:addons/logistic/requirement.py:216 +#: code:addons/logistic/requirement.py:226 +#, python-format +msgid "Invalid Action!" +msgstr "Invalid Action!" + +#. module: logistic +#: code:addons/logistic/travel.py:120 +#: model:ir.model,name:logistic.model_account_invoice +#, python-format +msgid "Invoice" +msgstr "Factura" + +#. module: logistic +#: field:logistic.expense.make.invoice,invoice_date:0 +#: field:logistic.travel.make.invoice,invoice_date:0 +msgid "Invoice Date" +msgstr "Fecha de Factura" + +#. module: logistic +#: field:logistic.travel,invoice_line_id:0 +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,invoice_line_id:0 +msgid "Invoice Line" +msgstr "Línea de Factura" + +#. module: logistic +#: code:addons/logistic/requirement.py:148 +#, python-format +msgid "Invoice Lines" +msgstr "Líneas de Factura" + +#. module: logistic +#: field:res.partner,is_driver:0 +msgid "Is Driver?" +msgstr "¿Es conductor?" + +#. module: logistic +#: field:product.product,is_fuel:0 +msgid "Is Fuel?" +msgstr "¿Es Combustible?" + +#. module: logistic +#: field:logistic.requirement,message_is_follower:0 +#: field:logistic.waybill,message_is_follower:0 +#: field:logistic.waybill_driver_payment,message_is_follower:0 +msgid "Is a Follower" +msgstr "Is a Follower" + +#. module: logistic +#: field:logistic.requirement,issue_date:0 +msgid "Issue Date" +msgstr "Fecha de Emisión" + +#. module: logistic +#: selection:logistic.requirement,odometer_unit:0 +#: selection:logistic.waybill,odometer_unit:0 +#: selection:product.product,range_unit:0 +msgid "Kilometers" +msgstr "Kilómetros" + +#. module: logistic +#: field:logistic.requirement,message_last_post:0 +#: field:logistic.waybill,message_last_post:0 +#: field:logistic.waybill_driver_payment,message_last_post:0 +msgid "Last Message Date" +msgstr "Last Message Date" + +#. module: logistic +#: field:logistic.expense.make.invoice,write_uid:0 +#: field:logistic.location,write_uid:0 field:logistic.requirement,write_uid:0 +#: field:logistic.travel,write_uid:0 +#: field:logistic.travel.make.invoice,write_uid:0 +#: field:logistic.waybill,write_uid:0 +#: field:logistic.waybill_driver_payment,write_uid:0 +#: field:logistic.waybill_expense,write_uid:0 +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: logistic +#: field:logistic.expense.make.invoice,write_date:0 +#: field:logistic.location,write_date:0 +#: field:logistic.requirement,write_date:0 field:logistic.travel,write_date:0 +#: field:logistic.travel.make.invoice,write_date:0 +#: field:logistic.waybill,write_date:0 +#: field:logistic.waybill_driver_payment,write_date:0 +#: field:logistic.waybill_expense,write_date:0 +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: logistic +#: field:fleet.vehicle,length:0 +msgid "Length (mts)" +msgstr "Largo (mts)" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,location_from_id:0 +#: field:product.product,location_from_id:0 +msgid "Location From" +msgstr "Ubicación Desde" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,location_to_id:0 +#: field:product.product,location_to_id:0 +msgid "Location To" +msgstr "Ubicación A" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_location_locations +#: model:ir.ui.menu,name:logistic.menu_locations +msgid "Locations" +msgstr "Ubicaciones" + +#. module: logistic +#: model:ir.module.category,description:logistic.module_category_logistic +#: model:ir.module.category,name:logistic.module_category_logistic +#: model:ir.ui.menu,name:logistic.menu_logistic +msgid "Logistic" +msgstr "Logística" + +#. module: logistic +#: selection:logistic.requirement,type:0 +#: selection:product.product,service_subtype:0 +msgid "Maintenance" +msgstr "Mantenimiento" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +#: field:fleet.vehicle,maintenance_ids:0 +#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_maintenances +#: model:ir.ui.menu,name:logistic.menu_maintenances +#: view:product.product:logistic.view_logistic_product_filter +msgid "Maintenances" +msgstr "Mantenimientos" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_expense_make_invoice +#: model:ir.actions.act_window,name:logistic.action_travel_make_invoice +msgid "Make Invoices" +msgstr "Realizar facturas" + +#. module: logistic +#: model:res.groups,name:logistic.group_manager +msgid "Manager" +msgstr "Responsable" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_marcas +msgid "Marcas" +msgstr "Marcas" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_master_data +msgid "Master Data" +msgstr "Fecha Maestra" + +#. module: logistic +#: field:logistic.requirement,message_ids:0 +#: field:logistic.waybill,message_ids:0 +#: field:logistic.waybill_driver_payment,message_ids:0 +msgid "Messages" +msgstr "Messages" + +#. module: logistic +#: help:logistic.requirement,message_ids:0 help:logistic.waybill,message_ids:0 +#: help:logistic.waybill_driver_payment,message_ids:0 +msgid "Messages and communication history" +msgstr "Messages and communication history" + +#. module: logistic +#: selection:logistic.requirement,odometer_unit:0 +#: selection:logistic.waybill,odometer_unit:0 +#: selection:product.product,range_unit:0 +msgid "Miles" +msgstr "Miles" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.fleet_vehicle_model_brand_menu +msgid "Model brand of Vehicle" +msgstr "Modelo del vehículo" + +#. module: logistic +#: field:fleet.vehicle,motor_sn:0 +msgid "Motor Number" +msgstr "Numero de Motor" + +#. module: logistic +#: view:logistic.location:logistic.view_logistic_location_filter +#: field:logistic.location,name:0 +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,name:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,name:0 +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: field:logistic.waybill_driver_payment,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: selection:logistic.requirement,state:0 +msgid "Need Renew" +msgstr "Necesita Renovación" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: selection:logistic.requirement,state:0 +msgid "Next To Renew" +msgstr "Próximo a Renovarse" + +#. module: logistic +#: code:addons/logistic/requirement.py:363 +#, python-format +msgid "No address defined for the supplier" +msgstr "No address defined for the supplier" + +#. module: logistic +#: code:addons/logistic/requirement.py:360 +#, python-format +msgid "No default supplier defined for this product" +msgstr "No default supplier defined for this product" + +#. module: logistic +#: code:addons/logistic/requirement.py:357 +#, python-format +msgid "No supplier defined for this product !" +msgstr "No hay proveedor definido para este producto !" + +#. module: logistic +#: field:logistic.requirement,note:0 field:logistic.waybill,note:0 +#: field:logistic.waybill_driver_payment,note:0 +#: field:logistic.waybill_expense,note:0 +msgid "Note" +msgstr "Nota" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Notes" +msgstr "Notas" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Notes......" +msgstr "Notas......" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Número de Chasis" +msgstr "Número de Chasis" + +#. module: logistic +#: selection:logistic.requirement,state:0 +msgid "OK" +msgstr "OK" + +#. module: logistic +#: field:logistic.requirement,odometer_range:0 +msgid "Odometer Range" +msgstr "Rango de Odometro" + +#. module: logistic +#: field:logistic.requirement,odometer_unit:0 +#: field:logistic.waybill,odometer_unit:0 +msgid "Odometer Unit" +msgstr "Unidad de Odometro" + +#. module: logistic +#: help:logistic.requirement,initial_odometer_id:0 +#: help:logistic.waybill,final_odometer_id:0 +#: help:logistic.waybill,initial_odometer_id:0 +#: help:logistic.waybill,wagon_final_odometer_id:0 +#: help:logistic.waybill,wagon_initial_odometer_id:0 +msgid "Odometer measure of the vehicle at the moment of this log" +msgstr "Medida del Odómetro del vehíuclo en el momento de este registro" + +#. module: logistic +#: code:addons/logistic/requirement.py:154 +#, python-format +msgid "Order Reference" +msgstr "Orden de Compra" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:126 +#, python-format +msgid "Order cannot be created because no purchase pricelist exists!" +msgstr "Order cannot be created because no purchase pricelist exists!" + +#. module: logistic +#: code:addons/logistic/travel.py:243 +#: code:addons/logistic/wizard/travel_sale_order.py:58 +#, python-format +msgid "Order cannot be created because not sale pricelist exists!" +msgstr "Order cannot be created because not sale pricelist exists!" + +#. module: logistic +#: selection:product.product,service_subtype:0 +msgid "Other" +msgstr "Otro" + +#. module: logistic +#: view:product.product:logistic.view_logistic_product_filter +msgid "Others" +msgstr "Otros" + +#. module: logistic +#: code:addons/logistic/requirement.py:462 +#, python-format +msgid "PO: %s" +msgstr "PO: %s" + +#. module: logistic +#: selection:logistic.waybill_driver_payment,state:0 +msgid "Paid" +msgstr "Pagado" + +#. module: logistic +#: model:ir.model,name:logistic.model_res_partner +#: view:logistic.travel:logistic.view_logistic_travel_filter +msgid "Partner" +msgstr "Empresa" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_partners_documents +#: model:ir.ui.menu,name:logistic.menu_partners_documents +msgid "Partners Documents" +msgstr "Documentos de Conductores" + +#. module: logistic +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +msgid "Pay" +msgstr "Pago" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Payment And Cost" +msgstr "Costo y Pago" + +#. module: logistic +#: model:product.template,name:logistic.product_product_09_product_template +msgid "Permiso Internacional Chile" +msgstr "Permiso Internacional Chile" + +#. module: logistic +#: code:addons/logistic/travel.py:299 code:addons/logistic/travel.py:339 +#: code:addons/logistic/waybill_expense.py:187 +#: code:addons/logistic/waybill_expense.py:226 +#, python-format +msgid "Please define income account for this product: \"%s\" (id:%d)." +msgstr "Please define income account for this product: \"%s\" (id:%d)." + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:286 +#, python-format +msgid "Please define purchases journal for this company: \"%s\" (id:%d)." +msgstr "Please define purchases journal for this company: \"%s\" (id:%d)." + +#. module: logistic +#: code:addons/logistic/travel.py:404 +#, python-format +msgid "Please define sales journal for this company: \"%s\" (id:%d)." +msgstr "Please define sales journal for this company: \"%s\" (id:%d)." + +#. module: logistic +#: field:logistic.travel,price:0 +msgid "Price" +msgstr "Precio" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,price_unit:0 +msgid "Price Unit" +msgstr "Precio unitario" + +#. module: logistic +#: model:ir.model,name:logistic.model_product_product +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,product_id:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,product_id:0 +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,product_id:0 +msgid "Product" +msgstr "Producto" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_product_products +#: model:ir.ui.menu,name:logistic.menu_products +msgid "Products" +msgstr "Productos" + +#. module: logistic +#: model:product.template,name:logistic.product_product_11_product_template +msgid "Psicofísico" +msgstr "Psicofísico" + +#. module: logistic +#: field:logistic.requirement,po_line_id:0 +msgid "Purchase Order Line" +msgstr "Linea de Ordenes de Compra" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,product_uom_qty:0 +msgid "Quantity" +msgstr "Cantidad" + +#. module: logistic +#: field:product.product,range_unit:0 +msgid "Range Unit" +msgstr "Rango de Unidad" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,reference:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,reference:0 +msgid "Reference" +msgstr "Referencia" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Reference..." +msgstr "Referencia..." + +#. module: logistic +#: code:addons/logistic/requirement.py:132 +#, python-format +msgid "Remaining Days" +msgstr "Días Restantes" + +#. module: logistic +#: code:addons/logistic/requirement.py:128 +#, python-format +msgid "Remaining Range" +msgstr "Rango Restante" + +#. module: logistic +#: selection:logistic.requirement,state:0 +msgid "Renewal Requested" +msgstr "Renovación de Petición" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: selection:logistic.requirement,state:0 +msgid "Renewed" +msgstr "Renovado" + +#. module: logistic +#: field:logistic.requirement,renewed_by_id:0 +msgid "Renewed By" +msgstr "Renovado Por" + +#. module: logistic +#: code:addons/logistic/requirement.py:137 +#, python-format +msgid "Renews" +msgstr "Renueva a" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +msgid "Request Renewal" +msgstr "Petición de Renovación" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_requirements +msgid "Requirements" +msgstr "Requerimientos" + +#. module: logistic +#: model:product.template,name:logistic.product_product_01_product_template +msgid "Rosario – Córdoba" +msgstr "Rosario – Córdoba" + +#. module: logistic +#: model:product.template,name:logistic.product_product_06_product_template +msgid "Ruta" +msgstr "Ruta" + +#. module: logistic +#: model:product.template,name:logistic.product_product_08_product_template +msgid "SENASA" +msgstr "SENASA" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:169 +#, python-format +msgid "Sale Orders" +msgstr "Ordenes de Venta" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:152 +#, python-format +msgid "" +"Sale order cannot be created because it already has a related sale order " +"line!" +msgstr "" +"Sale order cannot be created because it already has a related sale order " +"line!" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:146 +#, python-format +msgid "" +"Sale order cannot be created because there is no partner defined for this " +"travel!" +msgstr "" +"Sale order cannot be created because there is no partner defined for this " +"travel!" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:149 +#, python-format +msgid "" +"Sale order cannot be created because there is no product defined for this " +"travel!" +msgstr "" +"Sale order cannot be created because there is no product defined for this " +"travel!" + +#. module: logistic +#: model:product.template,name:logistic.product_product_04_product_template +msgid "Seguro" +msgstr "Seguro" + +#. module: logistic +#: model:product.template,name:logistic.product_product_14_product_template +msgid "Service" +msgstr "Servicio" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Set Active" +msgstr "Poner Activo" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +msgid "Set OK" +msgstr "Establecer OK" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,state:0 field:logistic.waybill,state:0 +#: field:logistic.waybill_driver_payment,state:0 +msgid "State" +msgstr "Estado" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "Subtotal" +msgstr "Subtotal" + +#. module: logistic +#: field:product.product,service_subtype:0 +msgid "Subtype" +msgstr "Subtipo" + +#. module: logistic +#: field:logistic.requirement,message_summary:0 +#: field:logistic.waybill,message_summary:0 +#: field:logistic.waybill_driver_payment,message_summary:0 +msgid "Summary" +msgstr "Resumen" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,supplier_id:0 +msgid "Supplier" +msgstr "Proveedor" + +#. module: logistic +#: code:addons/logistic/requirement.py:373 +#, python-format +msgid "" +"The product \"%s\" has been defined with your company as reseller which " +"seems to be a configuration error!" +msgstr "" +"The product \"%s\" has been defined with your company as reseller which " +"seems to be a configuration error!" + +#. module: logistic +#: code:addons/logistic/travel.py:320 code:addons/logistic/travel.py:352 +#: code:addons/logistic/waybill_expense.py:207 +#: code:addons/logistic/waybill_expense.py:239 +#, python-format +msgid "" +"There is no Fiscal Position defined or Income category account defined for " +"default properties of Product categories." +msgstr "" +"There is no Fiscal Position defined or Income category account defined for " +"default properties of Product categories." + +#. module: logistic +#: code:addons/logistic/travel.py:167 +#, python-format +msgid "There is no sale pricelist!" +msgstr "There is no sale pricelist!" + +#. module: logistic +#: field:logistic.travel,to_date:0 +msgid "To" +msgstr "A" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +msgid "To Draft" +msgstr "A Borrador" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "To Invoice" +msgstr "A Facturar" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +msgid "To Location" +msgstr "A Ubicación" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:76 +#, python-format +msgid "To create invoice expenses must have supplier and product" +msgstr "To create invoice expenses must have supplier and product" + +#. module: logistic +#: code:addons/logistic/travel.py:193 +#, python-format +msgid "To create invoice travels must have partner and product" +msgstr "To create invoice travels must have partner and product" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_tree +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill:logistic.view_logistic_waybill_tree +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_tree +msgid "Total" +msgstr "Total" + +#. module: logistic +#: selection:fleet.vehicle,type:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,tractor_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,tractor_id:0 +msgid "Tractor" +msgstr "Tractor" + +#. module: logistic +#: code:addons/logistic/waybill.py:432 +#, python-format +msgid "Tractor Final odometer must be greater than initial odometer!" +msgstr "Tractor Final odometer must be greater than initial odometer!" + +#. module: logistic +#: view:fleet.vehicle:logistic.view_logistic_vehicle_filter +msgid "Tractors" +msgstr "Tractors" + +#. module: logistic +#: selection:product.product,service_subtype:0 +msgid "Travel" +msgstr "Viaje" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_travel_make_invoice +msgid "Travel Make Invoice" +msgstr "Travel Make Invoice" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_travel_travels +#: model:ir.ui.menu,name:logistic.menu_travels +#: view:logistic.travel:logistic.view_logistic_travel_calendar +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: field:logistic.waybill,travel_ids:0 +#: view:product.product:logistic.view_logistic_product_filter +msgid "Travels" +msgstr "Viajes" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_travel_travels_calendar +#: model:ir.ui.menu,name:logistic.menu_travels_calendar +msgid "Travels Calendar" +msgstr "Calendario de Viajes" + +#. module: logistic +#: field:fleet.vehicle,type:0 field:logistic.requirement,type:0 +msgid "Type" +msgstr "Tipo" + +#. module: logistic +#: field:logistic.requirement,message_unread:0 +#: field:logistic.waybill,message_unread:0 +#: field:logistic.waybill_driver_payment,message_unread:0 +msgid "Unread Messages" +msgstr "Unread Messages" + +#. module: logistic +#: model:res.groups,name:logistic.group_user +msgid "User" +msgstr "Usuario" + +#. module: logistic +#: code:addons/logistic/wizard/requirement_replace_wizard.py:142 +#, python-format +msgid "User Error!" +msgstr "User Error!" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,vehicle_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +msgid "Vehicle" +msgstr "Vehículo" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_vehicle_documents +#: model:ir.ui.menu,name:logistic.menu_vehicle_documents +msgid "Vehicle Documents" +msgstr "Documentos de Vehículos" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.fleet_vehicle_model_menu +msgid "Vehicle Model" +msgstr "Modelo del vehículo" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.fleet_vehicle_state_menu +msgid "Vehicle Status" +msgstr "Estado del vehículo" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_vehicle_vehicles +#: model:ir.ui.menu,name:logistic.menu_vehicles +msgid "Vehicles" +msgstr "Vehículos" + +#. module: logistic +#: model:res.groups,name:logistic.group_view +msgid "View" +msgstr "Vista" + +#. module: logistic +#: selection:fleet.vehicle,type:0 field:fleet.vehicle,wagon_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,wagon_id:0 +msgid "Wagon" +msgstr "Furgón" + +#. module: logistic +#: code:addons/logistic/waybill.py:435 +#, python-format +msgid "Wagon Final odometer must be greater than initial odometer!" +msgstr "Wagon Final odometer must be greater than initial odometer!" + +#. module: logistic +#: view:fleet.vehicle:logistic.view_logistic_vehicle_filter +msgid "Wagons" +msgstr "Wagons" + +#. module: logistic +#: code:addons/logistic/requirement.py:101 +#: field:logistic.requirement,warning_days:0 +#, python-format +msgid "Warning Days" +msgstr "Días de Advertencia" + +#. module: logistic +#: field:logistic.requirement,warning_range:0 +msgid "Warning Range" +msgstr "Rango de Advertencia" + +#. module: logistic +#: code:addons/logistic/travel.py:193 +#: code:addons/logistic/waybill_expense.py:76 +#, python-format +msgid "Warning!" +msgstr "Warning!" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,waybill_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,waybill_id:0 +msgid "Waybill" +msgstr "Hoja de Ruta" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_waybills +#: model:ir.ui.menu,name:logistic.menu_waybills +#: model:ir.ui.menu,name:logistic.menu_waybills_main +#: field:logistic.waybill_driver_payment,waybill_ids:0 +msgid "Waybills" +msgstr "Hojas de Ruta" + +#. module: logistic +#: field:fleet.vehicle,width:0 +msgid "Width (mts)" +msgstr "Ancho (mts)" + +#. module: logistic +#: field:fleet.vehicle,year:0 +msgid "Year" +msgstr "Año" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:80 +#, python-format +msgid "" +"You cannot group expenses having different currencies for the same supplier." +msgstr "" +"You cannot group expenses having different currencies for the same supplier." + +#. module: logistic +#: code:addons/logistic/travel.py:197 +#, python-format +msgid "" +"You cannot group travels having different currencies for the same partner." +msgstr "" +"You cannot group travels having different currencies for the same partner." + +#. module: logistic +#: code:addons/logistic/wizard/requirement_replace_wizard.py:142 +#, python-format +msgid "You must select accounts to reconcile." +msgstr "You must select accounts to reconcile." + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "base.group_no_one" +msgstr "base.group_no_one" + +#. module: logistic +#: field:fleet.vehicle,default_kilometers:0 +msgid "default_kilometers" +msgstr "default_kilometers" + +#. module: logistic +#: field:fleet.vehicle,default_validity:0 +msgid "default_validity" +msgstr "default_validity" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_location +#: view:logistic.location:logistic.view_logistic_location_filter +#: view:logistic.location:logistic.view_logistic_location_form +#: view:logistic.location:logistic.view_logistic_location_tree +msgid "location" +msgstr "location" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "or" +msgstr "o" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_requirement +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: view:logistic.requirement:logistic.view_logistic_requirement_tree +msgid "requirement" +msgstr "requirement" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_travel +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.travel:logistic.view_logistic_travel_form +#: view:logistic.travel:logistic.view_logistic_travel_tree +msgid "travel" +msgstr "Viaje" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill:logistic.view_logistic_waybill_tree +msgid "waybill" +msgstr "Hoja de ruta" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_waybill_driver_payment +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_tree +msgid "waybill_driver_payment" +msgstr "waybill_driver_payment" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_waybill_expense +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_form +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_tree +msgid "waybill_expense" +msgstr "waybill_expense" diff --git a/logistic/i18n/es_AR.po b/logistic/i18n/es_AR.po deleted file mode 100644 index cd9f20c..0000000 --- a/logistic/i18n/es_AR.po +++ /dev/null @@ -1,780 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * logistic -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-06-23 08:38+0000\n" -"PO-Revision-Date: 2014-06-23 19:30+0100\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: \n" -"X-Generator: Poedit 1.5.4\n" - -#. module: logistic -#: model:ir.ui.menu,name:logistic.menu_requirements -msgid "Requirements" -msgstr "Requerimientos" - -#. module: logistic -#: model:ir.ui.menu,name:logistic.menu_marcas -msgid "Marcas" -msgstr "Marcas" - -#. module: logistic -#: field:logistic.requirement,vehicle_id:0 -msgid "Vehicle" -msgstr "Vehículo" - -#. module: logistic -#: view:logistic.waybill_expense:0 -#: field:logistic.waybill_expense,supplier_id:0 -msgid "Supplier" -msgstr "Proveedor" - -#. module: logistic -#: selection:logistic.requirement,type:0 -#: selection:product.product,service_subtype:0 -msgid "Document" -msgstr "Documento" - -#. module: logistic -#: field:logistic.requirement,remaining_days:0 -msgid "Remaining Days" -msgstr "Días Restantes" - -#. module: logistic -#: view:logistic.location:0 view:logistic.requirement:0 view:logistic.travel:0 -#: view:logistic.waybill:0 view:logistic.waybill_driver_payment:0 -#: view:logistic.waybill_expense:0 -msgid "By object" -msgstr "Por objeto" - -#. module: logistic -#: field:logistic.requirement,message_unread:0 -#: field:logistic.waybill,message_unread:0 -#: field:logistic.waybill_driver_payment,message_unread:0 -msgid "Unread Messages" -msgstr "Mensajes No Leídos" - -#. module: logistic -#: field:logistic.waybill,company_id:0 -msgid "Company" -msgstr "Compañía" - -#. module: logistic -#: view:logistic.requirement:0 -msgid "Request Renewal" -msgstr "Petición de Renovación" - -#. module: logistic -#: model:ir.model,name:logistic.model_logistic_location -#: view:logistic.location:0 -msgid "location" -msgstr "Ubicación" - -#. module: logistic -#: view:logistic.waybill_expense:0 -#: field:logistic.waybill_expense,price_subtotal:0 -msgid "Subtotal" -msgstr "Subtotal" - -#. module: logistic -#: selection:fleet.vehicle,type:0 field:fleet.vehicle,wagon_id:0 -#: view:logistic.waybill:0 field:logistic.waybill,wagon_id:0 -msgid "Wagon" -msgstr "Furgón" - -#. module: logistic -#: selection:fleet.vehicle,type:0 -msgid "Car" -msgstr "Auto" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_vehicle_documents -#: model:ir.ui.menu,name:logistic.menu_vehicle_documents -msgid "Vehicle Documents" -msgstr "Documentos de Vehículos" - -#. module: logistic -#: field:logistic.requirement,message_ids:0 -#: field:logistic.waybill,message_ids:0 -#: field:logistic.waybill_driver_payment,message_ids:0 -msgid "Messages" -msgstr "Mensajes" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_travel_travels -#: model:ir.ui.menu,name:logistic.menu_travels -#: field:logistic.waybill,travel_ids:0 -msgid "Travels" -msgstr "Viajes" - -#. module: logistic -#: model:ir.model,name:logistic.model_logistic_waybill_driver_payment -#: view:logistic.waybill_driver_payment:0 -msgid "waybill_driver_payment" -msgstr "waybill_driver_payment" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_product_products -#: model:ir.ui.menu,name:logistic.menu_products -msgid "Products" -msgstr "Productos" - -#. module: logistic -#: selection:logistic.requirement,state:0 selection:logistic.waybill,state:0 -#: selection:logistic.waybill_driver_payment,state:0 -#: model:mail.message.subtype,description:logistic.requirement_cancelled -#: model:mail.message.subtype,description:logistic.waybill_cancelled -#: model:mail.message.subtype,description:logistic.waybill_driver_payment_cancelled -#: model:mail.message.subtype,name:logistic.requirement_cancelled -#: model:mail.message.subtype,name:logistic.waybill_cancelled -#: model:mail.message.subtype,name:logistic.waybill_driver_payment_cancelled -msgid "Cancelled" -msgstr "Cancelado" - -#. module: logistic -#: help:logistic.requirement,message_unread:0 -#: help:logistic.waybill,message_unread:0 -#: help:logistic.waybill_driver_payment,message_unread:0 -msgid "If checked new messages require your attention." -msgstr "Si es marcado nuevos mensajes requieren su atención" - -#. module: logistic -#: selection:fleet.vehicle,type:0 view:logistic.waybill:0 -#: field:logistic.waybill,tractor_id:0 -msgid "Tractor" -msgstr "Tractor" - -#. module: logistic -#: selection:logistic.requirement,state:0 -#: model:mail.message.subtype,description:logistic.requirement_ok -#: model:mail.message.subtype,name:logistic.requirement_ok -msgid "OK" -msgstr "OK" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,reference:0 -#: view:logistic.waybill:0 field:logistic.waybill,reference:0 -msgid "Reference" -msgstr "Referencia" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_travel_travels_calendar -#: model:ir.ui.menu,name:logistic.menu_travels_calendar -msgid "Travels Calendar" -msgstr "Calendario de Viajes" - -#. module: logistic -#: help:logistic.requirement,message_summary:0 -#: help:logistic.waybill,message_summary:0 -#: help:logistic.waybill_driver_payment,message_summary:0 -msgid "" -"Holds the Chatter summary (number of messages, ...). This summary is " -"directly in html format in order to be inserted in kanban views." -msgstr "" -"Mantener el resumen de la Mensajería (número de mensajes, ...). Este resumen " -"está directamente en formato html para ser insertado en vistas kanban." - -#. module: logistic -#: model:ir.model,name:logistic.model_res_partner -msgid "Partner" -msgstr "Empresa" - -#. module: logistic -#: field:logistic.waybill,driver_unit_price:0 -msgid "Driver Unit Price" -msgstr "Precio por Unidad del Conductor" - -#. module: logistic -#: field:logistic.requirement,po_line_id:0 -msgid "Purchase Order Line" -msgstr "Línea de Órden de Compra" - -#. module: logistic -#: view:res.partner:0 -msgid "Documents" -msgstr "Documentos" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,from_date:0 -msgid "From" -msgstr "De" - -#. module: logistic -#: selection:logistic.requirement,type:0 -#: selection:product.product,service_subtype:0 -msgid "Maintenance" -msgstr "Mantenimiento" - -#. module: logistic -#: view:logistic.waybill:0 field:logistic.waybill,driver_payment_id:0 -msgid "Driver Payment" -msgstr "Pago de Conductor" - -#. module: logistic -#: field:logistic.requirement,state:0 field:logistic.waybill,state:0 -#: field:logistic.waybill_driver_payment,state:0 -msgid "State" -msgstr "Estado" - -#. module: logistic -#: field:logistic.requirement,message_follower_ids:0 -#: field:logistic.waybill,message_follower_ids:0 -#: field:logistic.waybill_driver_payment,message_follower_ids:0 -msgid "Followers" -msgstr "Seguidores" - -#. module: logistic -#: selection:logistic.requirement,state:0 -#: model:mail.message.subtype,description:logistic.requirement_renewal_requested -#: model:mail.message.subtype,name:logistic.requirement_renewal_requested -msgid "Renewal Requested" -msgstr "Renovación de Petición " - -#. module: logistic -#: field:fleet.vehicle,type:0 field:logistic.requirement,type:0 -msgid "Type" -msgstr "Tipo" - -#. module: logistic -#: field:logistic.waybill,consumption:0 -msgid "Consumption (l/km)" -msgstr "Consumo (l/km)" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,waybill_id:0 -#: view:logistic.waybill_expense:0 field:logistic.waybill_expense,waybill_id:0 -msgid "Waybill" -msgstr "Hoja de Ruta" - -#. module: logistic -#: field:logistic.requirement,remaining_range:0 -msgid "Remaining Range" -msgstr "Rango Restante" - -#. module: logistic -#: view:logistic.requirement:0 selection:logistic.requirement,state:0 -#: model:mail.message.subtype,description:logistic.requirement_next_to_renew -#: model:mail.message.subtype,name:logistic.requirement_next_to_renew -msgid "Next To Renew" -msgstr "Próximo a Renovarse" - -#. module: logistic -#: field:logistic.waybill,final_odometer:0 -msgid "Final Odometer" -msgstr "Odómetro Final" - -#. module: logistic -#: view:logistic.waybill:0 -msgid "Set Active" -msgstr "Poner Activo" - -#. module: logistic -#: model:ir.ui.menu,name:logistic.menu_configuration -msgid "Configuration" -msgstr "Configuración" - -#. module: logistic -#: field:logistic.waybill,driver_product_id:0 -#: field:res.partner,driver_product_id:0 -msgid "Driver Product" -msgstr "Producto de Conductor" - -#. module: logistic -#: view:logistic.requirement:0 field:logistic.requirement,expiration_date:0 -msgid "Expiration Date" -msgstr "Fecha de Expiración" - -#. module: logistic -#: view:logistic.requirement:0 field:logistic.requirement,warning_days:0 -msgid "Warning Days" -msgstr "Días de Advertencia" - -#. module: logistic -#: view:logistic.requirement:0 field:logistic.requirement,warning_range:0 -msgid "Warning Range" -msgstr "Rango de Advertencia" - -#. module: logistic -#: field:logistic.requirement,odometer_unit:0 -#: field:logistic.waybill,odometer_unit:0 -msgid "Odometer Unit" -msgstr "Unidad de Odómetro" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,location_from_id:0 -#: field:product.product,location_from_id:0 -msgid "Location From" -msgstr "Ubicación Desde" - -#. module: logistic -#: field:fleet.vehicle,default_kilometers:0 -msgid "default_kilometers" -msgstr "default_kilometers" - -#. module: logistic -#: view:logistic.requirement:0 -msgid "Set OK" -msgstr "Establecer OK" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_maintenances -#: model:ir.ui.menu,name:logistic.menu_maintenances -msgid "Maintenances" -msgstr "Mantenimiento" - -#. module: logistic -#: model:ir.ui.menu,name:logistic.menu_master_data -msgid "Master Data" -msgstr "Fecha Maestra" - -#. module: logistic -#: field:logistic.waybill,currency_id:0 -msgid "Currency" -msgstr "Moneda" - -#. module: logistic -#: field:product.product,is_fuel:0 -msgid "Is Fuel?" -msgstr "Es Combustible?" - -#. module: logistic -#: view:logistic.requirement:0 selection:logistic.requirement,state:0 -#: model:mail.message.subtype,description:logistic.requirement_renewed -#: model:mail.message.subtype,name:logistic.requirement_renewed -msgid "Renewed" -msgstr "Renovado" - -#. module: logistic -#: selection:product.product,service_subtype:0 -msgid "Travel" -msgstr "Viaje" - -#. module: logistic -#: model:ir.model,name:logistic.model_logistic_requirement -#: view:logistic.requirement:0 -msgid "requirement" -msgstr "requerimiento" - -#. module: logistic -#: field:logistic.requirement,note:0 field:logistic.waybill,note:0 -#: field:logistic.waybill_driver_payment,note:0 -#: field:logistic.waybill_expense,note:0 -msgid "Note" -msgstr "Nota" - -#. module: logistic -#: view:logistic.location:0 view:logistic.requirement:0 view:logistic.travel:0 -#: view:logistic.waybill:0 view:logistic.waybill_driver_payment:0 -#: view:logistic.waybill_expense:0 -msgid "By Attribute" -msgstr "Por Atributo" - -#. module: logistic -#: selection:logistic.requirement,state:0 -#: selection:logistic.waybill_driver_payment,state:0 -#: model:mail.message.subtype,description:logistic.requirement_draft -#: model:mail.message.subtype,description:logistic.waybill_driver_payment_draft -#: model:mail.message.subtype,name:logistic.requirement_draft -#: model:mail.message.subtype,name:logistic.waybill_driver_payment_draft -msgid "Draft" -msgstr "Borrador" - -#. module: logistic -#: selection:logistic.waybill,state:0 -#: model:mail.message.subtype,description:logistic.waybill_closed -#: model:mail.message.subtype,name:logistic.waybill_closed -msgid "Closed" -msgstr "Cerrado" - -#. module: logistic -#: view:logistic.requirement:0 selection:logistic.requirement,state:0 -#: model:mail.message.subtype,description:logistic.requirement_need_renew -#: model:mail.message.subtype,name:logistic.requirement_need_renew -msgid "Need Renew" -msgstr "Necesita Renovación" - -#. module: logistic -#: view:fleet.vehicle:0 -msgid "Tractors" -msgstr "Tractors" - -#. module: logistic -#: field:logistic.waybill,final_liters:0 -msgid "Final Liters" -msgstr "Litros Finales" - -#. module: logistic -#: field:product.product,default_warning_days:0 -msgid "Default Warning Days" -msgstr "Días de Advertencia por Defecto" - -#. module: logistic -#: view:fleet.vehicle:0 -msgid "Cars" -msgstr "Cars" - -#. module: logistic -#: field:logistic.requirement,partner_id:0 view:logistic.waybill:0 -#: field:logistic.waybill,driver_id:0 view:logistic.waybill_driver_payment:0 -#: field:logistic.waybill_driver_payment,driver_id:0 -msgid "Driver" -msgstr "Conductor" - -#. module: logistic -#: selection:logistic.waybill_driver_payment,state:0 -#: model:mail.message.subtype,description:logistic.waybill_driver_payment_paid -#: model:mail.message.subtype,name:logistic.waybill_driver_payment_paid -msgid "Paid" -msgstr "Pagado" - -#. module: logistic -#: help:logistic.requirement,message_ids:0 help:logistic.waybill,message_ids:0 -#: help:logistic.waybill_driver_payment,message_ids:0 -msgid "Messages and communication history" -msgstr "Mensajes e historial de comunicación" - -#. module: logistic -#: field:logistic.requirement,renews_id:0 -msgid "Renews" -msgstr "Renueva a" - -#. module: logistic -#: field:logistic.requirement,message_is_follower:0 -#: field:logistic.waybill,message_is_follower:0 -#: field:logistic.waybill_driver_payment,message_is_follower:0 -msgid "Is a Follower" -msgstr "Es Seguidor" - -#. module: logistic -#: model:res.groups,name:logistic.group_user -msgid "User" -msgstr "Usuario" - -#. module: logistic -#: selection:logistic.requirement,odometer_unit:0 -#: selection:logistic.waybill,odometer_unit:0 -#: selection:product.product,range_unit:0 -msgid "Kilometers" -msgstr "Kilómetros" - -#. module: logistic -#: view:logistic.requirement:0 field:logistic.requirement,date:0 -#: view:logistic.waybill:0 field:logistic.waybill,date:0 -#: view:logistic.waybill_driver_payment:0 -#: field:logistic.waybill_driver_payment,date:0 -msgid "Date" -msgstr "Fecha" - -#. module: logistic -#: model:res.groups,name:logistic.group_view -msgid "View" -msgstr "Vista" - -#. module: logistic -#: field:product.product,range_unit:0 -msgid "Range Unit" -msgstr "Rango de Unidad" - -#. module: logistic -#: field:logistic.waybill,consumed_liters:0 -msgid "Consumed" -msgstr "Consumed" - -#. module: logistic -#: field:product.product,default_validity_days:0 -msgid "Default Validity Days" -msgstr "Días de Validación por Defecto" - -#. module: logistic -#: field:logistic.requirement,message_summary:0 -#: field:logistic.waybill,message_summary:0 -#: field:logistic.waybill_driver_payment,message_summary:0 -msgid "Summary" -msgstr "Resumen" - -#. module: logistic -#: selection:logistic.waybill,state:0 -#: model:mail.message.subtype,description:logistic.waybill_active -#: model:mail.message.subtype,name:logistic.waybill_active -msgid "Active" -msgstr "Activo" - -#. module: logistic -#: selection:logistic.requirement,odometer_unit:0 -#: selection:logistic.waybill,odometer_unit:0 -#: selection:product.product,range_unit:0 -msgid "Miles" -msgstr "Millas" - -#. module: logistic -#: view:logistic.waybill_expense:0 -#: field:logistic.waybill_expense,product_uom_qty:0 -msgid "Quantity" -msgstr "Cantidad" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_expense_expenses_to_invoice -#: model:ir.ui.menu,name:logistic.menu_expenses_to_invoice -msgid "Expenses to Invoice" -msgstr "Gastos a Facturar" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_location_locations -#: model:ir.ui.menu,name:logistic.menu_locations -msgid "Locations" -msgstr "Ubicaciones" - -#. module: logistic -#: field:fleet.vehicle,motor_sn:0 -msgid "Motor Number" -msgstr "Número de Motor" - -#. module: logistic -#: view:logistic.requirement:0 view:logistic.waybill:0 -#: view:logistic.waybill_driver_payment:0 -msgid "Cancel" -msgstr "Cancelar" - -#. module: logistic -#: view:logistic.waybill:0 -msgid "Close" -msgstr "Cerrar" - -#. module: logistic -#: field:fleet.vehicle,default_validity:0 -msgid "default_validity" -msgstr "default_validity" - -#. module: logistic -#: field:logistic.requirement,initial_odometer:0 -#: field:logistic.waybill,initial_odometer:0 -msgid "Initial Odometer" -msgstr "Odómetro Inicial" - -#. module: logistic -#: view:logistic.waybill_driver_payment:0 -msgid "Pay" -msgstr "Pago" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_partner_drivers -#: model:ir.ui.menu,name:logistic.menu_drivers -msgid "Drivers" -msgstr "Conductores" - -#. module: logistic -#: field:logistic.travel,invoice_line_id:0 -#: field:logistic.waybill_expense,invoice_line_id:0 -msgid "Invoice Line" -msgstr "Línea de Factura" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,to_date:0 -msgid "To" -msgstr "A" - -#. module: logistic -#: field:logistic.waybill,date_finish:0 -msgid "Date Finish" -msgstr "Fecha Terminado" - -#. module: logistic -#: selection:product.product,service_subtype:0 -msgid "Other" -msgstr "Otro" - -#. module: logistic -#: view:logistic.requirement:0 field:logistic.requirement,issue_date:0 -msgid "Issue Date" -msgstr "Fecha de Emisión" - -#. module: logistic -#: field:product.product,default_warning_range:0 -msgid "Default Warning Range" -msgstr "Rango de Advertencia por Defecto" - -#. module: logistic -#: model:ir.model,name:logistic.model_product_product -#: view:logistic.requirement:0 field:logistic.requirement,product_id:0 -#: view:logistic.travel:0 field:logistic.travel,product_id:0 -#: view:logistic.waybill_expense:0 field:logistic.waybill_expense,product_id:0 -msgid "Product" -msgstr "Producto" - -#. module: logistic -#: field:res.partner,is_driver:0 -msgid "Is Driver?" -msgstr "Es Conductor?" - -#. module: logistic -#: model:ir.model,name:logistic.model_logistic_waybill_expense -#: view:logistic.waybill_expense:0 -msgid "waybill_expense" -msgstr "waybill_expense" - -#. module: logistic -#: field:logistic.travel,price:0 -msgid "Price" -msgstr "Precio" - -#. module: logistic -#: view:res.partner:0 -msgid "Internal Notes" -msgstr "Notas internas" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,location_to_id:0 -#: field:product.product,location_to_id:0 -msgid "Location To" -msgstr "Ubicación A" - -#. module: logistic -#: view:fleet.vehicle:0 -msgid "Wagons" -msgstr "Wagons" - -#. module: logistic -#: view:logistic.waybill_expense:0 -#: field:logistic.waybill_expense,invoice_state:0 -msgid "Do not Invoice" -msgstr "No Facturar" - -#. module: logistic -#: field:logistic.waybill,initial_liters:0 -msgid "Initial Liters" -msgstr "Litros Iniciales" - -#. module: logistic -#: view:logistic.requirement:0 view:logistic.waybill_driver_payment:0 -msgid "To Draft" -msgstr "A Borrador" - -#. module: logistic -#: view:logistic.travel:0 field:logistic.travel,partner_id:0 -msgid "Customer" -msgstr "Cliente" - -#. module: logistic -#: field:logistic.waybill,distance:0 -msgid "Distance" -msgstr "Distancia" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_vehicle_vehicles -#: model:ir.ui.menu,name:logistic.menu_vehicles -msgid "Vehicles" -msgstr "Vehículos" - -#. module: logistic -#: view:logistic.location:0 field:logistic.location,name:0 -#: view:logistic.requirement:0 field:logistic.requirement,name:0 -#: view:logistic.waybill:0 field:logistic.waybill,name:0 -#: view:logistic.waybill_driver_payment:0 -#: field:logistic.waybill_driver_payment,name:0 -msgid "Name" -msgstr "Nombre" - -#. module: logistic -#: field:logistic.requirement,renewed_by_id:0 -msgid "Renewed By" -msgstr "Renovado Por" - -#. module: logistic -#: model:ir.model,name:logistic.model_logistic_waybill view:logistic.waybill:0 -msgid "waybill" -msgstr "hoja de ruta" - -#. module: logistic -#: field:logistic.requirement,odometer_range:0 -msgid "Odometer Range" -msgstr "Rango de Odómetro" - -#. module: logistic -#: model:ir.module.category,description:logistic.module_category_logistic -#: model:ir.module.category,name:logistic.module_category_logistic -#: model:ir.ui.menu,name:logistic.menu_logistic -msgid "Logistic" -msgstr "Logística" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_partners_documents -#: model:ir.ui.menu,name:logistic.menu_partners_documents -msgid "Partners Documents" -msgstr "Documentos de Conductores" - -#. module: logistic -#: view:logistic.waybill_expense:0 field:logistic.waybill_expense,price_unit:0 -msgid "Price Unit" -msgstr "Precio de Unidad" - -#. module: logistic -#: field:logistic.waybill,charged_liters:0 -msgid "Charged" -msgstr "Cargado" - -#. module: logistic -#: model:ir.model,name:logistic.model_fleet_vehicle -msgid "Information on a vehicle" -msgstr "Información en un vehículo" - -#. module: logistic -#: field:product.product,service_subtype:0 -msgid "Subtype" -msgstr "Subtipo" - -#. module: logistic -#: field:logistic.waybill,waybill_expense_ids:0 -msgid "Expenses" -msgstr "Gastos" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_waybills -#: model:ir.ui.menu,name:logistic.menu_waybills -#: model:ir.ui.menu,name:logistic.menu_waybills_main -#: field:logistic.waybill_driver_payment,waybill_ids:0 -msgid "Waybills" -msgstr "Hojas de Ruta" - -#. module: logistic -#: model:res.groups,name:logistic.group_manager -msgid "Manager" -msgstr "Responsable" - -#. module: logistic -#: field:fleet.vehicle,year:0 -msgid "Year" -msgstr "Año" - -#. module: logistic -#: field:product.product,default_range:0 -msgid "Default Range" -msgstr "Rango por Defecto" - -#. module: logistic -#: field:logistic.waybill,date_start:0 -msgid "Date Start" -msgstr "Fecha Comienzo" - -#. module: logistic -#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_driver_payment_driver_payments -#: model:ir.ui.menu,name:logistic.menu_driver_payments -msgid "Driver Payments" -msgstr "Pagos de Conductores" - -#. module: logistic -#: field:logistic.requirement,id:0 -msgid "Id" -msgstr "Id" - -#. module: logistic -#: model:ir.model,name:logistic.model_logistic_travel view:logistic.travel:0 -msgid "travel" -msgstr "viaje" diff --git a/logistic/i18n/logistic.pot b/logistic/i18n/logistic.pot new file mode 100644 index 0000000..ab51f0e --- /dev/null +++ b/logistic/i18n/logistic.pot @@ -0,0 +1,1474 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * logistic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-23 15:58+0000\n" +"PO-Revision-Date: 2015-09-23 15:58+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: selection:logistic.waybill,state:0 +msgid "Active" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Additional Properties" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_07_product_template +msgid "Bromatología" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_03_product_template +msgid "Buenos Aires – Rosario" +msgstr "" + +#. module: logistic +#: view:logistic.location:logistic.view_logistic_location_filter +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "By Attribute" +msgstr "" + +#. module: logistic +#: view:logistic.location:logistic.view_logistic_location_filter +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "By object" +msgstr "" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +msgid "Cancel" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,state:0 +#: selection:logistic.waybill,state:0 +#: selection:logistic.waybill_driver_payment,state:0 +msgid "Cancelled" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:227 +#, python-format +msgid "Cannot cancel requirements that has a renewed by requirement! You must first delete the related renewed by requirement." +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:216 +#, python-format +msgid "Cannot delete requirement(s) which are not in draft or cancelled state." +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,capacity:0 +msgid "Capacity (pallets)" +msgstr "" + +#. module: logistic +#: selection:fleet.vehicle,type:0 +msgid "Car" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_10_product_template +msgid "Carnet Municipal" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_13_product_template +msgid "Carnet Sanitario" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.view_logistic_vehicle_filter +msgid "Cars" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:169 +#, python-format +msgid "Charged" +msgstr "" + +#. module: logistic +#: help:logistic.travel.make.invoice,grouped:0 +msgid "Check the box to group the invoices for the same customers" +msgstr "" + +#. module: logistic +#: help:logistic.expense.make.invoice,grouped:0 +msgid "Check the box to group the invoices for the same suppliers" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Close" +msgstr "" + +#. module: logistic +#: selection:logistic.waybill,state:0 +msgid "Closed" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,company_id:0 +msgid "Company" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_configuration +msgid "Configuration" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:373 +#, python-format +msgid "Configuration Error!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:173 +#, python-format +msgid "Consumed Liters" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:183 +#, python-format +msgid "Consumption" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,consumption:0 +msgid "Consumption (l/km)" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_form +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Create Invoice" +msgstr "" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "Create Invoices" +msgstr "" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "Create invoices" +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,create_uid:0 +#: field:logistic.location,create_uid:0 +#: field:logistic.requirement,create_uid:0 +#: field:logistic.travel,create_uid:0 +#: field:logistic.travel.make.invoice,create_uid:0 +#: field:logistic.waybill,create_uid:0 +#: field:logistic.waybill_driver_payment,create_uid:0 +#: field:logistic.waybill_expense,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,create_date:0 +#: field:logistic.location,create_date:0 +#: field:logistic.requirement,create_date:0 +#: field:logistic.travel,create_date:0 +#: field:logistic.travel.make.invoice,create_date:0 +#: field:logistic.waybill,create_date:0 +#: field:logistic.waybill_driver_payment,create_date:0 +#: field:logistic.waybill_expense,create_date:0 +msgid "Created on" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_15_product_template +msgid "Cubierta Bridgestone" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,currency_id:0 +msgid "Currency" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_12_product_template +msgid "Curso FTP" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,partner_id:0 +msgid "Customer" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_02_product_template +msgid "Córdoba – Buenos Aires" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,date:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,date:0 +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: field:logistic.waybill_driver_payment,date:0 +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,date:0 +msgid "Date" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,date_finish:0 +msgid "Date Finish" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +msgid "Date From" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,date_start:0 +msgid "Date Start" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +msgid "Date To" +msgstr "" + +#. module: logistic +#: help:logistic.requirement,message_last_post:0 +#: help:logistic.waybill,message_last_post:0 +#: help:logistic.waybill_driver_payment,message_last_post:0 +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: logistic +#: field:product.product,default_range:0 +msgid "Default Range" +msgstr "" + +#. module: logistic +#: field:product.product,default_validity_days:0 +msgid "Default Validity Days" +msgstr "" + +#. module: logistic +#: field:product.product,default_warning_days:0 +msgid "Default Warning Days" +msgstr "" + +#. module: logistic +#: field:product.product,default_warning_range:0 +msgid "Default Warning Range" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:214 +#, python-format +msgid "Distance" +msgstr "" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,invoice_state:0 +msgid "Do not Invoice" +msgstr "" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "Do you really want to create the invoice(s)?" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,type:0 +#: selection:product.product,service_subtype:0 +msgid "Document" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +#: field:fleet.vehicle,document_ids:0 +#: view:product.product:logistic.view_logistic_product_filter +#: view:res.partner:logistic.view_logistic_partner_form +#: field:res.partner,document_ids:0 +msgid "Documents" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,state:0 +#: selection:logistic.waybill_driver_payment,state:0 +msgid "Draft" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,partner_id:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,driver_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: field:logistic.waybill,driver_id:0 +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: field:logistic.waybill_driver_payment,driver_id:0 +msgid "Driver" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,driver_payment_id:0 +msgid "Driver Payment" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_driver_payment_driver_payments +#: model:ir.ui.menu,name:logistic.menu_driver_payments +msgid "Driver Payments" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,driver_product_id:0 +#: field:res.partner,driver_product_id:0 +msgid "Driver Product" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:218 +#, python-format +msgid "Driver Total" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,driver_unit_price:0 +msgid "Driver Unit Price" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_partner_drivers +#: model:ir.ui.menu,name:logistic.menu_drivers +msgid "Drivers" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_waybill +msgid "Email Thread" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Engine Options" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:357 +#: code:addons/logistic/requirement.py:360 +#: code:addons/logistic/requirement.py:363 +#: code:addons/logistic/travel.py:167 +#: code:addons/logistic/travel.py:196 +#: code:addons/logistic/travel.py:243 +#: code:addons/logistic/travel.py:298 +#: code:addons/logistic/travel.py:319 +#: code:addons/logistic/travel.py:338 +#: code:addons/logistic/travel.py:351 +#: code:addons/logistic/travel.py:403 +#: code:addons/logistic/waybill.py:432 +#: code:addons/logistic/waybill.py:435 +#: code:addons/logistic/waybill_expense.py:79 +#: code:addons/logistic/waybill_expense.py:126 +#: code:addons/logistic/waybill_expense.py:186 +#: code:addons/logistic/waybill_expense.py:206 +#: code:addons/logistic/waybill_expense.py:225 +#: code:addons/logistic/waybill_expense.py:238 +#: code:addons/logistic/waybill_expense.py:285 +#: code:addons/logistic/wizard/travel_sale_order.py:58 +#: code:addons/logistic/wizard/travel_sale_order.py:146 +#: code:addons/logistic/wizard/travel_sale_order.py:149 +#: code:addons/logistic/wizard/travel_sale_order.py:152 +#, python-format +msgid "Error!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:80 +#, python-format +msgid "Error! From date must be lower then to date." +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_expense_make_invoice +msgid "Expense Make Invoice" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,waybill_expense_ids:0 +msgid "Expenses" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_expense_expenses_to_invoice +#: model:ir.ui.menu,name:logistic.menu_expenses_to_invoice +msgid "Expenses to Invoice" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,expiration_date:0 +msgid "Expiration Date" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Final" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,final_liters:0 +msgid "Final Liters" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,final_odometer_id:0 +#: field:logistic.waybill,wagon_final_odometer_id:0 +msgid "Final Odometer" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,message_follower_ids:0 +#: field:logistic.waybill,message_follower_ids:0 +#: field:logistic.waybill_driver_payment,message_follower_ids:0 +msgid "Followers" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,from_date:0 +msgid "From" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +msgid "From Location" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Fuel" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:287 +#, python-format +msgid "Gastos de Hoja de Ruta" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "General Properties" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "Group By..." +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,grouped_line:0 +#: field:logistic.travel.make.invoice,grouped_line:0 +msgid "Group the Invoice Lines" +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,grouped:0 +#: field:logistic.travel.make.invoice,grouped:0 +msgid "Group the invoices" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:407 +#, python-format +msgid "Hoja de Ruta" +msgstr "" + +#. module: logistic +#: help:logistic.requirement,message_summary:0 +#: help:logistic.waybill,message_summary:0 +#: help:logistic.waybill_driver_payment,message_summary:0 +msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,id:0 +#: field:logistic.location,id:0 +#: field:logistic.requirement,id:0 +#: field:logistic.travel,id:0 +#: field:logistic.travel.make.invoice,id:0 +#: field:logistic.waybill,id:0 +#: field:logistic.waybill_driver_payment,id:0 +#: field:logistic.waybill_expense,id:0 +msgid "ID" +msgstr "" + +#. module: logistic +#: help:logistic.requirement,message_unread:0 +#: help:logistic.waybill,message_unread:0 +#: help:logistic.waybill_driver_payment,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Information" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_fleet_vehicle +msgid "Information on a vehicle" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Initial" +msgstr "" + +#. module: logistic +#: field:logistic.waybill,initial_liters:0 +msgid "Initial Liters" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:124 +#: code:addons/logistic/waybill.py:195 +#: field:logistic.requirement,initial_odometer_id:0 +#: field:logistic.waybill,initial_odometer_id:0 +#: field:logistic.waybill,wagon_initial_odometer_id:0 +#, python-format +msgid "Initial Odometer" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_05_product_template +msgid "Inspección Técnica Vehicular" +msgstr "" + +#. module: logistic +#: view:res.partner:logistic.view_logistic_partner_form +msgid "Internal Notes" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:216 +#: code:addons/logistic/requirement.py:226 +#, python-format +msgid "Invalid Action!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:120 +#: model:ir.model,name:logistic.model_account_invoice +#, python-format +msgid "Invoice" +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,invoice_date:0 +#: field:logistic.travel.make.invoice,invoice_date:0 +msgid "Invoice Date" +msgstr "" + +#. module: logistic +#: field:logistic.travel,invoice_line_id:0 +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,invoice_line_id:0 +msgid "Invoice Line" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:148 +#, python-format +msgid "Invoice Lines" +msgstr "" + +#. module: logistic +#: field:res.partner,is_driver:0 +msgid "Is Driver?" +msgstr "" + +#. module: logistic +#: field:product.product,is_fuel:0 +msgid "Is Fuel?" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,message_is_follower:0 +#: field:logistic.waybill,message_is_follower:0 +#: field:logistic.waybill_driver_payment,message_is_follower:0 +msgid "Is a Follower" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,issue_date:0 +msgid "Issue Date" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,odometer_unit:0 +#: selection:logistic.waybill,odometer_unit:0 +#: selection:product.product,range_unit:0 +msgid "Kilometers" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,message_last_post:0 +#: field:logistic.waybill,message_last_post:0 +#: field:logistic.waybill_driver_payment,message_last_post:0 +msgid "Last Message Date" +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,write_uid:0 +#: field:logistic.location,write_uid:0 +#: field:logistic.requirement,write_uid:0 +#: field:logistic.travel,write_uid:0 +#: field:logistic.travel.make.invoice,write_uid:0 +#: field:logistic.waybill,write_uid:0 +#: field:logistic.waybill_driver_payment,write_uid:0 +#: field:logistic.waybill_expense,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: logistic +#: field:logistic.expense.make.invoice,write_date:0 +#: field:logistic.location,write_date:0 +#: field:logistic.requirement,write_date:0 +#: field:logistic.travel,write_date:0 +#: field:logistic.travel.make.invoice,write_date:0 +#: field:logistic.waybill,write_date:0 +#: field:logistic.waybill_driver_payment,write_date:0 +#: field:logistic.waybill_expense,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,length:0 +msgid "Length (mts)" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,location_from_id:0 +#: field:product.product,location_from_id:0 +msgid "Location From" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,location_to_id:0 +#: field:product.product,location_to_id:0 +msgid "Location To" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_location_locations +#: model:ir.ui.menu,name:logistic.menu_locations +msgid "Locations" +msgstr "" + +#. module: logistic +#: model:ir.module.category,description:logistic.module_category_logistic +#: model:ir.module.category,name:logistic.module_category_logistic +#: model:ir.ui.menu,name:logistic.menu_logistic +msgid "Logistic" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,type:0 +#: selection:product.product,service_subtype:0 +msgid "Maintenance" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +#: field:fleet.vehicle,maintenance_ids:0 +#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_maintenances +#: model:ir.ui.menu,name:logistic.menu_maintenances +#: view:product.product:logistic.view_logistic_product_filter +msgid "Maintenances" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_expense_make_invoice +#: model:ir.actions.act_window,name:logistic.action_travel_make_invoice +msgid "Make Invoices" +msgstr "" + +#. module: logistic +#: model:res.groups,name:logistic.group_manager +msgid "Manager" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_marcas +msgid "Marcas" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_master_data +msgid "Master Data" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,message_ids:0 +#: field:logistic.waybill,message_ids:0 +#: field:logistic.waybill_driver_payment,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: logistic +#: help:logistic.requirement,message_ids:0 +#: help:logistic.waybill,message_ids:0 +#: help:logistic.waybill_driver_payment,message_ids:0 +msgid "Messages and communication history" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,odometer_unit:0 +#: selection:logistic.waybill,odometer_unit:0 +#: selection:product.product,range_unit:0 +msgid "Miles" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.fleet_vehicle_model_brand_menu +msgid "Model brand of Vehicle" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,motor_sn:0 +msgid "Motor Number" +msgstr "" + +#. module: logistic +#: view:logistic.location:logistic.view_logistic_location_filter +#: field:logistic.location,name:0 +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,name:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,name:0 +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: field:logistic.waybill_driver_payment,name:0 +msgid "Name" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: selection:logistic.requirement,state:0 +msgid "Need Renew" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: selection:logistic.requirement,state:0 +msgid "Next To Renew" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:363 +#, python-format +msgid "No address defined for the supplier" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:360 +#, python-format +msgid "No default supplier defined for this product" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:357 +#, python-format +msgid "No supplier defined for this product !" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,note:0 +#: field:logistic.waybill,note:0 +#: field:logistic.waybill_driver_payment,note:0 +#: field:logistic.waybill_expense,note:0 +msgid "Note" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Notes" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Notes......" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "Número de Chasis" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,state:0 +msgid "OK" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,odometer_range:0 +msgid "Odometer Range" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,odometer_unit:0 +#: field:logistic.waybill,odometer_unit:0 +msgid "Odometer Unit" +msgstr "" + +#. module: logistic +#: help:logistic.requirement,initial_odometer_id:0 +#: help:logistic.waybill,final_odometer_id:0 +#: help:logistic.waybill,initial_odometer_id:0 +#: help:logistic.waybill,wagon_final_odometer_id:0 +#: help:logistic.waybill,wagon_initial_odometer_id:0 +msgid "Odometer measure of the vehicle at the moment of this log" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:154 +#, python-format +msgid "Order Reference" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:126 +#, python-format +msgid "Order cannot be created because no purchase pricelist exists!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:243 +#: code:addons/logistic/wizard/travel_sale_order.py:58 +#, python-format +msgid "Order cannot be created because not sale pricelist exists!" +msgstr "" + +#. module: logistic +#: selection:product.product,service_subtype:0 +msgid "Other" +msgstr "" + +#. module: logistic +#: view:product.product:logistic.view_logistic_product_filter +msgid "Others" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:462 +#, python-format +msgid "PO: %s" +msgstr "" + +#. module: logistic +#: selection:logistic.waybill_driver_payment,state:0 +msgid "Paid" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_res_partner +#: view:logistic.travel:logistic.view_logistic_travel_filter +msgid "Partner" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_partners_documents +#: model:ir.ui.menu,name:logistic.menu_partners_documents +msgid "Partners Documents" +msgstr "" + +#. module: logistic +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +msgid "Pay" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Payment And Cost" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_09_product_template +msgid "Permiso Internacional Chile" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:299 +#: code:addons/logistic/travel.py:339 +#: code:addons/logistic/waybill_expense.py:187 +#: code:addons/logistic/waybill_expense.py:226 +#, python-format +msgid "Please define income account for this product: \"%s\" (id:%d)." +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:286 +#, python-format +msgid "Please define purchases journal for this company: \"%s\" (id:%d)." +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:404 +#, python-format +msgid "Please define sales journal for this company: \"%s\" (id:%d)." +msgstr "" + +#. module: logistic +#: field:logistic.travel,price:0 +msgid "Price" +msgstr "" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,price_unit:0 +msgid "Price Unit" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_product_product +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,product_id:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,product_id:0 +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,product_id:0 +msgid "Product" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_product_products +#: model:ir.ui.menu,name:logistic.menu_products +msgid "Products" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_11_product_template +msgid "Psicofísico" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,po_line_id:0 +msgid "Purchase Order Line" +msgstr "" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,product_uom_qty:0 +msgid "Quantity" +msgstr "" + +#. module: logistic +#: field:product.product,range_unit:0 +msgid "Range Unit" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,reference:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,reference:0 +msgid "Reference" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Reference..." +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:132 +#, python-format +msgid "Remaining Days" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:128 +#, python-format +msgid "Remaining Range" +msgstr "" + +#. module: logistic +#: selection:logistic.requirement,state:0 +msgid "Renewal Requested" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: selection:logistic.requirement,state:0 +msgid "Renewed" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,renewed_by_id:0 +msgid "Renewed By" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:137 +#, python-format +msgid "Renews" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +msgid "Request Renewal" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.menu_requirements +msgid "Requirements" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_01_product_template +msgid "Rosario – Córdoba" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_06_product_template +msgid "Ruta" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_08_product_template +msgid "SENASA" +msgstr "" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:169 +#, python-format +msgid "Sale Orders" +msgstr "" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:152 +#, python-format +msgid "Sale order cannot be created because it already has a related sale order line!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:146 +#, python-format +msgid "Sale order cannot be created because there is no partner defined for this travel!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/wizard/travel_sale_order.py:149 +#, python-format +msgid "Sale order cannot be created because there is no product defined for this travel!" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_04_product_template +msgid "Seguro" +msgstr "" + +#. module: logistic +#: model:product.template,name:logistic.product_product_14_product_template +msgid "Service" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_form +msgid "Set Active" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +msgid "Set OK" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,state:0 +#: field:logistic.waybill,state:0 +#: field:logistic.waybill_driver_payment,state:0 +msgid "State" +msgstr "" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "Subtotal" +msgstr "" + +#. module: logistic +#: field:product.product,service_subtype:0 +msgid "Subtype" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,message_summary:0 +#: field:logistic.waybill,message_summary:0 +#: field:logistic.waybill_driver_payment,message_summary:0 +msgid "Summary" +msgstr "" + +#. module: logistic +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,supplier_id:0 +msgid "Supplier" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:373 +#, python-format +msgid "The product \"%s\" has been defined with your company as reseller which seems to be a configuration error!" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:320 +#: code:addons/logistic/travel.py:352 +#: code:addons/logistic/waybill_expense.py:207 +#: code:addons/logistic/waybill_expense.py:239 +#, python-format +msgid "There is no Fiscal Position defined or Income category account defined for default properties of Product categories." +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:167 +#, python-format +msgid "There is no sale pricelist!" +msgstr "" + +#. module: logistic +#: field:logistic.travel,to_date:0 +msgid "To" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +msgid "To Draft" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +msgid "To Invoice" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +msgid "To Location" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:76 +#, python-format +msgid "To create invoice expenses must have supplier and product" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:193 +#, python-format +msgid "To create invoice travels must have partner and product" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_tree +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill:logistic.view_logistic_waybill_tree +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_tree +msgid "Total" +msgstr "" + +#. module: logistic +#: selection:fleet.vehicle,type:0 +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,tractor_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,tractor_id:0 +msgid "Tractor" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:432 +#, python-format +msgid "Tractor Final odometer must be greater than initial odometer!" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.view_logistic_vehicle_filter +msgid "Tractors" +msgstr "" + +#. module: logistic +#: selection:product.product,service_subtype:0 +msgid "Travel" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_travel_make_invoice +msgid "Travel Make Invoice" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_travel_travels +#: model:ir.ui.menu,name:logistic.menu_travels +#: view:logistic.travel:logistic.view_logistic_travel_calendar +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: field:logistic.waybill,travel_ids:0 +#: view:product.product:logistic.view_logistic_product_filter +msgid "Travels" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_travel_travels_calendar +#: model:ir.ui.menu,name:logistic.menu_travels_calendar +msgid "Travels Calendar" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,type:0 +#: field:logistic.requirement,type:0 +msgid "Type" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,message_unread:0 +#: field:logistic.waybill,message_unread:0 +#: field:logistic.waybill_driver_payment,message_unread:0 +msgid "Unread Messages" +msgstr "" + +#. module: logistic +#: model:res.groups,name:logistic.group_user +msgid "User" +msgstr "" + +#. module: logistic +#: code:addons/logistic/wizard/requirement_replace_wizard.py:142 +#, python-format +msgid "User Error!" +msgstr "" + +#. module: logistic +#: view:logistic.requirement:logistic.view_logistic_requirement_filter +#: field:logistic.requirement,vehicle_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +msgid "Vehicle" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_requirement_vehicle_documents +#: model:ir.ui.menu,name:logistic.menu_vehicle_documents +msgid "Vehicle Documents" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.fleet_vehicle_model_menu +msgid "Vehicle Model" +msgstr "" + +#. module: logistic +#: model:ir.ui.menu,name:logistic.fleet_vehicle_state_menu +msgid "Vehicle Status" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_vehicle_vehicles +#: model:ir.ui.menu,name:logistic.menu_vehicles +msgid "Vehicles" +msgstr "" + +#. module: logistic +#: model:res.groups,name:logistic.group_view +msgid "View" +msgstr "" + +#. module: logistic +#: selection:fleet.vehicle,type:0 +#: field:fleet.vehicle,wagon_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: field:logistic.waybill,wagon_id:0 +msgid "Wagon" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill.py:435 +#, python-format +msgid "Wagon Final odometer must be greater than initial odometer!" +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.view_logistic_vehicle_filter +msgid "Wagons" +msgstr "" + +#. module: logistic +#: code:addons/logistic/requirement.py:101 +#: field:logistic.requirement,warning_days:0 +#, python-format +msgid "Warning Days" +msgstr "" + +#. module: logistic +#: field:logistic.requirement,warning_range:0 +msgid "Warning Range" +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:193 +#: code:addons/logistic/waybill_expense.py:76 +#, python-format +msgid "Warning!" +msgstr "" + +#. module: logistic +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: field:logistic.travel,waybill_id:0 +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: field:logistic.waybill_expense,waybill_id:0 +msgid "Waybill" +msgstr "" + +#. module: logistic +#: model:ir.actions.act_window,name:logistic.action_logistic_waybill_waybills +#: model:ir.ui.menu,name:logistic.menu_waybills +#: model:ir.ui.menu,name:logistic.menu_waybills_main +#: field:logistic.waybill_driver_payment,waybill_ids:0 +msgid "Waybills" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,width:0 +msgid "Width (mts)" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,year:0 +msgid "Year" +msgstr "" + +#. module: logistic +#: code:addons/logistic/waybill_expense.py:80 +#, python-format +msgid "You cannot group expenses having different currencies for the same supplier." +msgstr "" + +#. module: logistic +#: code:addons/logistic/travel.py:197 +#, python-format +msgid "You cannot group travels having different currencies for the same partner." +msgstr "" + +#. module: logistic +#: code:addons/logistic/wizard/requirement_replace_wizard.py:142 +#, python-format +msgid "You must select accounts to reconcile." +msgstr "" + +#. module: logistic +#: view:fleet.vehicle:logistic.fleet_vehicle_form +msgid "base.group_no_one" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,default_kilometers:0 +msgid "default_kilometers" +msgstr "" + +#. module: logistic +#: field:fleet.vehicle,default_validity:0 +msgid "default_validity" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_location +#: view:logistic.location:logistic.view_logistic_location_filter +#: view:logistic.location:logistic.view_logistic_location_form +#: view:logistic.location:logistic.view_logistic_location_tree +msgid "location" +msgstr "" + +#. module: logistic +#: view:logistic.expense.make.invoice:logistic.view_expense_make_invoice +#: view:logistic.travel.make.invoice:logistic.view_travel_make_invoice +msgid "or" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_requirement +#: view:logistic.requirement:logistic.view_logistic_requirement_form +#: view:logistic.requirement:logistic.view_logistic_requirement_tree +msgid "requirement" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_travel +#: view:logistic.travel:logistic.view_logistic_travel_filter +#: view:logistic.travel:logistic.view_logistic_travel_form +#: view:logistic.travel:logistic.view_logistic_travel_tree +msgid "travel" +msgstr "" + +#. module: logistic +#: view:logistic.waybill:logistic.view_logistic_waybill_filter +#: view:logistic.waybill:logistic.view_logistic_waybill_form +#: view:logistic.waybill:logistic.view_logistic_waybill_tree +msgid "waybill" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_waybill_driver_payment +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_filter +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_form +#: view:logistic.waybill_driver_payment:logistic.view_logistic_waybill_driver_payment_tree +msgid "waybill_driver_payment" +msgstr "" + +#. module: logistic +#: model:ir.model,name:logistic.model_logistic_waybill_expense +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_filter +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_form +#: view:logistic.waybill_expense:logistic.view_logistic_waybill_expense_tree +msgid "waybill_expense" +msgstr "" + diff --git a/logistic/location.py b/logistic/location.py index ce66cb0..da82a5d 100644 --- a/logistic/location.py +++ b/logistic/location.py @@ -1,50 +1,16 @@ # -*- coding: utf-8 -*- ############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# +# For copyright and license notices, see __openerp__.py file in module root +# directory ############################################################################## +from openerp import models, fields -import re -from openerp import netsvc -from openerp.osv import osv, fields +class location(models.Model): -class location(osv.osv): """""" - + _name = 'logistic.location' _description = 'location' - _columns = { - 'name': fields.char(string='Name', required=True), - } - - _defaults = { - } - - - _constraints = [ - ] - - - - -location() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + name = fields.Char(string='Name', required=True) diff --git a/logistic/partner.py b/logistic/partner.py deleted file mode 100644 index 7d56d96..0000000 --- a/logistic/partner.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - -import re -from openerp import netsvc -from openerp.osv import osv, fields - -class partner(osv.osv): - """""" - - _name = 'res.partner' - _inherits = { } - _inherit = [ 'res.partner' ] - - _columns = { - 'is_driver': fields.boolean(string='Is Driver?'), - 'driver_product_id': fields.many2one('product.product', string='Driver Product', context={'default_type':'service','default_service_subtype':'other'}, domain=[('type','=','service'),('service_subtype','=','other')]), - } - - _defaults = { - } - - - _constraints = [ - ] - - - - -partner() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/logistic/product.py b/logistic/product.py index ec0a0ee..3e2359f 100644 --- a/logistic/product.py +++ b/logistic/product.py @@ -1,61 +1,47 @@ # -*- coding: utf-8 -*- ############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# +# For copyright and license notices, see __openerp__.py file in module root +# directory ############################################################################## +from openerp import models, fields -import re -from openerp import netsvc -from openerp.osv import osv, fields +class product(models.Model): -class product(osv.osv): """""" - - _name = 'product.product' - _inherits = { } - _inherit = [ 'product.product' ] - - _columns = { - 'location_from_id': fields.many2one('logistic.location', string='Location From'), - 'location_to_id': fields.many2one('logistic.location', string='Location To'), - 'service_subtype': fields.selection([(u'travel', u'Travel'), (u'maintenance', u'Maintenance'), (u'document', u'Document'), (u'other', u'Other')], string='Subtype'), - 'default_range': fields.float(string='Default Range'), - 'range_unit': fields.selection([(u'kilometers', u'Kilometers'), (u'miles', u'Miles')], string='Range Unit'), - 'default_validity_days': fields.integer(string='Default Validity Days'), - 'default_warning_days': fields.integer(string='Default Warning Days'), - 'default_warning_range': fields.float(string='Default Warning Range'), - 'is_fuel': fields.boolean(string='Is Fuel?'), - } - - _defaults = { - 'service_subtype': 'other', - 'range_unit': 'kilometers', - } - - - _constraints = [ - ] - - - - -product() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + _inherit = 'product.product' + + location_from_id = fields.Many2one( + 'logistic.location', + string='Location From' + ) + location_to_id = fields.Many2one( + 'logistic.location', + string='Location To' + ) + service_subtype = fields.Selection( + [('travel', 'Travel'), ('maintenance', 'Maintenance'), + ('document', 'Document'), ('other', 'Other')], + string='Subtype', + default='other' + ) + default_range = fields.Float( + string='Default Range' + ) + range_unit = fields.Selection( + [('kilometers', 'Kilometers'), ('miles', 'Miles')], + string='Range Unit', + default='kilometers' + ) + default_validity_days = fields.Integer( + string='Default Validity Days' + ) + default_warning_days = fields.Integer( + string='Default Warning Days' + ) + default_warning_range = fields.Float( + string='Default Warning Range' + ) + is_fuel = fields.Boolean( + string='Is Fuel?' + ) diff --git a/logistic/report/__init__.py b/logistic/report/__init__.py index 7465385..40a96af 100644 --- a/logistic/report/__init__.py +++ b/logistic/report/__init__.py @@ -1,26 +1 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/logistic/requirement.py b/logistic/requirement.py index 7100e7a..232232e 100644 --- a/logistic/requirement.py +++ b/logistic/requirement.py @@ -1,47 +1,35 @@ # -*- coding: utf-8 -*- ############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# +# For copyright and license notices, see __openerp__.py file in module root +# directory ############################################################################## +from openerp import netsvc +from openerp import models, fields, api, _ +from openerp.exceptions import Warning +import datetime +from dateutil.relativedelta import relativedelta +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare +import time -import re -from openerp import netsvc -from openerp.osv import osv, fields +class requirement(models.Model): -class requirement(osv.osv): """""" - + _name = 'logistic.requirement' _description = 'requirement' - _inherits = { } - _inherit = [ 'ir.needaction_mixin','mail.thread' ] + + _inherit = 'ir.needaction_mixin', 'mail.thread' _states_ = [ # State machine: requirement_basic - ('draft','Draft'), - ('ok','OK'), - ('next_to_renew','Next To Renew'), - ('need_renew','Need Renew'), - ('renewal_requested','Renewal Requested'), - ('renewed','Renewed'), - ('cancelled','Cancelled'), + ('draft', 'Draft'), + ('ok', 'OK'), + ('next_to_renew', 'Next To Renew'), + ('need_renew', 'Need Renew'), + ('renewal_requested', 'Renewal Requested'), + ('renewed', 'Renewed'), + ('cancelled', 'Cancelled'), ] _track = { 'state': { @@ -54,60 +42,506 @@ class requirement(osv.osv): 'logistic.requirement_cancelled': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancelled', }, } - _columns = { - 'date': fields.date(string='Date', readonly=True, required=True), - 'type': fields.selection([(u'maintenance', u'Maintenance'), (u'document', u'Document')], string='Type', required=True), - 'vehicle_id': fields.many2one('fleet.vehicle', string='Vehicle'), - 'partner_id': fields.many2one('res.partner', string='Driver', context={'default_is_driver':True}, domain=[('is_driver','=',True)]), - 'product_id': fields.many2one('product.product', string='Product', required=True), - 'name': fields.char(string='Name', required=True), - 'initial_odometer': fields.float(string='Initial Odometer'), - 'odometer_range': fields.float(string='Odometer Range'), - 'warning_range': fields.float(string='Warning Range'), - 'odometer_unit': fields.selection([(u'kilometers', u'Kilometers'), (u'miles', u'Miles')], string='Odometer Unit'), - 'issue_date': fields.date(string='Issue Date'), - 'expiration_date': fields.date(string='Expiration Date'), - 'note': fields.text(string='Note'), - 'remaining_range': fields.integer(string='Remaining Range'), - 'remaining_days': fields.integer(string='Remaining Days'), - 'warning_days': fields.integer(string='Warning Days'), - 'renewed_by_id': fields.many2one('logistic.requirement', string='Renewed By', readonly=True), - 'renews_id': fields.many2one('logistic.requirement', string='Renews', readonly=True), - 'id': fields.integer(string='Id', readonly=True), - 'po_line_id': fields.many2one('sale.order.line', string='Purchase Order Line', readonly=True), - 'state': fields.selection(_states_, "State"), - } - _defaults = { - 'state': 'draft', - 'date': fields.date.context_today, - 'odometer_unit': 'kilometers', - 'issue_date': fields.date.context_today, - } + date = fields.Date( + string='Date', + readonly=True, + required=True, + default=fields.date.today() + ) + type = fields.Selection( + [('maintenance', 'Maintenance'), ('document', 'Document')], + string='Type', + required=True + ) + vehicle_id = fields.Many2one( + 'fleet.vehicle', + string='Vehicle' + ) + partner_id = fields.Many2one( + 'res.partner', + string='Driver', + context={'default_is_driver': True}, + domain=[('is_driver', '=', True)] + ) + product_id = fields.Many2one( + 'product.product', + string='Product', + required=True + ) + name = fields.Char( + string='Name', + required=True + ) + initial_odometer = fields.Float( + string='Initial Odometer' + ) + odometer_range = fields.Float( + string='Odometer Range' + ) + warning_range = fields.Float( + string='Warning Range' + ) + odometer_unit = fields.Selection( + [('kilometers', 'Kilometers'), ('miles', 'Miles')], + string='Odometer Unit', + default='kilometers' + ) + issue_date = fields.Date( + string='Issue Date', + default=fields.date.today() + ) + expiration_date = fields.Date( + string='Expiration Date' + ) + note = fields.Text( + string='Note' + ) + warning_days = fields.Integer( + string=_('Warning Days') + ) + renewed_by_id = fields.Many2one( + 'logistic.requirement', + string='Renewed By', + readonly=True + ) + id = fields.Integer( + string='Id', + readonly=True + ) + state = fields.Selection( + _states_, + "State", + default='draft' + ) + initial_odometer_id = fields.Many2one( + 'fleet.vehicle.odometer', + 'Initial Odometer', + help='Odometer measure of the vehicle at the moment of this log' + ) + initial_odometer = fields.Float( + inverse='_set_initial_odometer', + string=_('Initial Odometer'), + compute='_get_initial_odometer' + ) + remaining_range = fields.Integer( + string=_('Remaining Range'), + compute='get_remainings' + ) + remaining_days = fields.Integer( + string=_('Remaining Days'), + compute='get_remainings' + ) + renews_id = fields.Many2one( + 'logistic.requirement', + string=_('Renews'), + compute='get_renews_id' + ) + po_line_id = fields.Many2one( + 'purchase.order.line', + string='Purchase Order Line', + readonly=True + ) + invoice_line_ids = fields.Many2many( + 'account.invoice.line', + related='po_line_id.invoice_lines', + string=_('Invoice Lines'), + readonly=True + ) + purchase_order_id = fields.Many2one( + 'purchase.order', + related='po_line_id.order_id', + string=_('Order Reference'), + readonly=True + ) + def action_wfk_set_draft(self, cr, uid, ids, *args): + self.write(cr, uid, ids, {'state': 'draft'}) + wf_service = netsvc.LocalService("workflow") + for obj_id in ids: + wf_service.trg_delete(uid, 'logistic.requirement', obj_id, cr) + wf_service.trg_create(uid, 'logistic.requirement', obj_id, cr) + return True - _constraints = [ - ] + @api.one + def _get_initial_odometer(self): + if self.initial_odometer_id: + self.initial_odometer = self.initial_odometer_id.value + + @api.one + def _set_initial_odometer(self): + if not self.initial_odometer: + # raise except_orm(_('Operation not allowed!'), _('Emptying the odometer value of a vehicle is not allowed.')) + return True + date = self.date + if not self.date: + date = fields.date_today() + data = {'value': self.initial_odometer, + 'date': date, 'vehicle_id': self.vehicle_id.id} + odometer_id = self.env['fleet.vehicle.odometer'].create(data) + self.initial_odometer_id = odometer_id + + @api.one + def get_remainings(self): + # for record in self.browse(cr, uid, ids, context=context): + self.remaining_range = False + self.remaining_days = False + if self.type == 'maintenance': + if self.initial_odometer and self.vehicle_id.odometer and self.odometer_range: + self.remaining_range = self.initial_odometer + \ + self.odometer_range - self.vehicle_id.odometer + elif self.expiration_date: + today = datetime.datetime.today() + expiration_date = datetime.datetime.strptime( + self.expiration_date, DEFAULT_SERVER_DATE_FORMAT) + remaining_days = (expiration_date - today).days + self.remaining_days = remaining_days + + @api.multi + def get_renews_id(self): + res = {} + for record_id in self._ids: + renews_ids = self.search([('renewed_by_id', '=', record_id)]) + if renews_ids: + res[record_id] = renews_ids[0] + else: + res[record_id] = False + return res + + @api.one + def unlink(self): + for t in self.read(['state']): + if t['state'] not in ('draft', 'cancelled'): + raise Warning(_('Invalid Action!'), _( + 'Cannot delete requirement(s) which are not in draft or cancelled state.')) + return super(requirement, self).unlink() + + def action_cancel(self, cr, uid, ids, context=None): + if context is None: + context = {} + for record in self.browse(cr, uid, ids, context=context): + if record.renewed_by_id: + raise Warning( + _('Invalid Action!'), + _('Cannot cancel requirements that has a renewed by requirement! You must first delete the related renewed by requirement.')) + return True + + def verify_requirement_state(self, cr, uid, ids=None, context=None): + if context is None: + context = {} + date = time.strftime(DEFAULT_SERVER_DATE_FORMAT) + wf_service = netsvc.LocalService("workflow") + # Next to renew requirements + ok_requirement_ids = self.search( + cr, uid, [('state', 'in', ['ok', 'need_renew'])], context=context) + for record in self.browse(cr, uid, ok_requirement_ids, context): + if (record.type == 'document' and record.remaining_days <= record.warning_days) or (record.type == 'maintenance' and record.remaining_range <= record.warning_range): + wf_service.trg_validate( + uid, 'logistic.requirement', record.id, 'sgn_next_to_renew', cr) + + # need renew requirements + need_renew_ids = self.search(cr, uid, [('state', 'in', ['ok', 'next_to_renew']), ( + 'expiration_date', '<=', date), ('type', '=', 'document')], context=context) + + # No peudo agregar esta parte en el search porque remianing_range es un + # function sin search + maintenance_ids = self.search(cr, uid, [('state', 'in', [ + 'ok', 'next_to_renew']), ('type', '=', 'maintenance')], context=context) + for record in self.browse(cr, uid, maintenance_ids, context): + if (record.type == 'maintenance' and record.remaining_range <= 0) or (record.type == 'document' and record.remaining_days <= 0): + need_renew_ids.append(record.id) + for record_id in need_renew_ids: + wf_service.trg_validate( + uid, 'logistic.requirement', record_id, 'sgn_need_renew', cr) + + return True def on_change_product(self, cr, uid, ids, product_id, issue_date, context=None): - """""" - raise NotImplementedError + v = {} + if product_id: + product = self.pool['product.product'].browse( + cr, uid, product_id, context=context) + if product.service_subtype == 'maintenance': + v = { + 'odometer_range': product.default_range, + 'warning_range': product.default_warning_range, + 'name': product.name, + } + elif product.service_subtype == 'document': + if issue_date and product.default_validity_days: + expiration_date = (datetime.datetime.strptime( + issue_date, '%Y-%m-%d') + relativedelta(days=product.default_validity_days)).strftime('%Y-%m-%d') + v = { + 'expiration_date': expiration_date, + 'warning_days': product.default_warning_days, + 'name': product.name, + } + else: + v = { + 'expiration_date': False, + 'warning_days': False, + 'name': False, + } + return {'value': v} def on_change_vehicle(self, cr, uid, ids, vehicle_id, context=None): - """""" - raise NotImplementedError + v = { + 'initial_odometer': False, + } + if vehicle_id: + vehicle = self.pool['fleet.vehicle'].browse( + cr, uid, vehicle_id, context=context) + if vehicle.odometer: + v = { + 'initial_odometer': vehicle.odometer, + } + return {'value': v} + + def make_new_requirement(self, cr, uid, ids, po_line_dic, context=None): + res = {} + for requirement in self.browse(cr, uid, ids, context=context): + if requirement.vehicle_id: + initial_odometer = requirement.vehicle_id.odometer + else: + initial_odometer = False + if requirement.expiration_date: + expiration_date = (datetime.datetime.strptime(requirement.expiration_date, '%Y-%m-%d') + + relativedelta(days=requirement.product_id.default_validity_days)).strftime('%Y-%m-%d') + vals = { + 'type': requirement.type, + 'vehicle_id': requirement.vehicle_id.id, + 'partner_id': requirement.partner_id.id, + 'name': requirement.name, + 'product_id': requirement.product_id.id, + 'initial_odometer': initial_odometer, + 'odometer_range': requirement.product_id.default_range, + 'warning_range': requirement.product_id.default_warning_range, + 'odometer_unit': requirement.product_id.range_unit, + 'odometer_unit': requirement.product_id.range_unit, + 'issue_date': requirement.expiration_date, + 'expiration_date': requirement.expiration_date, + 'warning_days': requirement.product_id.default_warning_days, + 'note': requirement.note, + 'po_line_id': po_line_dic.get(requirement.id, False), + } + new_requirement_id = self.create(cr, uid, vals, context=context) + res[requirement.id] = new_requirement_id + self.write(cr, uid, [requirement.id], { + 'renewed_by_id': new_requirement_id}, context=context) + return res + + def request_renew(self, cr, uid, ids, context=None): + po_line_dic = self.make_po(cr, uid, ids, context=context) + self.make_new_requirement(cr, uid, ids, po_line_dic, context=context) + return True + + def set_ok(self, cr, uid, ids, context=None): + for requirement in self.browse(cr, uid, ids, context=context): + if requirement.renews_id: + self.write + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate( + uid, 'logistic.requirement', requirement.renews_id.id, 'sgn_renewed', cr) + + def check_supplier_info(self, cr, uid, ids, context=None): + partner_obj = self.pool.get('res.partner') + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + for requirement in self.browse(cr, uid, ids, context=context): + message = '' + # Taken Main Supplier of Product of requirement. + partner = requirement.product_id.seller_id + + if not requirement.product_id.seller_ids: + raise Warning( + _('Error!'), _('No supplier defined for this product !')) + elif not partner: + raise Warning( + _('Error!'), _('No default supplier defined for this product')) + elif not partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery']: + raise Warning( + _('Error!'), _('No address defined for the supplier')) + + if message: + if requirement.message != message: + cr.execute( + 'update requirement_order set message=%s where id=%s', (message, requirement.id)) + return False + + if user.company_id and user.company_id.partner_id: + if partner.id == user.company_id.partner_id.id: + raise Warning(_('Configuration Error!'), _( + 'The product "%s" has been defined with your company as reseller which seems to be a configuration error!' % requirement.product_id.name)) - def action_wfk_set_draft(self, cr, uid, ids, *args): - self.write(cr, uid, ids, {'state':'draft'}) - wf_service = netsvc.LocalService("workflow") - for obj_id in ids: - wf_service.trg_delete(uid, 'logistic.requirement', obj_id, cr) - wf_service.trg_create(uid, 'logistic.requirement', obj_id, cr) return True + def _get_purchase_schedule_date(self, cr, uid, requirement, company, context=None): + """Return the datetime value to use as Schedule Date (``date_planned``) for the + Purchase Order Lines created to satisfy the given requirement. + + :param browse_record requirement: the requirement for which a PO will be created. + :param browse_report company: the company to which the new PO will belong to. + :rtype: datetime + :return: the desired Schedule Date for the PO lines + """ + requirement_date_planned = datetime.datetime.strptime( + time.strftime(DEFAULT_SERVER_DATE_FORMAT), DEFAULT_SERVER_DATE_FORMAT) + # requirement_date_planned = datetime.strptime(requirement.date_planned, DEFAULT_SERVER_DATETIME_FORMAT) + schedule_date = ( + requirement_date_planned - relativedelta(days=company.po_lead)) + return schedule_date + + def _get_purchase_order_date(self, cr, uid, requirement, company, schedule_date, context=None): + """Return the datetime value to use as Order Date (``date_order``) for the + Purchase Order created to satisfy the given requirement. + + :param browse_record requirement: the requirement for which a PO will be created. + :param browse_report company: the company to which the new PO will belong to. + :param datetime schedule_date: desired Scheduled Date for the Purchase Order lines. + :rtype: datetime + :return: the desired Order Date for the PO + """ + seller_delay = int(requirement.product_id.seller_delay) + return schedule_date - relativedelta(days=seller_delay) + + def make_po(self, cr, uid, ids, context=None): + """ Make purchase order from requirement + @return: New created Purchase Orders requirement wise + """ + self.check_supplier_info(cr, uid, ids, context=context) + res = {} + if context is None: + context = {} + company = self.pool.get('res.users').browse( + cr, uid, uid, context=context).company_id + partner_obj = self.pool.get('res.partner') + uom_obj = self.pool.get('product.uom') + pricelist_obj = self.pool.get('product.pricelist') + prod_obj = self.pool.get('product.product') + acc_pos_obj = self.pool.get('account.fiscal.position') + seq_obj = self.pool.get('ir.sequence') + warehouse_ids = self.pool['stock.warehouse'].search( + cr, uid, [], context=context) + if warehouse_ids: + warehouse = self.pool['stock.warehouse'].browse( + cr, uid, warehouse_ids[0], context=context) + for requirement in self.browse(cr, uid, ids, context=context): + # Taken Main Supplier of Product of requirement. + partner = requirement.product_id.seller_id + seller_qty = requirement.product_id.seller_qty + partner_id = partner.id + address_id = partner_obj.address_get( + cr, uid, [partner_id], ['delivery'])['delivery'] + pricelist_id = partner.property_product_pricelist_purchase.id + uom_id = requirement.product_id.uom_po_id.id + + qty = 1 + if seller_qty: + qty = max(qty, seller_qty) + + price = pricelist_obj.price_get(cr, uid, [ + pricelist_id], requirement.product_id.id, qty, partner_id, {'uom': uom_id})[pricelist_id] + + schedule_date = self._get_purchase_schedule_date( + cr, uid, requirement, company, context=context) + purchase_date = self._get_purchase_order_date( + cr, uid, requirement, company, schedule_date, context=context) + + # Passing partner_id to context for purchase order line integrity + # of Line name + new_context = context.copy() + new_context.update( + {'lang': partner.lang, 'partner_id': partner_id}) + + product = prod_obj.browse( + cr, uid, requirement.product_id.id, context=new_context) + taxes_ids = requirement.product_id.supplier_taxes_id + taxes = acc_pos_obj.map_tax( + cr, uid, partner.property_account_position, taxes_ids) + + name = seq_obj.get(cr, uid, 'purchase.order') or _( + 'PO: %s') % requirement.name + if requirement.vehicle_id: + origin = requirement.vehicle_id.name + elif requirement.partner_id: + origin = requirement.partner_id.name + else: + origin = '' + po_vals = { + 'name': name, + 'origin': origin + ' - ' + requirement.name, + 'partner_id': partner_id, + 'location_id': warehouse.wh_input_stock_loc_id.id, + 'warehouse_id': warehouse.id, + 'pricelist_id': pricelist_id, + 'date_order': purchase_date.strftime(DEFAULT_SERVER_DATETIME_FORMAT), + 'company_id': company.id, + 'fiscal_position': partner.property_account_position and partner.property_account_position.id or False, + 'payment_term_id': partner.property_supplier_payment_term.id or False, + } + po_id = self.pool.get('purchase.order').create( + cr, uid, po_vals, context=context) + name = product.partner_ref + if product.description_purchase: + name += '\n' + product.description_purchase + line_vals = { + 'name': name, + 'product_qty': qty, + 'product_id': requirement.product_id.id, + 'product_uom': uom_id, + 'price_unit': price or 0.0, + 'date_planned': schedule_date.strftime(DEFAULT_SERVER_DATETIME_FORMAT), + 'order_id': po_id, + 'taxes_id': [(6, 0, taxes)], + } + po_line_id = self.pool.get('purchase.order.line').create( + cr, uid, line_vals, context=context) + + # self.write(cr, uid, [requirement.id], {'po_line_id': po_line_id}, context=context) + res[requirement.id] = po_line_id + return res + # return True + +# This methods works and creates a requirement order than later will be a purchase order. The problem is that we want the requirement to have a m2o to the pruchase order line in order to have the price history + # def _prepare_order_line_requirement(self, cr, uid, requirement, context=None): + # date_planned = datetime.strptime(time.strftime(DEFAULT_SERVER_DATE_FORMAT), DEFAULT_SERVER_DATE_FORMAT) + # location_ids = self.pool['stock.warehouse'].search(cr, uid, [], context=context) + # company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id + # if location_ids: + # default_location_id = location_ids[0] + # else: + # print 'error' + # if requirement.vehicle_id: + # name = requirement.vehicle_id.name + # elif requirement.partner_id: + # name = requirement.partner_id.name + # else: + # name = '' + # return { + # 'name': requirement.name, + # 'origin': name + ' - ' + requirement.name, + # 'date_planned': date_planned, + # 'product_id': requirement.product_id.id, + # 'product_qty': 1, + # 'product_uom': requirement.product_id.uom_id.id, + # 'product_uos_qty': 1, + # 'product_uos': requirement.product_id.uom_id.id, + # 'location_id': default_location_id, + # 'procure_method': 'make_to_order', + # 'move_id': move_id, + # 'company_id': company.id, + # 'note': line.name, + # } -requirement() + # def make_purchase_order(self, cr, uid, ids, context=None): + # requirement_obj = self.pool.get('requirement.order') + # requirement_ids = [] + # for requirement in self.browse(cr, uid, ids, context=context): + # requirement_id = requirement_obj.create(cr, uid, self._prepare_order_line_requirement(cr, uid, requirement, context=context)) + # requirement_ids.append(requirement_id) + # wf_service = netsvc.LocalService("workflow") + # wf_service.trg_validate(uid, 'requirement.order', requirement_id, 'button_confirm', cr) + # return requirement_ids # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/logistic_x/res_partner.py b/logistic/res_partner.py similarity index 74% rename from logistic_x/res_partner.py rename to logistic/res_partner.py index 7be9d57..090c73b 100644 --- a/logistic_x/res_partner.py +++ b/logistic/res_partner.py @@ -21,6 +21,30 @@ class res_partner(models.Model): ('need_renew', 'Need Renew'), ] + is_driver = fields.Boolean( + string='Is Driver?' + ) + driver_product_id = fields.Many2one( + 'product.product', + string='Driver Product', + context={'default_type': 'service', + 'default_service_subtype': 'other'}, + domain=[('type', '=', 'service'), ('service_subtype', '=', 'other')] + ) + + document_ids = fields.One2many( + 'logistic.requirement', 'partner_id', + context={'default_type': 'document'}, + domain=[('type', '=', 'document'), + ('state', 'not in', ['renewed', 'cancelled'])], + string='Documents' + ) + requirement_state = fields.Selection( + selection=_requirement_states, + compute='_get_requirement_state', + string="Requirements State" + ) + @api.one def _get_requirement_state(self): self.requirement_state = 'ok' @@ -30,13 +54,3 @@ def _get_requirement_state(self): elif self.env['logistic.requirement'].search( [('partner_id', '=', self.id), ('state', '=', 'next_to_renew')]): self.requirement_state = 'next_to_renew' - - document_ids = fields.One2many( - 'logistic.requirement', 'partner_id', - context={'default_type': 'document'}, - domain=[('type', '=', 'document'), - ('state', 'not in', ['renewed', 'cancelled'])], - string='Documents') - requirement_state = fields.Selection( - selection=_requirement_states, - compute='_get_requirement_state', string="Requirements State") diff --git a/logistic/security/ir.model.access.csv b/logistic/security/ir.model.access.csv index 5809d69..849b48d 100644 --- a/logistic/security/ir.model.access.csv +++ b/logistic/security/ir.model.access.csv @@ -1,28 +1,53 @@ -"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_logistic_location_manager","logistic.location.manager","model_logistic_location","group_manager",1,1,1,1 -"access_logistic_location_user","logistic.location.user","model_logistic_location","group_user",1,1,1,1 -"access_logistic_location_view","logistic.location.view","model_logistic_location","group_view",1,1,1,1 -"access_logistic_waybill_manager","logistic.waybill.manager","model_logistic_waybill","group_manager",1,1,1,1 -"access_logistic_waybill_user","logistic.waybill.user","model_logistic_waybill","group_user",1,1,1,1 -"access_logistic_waybill_view","logistic.waybill.view","model_logistic_waybill","group_view",1,1,1,1 -"access_logistic_travel_manager","logistic.travel.manager","model_logistic_travel","group_manager",1,1,1,1 -"access_logistic_travel_user","logistic.travel.user","model_logistic_travel","group_user",1,1,1,1 -"access_logistic_travel_view","logistic.travel.view","model_logistic_travel","group_view",1,1,1,1 -"access_product_product_manager","product.product.manager","model_product_product","group_manager",1,1,1,1 -"access_product_product_user","product.product.user","model_product_product","group_user",1,1,1,1 -"access_product_product_view","product.product.view","model_product_product","group_view",1,1,1,1 -"access_res_partner_manager","res.partner.manager","model_res_partner","group_manager",1,1,1,1 -"access_res_partner_user","res.partner.user","model_res_partner","group_user",1,1,1,1 -"access_res_partner_view","res.partner.view","model_res_partner","group_view",1,1,1,1 -"access_logistic_waybill_expense_manager","logistic.waybill_expense.manager","model_logistic_waybill_expense","group_manager",1,1,1,1 -"access_logistic_waybill_expense_user","logistic.waybill_expense.user","model_logistic_waybill_expense","group_user",1,1,1,1 -"access_logistic_waybill_expense_view","logistic.waybill_expense.view","model_logistic_waybill_expense","group_view",1,1,1,1 -"access_logistic_requirement_manager","logistic.requirement.manager","model_logistic_requirement","group_manager",1,1,1,1 -"access_logistic_requirement_user","logistic.requirement.user","model_logistic_requirement","group_user",1,1,1,1 -"access_logistic_requirement_view","logistic.requirement.view","model_logistic_requirement","group_view",1,1,1,1 -"access_fleet_vehicle_manager","fleet.vehicle.manager","model_fleet_vehicle","group_manager",1,1,1,1 -"access_fleet_vehicle_user","fleet.vehicle.user","model_fleet_vehicle","group_user",1,1,1,1 -"access_fleet_vehicle_view","fleet.vehicle.view","model_fleet_vehicle","group_view",1,1,1,1 -"access_logistic_waybill_driver_payment_manager","logistic.waybill_driver_payment.manager","model_logistic_waybill_driver_payment","group_manager",1,1,1,1 -"access_logistic_waybill_driver_payment_user","logistic.waybill_driver_payment.user","model_logistic_waybill_driver_payment","group_user",1,1,1,1 -"access_logistic_waybill_driver_payment_view","logistic.waybill_driver_payment.view","model_logistic_waybill_driver_payment","group_view",1,1,1,1 +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_fleet_vehicle_manager,fleet.vehicle.manager,model_fleet_vehicle,group_manager,1,1,1,1 +access_fleet_vehicle_user,fleet.vehicle.user,model_fleet_vehicle,group_user,1,1,0,0 +access_fleet_vehicle_view,fleet.vehicle.view,model_fleet_vehicle,group_view,1,0,0,0 +access_logistic_location_manager,logistic.location.manager,model_logistic_location,group_manager,1,1,1,1 +access_logistic_location_user,logistic.location.user,model_logistic_location,group_user,1,1,0,0 +access_logistic_location_view,logistic.location.view,model_logistic_location,group_view,1,0,0,0 +access_logistic_requirement_manager,logistic.requirement.manager,model_logistic_requirement,group_manager,1,1,1,1 +access_logistic_requirement_user,logistic.requirement.user,model_logistic_requirement,group_user,1,1,0,0 +access_logistic_requirement_view,logistic.requirement.view,model_logistic_requirement,group_view,1,0,0,0 +access_logistic_travel_manager,logistic.travel.manager,model_logistic_travel,group_manager,1,1,1,1 +access_logistic_travel_user,logistic.travel.user,model_logistic_travel,group_user,1,1,1,1 +access_logistic_travel_view,logistic.travel.view,model_logistic_travel,group_view,1,0,0,0 +access_logistic_waybill_manager,logistic.waybill.manager,model_logistic_waybill,group_manager,1,1,1,1 +access_logistic_waybill_user,logistic.waybill.user,model_logistic_waybill,group_user,1,1,1,1 +access_logistic_waybill_view,logistic.waybill.view,model_logistic_waybill,group_view,1,0,0,0 +access_logistic_waybill_driver_payment_manager,logistic.waybill_driver_payment.manager,model_logistic_waybill_driver_payment,group_manager,1,1,1,1 +access_logistic_waybill_driver_payment_user,logistic.waybill_driver_payment.user,model_logistic_waybill_driver_payment,group_user,1,1,1,1 +access_logistic_waybill_driver_payment_view,logistic.waybill_driver_payment.view,model_logistic_waybill_driver_payment,group_view,1,0,0,0 +access_logistic_waybill_expense_manager,logistic.waybill_expense.manager,model_logistic_waybill_expense,group_manager,1,1,1,1 +access_logistic_waybill_expense_user,logistic.waybill_expense.user,model_logistic_waybill_expense,group_user,1,1,1,1 +access_logistic_waybill_expense_view,logistic.waybill_expense.view,model_logistic_waybill_expense,group_view,1,0,0,0 +access_product_product_manager,product.product.manager,model_product_product,group_manager,1,1,1,1 +access_product_product_user,product.product.user,model_product_product,group_user,1,1,1,1 +access_product_product_view,product.product.view,model_product_product,group_view,1,0,0,0 +access_res_partner_manager,res.partner.manager,model_res_partner,group_manager,1,1,1,1 +access_res_partner_user,res.partner.user,model_res_partner,group_user,1,1,1,1 +access_res_partner_view,res.partner.view,model_res_partner,group_view,1,0,0,0 +fleet_model_fleet_vehicle_model_view,fleet_model_fleet_vehicle_model_view,fleet.model_fleet_vehicle_model,group_view,1,0,0,0 +fleet_model_fleet_vehicle_tag_view,fleet_model_fleet_vehicle_tag_view,fleet.model_fleet_vehicle_tag,group_view,1,0,0,0 +fleet_model_fleet_vehicle_state_view,fleet_model_fleet_vehicle_state_view,fleet.model_fleet_vehicle_state,group_view,1,0,0,0 +fleet_model_fleet_vehicle_fleet_model_brand_view,fleet_model_fleet_vehicle_fleet_model_brand_view,fleet.model_fleet_vehicle_model_brand,group_view,1,0,0,0 +fleet_model_fleet_vehicle_view,fleet_model_fleet_vehicle_view,fleet.model_fleet_vehicle,group_view,1,0,0,0 +fleet_model_fleet_vehicle_user,fleet_model_fleet_vehicle_user,fleet.model_fleet_vehicle,group_user,1,1,0,0 +fleet_model_fleet_vehicle_log_services_view,fleet_model_fleet_vehicle_log_services_view,fleet.model_fleet_vehicle_log_services,group_view,1,0,0,0 +fleet_model_fleet_vehicle_log_contract_view,fleet_model_fleet_vehicle_log_contract_view,fleet.model_fleet_vehicle_log_contract,group_view,1,0,0,0 +fleet_model_fleet_service_type_view,fleet_model_fleet_service_type_view,fleet.model_fleet_service_type,group_view,1,0,0,0 +fleet_model_fleet_vehicle_cost_view,fleet_model_fleet_vehicle_cost_view,fleet.model_fleet_vehicle_cost,group_view,1,0,0,0 +fleet_model_fleet_vehicle_cost_user,fleet_model_fleet_vehicle_cost_user,fleet.model_fleet_vehicle_cost,group_user,1,1,1,0 +fleet_model_fleet_contract_state_view,fleet_model_fleet_contract_state_view,fleet.model_fleet_contract_state,group_view,1,0,0,0 +fleet_model_fleet_vehicle_model_manager,fleet_model_fleet_vehicle_model_manager,fleet.model_fleet_vehicle_model,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_tag_manager,fleet_model_fleet_vehicle_tag_manager,fleet.model_fleet_vehicle_tag,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_state_manager,fleet_model_fleet_vehicle_state_manager,fleet.model_fleet_vehicle_state,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_odometer_user,fleet_model_fleet_vehicle_odometer_user,fleet.model_fleet_vehicle_odometer,group_user,1,1,1,1 +fleet_model_fleet_vehicle_fleet_model_brand_manager,fleet_model_fleet_vehicle_fleet_model_brand_manager,fleet.model_fleet_vehicle_model_brand,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_manager,fleet_model_fleet_vehicle_manager,fleet.model_fleet_vehicle,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_log_fuel_view,fleet_model_fleet_vehicle_log_fuel_view,fleet.model_fleet_vehicle_log_fuel,group_view,1,0,0,0 +fleet_model_fleet_vehicle_log_fuel_user,fleet_model_fleet_vehicle_log_fuel_user,fleet.model_fleet_vehicle_log_fuel,group_user,1,1,1,1 +fleet_model_fleet_vehicle_log_services_manager,fleet_model_fleet_vehicle_log_services_manager,fleet.model_fleet_vehicle_log_services,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_log_contract_manager,fleet_model_fleet_vehicle_log_contract_manager,fleet.model_fleet_vehicle_log_contract,group_manager,1,1,1,1 +fleet_model_fleet_service_type_manager,fleet_model_fleet_service_type_manager,fleet.model_fleet_service_type,group_manager,1,1,1,1 +fleet_model_fleet_vehicle_cost_manager,fleet_model_fleet_vehicle_cost_manager,fleet.model_fleet_vehicle_cost,group_manager,1,1,1,1 +fleet_model_fleet_contract_state_manager,fleet_model_fleet_contract_state_manager,fleet.model_fleet_contract_state,group_manager,1,1,1,1 diff --git a/logistic/security/logistic_group.xml b/logistic/security/logistic_group.xml index 244344f..e54e36e 100644 --- a/logistic/security/logistic_group.xml +++ b/logistic/security/logistic_group.xml @@ -1,54 +1,47 @@ - - - Logistic - Logistic - 1 - - - - View - - - - - User - - - - - - Manager - - - - + + Logistic + Logistic + 1 + + + + View + + + + + User + + + + + + Manager + + + + + + + + + + + + - diff --git a/logistic_x/static/src/css/logistic.css b/logistic/static/src/css/logistic.css similarity index 100% rename from logistic_x/static/src/css/logistic.css rename to logistic/static/src/css/logistic.css diff --git a/logistic_x/static/src/img/light-green.png b/logistic/static/src/img/light-green.png similarity index 100% rename from logistic_x/static/src/img/light-green.png rename to logistic/static/src/img/light-green.png diff --git a/logistic_x/static/src/img/light-red.png b/logistic/static/src/img/light-red.png similarity index 100% rename from logistic_x/static/src/img/light-red.png rename to logistic/static/src/img/light-red.png diff --git a/logistic_x/static/src/img/light-yellow.png b/logistic/static/src/img/light-yellow.png similarity index 100% rename from logistic_x/static/src/img/light-yellow.png rename to logistic/static/src/img/light-yellow.png diff --git a/logistic/travel.py b/logistic/travel.py index 1e6efd6..0d67cdc 100644 --- a/logistic/travel.py +++ b/logistic/travel.py @@ -1,68 +1,421 @@ # -*- coding: utf-8 -*- ############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# +# For copyright and license notices, see __openerp__.py file in module root +# directory ############################################################################## +from openerp import models, fields, api, _ +import time +import datetime +from openerp.exceptions import Warning +from dateutil.relativedelta import relativedelta +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare -import re -from openerp import netsvc -from openerp.osv import osv, fields +class travel(models.Model): -class travel(osv.osv): """""" - _name = 'logistic.travel' _description = 'travel' - _columns = { - 'from_date': fields.datetime(string='From', required=True), - 'location_from_id': fields.many2one('logistic.location', string='Location From', required=True), - 'to_date': fields.datetime(string='To', required=True), - 'location_to_id': fields.many2one('logistic.location', string='Location To', required=True), - 'reference': fields.char(string='Reference'), - 'partner_id': fields.many2one('res.partner', string='Customer', domain=[('customer','=',True)]), - 'product_id': fields.many2one('product.product', string='Product', context={'default_type':'service','default_service_subtype':'travel'}, domain=[('type','=','service'),('service_subtype','=','travel')]), - 'price': fields.float(string='Price'), - 'invoice_line_id': fields.many2one('account.invoice.line', string='Invoice Line', readonly=True), - 'waybill_id': fields.many2one('logistic.waybill', string='Waybill', required=True, ondelete='cascade'), - } + def _fnct_line_ordered(self): + """""" + res = {} + # Por ahora no la usamos + return res + + @api.model + def _get_from_date(self): + waybill_id = self._context.get('waybill_id', False) + from_date = time.strftime('%Y-%m-%d %H:%M:%S') + if waybill_id: + travel_ids = self.search( + [('waybill_id', '=', waybill_id)], order="id desc") + if travel_ids: + from_date = travel_ids[0].to_date + return from_date + + def name_get(self, cr, uid, ids, context=None): + # always return the full hierarchical name + res = self._complete_name( + cr, uid, ids, 'complete_name', None, context=context) + return res.items() - _defaults = { - 'from_date': fields.datetime.now, - } + def _complete_name(self, cr, uid, ids, name, args, context=None): + """ Forms complete name of location from parent location to child location. + @return: Dictionary of values + """ + res = {} + for line in self.browse(cr, uid, ids): + name = line.waybill_id.name or '' + ': ' + name += line.location_from_id.name + name += ' - ' + line.location_to_id.name + res[line.id] = name + return res + def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100): + if not args: + args = [] + ids = set() + if name: + ids.update(self.search(cr, user, args + [('location_from_id.name', operator, name)], limit=( + limit and (limit - len(ids)) or False), context=context)) + if not limit or len(ids) < limit: + ids.update(self.search( + cr, user, args + [('location_to_id.name', operator, name)], limit=limit, context=context)) + if not limit or len(ids) < limit: + ids.update(self.search( + cr, user, args + [('waybill_id.name', operator, name)], limit=limit, context=context)) + ids = list(ids) + else: + ids = self.search(cr, user, args, limit=limit, context=context) + result = self.name_get(cr, user, ids, context=context) + return result - _constraints = [ - ] + @api.one + @api.constrains('to_date', 'from_date') + def _check_dates(self): + if self.to_date and self.from_date: + if self.from_date > self.to_date: + raise Warning( + _('Error! From date must be lower then to date.')) + from_date = fields.Datetime( + string='From', required=True, default=_get_from_date) + location_from_id = fields.Many2one( + 'logistic.location', string='Location From', required=True) + to_date = fields.Datetime(string='To', required=True) + location_to_id = fields.Many2one( + 'logistic.location', string='Location To', required=True) + reference = fields.Char(string='Reference') + partner_id = fields.Many2one( + 'res.partner', string='Customer', domain=[('customer', '=', True)]) + product_id = fields.Many2one( + 'product.product', + string='Product', + context={'default_type': 'service', + 'default_service_subtype': 'travel'}, + domain=[('type', '=', 'service'), ('service_subtype', '=', 'travel')]) + price = fields.Float(string='Price') + invoice_line_id = fields.Many2one( + 'account.invoice.line', string='Invoice Line', readonly=True) + waybill_id = fields.Many2one( + 'logistic.waybill', + string='Waybill', required=True, ondelete='cascade') + tractor_id = fields.Many2one( + 'fleet.vehicle', + related='waybill_id.tractor_id', + string='Tractor', readonly=True, store=True) + ordered = fields.Boolean( + compute='_fnct_line_ordered', + arg=None, + fnct_inv_arg=None, obj=None, string='Ordered?', readonly=True) + driver_id = fields.Many2one( + 'res.partner', + related='waybill_id.driver_id', + string='Driver', + domain=[('is_driver', '=', True)], readonly=True, store=True) + invoice_id = fields.Many2one( + 'account.invoice', + related='invoice_line_id.invoice_id', + string=_('Invoice'), + readonly=True + ) def on_change_location(self, cr, uid, ids, location_from_id, location_to_id, context=None): - """""" - raise NotImplementedError + v = {} + product_id = False + if location_from_id and location_to_id: + domain = [('type', '=', 'service'), ('service_subtype', '=', 'travel'), ( + 'location_from_id', '=', location_from_id), ('location_to_id', '=', location_to_id)] + # domain = [('type','=','service'),('service_subtype','=','travel'), + # '&',('location_from_id','=',location_from_id),('location_to_id','=',location_to_id), + # '&',('location_to_id','=',location_from_id),('location_from_id','=',location_to_id)] + product_ids = self.pool.get('product.product').search( + cr, uid, domain, context=context) + if product_ids: + product_id = product_ids[0] + v['product_id'] = product_id + return {'value': v} + + def on_change_from_date(self, cr, uid, ids, from_date, context=None): + v = {} + if from_date: + from_date = (datetime.datetime.strptime(from_date, DEFAULT_SERVER_DATETIME_FORMAT) + + relativedelta(days=1)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) + v['to_date'] = from_date + else: + v['to_date'] = False + return {'value': v} - def on_change_product(self, cr, uid, ids, product_id, partner_id, context=None): + @api.onchange('product_id', 'partner_id') + def on_change_product(self): """""" - raise NotImplementedError + price = False + if self.product_id: + self.location_from_id = self.product_id.location_from_id.id + self.location_to_id = self.product_id.location_to_id.id + if self.product_id and self.partner_id: + if not self.partner_id.property_product_pricelist: + pricelist_id = self.partner_id.property_product_pricelist + else: + pricelist_ids = self.env['product.pricelist'].search( + [('type', '=', 'sale')]) + if pricelist_ids: + pricelist_id = pricelist_ids[0] + else: + raise Warning( + _('Error!'), _('There is no sale pricelist!')) + date_order = time.strftime(DEFAULT_SERVER_DATE_FORMAT) + price = pricelist_id.price_get( + self.product_id.id, 1.0, self.partner_id.id, context={ + 'uom': self.product_id.uos_id, + 'date': date_order, + })[pricelist_id.id] + self.price = price + + def action_invoice_create(self, cr, uid, ids, grouped=False, date_invoice=False, context=None): + invoice_ids = [] + partner_currency = {} + + if context is None: + context = {} + # If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the + # last day of the last month as invoice date + if date_invoice: + context['date_invoice'] = date_invoice + + for o in self.browse(cr, uid, ids, context=context): + pricelist = self.get_pricelist( + cr, uid, o.partner_id, context=context) + currency_id = pricelist.currency_id.id + if not o.partner_id or not o.product_id: + raise Warning( + _('Warning!'), _('To create invoice travels must have partner and product')) + if (o.partner_id.id in partner_currency) and (partner_currency[o.partner_id.id] <> currency_id): + raise Warning( + _('Error!'), + _('You cannot group travels having different currencies for the same partner.')) + + partner_currency[o.partner_id.id] = currency_id + if grouped: + for partner_id in partner_currency: + travel_ids = self.search( + cr, uid, [('id', 'in', ids), ('partner_id', '=', partner_id)], context=context) + invoice_ids.append( + self._invoice_create(cr, uid, travel_ids, context=context)) + else: + for travel_id in ids: + invoice_ids.append( + self._invoice_create(cr, uid, [travel_id], context=context)) + return invoice_ids + + def _invoice_create(self, cr, uid, ids, context=None): + inv_obj = self.pool.get('account.invoice') + if context is None: + context = {} + # TODO + # self.check_travel_one_partner + # Just to make clear that all ids should be from the same partner + partner_travel_ids = ids + invoice_line_ids = self.invoice_line_create( + cr, uid, partner_travel_ids, context=context) + + invoice_vals = self._prepare_invoice( + cr, uid, partner_travel_ids, invoice_line_ids, context=context) + inv_id = inv_obj.create(cr, uid, invoice_vals, context=context) + data = inv_obj.onchange_payment_term_date_invoice(cr, uid, [inv_id], invoice_vals[ + 'payment_term'], time.strftime(DEFAULT_SERVER_DATE_FORMAT)) + if data.get('value', False): + inv_obj.write(cr, uid, [inv_id], data['value'], context=context) + inv_obj.button_compute(cr, uid, [inv_id]) + return inv_id + + def get_pricelist(self, cr, uid, partner, context=None): + if partner.property_product_pricelist: + return partner.property_product_pricelist + else: + pricelist_ids = self.pool['product.pricelist'].search( + cr, uid, [('type', '=', 'sale')], context=context) + if pricelist_ids: + pricelist_id = pricelist_ids[0] + else: + raise Warning( + _('Error!'), _('Order cannot be created because not sale pricelist exists!')) + return self.pool['product.pricelist'].browse(cr, uid, pricelist_id, context=context) + + def invoice_line_create(self, cr, uid, ids, context=None): + if context is None: + context = {} + create_ids = [] + if context.get('grouped_line'): + product_ids = [x.product_id.id for x in self.browse( + cr, uid, ids, context=context) if x.product_id] + for product_id in list(set(product_ids)): + travel_ids = self.search( + cr, uid, [('id', 'in', ids), ('product_id', '=', product_id)], context=context) + travels = self.browse(cr, uid, travel_ids, context=context) + vals = self._prepare_order_line_invoice_line( + cr, uid, travels, context=context) + if vals: + inv_line_id = self.pool.get('account.invoice.line').create( + cr, uid, vals, context=context) + self.write( + cr, uid, travel_ids, {'invoice_line_id': inv_line_id}, context=context) + create_ids.append(inv_line_id) + else: + for travel in self.browse(cr, uid, ids, context=context): + vals = self._prepare_order_line_invoice_line( + cr, uid, travel, context=context) + if vals: + inv_line_id = self.pool.get('account.invoice.line').create( + cr, uid, vals, context=context) + self.write( + cr, uid, [travel.id], {'invoice_line_id': inv_line_id}, context=context) + create_ids.append(inv_line_id) + return create_ids + + def _prepare_order_line_invoice_line(self, cr, uid, travel, context=None): + """Prepare the dict of values to create the new invoice line for a + sales order line. This method may be overridden to implement custom + invoice generation (making sure to call super() to establish + a clean extension chain). + + :param browse_record line: sale.order.line record to invoice + :param int account_id: optional ID of a G/L account to force + (this is used for returning products including service) + :return: dict of values to create() the invoice line + """ + res = {} + if context.get('grouped_line'): + if not travel[0].invoice_line_id: + if travel[0].product_id: + account_id = travel[ + 0].product_id.property_account_income.id + if not account_id: + account_id = travel[ + 0].product_id.categ_id.property_account_income_categ.id + if not account_id: + raise Warning(_('Error!'), + _('Please define income account for this product: "%s" (id:%d).') % + (travel.product_id.name, travel.product_id.id,)) + fpos = travel[0].partner_id.property_account_position.id or False + account_id = self.pool.get('account.fiscal.position').map_account( + cr, uid, fpos, account_id) + tax_ids = self.pool.get('account.fiscal.position').map_tax( + cr, uid, fpos, travel[0].product_id.taxes_id) + name = travel[0].product_id.name + name += ', Hoja de Ruta: ' + name += ", ".join( + [x.waybill_id.reference for x in travel if x.waybill_id.reference]) + refs = [x.reference for x in travel if x.reference] + name += refs and ". Refs: " + ", ".join(refs) or "" + pu = 0.0 + for travel_id in travel: + uosqty = 1.0 + if uosqty: + pu = pu + round(travel_id.price, + self.pool.get('decimal.precision').precision_get(cr, uid, 'Product Price')) + if not account_id: + raise Warning(_('Error!'), + _('There is no Fiscal Position defined or Income category account defined for default properties of Product categories.')) + res = { + 'name': name, + 'account_id': account_id, + 'price_unit': pu, + 'quantity': uosqty, + 'uos_id': travel[0].product_id and travel[0].product_id.uom_id.id or False, + 'product_id': travel[0].product_id.id or False, + 'invoice_line_tax_id': [(6, 0, tax_ids)], + } + + else: + if not travel.invoice_line_id: + if travel.product_id: + account_id = travel.product_id.property_account_income.id + if not account_id: + account_id = travel.product_id.categ_id.property_account_income_categ.id + if not account_id: + raise Warning(_('Error!'), + _('Please define income account for this product: "%s" (id:%d).') % + (travel.product_id.name, travel.product_id.id,)) + uosqty = self._get_line_qty(cr, uid, travel, context=context) + uos_id = self._get_line_uom(cr, uid, travel, context=context) + pu = 0.0 + if uosqty: + pu = round(travel.price, + self.pool.get('decimal.precision').precision_get(cr, uid, 'Product Price')) + fpos = travel.partner_id.property_account_position.id or False + account_id = self.pool.get('account.fiscal.position').map_account( + cr, uid, fpos, account_id) + if not account_id: + raise Warning(_('Error!'), + _('There is no Fiscal Position defined or Income category account defined for default properties of Product categories.')) + tax_ids = self.pool.get('account.fiscal.position').map_tax( + cr, uid, fpos, travel.product_id.taxes_id) + name = travel.product_id.name + name += ', Hoja de Ruta: ' + name += travel.waybill_id.reference or '' + name += travel.reference and '. Refs: ' + \ + travel.reference or '' + res = { + 'name': name, + 'account_id': account_id, + 'price_unit': pu, + 'quantity': uosqty, + # 'discount': line.discount, + 'uos_id': uos_id, + 'product_id': travel.product_id.id or False, + 'invoice_line_tax_id': [(6, 0, tax_ids)], + } + + return res + + def _get_line_qty(self, cr, uid, travel, context=None): + return 1.0 + def _get_line_uom(self, cr, uid, travel, context=None): + return travel.product_id and travel.product_id.uom_id.id or False -travel() + def _prepare_invoice(self, cr, uid, partner_travel_ids, lines, context=None): + """Prepare the dict of values to create the new invoice for a + sales order. This method may be overridden to implement custom + invoice generation (making sure to call super() to establish + a clean extension chain). -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + :param browse_record order: sale.order record to invoice + :param list(int) line: list of invoice line IDs that must be + attached to the invoice + :return: dict of value to create() the invoice + """ + travel = self.browse(cr, uid, partner_travel_ids[0], context=context) + partner = travel.partner_id + waybill = self.browse( + cr, uid, partner_travel_ids[0], context=context).waybill_id + company = waybill.company_id + if context is None: + context = {} + journal_ids = self.pool.get('account.journal').search(cr, uid, + [('type', '=', 'sale'), + ('company_id', '=', company.id)], + limit=1) + if not journal_ids: + raise Warning(_('Error!'), + _('Please define sales journal for this company: "%s" (id:%d).') % (company.name, company.id)) + # Don know why but it does not take the translation + # origin = _('Waybill') + origin = _('Hoja de Ruta') + invoice_vals = { + 'origin': origin, + 'type': 'out_invoice', + 'account_id': partner.property_account_receivable.id, + 'partner_id': partner.id, + 'journal_id': journal_ids[0], + 'invoice_line': [(6, 0, lines)], + 'currency_id': self.get_pricelist(cr, uid, partner, context=context).currency_id.id, + 'payment_term': partner.property_payment_term and partner.property_payment_term.id or False, + 'fiscal_position': partner.property_account_position and partner.property_account_position.id or False, + 'date_invoice': context.get('date_invoice', False), + 'company_id': company.id, + } + return invoice_vals diff --git a/logistic/vehicle.py b/logistic/vehicle.py index 3049699..033d142 100644 --- a/logistic/vehicle.py +++ b/logistic/vehicle.py @@ -1,57 +1,66 @@ # -*- coding: utf-8 -*- ############################################################################## -# -# Logistic -# Copyright (C) 2014 No author. -# No email -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# +# For copyright and license notices, see __openerp__.py file in module root +# directory ############################################################################## +from openerp import models, fields, api -import re -from openerp import netsvc -from openerp.osv import osv, fields -class vehicle(osv.osv): - """""" - - _name = 'fleet.vehicle' - _inherits = { } - _inherit = [ 'fleet.vehicle' ] - - _columns = { - 'type': fields.selection([(u'car', u'Car'), (u'tractor', u'Tractor'), (u'wagon', u'Wagon')], string='Type'), - 'wagon_id': fields.many2one('fleet.vehicle', string='Wagon', context={'default_type':'wagon'}, domain=[('type','=','wagon')]), - 'driver_id': fields.many2one('res.partner', string='Driver', context={'default_is_driver':True}, domain=[('is_driver','=',True)]), - 'default_validity': fields.integer(string='default_validity'), - 'default_kilometers': fields.integer(string='default_kilometers'), - 'year': fields.integer(string='Year'), - 'motor_sn': fields.char(string='Motor Number'), - } - - _defaults = { - } - - - _constraints = [ - ] +class vehicle(models.Model): + """""" + _inherit = 'fleet.vehicle' + _requirement_states = [ + # State machine: requirement_basic + ('ok', 'OK'), + ('next_to_renew', 'Next To Renew'), + ('need_renew', 'Need Renew'), + ] -vehicle() + @api.one + def _get_requirement_state(self): + self.requirement_state = 'ok' + if self.env['logistic.requirement'].search( + [('vehicle_id', '=', self.id), ('state', '=', 'need_renew')]): + self.requirement_state = 'need_renew' + elif self.env['logistic.requirement'].search( + [('vehicle_id', '=', self.id), ('state', '=', 'next_to_renew')]): + self.requirement_state = 'next_to_renew' -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + type = fields.Selection( + [('car', 'Car'), ('tractor', 'Tractor'), ('wagon', 'Wagon')], + string='Type') + wagon_id = fields.Many2one( + 'fleet.vehicle', + string='Wagon', + context={'default_type': 'wagon'}, domain=[('type', '=', 'wagon')]) + driver_id = fields.Many2one( + 'res.partner', + string='Driver', + context={'default_is_driver': True}, domain=[('is_driver', '=', True)]) + default_validity = fields.Integer(string='default_validity') + default_kilometers = fields.Integer(string='default_kilometers') + year = fields.Integer(string='Year') + motor_sn = fields.Char(string='Motor Number') + length = fields.Float(string='Length (mts)') + width = fields.Float(string='Width (mts)') + capacity = fields.Integer('Capacity (pallets)') + name = fields.Char('Name', required=True) + maintenance_ids = fields.One2many( + 'logistic.requirement', 'vehicle_id', + context={'default_type': 'maintenance'}, + domain=[('type', '=', 'maintenance'), + ('state', 'not in', ['renewed', 'cancelled'])], + string='Maintenances',) + document_ids = fields.One2many( + 'logistic.requirement', 'vehicle_id', + context={'default_type': 'document'}, + domain=[('type', '=', 'document'), + ('state', 'not in', ['renewed', 'cancelled'])], + string='Documents',) + requirement_state = fields.Selection( + selection=_requirement_states, + string="Requirements State", compute='_get_requirement_state') diff --git a/logistic_x/view/document_view.xml b/logistic/view/document_view.xml similarity index 100% rename from logistic_x/view/document_view.xml rename to logistic/view/document_view.xml diff --git a/logistic_x/view/fleet_view.xml b/logistic/view/fleet_view.xml similarity index 86% rename from logistic_x/view/fleet_view.xml rename to logistic/view/fleet_view.xml index e2d821c..5e59071 100644 --- a/logistic_x/view/fleet_view.xml +++ b/logistic/view/fleet_view.xml @@ -1,26 +1,10 @@ - - - - - - - - - - - - kanban,tree,form - - - - fleet.vehicle.search @@ -76,7 +60,7 @@ tree,form - {'default_type':'maintenance','related_model':'fleet.vehicle'} + {'default_type':'maintenance','related_model':'fleet.vehicle','search_default_active':1} [('type', '=', 'maintenance')] @@ -181,7 +160,7 @@ tree,form - {'default_type':'document','related_model':'res.partner'} + {'default_type':'document','related_model':'res.partner','search_default_active':1} [('type', '=', 'document'),('partner_id','!=',False)] @@ -198,8 +177,8 @@ Products product.product form - tree,form - + kanban,tree,form + [] @@ -221,6 +200,7 @@ [] + {'search_default_to_invoice':1,'search_default_group_by_date':1} Travels Calendar logistic.travel form - tree,form - + calendar,tree,form + [] @@ -258,7 +238,7 @@ tree,form - {'default_type':'document','related_model':'fleet.vehicle'} + {'default_type':'document','related_model':'fleet.vehicle','search_default_active':1} [('type', '=', 'document'),('vehicle_id','!=',False)] @@ -275,8 +255,8 @@ Vehicles fleet.vehicle form - tree,form - + kanban,tree,form + [] @@ -298,6 +278,7 @@ [] + {'search_default_active':True} + + + + + + + + + - diff --git a/logistic/view/partner_view.xml b/logistic/view/partner_view.xml index 2d2e9cb..8928432 100644 --- a/logistic/view/partner_view.xml +++ b/logistic/view/partner_view.xml @@ -1,34 +1,9 @@ - - - - - + logistic.partner.select res.partner @@ -39,20 +14,28 @@ - + logistic.partner.form res.partner - - - + + + + - + logistic.partner.tree res.partner @@ -65,5 +48,3 @@ - diff --git a/logistic/view/product_view.xml b/logistic/view/product_view.xml index 542c0db..19ae709 100644 --- a/logistic/view/product_view.xml +++ b/logistic/view/product_view.xml @@ -1,56 +1,52 @@ - - - - + logistic.product.select product.product - - + + + + + + + + - + logistic.product.form product.product - - + + + + + + + + + + + + - + diff --git a/logistic_x/view/purchase_order.xml b/logistic/view/purchase_order.xml similarity index 66% rename from logistic_x/view/purchase_order.xml rename to logistic/view/purchase_order.xml index d958bd5..3057a08 100644 --- a/logistic_x/view/purchase_order.xml +++ b/logistic/view/purchase_order.xml @@ -7,15 +7,12 @@ purchase.order - - - - - + + + - diff --git a/logistic/view/requirement_view.xml b/logistic/view/requirement_view.xml index 4e2fefa..5f8b6c1 100644 --- a/logistic/view/requirement_view.xml +++ b/logistic/view/requirement_view.xml @@ -1,57 +1,23 @@ - - - - - logistic.requirement.select logistic.requirement - + - - - - - - - + - + + + + + + - + @@ -150,13 +116,11 @@ - - - + + + + + @@ -176,7 +140,7 @@ - diff --git a/logistic/view/travel_view.xml b/logistic/view/travel_view.xml index 1ffad42..fe9c7f8 100644 --- a/logistic/view/travel_view.xml +++ b/logistic/view/travel_view.xml @@ -1,99 +1,92 @@ - - - - + + + logistic.travel.calendar + logistic.travel + + + + + + + + + + + logistic.travel.select logistic.travel - + + + - - - - - - - + + + + + + + + + + + + + + + + + + logistic.travel.form logistic.travel -
+
+
- - - - - - - - - - + + + + + + + + + + + -
@@ -104,33 +97,21 @@ logistic.travel.tree logistic.travel - - - - - - - - - - - + + + + + + + + + + + +
- diff --git a/logistic/view/vehicle_view.xml b/logistic/view/vehicle_view.xml deleted file mode 100644 index c40a2a8..0000000 --- a/logistic/view/vehicle_view.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - logistic.vehicle.select - fleet.vehicle - - - - - - - - - - logistic.vehicle.form - fleet.vehicle - - - - - - - - - - logistic.vehicle.tree - fleet.vehicle - - - - - - - - - - - diff --git a/logistic/view/waybill_driver_payment_view.xml b/logistic/view/waybill_driver_payment_view.xml index 893a12b..b08b6f7 100644 --- a/logistic/view/waybill_driver_payment_view.xml +++ b/logistic/view/waybill_driver_payment_view.xml @@ -1,29 +1,4 @@ - - - - @@ -32,7 +7,7 @@ logistic.waybill_driver_payment.select logistic.waybill_driver_payment - + @@ -47,12 +22,14 @@ + + logistic.waybill_driver_payment.form logistic.waybill_driver_payment -
+
- - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +