diff --git a/pos_picking_load/README.rst b/pos_picking_load/README.rst index c74e59589d..49d81785dd 100644 --- a/pos_picking_load/README.rst +++ b/pos_picking_load/README.rst @@ -7,7 +7,7 @@ Point Of Sale - Picking Load !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2b39830d1dfa21d274fb5ca342bcbc179720cdfb3a903c86d33673efc80bf5b4 + !! source digest: sha256:f611363ccf5abedf323385e889a842a9338fc5a6f55cec96ea24959a9a87bcb2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -203,6 +203,7 @@ Contributors * Sylvain LE GAL (https://twitter.com/legalsylvain) * Stefan Rijnhart +* `Heliconia Solutions Pvt. Ltd. `_ Maintainers ~~~~~~~~~~~ diff --git a/pos_picking_load/__init__.py b/pos_picking_load/__init__.py index 0650744f6b..ad46f63a99 100644 --- a/pos_picking_load/__init__.py +++ b/pos_picking_load/__init__.py @@ -1 +1,5 @@ +# Copyright (C) 2017 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from . import models diff --git a/pos_picking_load/__manifest__.py b/pos_picking_load/__manifest__.py index 3ff8957378..b0528285f9 100644 --- a/pos_picking_load/__manifest__.py +++ b/pos_picking_load/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Point Of Sale - Picking Load", "summary": "Load and confirm stock pickings via Point Of Sale", - "version": "12.0.1.0.3", + "version": "16.0.1.0.0", "category": "Point Of Sale", "author": "GRAP,Odoo Community Association (OCA)", "website": "https://github.com/OCA/pos", @@ -20,17 +20,23 @@ "views/view_sale_order.xml", "views/view_stock_picking.xml", "views/view_stock_picking_type.xml", - "views/pos_picking_load.xml", - ], - "demo": [ - "demo/res_groups.xml", - "demo/res_partner.xml", - "demo/product_template.xml", - "demo/sale_order.xml", - "demo/stock_picking_type.xml", - ], - "qweb": [ - "static/src/xml/pos_picking_load.xml", ], + "assets": { + "point_of_sale.assets": [ + "/pos_picking_load/static/src/css/pos_picking_load.css", + "/pos_picking_load/static/src/js/LoadPickingButtonWidget.js", + "/pos_picking_load/static/src/xml/LoadPickingButtonWidget.xml", + "/pos_picking_load/static/src/xml/screen/LoadPickingScreenWidget.xml", + "/pos_picking_load/static/src/xml/screen/PickingLoadControlPanel.xml", + "/pos_picking_load/static/src/xml/screen/PickingLoadList.xml", + "/pos_picking_load/static/src/xml/screen/PickingLoadRow.xml", + "/pos_picking_load/static/src/js/Screen/LoadPickingScreenWidget.js", + "/pos_picking_load/static/src/js/Screen/PickingLoadControlPanel.js", + "/pos_picking_load/static/src/js/Screen/PickingLoadFetcher.js", + "/pos_picking_load/static/src/js/Screen/PickingLoadList.js", + "/pos_picking_load/static/src/js/Screen/PickingLoadRow.js", + "/pos_picking_load/static/src/js/db.js", + ] + }, "installable": True, } diff --git a/pos_picking_load/i18n/ca.po b/pos_picking_load/i18n/ca.po index aaea6a23ed..8092545012 100644 --- a/pos_picking_load/i18n/ca.po +++ b/pos_picking_load/i18n/ca.po @@ -10,15 +10,14 @@ msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-07-13 03:00+0000\n" -"PO-Revision-Date: 2022-04-13 13:05+0000\n" -"Last-Translator: Noel estudillo \n" +"PO-Revision-Date: 2017-07-13 03:00+0000\n" +"Last-Translator: Eric Antones , 2017\n" "Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: pos_picking_load #. openerp-web @@ -28,13 +27,11 @@ msgid "" "A picking is still loaded. You can not load another picking. Please create a " "new order." msgstr "" -"Encara està carregat un picking. No podeu carregar un altre picking. Creeu " -"una comanda nova." #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking_type__available_in_pos msgid "Available in Point Of Sale" -msgstr "Disponible al punt de venda" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -42,7 +39,6 @@ msgstr "Disponible al punt de venda" #, python-format msgid "Can not execute this action because the POS is currently offline" msgstr "" -"No es pot executar aquesta acció perquè actualment el TPV està fora de línia" #. module: pos_picking_load #. openerp-web @@ -56,25 +52,25 @@ msgstr "Cancel·la" #: code:addons/pos_picking_load/static/src/js/widget.js:242 #, python-format msgid "Connection error" -msgstr "Error de connexió" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:51 #, python-format msgid "Customer" -msgstr "Client" +msgstr "Client " #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Enable the possibility to load pickings in the Point of Sale" -msgstr "Habilita la possibilitat de carregar pickings al Punt de Venda" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_sale_order__final_pos_order_id #: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking__final_pos_order_id msgid "Final PoS Order" -msgstr "Comanda PoS final" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,help:pos_picking_load.field_stock_picking_type__available_in_pos @@ -82,27 +78,25 @@ msgid "" "If checked, associated pickings will be available in the point of sale, to " "be changed and paid in it" msgstr "" -"Si es marca, els pickings associats estaran disponibles al punt de venda, " -"per ser canviats i pagats en el mateix" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:285 #, python-format msgid "Load Picking" -msgstr "Selecció de càrrega" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Load Pickings" -msgstr "Càrrega de recollida" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking_max_qty #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Max Picking Quantity To Load" -msgstr "Quantitat màxima de recollida per carregar" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -114,7 +108,7 @@ msgstr "Nom" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_pos_order__origin_picking_id msgid "Origin Picking" -msgstr "Selecció d'origen" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -122,19 +116,19 @@ msgstr "Selecció d'origen" #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:80 #, python-format msgid "Origin Picking:" -msgstr "Selecció d'origen:" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:273 #, python-format msgid "Pending Picking" -msgstr "Pendent de recollida" +msgstr "" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Picking Load" -msgstr "Càrrega de recollida" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -142,74 +136,77 @@ msgstr "Càrrega de recollida" #: code:addons/pos_picking_load/static/src/js/widget.js:166 #, python-format msgid "Picking Still Loaded" -msgstr "La recollida encara està carregada" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking_type msgid "Picking Type" -msgstr "Tipus de selecció" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_config +#, fuzzy msgid "Point of Sale Configuration" -msgstr "Configuració del punt de venda" +msgstr "Punt de Venda" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_order +#, fuzzy msgid "Point of Sale Orders" -msgstr "Comandes al punt de venda" +msgstr "Punt de Venda" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_sale_order +#, fuzzy msgid "Sale Order" -msgstr "Comanda de venda" +msgstr "Comandes de venda" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:52 #, python-format msgid "Scheduled Date" -msgstr "Data prevista" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:33 #, python-format msgid "Search Picking" -msgstr "Selecció de cerca" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:29 #, python-format msgid "Select" -msgstr "Seleccioneu" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:235 #, python-format msgid "Server Error" -msgstr "Error del servidor" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:53 #, python-format msgid "Source Document" -msgstr "Document font" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:236 #, python-format msgid "The server encountered an error while receiving your order." -msgstr "El servidor ha trobat un error en rebre la vostra comanda." +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,help:pos_picking_load.field_sale_order__final_pos_order_id msgid "This Sale Order has beend replaced by this PoS Order" -msgstr "Aquesta comanda de venda s'ha substituït per aquesta comanda PoS" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,help:pos_picking_load.field_stock_picking__final_pos_order_id @@ -217,13 +214,11 @@ msgid "" "This picking has been canceled, because it has been replaced by this PoS " "Order" msgstr "" -"Aquesta recollida s'ha cancel·lat perquè s'ha substituït per aquesta comanda " -"PoS" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking msgid "Transfer" -msgstr "Transferència" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -237,12 +232,6 @@ msgid "" "\n" " * " msgstr "" -"No es poden carregar algunes línies de recollida perquè els productes no " -"estan disponibles a la memòria cau del TPV.\n" -"\n" -"Si us plau, comproveu aquestes línies :\n" -"\n" -" * " #. module: pos_picking_load #. openerp-web @@ -253,9 +242,6 @@ msgid "" "PoS Order :\n" "\n" msgstr "" -"No es pot carregar aquesta selecció perquè s'ha carregat en una altra " -"comanda de PoS confirmada:\n" -"\n" #. module: pos_picking_load #. openerp-web @@ -266,9 +252,6 @@ msgid "" "Order :\n" "\n" msgstr "" -"No s'ha pogut carregar aquesta selecció perquè s'ha carregat en un altre " -"esborrany d'ordre PoS:\n" -"\n" #. module: pos_picking_load #. openerp-web @@ -278,19 +261,17 @@ msgid "" "Unable to load this picking because the partner is not known in the Point Of " "Sale as a customer" msgstr "" -"No es pot carregar aquesta selecció perquè el soci no és conegut al punt de " -"venda com a client" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:136 #, python-format msgid "Unknown Partner" -msgstr "Soci desconegut" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:118 #, python-format msgid "Unknown Products" -msgstr "Productes desconeguts" +msgstr "" diff --git a/pos_picking_load/i18n/de.po b/pos_picking_load/i18n/de.po index 999c0f600f..e3b88e5c86 100644 --- a/pos_picking_load/i18n/de.po +++ b/pos_picking_load/i18n/de.po @@ -1,300 +1,64 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * pos_picking_load -# -# Translators: -# Rudolf Schnapka , 2017 -# OCA Transbot , 2017 msgid "" msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" +"Project-Id-Version: ametras-xsolutions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-07-13 03:00+0000\n" -"PO-Revision-Date: 2020-10-21 17:08+0000\n" -"Last-Translator: Maria Sparenberg \n" -"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" -"Language: de\n" +"Last-Translator: \n" +"Language-Team: German\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.10\n" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:274 -#, python-format -msgid "" -"A picking is still loaded. You can not load another picking. Please create a " -"new order." -msgstr "" -"Ein Lieferschein ist bereits geladen. Es kann kein weiterer Lieferschein " -"geladen werden. Dafür muss ein neuer POS-Auftrag erstellt werden." - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking_type__available_in_pos -msgid "Available in Point Of Sale" -msgstr "Im 'Point of Sale' anzeigen" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:243 -#, python-format -msgid "Can not execute this action because the POS is currently offline" -msgstr "" -"Die Aktion kann nicht ausgeführt werden, weil das POS gerade offline ist." - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:25 -#, python-format -msgid "Cancel" -msgstr "Abbrechen" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:242 -#, python-format -msgid "Connection error" -msgstr "Verbindungsfehler" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:51 -#, python-format -msgid "Customer" -msgstr "Kunde" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: ametras-xsolutions\n" +"X-Crowdin-Project-ID: 530964\n" +"X-Crowdin-Language: de\n" +"X-Crowdin-File: /[AmetrasIntelligence.oca-migrated] 16.0/pos_picking_load/i18n/pos_picking_load.pot\n" +"X-Crowdin-File-ID: 21378\n" +"Language: de_DE\n" +"PO-Revision-Date: 2024-09-25 12:08\n" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form -msgid "Enable the possibility to load pickings in the Point of Sale" -msgstr "Laden von Lieferscheinen im 'Point of Sale' ermöglichen" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_sale_order__final_pos_order_id -#: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking__final_pos_order_id -msgid "Final PoS Order" -msgstr "POS-Auftrag" - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_stock_picking_type__available_in_pos -msgid "" -"If checked, associated pickings will be available in the point of sale, to " -"be changed and paid in it" +msgid "Enable the possibility to load pickings in the Point of\n" +" Sale" msgstr "" -"Wenn der Haken gesetzt ist, werden die entsprechenden Lieferscheine im " -"'Point of Sale' verfügbar sein, um sie zu ändern und zu bezahlen." - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:285 -#, python-format -msgid "Load Picking" -msgstr "Lieferschein laden" #. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Load Pickings" -msgstr "Lieferscheine laden" +msgstr "" #. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking_max_qty #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Max Picking Quantity To Load" -msgstr "Max. Anzahl von zu ladenen Lieferscheinen" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:50 -#, python-format -msgid "Name" -msgstr "Bezeichnung" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_order__origin_picking_id -msgid "Origin Picking" -msgstr "Ursprünglicher Lieferschein" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:72 -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:80 -#, python-format -msgid "Origin Picking:" -msgstr "Lieferschein:" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:273 -#, python-format -msgid "Pending Picking" -msgstr "Ausstehender Lieferschein" +msgstr "" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Picking Load" -msgstr "Lieferschein laden" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:150 -#: code:addons/pos_picking_load/static/src/js/widget.js:166 -#, python-format -msgid "Picking Still Loaded" -msgstr "Lieferschein bereits geladen" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking_type msgid "Picking Type" -msgstr "Vorgangstyp" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_config msgid "Point of Sale Configuration" -msgstr "Point Of Sale Konfiguration" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_order msgid "Point of Sale Orders" -msgstr "POS Aufträge" - -#. module: pos_picking_load -#: model:ir.model,name:pos_picking_load.model_sale_order -msgid "Sale Order" -msgstr "Verkaufsauftrag" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:52 -#, python-format -msgid "Scheduled Date" -msgstr "Geplantes Datum" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:33 -#, python-format -msgid "Search Picking" -msgstr "Lieferschein suchen" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:29 -#, python-format -msgid "Select" -msgstr "Auswahl" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:235 -#, python-format -msgid "Server Error" -msgstr "Server-Fehler" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:53 -#, python-format -msgid "Source Document" -msgstr "Referenzbeleg" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:236 -#, python-format -msgid "The server encountered an error while receiving your order." msgstr "" -"Beim Empfangen Ihres Auftrages ist auf dem Server ein Fehler aufgetreten." #. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_sale_order__final_pos_order_id -msgid "This Sale Order has beend replaced by this PoS Order" -msgstr "Dieser Verkaufsauftrag wurde durch einen POS-Auftrag ersetzt." - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_stock_picking__final_pos_order_id -msgid "" -"This picking has been canceled, because it has been replaced by this PoS " -"Order" +#: model:ir.model,name:pos_picking_load.model_sale_order +msgid "Sales Order" msgstr "" -"Dieser Lieferschein wurde abgebrochen, da er durch diesen POS-Auftrag " -"ersetzt wurde." #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking msgid "Transfer" msgstr "" -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:119 -#, python-format -msgid "" -"Unable to load some picking lines because the products are not available in " -"the POS cache.\n" -"\n" -"Please check that lines :\n" -"\n" -" * " -msgstr "" -"Einige Lieferschein-Positionen können nicht geladen werden, weil die " -"Produkte nicht im POS Cache liegen.\n" -"\n" -"Bitte diese Zeilen prüfen:\n" -"\n" -" * " - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:167 -#, python-format -msgid "" -"Unable to load this picking because it has been loaded in another confirmed " -"PoS Order :\n" -"\n" -msgstr "" -"Der Lieferschein kann nicht geladen werden, weil er bereits in einem anderen " -"bestätigtem POS-Auftrag enthalten ist:\n" -"\n" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:151 -#, python-format -msgid "" -"Unable to load this picking because it has been loaded in another draft PoS " -"Order :\n" -"\n" -msgstr "" -"Der Lieferschein kann nicht geladen werden, weil er bereits in einem anderen " -"POS-Auftragsentwurf enthalten ist:\n" -"\n" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:137 -#, python-format -msgid "" -"Unable to load this picking because the partner is not known in the Point Of " -"Sale as a customer" -msgstr "" -"Der Lieferschein kann nicht geladen werden, weil der Partner im Point of " -"Sale nicht als Kunde bekannt ist." - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:136 -#, python-format -msgid "Unknown Partner" -msgstr "Unbekannter Partner" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:118 -#, python-format -msgid "Unknown Products" -msgstr "Unbekannte Produkte" - -#~ msgid "The picking type determines the picking view" -#~ msgstr "Die Art der Kommissionierung bestimmt die Sicht" diff --git a/pos_picking_load/i18n/fr.po b/pos_picking_load/i18n/fr.po index dc69efb3f2..e855380749 100644 --- a/pos_picking_load/i18n/fr.po +++ b/pos_picking_load/i18n/fr.po @@ -1,298 +1,64 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * pos_picking_load -# msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: ametras-xsolutions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-11 09:49+0000\n" -"PO-Revision-Date: 2019-07-11 09:49+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"Language: \n" +"Last-Translator: \n" +"Language-Team: French\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:274 -#, python-format -msgid "" -"A picking is still loaded. You can not load another picking. Please create a " -"new order." -msgstr "" -"Un BL est déjà chargé. Vous ne pouvez pas en charger un autre. Veuillez " -"créer une nouvelle commande." - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking_type__available_in_pos -msgid "Available in Point Of Sale" -msgstr "Disponible dans le point de vente" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:243 -#, python-format -msgid "Can not execute this action because the POS is currently offline" -msgstr "" -"Impossible de réaliser cette action car le point de vente est actuellement " -"hors ligne" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:25 -#, python-format -msgid "Cancel" -msgstr "Annuler" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:242 -#, python-format -msgid "Connection error" -msgstr "Erreur de connexion" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:51 -#, python-format -msgid "Customer" -msgstr "Client" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: ametras-xsolutions\n" +"X-Crowdin-Project-ID: 530964\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /[AmetrasIntelligence.oca-migrated] 16.0/pos_picking_load/i18n/pos_picking_load.pot\n" +"X-Crowdin-File-ID: 21378\n" +"Language: fr_FR\n" +"PO-Revision-Date: 2024-09-25 12:08\n" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form -msgid "Enable the possibility to load pickings in the Point of Sale" -msgstr "" -"Activer la possibilité de charger des bons de livraison dans le point de " -"vente" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_sale_order__final_pos_order_id -#: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking__final_pos_order_id -msgid "Final PoS Order" -msgstr "Commande Finale" - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_stock_picking_type__available_in_pos -msgid "" -"If checked, associated pickings will be available in the point of sale, to " -"be changed and paid in it" +msgid "Enable the possibility to load pickings in the Point of\n" +" Sale" msgstr "" -"Si la case est cochée, toutes les bons de livraisons associés seront " -"disponible dans le point de vente, pour ere changé et payé au sein de celui-" -"ci" #. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:285 -#, python-format -msgid "Load Picking" -msgstr "Charger un bon de livraison" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Load Pickings" -msgstr "Charger des bons de livraison" +msgstr "" #. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking_max_qty #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Max Picking Quantity To Load" -msgstr "Quantité maximum de BL à charger" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:50 -#, python-format -msgid "Name" -msgstr "Nom" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_order__origin_picking_id -msgid "Origin Picking" -msgstr "Livraison d'origine" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:72 -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:80 -#, python-format -msgid "Origin Picking:" -msgstr "BL d'origine:" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:273 -#, python-format -msgid "Pending Picking" -msgstr "BL en cours" +msgstr "" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Picking Load" -msgstr "Chargement de bon de livraison" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:150 -#: code:addons/pos_picking_load/static/src/js/widget.js:166 -#, python-format -msgid "Picking Still Loaded" -msgstr "Bon de livraison déjà chargé" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking_type msgid "Picking Type" -msgstr "Type de préparation" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_config msgid "Point of Sale Configuration" -msgstr "Paramétrage du point de vente" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_order msgid "Point of Sale Orders" -msgstr "Commandes du point de vente" - -#. module: pos_picking_load -#: model:ir.model,name:pos_picking_load.model_sale_order -msgid "Sale Order" -msgstr "Bon de commande" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:52 -#, python-format -msgid "Scheduled Date" -msgstr "Date prévue" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:33 -#, python-format -msgid "Search Picking" -msgstr "Chercher un bon de livraison" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:29 -#, python-format -msgid "Select" -msgstr "Sélectionner" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:235 -#, python-format -msgid "Server Error" -msgstr "Erreur serveur" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:53 -#, python-format -msgid "Source Document" -msgstr "Document d'origine" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:236 -#, python-format -msgid "The server encountered an error while receiving your order." msgstr "" -"Le serveur a rencontré une erreur lors de la réception de votre commande." #. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_sale_order__final_pos_order_id -msgid "This Sale Order has beend replaced by this PoS Order" -msgstr "" -"Ce bon de commande a été remplacé par cette commande via le point de vente" - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_stock_picking__final_pos_order_id -msgid "" -"This picking has been canceled, because it has been replaced by this PoS " -"Order" +#: model:ir.model,name:pos_picking_load.model_sale_order +msgid "Sales Order" msgstr "" -"Ce bon de livraison a été annulé, car il a été remplacé par cette commande " -"via le point de vente" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking msgid "Transfer" -msgstr "Transfert" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:119 -#, python-format -msgid "" -"Unable to load some picking lines because the products are not available in " -"the POS cache.\n" -"\n" -"Please check that lines :\n" -"\n" -" * " -msgstr "" -"Impossible de charger certaines lignes du bon de livraison car certains " -"produits ne sont pas disponibles dans le point de vente.\n" -"\n" -"Merci de vérifier les lignes suivantes :\n" -"\n" -" * " - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:167 -#, python-format -msgid "" -"Unable to load this picking because it has been loaded in another confirmed " -"PoS Order :\n" -"\n" msgstr "" -"Impossible de charger ce bon de livraison car il a déjà été chargé dans une " -"autre commande confirmée :\n" -"\n" -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:151 -#, python-format -msgid "" -"Unable to load this picking because it has been loaded in another draft PoS " -"Order :\n" -"\n" -msgstr "" -"Impossible de charger ce bon de livraison car il a déjà été chargé dans une " -"autre commande en cours :\n" -"\n" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:137 -#, python-format -msgid "" -"Unable to load this picking because the partner is not known in the Point Of " -"Sale as a customer" -msgstr "" -"Impossible de charger ce bon de livraison car ce partenaire n'est pas " -"reconnu dans le point de vente comme un client" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:136 -#, python-format -msgid "Unknown Partner" -msgstr "Partenaire inconnu" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:118 -#, python-format -msgid "Unknown Products" -msgstr "Produits inconnus" diff --git a/pos_picking_load/i18n/it.po b/pos_picking_load/i18n/it.po index 1afad4eaef..7ba851ae9f 100644 --- a/pos_picking_load/i18n/it.po +++ b/pos_picking_load/i18n/it.po @@ -10,15 +10,15 @@ msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-07-13 03:00+0000\n" -"PO-Revision-Date: 2024-08-22 11:07+0000\n" -"Last-Translator: mymage \n" +"PO-Revision-Date: 2021-10-07 19:34+0000\n" +"Last-Translator: Francesco Foresti \n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.6.2\n" +"X-Generator: Weblate 4.3.2\n" #. module: pos_picking_load #. openerp-web @@ -28,20 +28,18 @@ msgid "" "A picking is still loaded. You can not load another picking. Please create a " "new order." msgstr "" -"Prelievo già caricato. Non si può caricare un'altro prelievo. Creare un " -"nuovo ordine." #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking_type__available_in_pos msgid "Available in Point Of Sale" -msgstr "Disponibile nel punto vendita" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:243 #, python-format msgid "Can not execute this action because the POS is currently offline" -msgstr "Impossibile eseguire questa azione perchè il POS è attualmente offline" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -55,7 +53,7 @@ msgstr "Annulla" #: code:addons/pos_picking_load/static/src/js/widget.js:242 #, python-format msgid "Connection error" -msgstr "Errore di connessione" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -67,13 +65,13 @@ msgstr "Cliente" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Enable the possibility to load pickings in the Point of Sale" -msgstr "Consente la possibilità di caricare prelievi nel punto vendita" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_sale_order__final_pos_order_id #: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking__final_pos_order_id msgid "Final PoS Order" -msgstr "Ordine POS definitivo" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,help:pos_picking_load.field_stock_picking_type__available_in_pos @@ -81,27 +79,25 @@ msgid "" "If checked, associated pickings will be available in the point of sale, to " "be changed and paid in it" msgstr "" -"Se selezionato, i prelievi associati saranno disponibili per essere caricati " -"e pagati nel punto vendita" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:285 #, python-format msgid "Load Picking" -msgstr "Carica prelievo" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Load Pickings" -msgstr "Carica prelievi" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking_max_qty #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Max Picking Quantity To Load" -msgstr "Quantità massima prelievo da caricare" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -113,7 +109,7 @@ msgstr "Nome" #. module: pos_picking_load #: model:ir.model.fields,field_description:pos_picking_load.field_pos_order__origin_picking_id msgid "Origin Picking" -msgstr "Prelievo origine" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -121,19 +117,20 @@ msgstr "Prelievo origine" #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:80 #, python-format msgid "Origin Picking:" -msgstr "Prelievo origine:" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:273 #, python-format msgid "Pending Picking" -msgstr "Prelievo in sospeso" +msgstr "" #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form +#, fuzzy msgid "Picking Load" -msgstr "Carico prelievo" +msgstr "Lista Picking" #. module: pos_picking_load #. openerp-web @@ -141,41 +138,44 @@ msgstr "Carico prelievo" #: code:addons/pos_picking_load/static/src/js/widget.js:166 #, python-format msgid "Picking Still Loaded" -msgstr "Prelievo ancora caricato" +msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking_type +#, fuzzy msgid "Picking Type" -msgstr "Tipo prelievo" +msgstr "Lista Picking" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_config +#, fuzzy msgid "Point of Sale Configuration" -msgstr "Configurazione punto vendita" +msgstr "Punto Vendita" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_pos_order +#, fuzzy msgid "Point of Sale Orders" -msgstr "Ordini punto vendita" +msgstr "Punto Vendita" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_sale_order msgid "Sale Order" -msgstr "Ordine di vendita" +msgstr "Ordine di Vendita" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:52 #, python-format msgid "Scheduled Date" -msgstr "Data schedulata" +msgstr "Data programmata" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:33 #, python-format msgid "Search Picking" -msgstr "Cerca prelievo" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -189,26 +189,26 @@ msgstr "Seleziona" #: code:addons/pos_picking_load/static/src/js/widget.js:235 #, python-format msgid "Server Error" -msgstr "Errore server" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:53 #, python-format msgid "Source Document" -msgstr "Documento di origine" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:236 #, python-format msgid "The server encountered an error while receiving your order." -msgstr "Il server ha riscontrato un errore nel ricevere l'ordine." +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,help:pos_picking_load.field_sale_order__final_pos_order_id msgid "This Sale Order has beend replaced by this PoS Order" -msgstr "Questo ordine di vendita è satato sostituito da questo ordine POS" +msgstr "" #. module: pos_picking_load #: model:ir.model.fields,help:pos_picking_load.field_stock_picking__final_pos_order_id @@ -216,13 +216,11 @@ msgid "" "This picking has been canceled, because it has been replaced by this PoS " "Order" msgstr "" -"Questo prelievo è stato cancellato, perché è stato sostituito da questo " -"ordine POS" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking msgid "Transfer" -msgstr "Trasferimento" +msgstr "" #. module: pos_picking_load #. openerp-web @@ -236,12 +234,6 @@ msgid "" "\n" " * " msgstr "" -"Impossibile caricare alcune righe del prelievo perché i prodotti non sono " -"disponibili nella cache del POS.\n" -"\n" -"Controllare queste righe:\n" -"\n" -" * " #. module: pos_picking_load #. openerp-web @@ -252,9 +244,6 @@ msgid "" "PoS Order :\n" "\n" msgstr "" -"Impossibile caricare questo prelievo perché è già stato caricato in un altro " -"ordine POS confermato:\n" -"\n" #. module: pos_picking_load #. openerp-web @@ -265,9 +254,6 @@ msgid "" "Order :\n" "\n" msgstr "" -"Impossibile caricare questo prelievo perché è già stato caricato in un'altra " -"bozza ordine POS:\n" -"\n" #. module: pos_picking_load #. openerp-web @@ -277,19 +263,17 @@ msgid "" "Unable to load this picking because the partner is not known in the Point Of " "Sale as a customer" msgstr "" -"Impossibile caricare questo prelievo perché il partner non è riconosciuto " -"nel punto vendita come cliente" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:136 #, python-format msgid "Unknown Partner" -msgstr "Partner non riconosciuto" +msgstr "" #. module: pos_picking_load #. openerp-web #: code:addons/pos_picking_load/static/src/js/widget.js:118 #, python-format msgid "Unknown Products" -msgstr "Prodotti non riconosciuti" +msgstr "" diff --git a/pos_picking_load/i18n/pos_picking_load.pot b/pos_picking_load/i18n/pos_picking_load.pot index b9a5a92b8a..a9a65d5c4a 100644 --- a/pos_picking_load/i18n/pos_picking_load.pot +++ b/pos_picking_load/i18n/pos_picking_load.pot @@ -1,133 +1,40 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * pos_picking_load +# * pos_picking_load # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\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: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:274 -#, python-format -msgid "A picking is still loaded. You can not load another picking. Please create a new order." -msgstr "" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking_type__available_in_pos -msgid "Available in Point Of Sale" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:243 -#, python-format -msgid "Can not execute this action because the POS is currently offline" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:25 -#, python-format -msgid "Cancel" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:242 -#, python-format -msgid "Connection error" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:51 -#, python-format -msgid "Customer" -msgstr "" - #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form -msgid "Enable the possibility to load pickings in the Point of Sale" -msgstr "" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_sale_order__final_pos_order_id -#: model:ir.model.fields,field_description:pos_picking_load.field_stock_picking__final_pos_order_id -msgid "Final PoS Order" -msgstr "" - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_stock_picking_type__available_in_pos -msgid "If checked, associated pickings will be available in the point of sale, to be changed and paid in it" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:285 -#, python-format -msgid "Load Picking" +msgid "" +"Enable the possibility to load pickings in the Point of\n" +" Sale" msgstr "" #. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Load Pickings" msgstr "" #. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_config__iface_load_picking_max_qty #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Max Picking Quantity To Load" msgstr "" -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:50 -#, python-format -msgid "Name" -msgstr "" - -#. module: pos_picking_load -#: model:ir.model.fields,field_description:pos_picking_load.field_pos_order__origin_picking_id -msgid "Origin Picking" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:72 -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:80 -#, python-format -msgid "Origin Picking:" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:273 -#, python-format -msgid "Pending Picking" -msgstr "" - #. module: pos_picking_load #: model_terms:ir.ui.view,arch_db:pos_picking_load.view_pos_config_form msgid "Picking Load" msgstr "" -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:150 -#: code:addons/pos_picking_load/static/src/js/widget.js:166 -#, python-format -msgid "Picking Still Loaded" -msgstr "" - #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking_type msgid "Picking Type" @@ -145,113 +52,10 @@ msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_sale_order -msgid "Sale Order" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:52 -#, python-format -msgid "Scheduled Date" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:33 -#, python-format -msgid "Search Picking" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:29 -#, python-format -msgid "Select" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:235 -#, python-format -msgid "Server Error" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/xml/pos_picking_load.xml:53 -#, python-format -msgid "Source Document" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:236 -#, python-format -msgid "The server encountered an error while receiving your order." -msgstr "" - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_sale_order__final_pos_order_id -msgid "This Sale Order has beend replaced by this PoS Order" -msgstr "" - -#. module: pos_picking_load -#: model:ir.model.fields,help:pos_picking_load.field_stock_picking__final_pos_order_id -msgid "This picking has been canceled, because it has been replaced by this PoS Order" +msgid "Sales Order" msgstr "" #. module: pos_picking_load #: model:ir.model,name:pos_picking_load.model_stock_picking msgid "Transfer" msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:119 -#, python-format -msgid "Unable to load some picking lines because the products are not available in the POS cache.\n" -"\n" -"Please check that lines :\n" -"\n" -" * " -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:167 -#, python-format -msgid "Unable to load this picking because it has been loaded in another confirmed PoS Order :\n" -"\n" -"" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:151 -#, python-format -msgid "Unable to load this picking because it has been loaded in another draft PoS Order :\n" -"\n" -"" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:137 -#, python-format -msgid "Unable to load this picking because the partner is not known in the Point Of Sale as a customer" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:136 -#, python-format -msgid "Unknown Partner" -msgstr "" - -#. module: pos_picking_load -#. openerp-web -#: code:addons/pos_picking_load/static/src/js/widget.js:118 -#, python-format -msgid "Unknown Products" -msgstr "" - diff --git a/pos_picking_load/models/__init__.py b/pos_picking_load/models/__init__.py index d4ab9e61d7..6c3faac254 100644 --- a/pos_picking_load/models/__init__.py +++ b/pos_picking_load/models/__init__.py @@ -1,3 +1,7 @@ +# Copyright (C) 2017 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from . import sale_order from . import stock_picking from . import stock_picking_type diff --git a/pos_picking_load/models/pos_order.py b/pos_picking_load/models/pos_order.py index d9b887746d..9c33594441 100644 --- a/pos_picking_load/models/pos_order.py +++ b/pos_picking_load/models/pos_order.py @@ -14,19 +14,19 @@ class PosOrder(models.Model): ) # Overloadable Section - @api.multi def _handle_orders_with_original_picking(self): """By default, the module cancel the original stock picking and set the original sale order as invoiced. Overload / Overwrite this function if you want another behaviour""" for order in self: + origin_picking_id = order.origin_picking_id # Cancel Picking - order.origin_picking_id.action_cancel() - order.origin_picking_id.write({"final_pos_order_id": order.id}) + origin_picking_id.action_cancel() + origin_picking_id.write({"final_pos_order_id": order.id}) # Set Sale Order as fully invoiced - order.origin_picking_id.mapped("group_id.sale_id").write( + origin_picking_id.mapped("group_id.sale_id").write( { "invoice_status": "invoiced", } @@ -34,12 +34,13 @@ def _handle_orders_with_original_picking(self): # Overload Section @api.model - def create_from_ui(self, orders): + def create_from_ui(self, orders, draft=False): """Cancel the original picking, when the pos order is done""" - res = super().create_from_ui(orders) + res = super().create_from_ui(orders, draft) + pos_order_ids = [rec["id"] for rec in res] orders_with_original_picking = self.search( [ - ("id", "in", res), + ("id", "in", pos_order_ids), ("origin_picking_id", "!=", False), ("state", "!=", "draft"), ] @@ -56,7 +57,6 @@ def _order_fields(self, ui_order): res["origin_picking_id"] = ui_order["origin_picking_id"] return res - @api.multi def create_picking(self): """Call super() for each order separately with the origin picking id in the context. The new picking will be updated accordingly in the diff --git a/pos_picking_load/models/stock_picking.py b/pos_picking_load/models/stock_picking.py index 35e213282f..518b365207 100644 --- a/pos_picking_load/models/stock_picking.py +++ b/pos_picking_load/models/stock_picking.py @@ -49,9 +49,10 @@ def search_pickings_for_pos(self, query, pos_session_id): pos_session_id ) + self._prepare_filter_query_for_pos(pos_session_id, query) fields = self._prepare_fields_for_pos_list() - return self.search_read( + res = self.search_read( condition, fields, limit=config.iface_load_picking_max_qty ) + return res # Custom Section - Load Picking Part @api.model @@ -72,7 +73,7 @@ def _prepare_line_data_from_stock_move(self, move): def load_picking_for_pos(self, picking_id): picking = self.browse(picking_id) picking_lines = [] - for move in picking.move_lines.filtered(lambda x: x.state != "cancel"): + for move in picking.move_ids.filtered(lambda x: x.state != "cancel"): picking_lines.append(self._prepare_line_data_from_stock_move(move)) return { "id": picking.id, @@ -81,14 +82,12 @@ def load_picking_for_pos(self, picking_id): "line_ids": picking_lines, } - @api.multi def update_from_origin_picking(self, origin_picking): if origin_picking.group_id: self.filtered(lambda p: not p.group_id).write( {"group_id": origin_picking.group_id.id} ) - @api.multi def action_confirm(self): """Assign to same procurement group as the origin picking""" if self.env.context.get("origin_picking_id"): diff --git a/pos_picking_load/readme/CONTRIBUTORS.rst b/pos_picking_load/readme/CONTRIBUTORS.rst index 9e9913a037..a977877118 100644 --- a/pos_picking_load/readme/CONTRIBUTORS.rst +++ b/pos_picking_load/readme/CONTRIBUTORS.rst @@ -1,2 +1,3 @@ * Sylvain LE GAL (https://twitter.com/legalsylvain) * Stefan Rijnhart +* `Heliconia Solutions Pvt. Ltd. `_ diff --git a/pos_picking_load/static/description/index.html b/pos_picking_load/static/description/index.html index 051783e9d6..4eee839dc0 100644 --- a/pos_picking_load/static/description/index.html +++ b/pos_picking_load/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@

Point Of Sale - Picking Load

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:2b39830d1dfa21d274fb5ca342bcbc179720cdfb3a903c86d33673efc80bf5b4 +!! source digest: sha256:f611363ccf5abedf323385e889a842a9338fc5a6f55cec96ea24959a9a87bcb2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

This module extends the functionality of point of sale to allow you to @@ -548,12 +549,15 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

diff --git a/pos_picking_load/static/src/css/pos_picking_load.css b/pos_picking_load/static/src/css/pos_picking_load.css index f7a0a667a1..46cb3d85dc 100644 --- a/pos_picking_load/static/src/css/pos_picking_load.css +++ b/pos_picking_load/static/src/css/pos_picking_load.css @@ -1,49 +1,96 @@ -/* LoadPickingScreenWidget - Header Part*/ -.pos .pickinglist-screen .button.picking-button { - width: 150px; +.pickinglist-screen td { + padding-right: 12px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } -.pos .pickinglist-screen .searchbox { - top: 4px; - position: relative; +.pickinglist-screen .flex-container { + display: flex; + flex-direction: column; + height: 100%; + width: 60%; + padding-left: 20%; } -.pos .pickinglist-screen .searchbox input { - width: 300px; +.pickinglist-screen .control-panel { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin: 0.5rem; } -.pos .pickinglist-screen .button.validate.picking-button { - right: 0px; +.pickinglist-screen .control-panel .item { + font-size: medium; } -/* LoadPickingScreenWidget - List Part*/ +.pickinglist-screen .control-panel .search-box { + flex: 1; + position: relative; + text-align: center; + margin: 0.2rem; +} -.pos .pickinglist-screen .picking-list { - font-size: 16px; - width: 100%; - line-height: 40px; +.pickinglist-screen .control-panel .search-box .clear { + position: relative; + right: 25px; + cursor: pointer; + color: #808080; + font-size: 13px; } -.pos .pickinglist-screen .picking-list th, -.pos .pickinglist-screen .picking-list td { - padding: 0px 8px; +.pickinglist-screen .control-panel .search-box .icon { + position: relative; + left: 25px; + color: #808080; + font-size: 13px; } -.pos .pickinglist-screen .picking-list tbody > tr { +.pickinglist-screen .control-panel .search-box input { + border: 1px solid #cecbcb; + padding: 10px 30px; + margin: auto; + background-color: white; + border-radius: 20px; + font-family: "Lato", "Lucida Grande", Helvetica, Verdana, Arial; + font-size: 13px; +} + +.pickinglist-screen .control-panel .search-box input:focus { + outline: none; + box-shadow: 0px 0px 0px 2px rgb(153, 153, 255) inset; + color: rgb(153, 153, 255); +} + +.pickinglist-screen .control-panel .button { + line-height: 32px; + padding: 3px 13px; + font-size: 20px; background: rgb(230, 230, 230); + border-radius: 3px; + border: solid 1px rgb(209, 209, 209); cursor: pointer; + transition: all 150ms linear; } -.pos .pickinglist-screen .picking-list thead > tr, -.pos .pickinglist-screen .picking-list tr:nth-child(even) { - background: rgb(247, 247, 247); +.pickinglist-screen .control-panel .button:hover { + background: #efefef; } -.pos .pickinglist-screen .picking-list .highlight { - background-color: rgb(110, 200, 155) !important; - color: rgb(255, 255, 255); +.pickinglist-screen .back-to-list { + font-size: large; + padding: 10px; + background-color: #6ec89b; + color: white; +} + +/* Utility classes */ + +.pickinglist-screen .self-end { + align-self: flex-end; } -.pos .pickinglist-screen .picking-list tbody > tr:hover { - background: rgb(220, 220, 220); +.pickinglist-screen .text-gray { + color: #808080; } diff --git a/pos_picking_load/static/src/js/LoadPickingButtonWidget.js b/pos_picking_load/static/src/js/LoadPickingButtonWidget.js new file mode 100644 index 0000000000..84eafcdacf --- /dev/null +++ b/pos_picking_load/static/src/js/LoadPickingButtonWidget.js @@ -0,0 +1,73 @@ +odoo.define("pos_picking_load.widget", function (require) { + "use strict"; + /* eslint-disable no-undef */ + const PosComponent = require("point_of_sale.PosComponent"); + const ProductScreen = require("point_of_sale.ProductScreen"); + const {useListener} = require("@web/core/utils/hooks"); + const Registries = require("point_of_sale.Registries"); + const {isConnectionError} = require("point_of_sale.utils"); + const {Gui} = require("point_of_sale.Gui"); + + class LoadPickingButtonWidget extends PosComponent { + setup() { + super.setup(); + useListener("click", this.onClick); + } + get currentOrder() { + return this.env.pos.get_order(); + } + get button_text() { + if ( + !this.env.pos.get_order() || + _.isUndefined(this.env.pos.get_order().origin_picking_id) + ) { + return this.env._t("Load Picking"); + } + return this.env.pos.get_order().origin_picking_name; + } + async onClick() { + try { + if (_.isUndefined(this.env.pos.get_order().origin_picking_id)) { + Gui.showScreen("LoadPickingScreenWidget"); + } else { + this.showPopup("ErrorPopup", { + title: this.env._t("Pending Picking"), + body: this.env._t( + "A picking is still loaded. You can not load" + + " another picking. Please create a new order." + ), + }); + } + } catch (error) { + if (isConnectionError(error)) { + this.showPopup("ErrorPopup", { + title: this.env._t("Network Error"), + body: this.env._t( + "Cannot access order management screen if offline." + ), + }); + } else { + throw error; + } + } + } + } + LoadPickingButtonWidget.template = "LoadPickingButtonWidget"; + + ProductScreen.addControlButton({ + component: LoadPickingButtonWidget, + condition: function () { + if (this.env.pos.config.iface_load_picking) { + if (this.env.pos.get_order()) { + return ( + this.env.pos.get_order().get_orderlines().length === 0 || + !_.isUndefined(this.env.pos.get_order().origin_picking_id) + ); + } + } + return false; + }, + }); + Registries.Component.add(LoadPickingButtonWidget); + return LoadPickingButtonWidget; +}); diff --git a/pos_picking_load/static/src/js/Screen/LoadPickingScreenWidget.js b/pos_picking_load/static/src/js/Screen/LoadPickingScreenWidget.js new file mode 100644 index 0000000000..47b730cd8f --- /dev/null +++ b/pos_picking_load/static/src/js/Screen/LoadPickingScreenWidget.js @@ -0,0 +1,195 @@ +odoo.define("pos_picking_load.LoadPickingScreenWidget", function (require) { + "use strict"; + /* eslint-disable no-undef */ + const {useListener} = require("@web/core/utils/hooks"); + const ControlButtonsMixin = require("point_of_sale.ControlButtonsMixin"); + const Registries = require("point_of_sale.Registries"); + const PickingLoadFetcher = require("pos_picking_load.PickingLoadFetcher"); + const IndependentToOrderScreen = require("point_of_sale.IndependentToOrderScreen"); + const contexts = require("point_of_sale.PosContext"); + var rpc = require("web.rpc"); + var framework = require("web.framework"); + const {onMounted, onWillUnmount, useState} = owl; + + class LoadPickingScreenWidget extends ControlButtonsMixin( + IndependentToOrderScreen + ) { + setup() { + super.setup(); + useListener("close-screen", this.close); + useListener("click-sale-order", this._onClickSelectPicking); + useListener("search", this._onSearch); + useListener("select-picking", this._onSelectPicking); + PickingLoadFetcher.setComponent(this); + this.orderManagementContext = useState(contexts.orderManagement); + onMounted(this.onMounted); + onWillUnmount(this.onWillUnmount); + this.pos_picking_load = []; + this.current_picking_data = []; + } + get_unknown_products(picking_data) { + var self = this; + var unknown_products = []; + picking_data.line_ids.forEach(function (picking_line_data) { + var product = self.env.pos.db.get_product_by_id( + picking_line_data.product_id + ); + if (_.isUndefined(product)) { + unknown_products.push(picking_line_data.product_id); + } + }); + if (unknown_products.length) { + this.env.pos._addProducts(unknown_products); + return true; + } + } + + _onSelectPicking() { + var order = this.env.pos.get_order(); + order.load_from_picking_data(this.current_picking_data); + this.close(); + } + onMounted() { + PickingLoadFetcher.on("update", this, this.render); + setTimeout(() => PickingLoadFetcher.fetch(), 0); + } + onWillUnmount() { + PickingLoadFetcher.off("update", this); + } + get orders() { + return PickingLoadFetcher.get(); + } + _onSearch({detail: domain}) { + PickingLoadFetcher.setSearchDomain(domain); + PickingLoadFetcher.fetch(); + } + async _onClickSelectPicking(event) { + const clickedOrder = event.detail; + this.current_picking_data = false; + var origin_picking_id = clickedOrder.id; + var self = this; + var params = { + model: "stock.picking", + method: "load_picking_for_pos", + args: [origin_picking_id], + }; + rpc.query(params) + .then(function (picking_data) { + framework.unblockUI(); + if (self.check_picking(picking_data)) { + self.current_picking_data = picking_data; + self.pos_picking_load = clickedOrder; + self.onMounted(); + } + }) + .catch(function (error) { + framework.unblockUI(); + self.handle_errors(error); + }); + } + + check_picking(picking_data) { + var self = this; + var picking_selectable = true; + var unknown_products = []; + picking_data.line_ids.forEach(function (picking_line_data) { + var line_name = picking_line_data.name.replace("\n", " "); + var product = self.env.pos.db.get_product_by_id( + picking_line_data.product_id + ); + if (_.isUndefined(product)) { + unknown_products.push(line_name); + } + }); + if (unknown_products.length > 0) { + self.showPopup("ErrorPopup", { + title: self.env._t("Unknown Products"), + body: + self.env._t( + "Unable to load some picking lines because the" + + " products are not available in the POS" + + " cache.\n\n" + + "Please check that lines :\n\n * " + ) + unknown_products.join("; \n *"), + }); + picking_selectable = false; + } + + // Check if the partner is unknown + var partner = self.env.pos.db.get_partner_by_id(picking_data.partner_id); + + if (_.isUndefined(partner)) { + self.showPopup("ErrorPopup", { + title: self.env._t("Unknown Partner"), + body: self.env._t( + "Unable to load this picking because the partner" + + " is not known in the Point Of Sale" + + " as a customer" + ), + }); + picking_selectable = false; + } + + // Check if the picking is still loaded in another PoS tab + self.env.pos.db.get_unpaid_orders().forEach(function (order) { + if (order.origin_picking_id === picking_data.id) { + self.showPopup("ErrorPopup", { + title: self.env._t("Picking Still Loaded"), + body: + self.env._t( + "Unable to load this picking because it has" + + " been loaded in another draft" + + " PoS Order :\n\n" + ) + order.name, + }); + picking_selectable = false; + } + }); + + // Check if the picking has still been handled in another PoS Order + self.env.pos.db.get_orders().forEach(function (order) { + if (order.origin_picking_id.id === picking_data.id) { + self.showPopup("ErrorPopup", { + title: self.env._t("Picking Still Loaded"), + body: + self.env._t( + "Unable to load this picking because it has" + + " been loaded in another confirmed" + + " PoS Order :\n\n" + ) + order.name, + }); + picking_selectable = false; + } + }); + return picking_selectable; + } + + handle_errors(error) { + var self = this; + if (parseInt(error.code, 10) === 200) { + // Business Logic Error, not a connection problem + self.showPopup("ErrorPopup", { + title: error.data.message || self.env._t("Server Error"), + body: + error.data.debug || + self.env._t( + "The server encountered an error while" + + " receiving your order." + ), + }); + } else { + self.showPopup("ErrorPopup", { + title: self.env._t("Connection error"), + body: self.env._t( + "Can not execute this action because the POS" + + " is currently offline" + ), + }); + } + } + } + LoadPickingScreenWidget.template = "LoadPickingScreenWidget"; + LoadPickingScreenWidget.hideOrderSelector = true; + Registries.Component.add(LoadPickingScreenWidget); + return LoadPickingScreenWidget; +}); diff --git a/pos_picking_load/static/src/js/Screen/PickingLoadControlPanel.js b/pos_picking_load/static/src/js/Screen/PickingLoadControlPanel.js new file mode 100644 index 0000000000..ebcfb3f456 --- /dev/null +++ b/pos_picking_load/static/src/js/Screen/PickingLoadControlPanel.js @@ -0,0 +1,41 @@ +odoo.define("pos_picking_load.PickingLoadControlPanel", function (require) { + "use strict"; + /* eslint-disable no-undef */ + + const {useAutofocus, useListener} = require("@web/core/utils/hooks"); + const PosComponent = require("point_of_sale.PosComponent"); + const Registries = require("point_of_sale.Registries"); + const PickingLoadFetcher = require("pos_picking_load.PickingLoadFetcher"); + const contexts = require("point_of_sale.PosContext"); + const {useState} = owl; + + class PickingLoadControlPanel extends PosComponent { + setup() { + super.setup(); + this.orderManagementContext = useState(contexts.orderManagement); + useListener("clear-search", this._onClearSearch); + useAutofocus(); + PickingLoadFetcher.setSearchDomain(this._computeDomain()); + } + onInputKeydown(event) { + if (event) { + this.trigger("search", this._computeDomain()); + } + } + + _computeDomain() { + const input = this.orderManagementContext.searchString.trim(); + if (!input) return ""; + return input; + } + _onClearSearch() { + this.orderManagementContext.searchString = ""; + this.onInputKeydown({key: "Enter"}); + } + } + PickingLoadControlPanel.template = "PickingLoadControlPanel"; + + Registries.Component.add(PickingLoadControlPanel); + + return PickingLoadControlPanel; +}); diff --git a/pos_picking_load/static/src/js/Screen/PickingLoadFetcher.js b/pos_picking_load/static/src/js/Screen/PickingLoadFetcher.js new file mode 100644 index 0000000000..a458810cfd --- /dev/null +++ b/pos_picking_load/static/src/js/Screen/PickingLoadFetcher.js @@ -0,0 +1,65 @@ +odoo.define("pos_picking_load.PickingLoadFetcher", function (require) { + "use strict"; + /* eslint-disable no-undef */ + const {Gui} = require("point_of_sale.Gui"); + const {isConnectionError} = require("point_of_sale.utils"); + + const {EventBus} = owl; + + class PickingLoadFetcher extends EventBus { + constructor() { + super(); + this.ordersToShow = []; + } + + async fetch() { + try { + this.ordersToShow = await this._fetch(); + this.trigger("update"); + } catch (error) { + if (isConnectionError(error)) { + Gui.showPopup("ErrorPopup", { + title: this.comp.env._t("Network Error"), + body: this.comp.env._t("Unable to fetch orders if offline."), + }); + Gui.setSyncStatus("error"); + } else { + throw error; + } + } + } + + async _fetch() { + const picking_orders = await this._getOrderIdsForCurrentPage(); + return picking_orders; + } + async _getOrderIdsForCurrentPage() { + const pickingOrders = await this.rpc({ + model: "stock.picking", + method: "search_pickings_for_pos", + args: [this.searchDomain || "", this.comp.env.pos.pos_session.id], + }); + // _.findWhere(pickingOrders, {id: this.comp.current_picking_data.id}) + return pickingOrders; + } + /* eslint-disable */ + get(id) { + return this.ordersToShow; + } + setSearchDomain(searchDomain) { + this.searchDomain = searchDomain; + } + setComponent(comp) { + this.comp = comp; + return this; + } + async rpc() { + Gui.setSyncStatus("connecting"); + const result = await this.comp.rpc(...arguments); + Gui.setSyncStatus("connected"); + return result; + } + } + + return new PickingLoadFetcher(); +}); diff --git a/pos_picking_load/static/src/js/Screen/PickingLoadList.js b/pos_picking_load/static/src/js/Screen/PickingLoadList.js new file mode 100644 index 0000000000..029215b955 --- /dev/null +++ b/pos_picking_load/static/src/js/Screen/PickingLoadList.js @@ -0,0 +1,34 @@ +odoo.define("pos_picking_load.PickingLoadList", function (require) { + "use strict"; + /* eslint-disable no-undef */ + const {useListener} = require("@web/core/utils/hooks"); + const PosComponent = require("point_of_sale.PosComponent"); + const Registries = require("point_of_sale.Registries"); + + const {useState} = owl; + + class PickingLoadList extends PosComponent { + setup() { + super.setup(); + useListener("click-order", this._onClickOrder); + this.state = useState({ + highlightedOrder: this.props.initHighlightedOrder || null, + }); + } + + get highlightedOrder() { + return this.props.initHighlightedOrder; + } + + _onClickOrder({detail: order}) { + this.state.pos_picking_load = order; + this.state.highlightedOrder = order; + } + } + + PickingLoadList.template = "PickingLoadList"; + + Registries.Component.add(PickingLoadList); + + return PickingLoadList; +}); diff --git a/pos_picking_load/static/src/js/Screen/PickingLoadRow.js b/pos_picking_load/static/src/js/Screen/PickingLoadRow.js new file mode 100644 index 0000000000..d9cb866825 --- /dev/null +++ b/pos_picking_load/static/src/js/Screen/PickingLoadRow.js @@ -0,0 +1,45 @@ +odoo.define("pos_picking_load.PickingLoadRow", function (require) { + "use strict"; + + const PosComponent = require("point_of_sale.PosComponent"); + const Registries = require("point_of_sale.Registries"); + + class PickingLoadRow extends PosComponent { + get order() { + return this.props.order; + } + get highlighted() { + const highlightedOrder = this.props.highlightedOrder; + return !highlightedOrder + ? false + : highlightedOrder.backendId === this.props.order.backendId; + } + get isHighlighted() { + if ( + this.props.highlightedOrder && + this.props.highlightedOrder.id === this.props.order.id + ) { + return this.props.highlightedOrder.id; + } + } + + get name() { + return this.order.name; + } + get scheduled_date() { + return moment(this.order.scheduled_date).format("YYYY-MM-DD hh:mm A"); + } + get customer() { + const partner = this.order.partner_id; + return partner ? partner[1] : null; + } + get origin() { + return this.order.origin; + } + } + PickingLoadRow.template = "PickingLoadRow"; + + Registries.Component.add(PickingLoadRow); + + return PickingLoadRow; +}); diff --git a/pos_picking_load/static/src/js/db.js b/pos_picking_load/static/src/js/db.js new file mode 100644 index 0000000000..4ac20e5049 --- /dev/null +++ b/pos_picking_load/static/src/js/db.js @@ -0,0 +1,57 @@ +odoo.define("pos_picking_load.db", function (require) { + "use strict"; + + var {Order} = require("point_of_sale.models"); + const Registries = require("point_of_sale.Registries"); + + const PosPickingOrder = (Order) => + class PosPickingOrder extends Order { + load_from_picking_data(picking_data) { + var self = this; + var partner = this.pos.db.get_partner_by_id(picking_data.partner_id); + this.origin_picking_id = picking_data.id; + this.origin_picking_name = picking_data.name; + this.set_partner(partner); + picking_data.line_ids.forEach(function (picking_line_data) { + // Create new line and add it to the current order + var product = self.pos.db.get_product_by_id( + picking_line_data.product_id + ); + var order_line_data = + self.prepare_order_line_from_picking_line_data( + product, + picking_line_data + ); + self.add_product(product, order_line_data); + }); + } + + prepare_order_line_from_picking_line_data(product, picking_line_data) { + return { + quantity: picking_line_data.quantity, + price: picking_line_data.price_unit || product.price, + discount: picking_line_data.discount || 0.0, + }; + } + + export_for_printing() { + var json = super.export_for_printing(...arguments); + json.origin_picking_name = this.origin_picking_name; + return json; + } + + export_as_JSON() { + const json = super.export_as_JSON(...arguments); + json.origin_picking_id = this.origin_picking_id; + json.origin_picking_name = this.origin_picking_name; + return json; + } + + init_from_JSON(json) { + super.init_from_JSON(...arguments); + this.origin_picking_id = json.origin_picking_id; + this.origin_picking_name = json.origin_picking_name; + } + }; + Registries.Model.extend(Order, PosPickingOrder); +}); diff --git a/pos_picking_load/static/src/xml/LoadPickingButtonWidget.xml b/pos_picking_load/static/src/xml/LoadPickingButtonWidget.xml new file mode 100644 index 0000000000..575e01cd05 --- /dev/null +++ b/pos_picking_load/static/src/xml/LoadPickingButtonWidget.xml @@ -0,0 +1,9 @@ + + + +
+ + +
+
+
diff --git a/pos_picking_load/static/src/xml/screen/LoadPickingScreenWidget.xml b/pos_picking_load/static/src/xml/screen/LoadPickingScreenWidget.xml new file mode 100644 index 0000000000..464bc11a37 --- /dev/null +++ b/pos_picking_load/static/src/xml/screen/LoadPickingScreenWidget.xml @@ -0,0 +1,16 @@ + + + +
+
+
+ + +
+
+
+
+
diff --git a/pos_picking_load/static/src/xml/screen/PickingLoadControlPanel.xml b/pos_picking_load/static/src/xml/screen/PickingLoadControlPanel.xml new file mode 100644 index 0000000000..f7dd63e3cf --- /dev/null +++ b/pos_picking_load/static/src/xml/screen/PickingLoadControlPanel.xml @@ -0,0 +1,37 @@ + + + +
+
+ + Back +
+ +
+ + Select +
+
+
+
diff --git a/pos_picking_load/static/src/xml/screen/PickingLoadList.xml b/pos_picking_load/static/src/xml/screen/PickingLoadList.xml new file mode 100644 index 0000000000..8041831c15 --- /dev/null +++ b/pos_picking_load/static/src/xml/screen/PickingLoadList.xml @@ -0,0 +1,18 @@ + + + +
+
+
Name
+
Customer
+
Scheduled Date
+
Source Document
+
+
+ + + +
+
+
+
diff --git a/pos_picking_load/static/src/xml/screen/PickingLoadRow.xml b/pos_picking_load/static/src/xml/screen/PickingLoadRow.xml new file mode 100644 index 0000000000..5bcbf92420 --- /dev/null +++ b/pos_picking_load/static/src/xml/screen/PickingLoadRow.xml @@ -0,0 +1,31 @@ + + + +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
diff --git a/pos_picking_load/tests/test_pos_picking_load.py b/pos_picking_load/tests/test_pos_picking_load.py index d31ee87d2b..128871ed60 100644 --- a/pos_picking_load/tests/test_pos_picking_load.py +++ b/pos_picking_load/tests/test_pos_picking_load.py @@ -35,7 +35,7 @@ def test_pos_picking_load(self): config.write({"picking_type_id": sale_order.picking_ids.picking_type_id.id}) # Open a new session - config.open_session_cb() + config.open_existing_session_cb() session = self.env["pos.session"].search([("config_id", "=", config.id)])[0] date_now = fields.Datetime.now() diff --git a/pos_picking_load/views/view_pos_config.xml b/pos_picking_load/views/view_pos_config.xml index 8cea4fa816..abfc79684a 100644 --- a/pos_picking_load/views/view_pos_config.xml +++ b/pos_picking_load/views/view_pos_config.xml @@ -5,8 +5,7 @@ pos.config - - +

Picking Load

@@ -16,21 +15,22 @@