From 995168186474224cb7c3ef2bd2b4029aa334334d Mon Sep 17 00:00:00 2001
From: Tu Nombre CodigoAlmacen: this will fill Warehouse"
+msgstr "CodigoAlmacen: esto rellenará el Almacén"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "CodigoProducto: this will fill Product"
+msgstr "CodigoProducto: esto rellenará el Producto"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "CodigoProveedor: this will fill Supplier"
+msgstr "CodigoProveedor: esto rellenará el Proveedor"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Descuento: this will fill Discount"
+msgstr "Descuento: esto rellenará el Descuento"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Entrada: this will fill Partner Ref"
+msgstr ""
+"Entrada: esto rellenará la Referencia de proveedor"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Estado: this will fill State"
+msgstr "Estado: esto rellenará el Estado"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "FechaConfirmada: this will fill Date Confirm"
+msgstr ""
+"FechaConfirmada: esto rellenará la Fecha Confirmación"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "FechaCreada: this will fill Date Order"
+msgstr ""
+"FechaCreada: esto rellenará la Fecha límite de pedido"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "KgNeto: this will fill Quantity Received"
+msgstr "KgNeto: esto rellenará la Cantiad recivida"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "KgProveedor: this will fill Product Quantity"
+msgstr "KgProveedor: esto rellenará la Cantidad"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "NombreProducto: this will fill Product"
+msgstr "NombreProducto: esto rellenará el Producto"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "NombreProveedor: this will fill Supplier"
+msgstr "NombreProveedor: esto rellenará el Proveedor"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "PrecioUnitario: this will fill Price Unit"
+msgstr "PrecioUnitario: esto rellenará el Precio unitario"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__action
+msgid "Action"
+msgstr "Acción"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_needaction
+msgid "Action Needed"
+msgstr "Acción requerida"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_ids
+msgid "Activities"
+msgstr "Actividades"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_exception_decoration
+msgid "Activity Exception Decoration"
+msgstr "Actividad decoración de excepción"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_state
+msgid "Activity State"
+msgstr "Estado de la actividad"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_type_icon
+msgid "Activity Type Icon"
+msgstr "Icono de tipo de actividad"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_attachment_count
+msgid "Attachment Count"
+msgstr "Recuento de anexos"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__company_id
+msgid "Company"
+msgstr "Compañía"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields.selection,name:purchase_import_wizard.selection__purchase_order_import_line__action__create
+msgid "Create"
+msgstr "Creart"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_create_date
+msgid "CreateDate"
+msgstr "Fecha creada"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__create_uid
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__create_uid
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__create_date
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__create_date
+msgid "Created on"
+msgstr "Creado el"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_date_confirm
+msgid "DateConfirm"
+msgstr "Fecha de confirmación"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_discount
+msgid "Discount"
+msgstr "Descuento"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__display_name
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__display_name
+msgid "Display Name"
+msgstr "Nombre mostrado"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Done"
+msgstr "Hecho"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Error"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Error Log"
+msgstr "Registro de errores"
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one picking type with warehouse {} found."
+msgstr ""
+"Error: Se ha encontrado más de un tipo de operación encontradi con almacén "
+"{}."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one product with the same name or code found."
+msgstr "Error: Más de un producto encontrado."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one supplier found."
+msgstr "Error: Más de un proveedor encontrado."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one warehouse with name {} found."
+msgstr "Error: Más de un almacén encontrado con el nombre {}."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No picking type found."
+msgstr "Error: No se ha encontrado el tipo de operación."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No product found."
+msgstr "Error: No se ha encontrado el producto."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No supplier found."
+msgstr "Error: No se ha encontrado el proveedor."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No warehouse found."
+msgstr "Error: No se ha encontrado el almacén."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: Previously uploaded order."
+msgstr "Error: Pedido previamente cargado."
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid ""
+"Error: There is another line with the same origin document with some errors."
+msgstr ""
+"Error: Hay otra línea con el mismo documento de origen con algunos errores."
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Errored"
+msgstr "Error en"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__data
+msgid "File"
+msgstr "Archivo"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__filename
+msgid "Filename"
+msgstr "Nombre del archivo"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_follower_ids
+msgid "Followers"
+msgstr "Seguidores"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_channel_ids
+msgid "Followers (Channels)"
+msgstr "Seguidores (canales)"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_partner_ids
+msgid "Followers (Partners)"
+msgstr "Seguidores (contactos)"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_type_icon
+msgid "Font awesome icon e.g. fa-tasks"
+msgstr "Icono de la fuente, por ejemplo, fa-tasks"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Group By"
+msgstr "Agrupar por"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Help"
+msgstr "Ayuda"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Help with Excel column names"
+msgstr "Ayuda con los nombres de las columnas de Excel"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__id
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__id
+msgid "ID"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_exception_icon
+msgid "Icon"
+msgstr "Icono"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_exception_icon
+msgid "Icon to indicate an exception activity."
+msgstr "Icono para indicar una actividad de excepción."
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_needaction
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_unread
+msgid "If checked, new messages require your attention."
+msgstr "Si está marcada, los nuevos mensajes requieren su atención."
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_has_error
+msgid "If checked, some messages have a delivery error."
+msgstr "Si está marcada, algunos mensajes tienen un error de entrega."
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Import"
+msgstr "Importar"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__file_date
+msgid "Import Date"
+msgstr "Fecha de importación"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Import Lines"
+msgstr "Líneas importadas"
+
+#. module: purchase_import_wizard
+#: model:ir.actions.act_window,name:purchase_import_wizard.purchase_order_import_line_action
+msgid "Import Purchase Order Lines"
+msgstr "Líneas de pedido de compra importadas"
+
+#. module: purchase_import_wizard
+#: model:ir.actions.act_window,name:purchase_import_wizard.purchase_order_import_action
+#: model:ir.ui.menu,name:purchase_import_wizard.purchase_order_import_menu
+msgid "Import Purchase Orders"
+msgstr "Importar pedidos de compra"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__import_id
+msgid "Import Wizard"
+msgstr "Asistente de importación"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Imported Lines"
+msgstr "Líneas importadas"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_is_follower
+msgid "Is Follower"
+msgstr "Es seguidor"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import____last_update
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line____last_update
+msgid "Last Modified on"
+msgstr "Última modificación el"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__write_uid
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__write_uid
+msgid "Last Updated by"
+msgstr "Actualizado por"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__write_date
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__write_date
+msgid "Last Updated on"
+msgstr "Actualizado el"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__import_line_ids
+msgid "Lines to Import"
+msgstr "Líneas para importar"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__log_info
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__log_info
+msgid "Log Info"
+msgstr "Información de registro"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_main_attachment_id
+msgid "Main Attachment"
+msgstr "Adjunto principal"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_has_error
+msgid "Message Delivery error"
+msgstr "Error en la entrega del mensaje"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_ids
+msgid "Messages"
+msgstr "Mensajes"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__my_activity_date_deadline
+msgid "My Activity Deadline"
+msgstr "Mi plazo de actividad"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__name
+msgid "Name"
+msgstr "Nombre"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_date_deadline
+msgid "Next Activity Deadline"
+msgstr "Plazo de la próxima actividad"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_summary
+msgid "Next Activity Summary"
+msgstr "Resumen de la siguiente actividad"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_type_id
+msgid "Next Activity Type"
+msgstr "Siguiente tipo de actividad"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields.selection,name:purchase_import_wizard.selection__purchase_order_import_line__action__nothing
+msgid "Nothing"
+msgstr "Nada"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_needaction_counter
+msgid "Number of Actions"
+msgstr "Número de acciones"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_has_error_counter
+msgid "Number of errors"
+msgstr "Número de errores"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_needaction_counter
+msgid "Number of messages which requires an action"
+msgstr "Número de mensajes que requieren una acción"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_has_error_counter
+msgid "Number of messages with delivery error"
+msgstr "Número de mensajes con error de entrega"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_unread_counter
+msgid "Number of unread messages"
+msgstr "Número de mensajes no leídos"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_ordered_qty
+msgid "Ordered Qty"
+msgstr "Cantidad pedida"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_origin
+msgid "Origin"
+msgstr "Origen"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Pending"
+msgstr "Pendiente"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_picking_type_id
+msgid "Picking Type"
+msgstr "Tipo de operación"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_price_unit
+msgid "Price Unit"
+msgstr "Precio unitario"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_form
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Process"
+msgstr "Procesar"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_product_id
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Product"
+msgstr "Producto"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_product_code
+msgid "Product Code"
+msgstr "Código producto"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_product_name
+msgid "Product Name"
+msgstr "Nombre producto"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_order_id
+msgid "Purchase Order"
+msgstr "Pedido"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_qty_done
+msgid "Qty Done"
+msgstr "Cantidad hecha"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_user_id
+msgid "Responsible User"
+msgstr "Usuario responsable"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_state
+msgid "State"
+msgstr "Estado"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__state
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__state
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Status"
+msgstr "Estado"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_state
+msgid ""
+"Status based on activities\n"
+"Overdue: Due date is already passed\n"
+"Today: Activity date is today\n"
+"Planned: Future activities."
+msgstr ""
+"Estado basado en actividades\n"
+"Atrasado: La fecha de vencimiento ya ha pasado\n"
+"Hoy: La fecha de la actividad es hoy\n"
+"Planificado: Actividades futuras"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_supplier_id
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Supplier"
+msgstr "Proveedor"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_supplier_code
+msgid "Supplier Code"
+msgstr "Código proveedor"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_supplier_name
+msgid "Supplier Name"
+msgstr "Nombre proveedor"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "To Create"
+msgstr "Para crear"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_exception_decoration
+msgid "Type of the exception activity on record."
+msgstr "Tipo de la actividad de excepción registrada."
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_unread
+msgid "Unread Messages"
+msgstr "Mensajes no leídos"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_unread_counter
+msgid "Unread Messages Counter"
+msgstr "Contador de mensajes no leídos"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_form
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Validate"
+msgstr "Validar"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__warehouse_id
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_warehouse
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_warehouse_id
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Warehouse"
+msgstr "Almacén"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__website_message_ids
+msgid "Website Messages"
+msgstr "Mensajes del sitio web"
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__website_message_ids
+msgid "Website communication history"
+msgstr "Historia de la comunicación en la web"
+
+#. module: purchase_import_wizard
+#: model:ir.model,name:purchase_import_wizard.model_purchase_order_import_line
+msgid "Wizard lines to import purchase orders"
+msgstr "Líneas del asistente para la importación de pedidos de compra"
+
+#. module: purchase_import_wizard
+#: model:ir.model,name:purchase_import_wizard.model_purchase_order_import
+msgid "Wizard to import purchase orders"
+msgstr "Asistente para la importación de pedidos de compra"
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "You must use this column names in order to fill the table:"
+msgstr "Debe utilizar estos nombres de columna para rellenar la tabla:"
diff --git a/purchase_import_wizard/i18n/purchase_import_wizard.pot b/purchase_import_wizard/i18n/purchase_import_wizard.pot
new file mode 100644
index 0000000000..b6e4e7eb2c
--- /dev/null
+++ b/purchase_import_wizard/i18n/purchase_import_wizard.pot
@@ -0,0 +1,617 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_import_wizard
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-03-23 08:30+0000\n"
+"PO-Revision-Date: 2023-03-23 08:30+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: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__purchase_order_count
+msgid "# Purchase Orders"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "CodigoAlmacen: this will fill Warehouse"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "CodigoProducto: this will fill Product"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "CodigoProveedor: this will fill Supplier"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Descuento: this will fill Discount"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Entrada: this will fill Partner Ref"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Estado: this will fill State"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "FechaConfirmada: this will fill Date Confirm"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "FechaCreada: this will fill Date Order"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "KgNeto: this will fill Quantity Received"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "KgProveedor: this will fill Product Quantity"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "NombreProducto: this will fill Product"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "NombreProveedor: this will fill Supplier"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "PrecioUnitario: this will fill Price Unit"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__action
+msgid "Action"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_needaction
+msgid "Action Needed"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_ids
+msgid "Activities"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_exception_decoration
+msgid "Activity Exception Decoration"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_state
+msgid "Activity State"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_type_icon
+msgid "Activity Type Icon"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_attachment_count
+msgid "Attachment Count"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__company_id
+msgid "Company"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields.selection,name:purchase_import_wizard.selection__purchase_order_import_line__action__create
+msgid "Create"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_create_date
+msgid "CreateDate"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__create_uid
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__create_date
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_date_confirm
+msgid "DateConfirm"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_discount
+msgid "Discount"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__display_name
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Done"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Error"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Error Log"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one picking type with warehouse {} found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one product with the same name or code found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one supplier found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: More than one warehouse with name {} found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No picking type found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No product found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No supplier found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: No warehouse found."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid "Error: Previously uploaded order."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: code:addons/purchase_import_wizard/models/purchase_order_import.py:0
+#, python-format
+msgid ""
+"Error: There is another line with the same origin document with some errors."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Errored"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__data
+msgid "File"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__filename
+msgid "Filename"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_follower_ids
+msgid "Followers"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_channel_ids
+msgid "Followers (Channels)"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_partner_ids
+msgid "Followers (Partners)"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_type_icon
+msgid "Font awesome icon e.g. fa-tasks"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Group By"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Help"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Help with Excel column names"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__id
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__id
+msgid "ID"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_exception_icon
+msgid "Icon"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_exception_icon
+msgid "Icon to indicate an exception activity."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_needaction
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_unread
+msgid "If checked, new messages require your attention."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_has_error
+msgid "If checked, some messages have a delivery error."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Import"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__file_date
+msgid "Import Date"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Import Lines"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.actions.act_window,name:purchase_import_wizard.purchase_order_import_line_action
+msgid "Import Purchase Order Lines"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.actions.act_window,name:purchase_import_wizard.purchase_order_import_action
+#: model:ir.ui.menu,name:purchase_import_wizard.purchase_order_import_menu
+msgid "Import Purchase Orders"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__import_id
+msgid "Import Wizard"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Imported Lines"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_is_follower
+msgid "Is Follower"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import____last_update
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__write_uid
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__write_date
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__import_line_ids
+msgid "Lines to Import"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__log_info
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__log_info
+msgid "Log Info"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_main_attachment_id
+msgid "Main Attachment"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_has_error
+msgid "Message Delivery error"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_ids
+msgid "Messages"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__my_activity_date_deadline
+msgid "My Activity Deadline"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__name
+msgid "Name"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_date_deadline
+msgid "Next Activity Deadline"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_summary
+msgid "Next Activity Summary"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_type_id
+msgid "Next Activity Type"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields.selection,name:purchase_import_wizard.selection__purchase_order_import_line__action__nothing
+msgid "Nothing"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_needaction_counter
+msgid "Number of Actions"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_has_error_counter
+msgid "Number of errors"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_needaction_counter
+msgid "Number of messages which requires an action"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_has_error_counter
+msgid "Number of messages with delivery error"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__message_unread_counter
+msgid "Number of unread messages"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_ordered_qty
+msgid "Ordered Qty"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_origin
+msgid "Origin"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Pending"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_picking_type_id
+msgid "Picking Type"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_price_unit
+msgid "Price Unit"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_form
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Process"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_product_id
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Product"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_product_code
+msgid "Product Code"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_product_name
+msgid "Product Name"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_order_id
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_qty_done
+msgid "Qty Done"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__activity_user_id
+msgid "Responsible User"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_state
+msgid "State"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__state
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__state
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_search
+msgid "Status"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_state
+msgid ""
+"Status based on activities\n"
+"Overdue: Due date is already passed\n"
+"Today: Activity date is today\n"
+"Planned: Future activities."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_supplier_id
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Supplier"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_supplier_code
+msgid "Supplier Code"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_supplier_name
+msgid "Supplier Name"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "To Create"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__activity_exception_decoration
+msgid "Type of the exception activity on record."
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_unread
+msgid "Unread Messages"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__message_unread_counter
+msgid "Unread Messages Counter"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_form
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "Validate"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__warehouse_id
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_warehouse
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import_line__purchase_warehouse_id
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_line_view_search
+msgid "Warehouse"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,field_description:purchase_import_wizard.field_purchase_order_import__website_message_ids
+msgid "Website Messages"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model.fields,help:purchase_import_wizard.field_purchase_order_import__website_message_ids
+msgid "Website communication history"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model,name:purchase_import_wizard.model_purchase_order_import_line
+msgid "Wizard lines to import purchase orders"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model:ir.model,name:purchase_import_wizard.model_purchase_order_import
+msgid "Wizard to import purchase orders"
+msgstr ""
+
+#. module: purchase_import_wizard
+#: model_terms:ir.ui.view,arch_db:purchase_import_wizard.purchase_order_import_view_form
+msgid "You must use this column names in order to fill the table:"
+msgstr ""
diff --git a/purchase_import_wizard/models/__init__.py b/purchase_import_wizard/models/__init__.py
new file mode 100644
index 0000000000..00c66fca65
--- /dev/null
+++ b/purchase_import_wizard/models/__init__.py
@@ -0,0 +1 @@
+from . import purchase_order_import
diff --git a/purchase_import_wizard/models/purchase_order_import.py b/purchase_import_wizard/models/purchase_order_import.py
new file mode 100644
index 0000000000..ee8f0351fb
--- /dev/null
+++ b/purchase_import_wizard/models/purchase_order_import.py
@@ -0,0 +1,500 @@
+# Copyright 2022 Berezi Amubieta - AvanzOSC
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo import _, api, fields, models
+from odoo.addons.base_import_wizard.models.base_import import convert2str
+from odoo.models import expression
+from odoo.tools.safe_eval import safe_eval
+from datetime import datetime
+import xlrd
+import pytz
+import unicodedata
+
+
+class PurchaseOrderImport(models.Model):
+ _name = "purchase.order.import"
+ _inherit = "base.import"
+ _description = "Wizard to import purchase orders"
+
+ import_line_ids = fields.One2many(
+ comodel_name="purchase.order.import.line",
+ )
+ purchase_order_count = fields.Integer(
+ string="# Purchase Orders",
+ compute="_compute_purchase_order_count",
+ )
+ company_id = fields.Many2one(
+ comodel_name="res.company",
+ string="Company",
+ index=True,
+ )
+ warehouse_id = fields.Many2one(
+ string="Warehouse",
+ comodel_name="stock.warehouse")
+
+ def _get_line_values(self, row_values=False):
+ self.ensure_one()
+ values = super()._get_line_values(row_values=row_values)
+ timezone = pytz.timezone(self._context.get('tz') or 'UTC')
+ if row_values:
+ purchase_supplier_code = row_values.get("codigoproveedor", "")
+ purchase_supplier_name = row_values.get("nombreproveedor", "")
+ purchase_create_date = row_values.get("fechacreada", "")
+ if purchase_create_date:
+ purchase_create_date = purchase_create_date[0:19]
+ purchase_create_date = datetime.strptime(
+ purchase_create_date, "%Y-%m-%d %H:%M:%S")
+ if not purchase_create_date:
+ purchase_create_date = False
+ purchase_date_confirm = row_values.get("fechaconfirmada", "")
+ if purchase_date_confirm:
+ purchase_date_confirm = xlrd.xldate.xldate_as_datetime(
+ purchase_date_confirm, 0)
+ purchase_date_confirm = timezone.localize(
+ purchase_date_confirm).astimezone(pytz.UTC)
+ purchase_date_confirm = purchase_date_confirm.replace(
+ tzinfo=None)
+ if not purchase_date_confirm:
+ purchase_date_confirm = False
+ purchase_origin = row_values.get("entrada", "")
+ purchase_product_code = row_values.get("codigoproducto", "")
+ purchase_product_name = row_values.get("nombreproducto", "")
+ purchase_ordered_qty = row_values.get("kgproveedor", "")
+ purchase_qty_done = row_values.get("kgneto", "")
+ purchase_price_unit = row_values.get("preciounitario", "")
+ purchase_discount = row_values.get("descuento", "")
+ purchase_state = row_values.get("estado", "")
+ purchase_warehouse = row_values.get("codigoalmacen", "")
+ log_info = ""
+ values.update(
+ {
+ "purchase_supplier_code": convert2str(
+ purchase_supplier_code),
+ "purchase_supplier_name": purchase_supplier_name.title(),
+ "purchase_create_date": purchase_create_date,
+ "purchase_date_confirm": purchase_date_confirm,
+ "purchase_origin": convert2str(purchase_origin),
+ "purchase_product_code": convert2str(
+ purchase_product_code),
+ "purchase_product_name": convert2str(
+ purchase_product_name),
+ "purchase_ordered_qty": purchase_ordered_qty,
+ "purchase_qty_done": purchase_qty_done,
+ "purchase_price_unit": purchase_price_unit,
+ "purchase_discount": purchase_discount,
+ "purchase_state": convert2str(purchase_state),
+ "purchase_warehouse": convert2str(purchase_warehouse),
+ "log_info": log_info,
+ }
+ )
+ return values
+
+ def _compute_purchase_order_count(self):
+ for record in self:
+ record.purchase_order_count = len(
+ record.mapped("import_line_ids.purchase_order_id"))
+
+ def button_open_purchase_order(self):
+ self.ensure_one()
+ orders = self.mapped("import_line_ids.purchase_order_id")
+ action = self.env.ref("purchase.purchase_form_action")
+ action_dict = action.read()[0] if action else {}
+ domain = expression.AND(
+ [[("id", "in", orders.ids)], safe_eval(action.domain or "[]")])
+ action_dict.update({"domain": domain})
+ return action_dict
+
+
+class PurchaseOrderImportLine(models.Model):
+ _name = "purchase.order.import.line"
+ _inherit = "base.import.line"
+ _description = "Wizard lines to import purchase orders"
+
+ @api.model
+ def _get_selection_purchase_type(self):
+ return self.env["purchase.order"].fields_get(
+ allfields=["type"])["type"]["selection"]
+
+ def default_purchase_type(self):
+ default_dict = self.env["purchase.order"].default_get(["type"])
+ return default_dict.get("type")
+
+ import_id = fields.Many2one(
+ comodel_name="purchase.order.import",
+ )
+ action = fields.Selection(
+ string="Action",
+ selection=[
+ ("create", "Create"),
+ ("nothing", "Nothing"),
+ ],
+ default="nothing",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ required=True,
+ )
+ purchase_order_id = fields.Many2one(
+ string="Purchase Order",
+ comodel_name="purchase.order")
+ purchase_supplier_code = fields.Char(
+ string="Supplier Code",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_supplier_name = fields.Char(
+ string="Supplier Name",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_create_date = fields.Datetime(
+ string="CreateDate",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_date_confirm = fields.Datetime(
+ string="DateConfirm",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_origin = fields.Char(
+ string="Origin",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_product_code = fields.Char(
+ string="Product Code",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_product_name = fields.Char(
+ string="Product Name",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_ordered_qty = fields.Float(
+ string="Ordered Qty",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_qty_done = fields.Float(
+ string="Qty Done",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_price_unit = fields.Float(
+ string="Price Unit",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_discount = fields.Float(
+ string="Discount",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_state = fields.Char(
+ string="State",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_warehouse = fields.Char(
+ string="Warehouse",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_supplier_id = fields.Many2one(
+ string="Supplier",
+ comodel_name="res.partner",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_product_id = fields.Many2one(
+ comodel_name="product.product",
+ string="Product",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_warehouse_id = fields.Many2one(
+ comodel_name="stock.warehouse",
+ string="Warehouse",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+ purchase_picking_type_id = fields.Many2one(
+ comodel_name="stock.picking.type",
+ string="Picking Type",
+ states={"done": [("readonly", True)]},
+ copy=False,
+ )
+
+ def action_validate(self):
+ super().action_validate()
+ line_values = []
+ for line in self.filtered(lambda l: l.state != "done"):
+ log_info = ""
+ origin = picking_type = product = supplier = warehouse = False
+ if line.purchase_origin:
+ origin, log_info = line._check_origin()
+ if log_info:
+ update_values = {
+ "purchase_origin": origin,
+ "log_info": log_info,
+ "state": "error",
+ "action": "nothing",
+ }
+ if not log_info:
+ supplier, log_info_supplier = line._check_supplier()
+ if log_info_supplier:
+ log_info += log_info_supplier
+ product, log_info_product = line._check_product()
+ if log_info_product:
+ log_info += log_info_product
+ warehouse, log_info_warehouse = line._check_warehouse()
+ if log_info_warehouse:
+ log_info += log_info_warehouse
+ if not log_info_warehouse and warehouse:
+ picking_type, log_info_picking_type = (
+ line._check_picking_type(warehouse=warehouse))
+ if log_info_picking_type:
+ log_info += log_info_picking_type
+ state = "error" if log_info else "pass"
+ action = "nothing"
+ if state != "error":
+ action = "create"
+ update_values = {
+ "purchase_origin": origin,
+ "purchase_supplier_id": supplier and supplier.id,
+ "purchase_product_id": product and product.id,
+ "purchase_warehouse_id": warehouse and warehouse.id,
+ "purchase_picking_type_id": (
+ picking_type and picking_type.id),
+ "log_info": log_info,
+ "state": state,
+ "action": action,
+ }
+ line_values.append(
+ (
+ 1,
+ line.id,
+ update_values,
+ )
+ )
+ return line_values
+
+ def action_process(self):
+ super().action_validate()
+ line_values = []
+ origins = []
+ for line in self.filtered(lambda l: l.state not in ("error", "done")):
+ if line.action == "create":
+ if not line.purchase_origin:
+ log_info = ""
+ purchase = line._create_purchase_order()
+ line._create_purchase_order_line(purchase_order=purchase)
+ if line.purchase_origin and (
+ line.purchase_origin) not in (
+ origins):
+ if self.filtered(lambda l: l.purchase_origin == (
+ line.purchase_origin) and (
+ l.state == "error")):
+ log_info = _(
+ "Error: There is another line with the same" +
+ " origin document with some errors.")
+ else:
+ origin, log_info = line._check_origin()
+ if not log_info:
+ origins.append(origin)
+ purchase = line._create_purchase_order()
+ same_origin = self.filtered(
+ lambda l: l.purchase_origin == (
+ line.purchase_origin))
+ for record in same_origin:
+ record._create_purchase_order_line(
+ purchase_order=purchase)
+ if purchase:
+ purchase.button_confirm()
+ purchase.date_approve = line.purchase_date_confirm
+ # pickings = self.env["stock.picking"].search(
+ # [("purchase_id", "=", purchase.id)])
+ # pickings.write({
+ # "scheduled_date": line.purchase_date_confirm,
+ # "origin": line.purchase_origin})
+ # pickings.button_force_done_detailed_operations()
+ # pickings.button_validate()
+ # for orderlines in purchase.order_line:
+ # move = pickings.move_ids_without_package.filtered(
+ # lambda c: c.purchase_line_id == orderlines)
+ # move.write({
+ # "standard_price": orderlines.price_unit,
+ # "amount": (
+ # orderlines.price_unit * move.quantity_done)})
+ # ml = move.move_line_ids
+ # ml.write({
+ # "qty_done": move.purchase_line_id.qty_done,
+ # "standard_price":orderlines.price_unit,
+ # "amount": (
+ # move.purchase_line_id.qty_done) * (
+ # orderlines.price_unit)})
+ else:
+ continue
+ state = "error" if log_info else "done"
+ line.write({
+ "purchase_order_id": purchase.id,
+ "log_info": log_info,
+ "state": state})
+ line_values.append(
+ (
+ 1,
+ line.id,
+ {
+ "purchase_order_id": purchase.id,
+ "log_info": log_info,
+ "state": state,
+ },
+ )
+ )
+ return line_values
+
+ def _check_origin(self):
+ self.ensure_one()
+ purchase_obj = self.env["purchase.order"]
+ search_domain = [("partner_ref", "=", self.purchase_origin)]
+ log_info = ""
+ purchases = purchase_obj.search(search_domain)
+ if purchases:
+ log_info = _("Error: Previously uploaded order.")
+ return self.purchase_origin, log_info
+
+ def _check_supplier(self):
+ self.ensure_one()
+ log_info = ""
+ if self.purchase_supplier_id:
+ return self.purchase_supplier_id, log_info
+ supplier_obj = self.env["res.partner"]
+ if self.purchase_supplier_code and not self.purchase_supplier_name:
+ search_domain = [("ref", "=", self.purchase_supplier_code)]
+ elif self.purchase_supplier_name and not self.purchase_supplier_code:
+ search_domain = [("name", "=ilike", self.purchase_supplier_name)]
+ elif self.purchase_supplier_code and self.purchase_supplier_name:
+ search_domain = [
+ '|', ("name", "=ilike", self.purchase_supplier_name),
+ ("ref", "=", self.purchase_supplier_code)]
+ suppliers = supplier_obj.search(search_domain)
+ if not suppliers:
+ suppliers = False
+ log_info = _("Error: No supplier found.")
+ elif len(suppliers) > 1:
+ if self.purchase_supplier_code and self.purchase_supplier_name:
+ search_domain = [
+ ("name", "=ilike", self.purchase_supplier_name),
+ ("ref", "=", self.purchase_supplier_code)]
+ suppliers = supplier_obj.search(search_domain)
+ if not len(suppliers) == 1:
+ suppliers = False
+ log_info = _("Error: More than one supplier found.")
+ return suppliers and suppliers[:1], log_info
+
+ def _check_product(self):
+ self.ensure_one()
+ log_info = ""
+ if self.purchase_product_id:
+ return self.purchase_product_id, log_info
+ product_obj = self.env["product.product"]
+ if self.purchase_product_name:
+ name = self.purchase_product_name.replace(" ","")
+ name = ''.join((c for c in unicodedata.normalize('NFD',name) if unicodedata.category(c) != 'Mn'))
+ if self.purchase_product_code and not self.purchase_product_name:
+ search_domain = [
+ ("default_code", "=", self.purchase_product_code)]
+ elif self.purchase_product_name and not self.purchase_product_code:
+ search_domain = [("trim_name", "=ilike", name)]
+ elif self.purchase_product_code and self.purchase_product_name:
+ search_domain = [
+ '|', ("trim_name", "=ilike", name),
+ ("default_code", "=", self.purchase_product_code)]
+ products = product_obj.search(search_domain)
+ if not products:
+ products = False
+ log_info = _("Error: No product found.")
+ elif len(products) > 1:
+ if self.purchase_product_code and self.purchase_product_name:
+ search_domain = [
+ ("trim_name", "=ilike", name),
+ ("default_code", "=", self.purchase_product_code)]
+ products = product_obj.search(search_domain)
+ if not len(products) == 1:
+ products = False
+ log_info = _(
+ "Error: More than one product with the same name or " +
+ "code found.").format(self.purchase_product_name,
+ self.purchase_product_code)
+ return products and products[:1], log_info
+
+ def _check_warehouse(self):
+ self.ensure_one()
+ log_info = ""
+ if self.import_id.warehouse_id:
+ self.purchase_warehouse_id = self.import_id.warehouse_id.id
+ if self.purchase_warehouse_id:
+ return self.purchase_warehouse_id, log_info
+ warehouse_obj = self.env["stock.warehouse"]
+ search_domain = ['|',
+ ("name", "=", self.purchase_warehouse),
+ ("code", "=", self.purchase_warehouse)]
+ warehouses = warehouse_obj.search(search_domain)
+ if not warehouses:
+ warehouses = False
+ log_info = _("Error: No warehouse found.")
+ elif len(warehouses) > 1:
+ warehouses = False
+ log_info = _(
+ "Error: More than one warehouse with name {} found."
+ ).format(self.purchase_warehouse)
+ return warehouses and warehouses[:1], log_info
+
+ def _check_picking_type(self, warehouse=False):
+ self.ensure_one()
+ log_info = ""
+ if self.purchase_picking_type_id:
+ return self.purchase_picking_type_id, log_info
+ picking_type_obj = self.env["stock.picking.type"]
+ search_domain = [("code", "=", "incoming")]
+ if warehouse:
+ search_domain = expression.AND(
+ [[("warehouse_id", "=", warehouse.id)], search_domain])
+ picking_types = picking_type_obj.search(search_domain)
+ if not picking_types:
+ picking_types = False
+ log_info = _("Error: No picking type found.")
+ elif len(picking_types) > 1:
+ picking_types = False
+ log_info = _(
+ "Error: More than one picking type with warehouse {} found."
+ ).format(warehouse)
+ return picking_types and picking_types[:1], log_info
+
+ def _create_purchase_order(self):
+ purchase_order_obj = self.env["purchase.order"]
+ values = self._purchase_order_values()
+ purchase = purchase_order_obj.create(values)
+ return purchase
+
+ def _create_purchase_order_line(self, purchase_order=False):
+ if purchase_order:
+ if not self.purchase_ordered_qty and self.purchase_qty_done:
+ self.purchase_ordered_qty = self.purchase_qty_done
+ purchase_order.order_line = [(0, 0, {
+ "product_id": self.purchase_product_id.id,
+ "product_qty": self.purchase_ordered_qty,
+ "qty_received": self.purchase_qty_done,
+ "product_uom": self.purchase_product_id.uom_id.id,
+ "name": self.purchase_product_id.display_name,
+ "order_id": purchase_order,
+ "price_unit": self.purchase_price_unit,
+ "discount": self.purchase_discount})]
+
+ def _purchase_order_values(self):
+ return {
+ "partner_id": self.purchase_supplier_id.id,
+ "picking_type_id": self.purchase_picking_type_id.id,
+ "partner_ref": self.purchase_origin,
+ "date_order": self.purchase_create_date}
diff --git a/purchase_import_wizard/security/ir.model.access.csv b/purchase_import_wizard/security/ir.model.access.csv
new file mode 100644
index 0000000000..54e097eb24
--- /dev/null
+++ b/purchase_import_wizard/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_purchase_order_import,purchase_order_import internal,model_purchase_order_import,purchase.group_purchase_user,1,1,1,1
+access_purchase_order_import_line,purchase_order_import_line internal,model_purchase_order_import_line,purchase.group_purchase_manager,1,1,1,1
diff --git a/purchase_import_wizard/security/purchase_import_wizard_security.xml b/purchase_import_wizard/security/purchase_import_wizard_security.xml
new file mode 100644
index 0000000000..85a845021a
--- /dev/null
+++ b/purchase_import_wizard/security/purchase_import_wizard_security.xml
@@ -0,0 +1,10 @@
+
+
CodigoProveedor: this will fill SupplierNombreProveedor: this will fill SupplierCodigoProveedor: this will fill SupplierNombreProveedor: this will fill SupplierFechaCreada: this will fill Date OrderFechaConfirmada: this will fill Date ConfirmFechaConfirmada: this will fill Date ConfirmEntrada: this will fill Partner RefCodigoProducto: this will fill ProductNombreProducto: this will fill ProductCodigoProducto: this will fill ProductNombreProducto: this will fill ProductKgProveedor: this will fill Product QuantityKgNeto: this will fill Quantity ReceivedPrecioUnitario: this will fill Price UnitPrecioUnitario: this will fill Price UnitDescuento: this will fill DiscountEstado: this will fill StateCodigoAlmacen: this will fill WarehouseCodigoAlmacen: this will fill Warehouse