Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions pos_edit_order_line/i18n/de.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_edit_order_line
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-06-25 21:46+0000\n"
"Last-Translator: intero-chd <c.dominiak@intero-technologies.de>\n"
"Language-Team: none\n"
"Language: de\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.15.2\n"

#. module: pos_edit_order_line
#: model:ir.model.fields,field_description:pos_edit_order_line.field_pos_config__allow_edit_order_line
#: model:ir.model.fields,field_description:pos_edit_order_line.field_res_config_settings__pos_allow_edit_order_line
msgid "Allow Edit Order Line"
msgstr "Bearbeitung der Auftragsposition zulassen"

#. module: pos_edit_order_line
#: model_terms:ir.ui.view,arch_db:pos_edit_order_line.res_config_settings_view_form
msgid "Allow edit Order Line in popup"
msgstr "Bearbeitung der Auftragspositionen im Popup-Fenster zulassen"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Cancel"
msgstr "Abbrechen"

#. module: pos_edit_order_line
#: model:ir.model,name:pos_edit_order_line.model_res_config_settings
msgid "Config Settings"
msgstr "Konfigurationseinstellungen"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Confirm"
msgstr "Bestätigen"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Discount"
msgstr "Rabatt"

#. module: pos_edit_order_line
#: model:ir.model.fields,field_description:pos_edit_order_line.field_pos_config__display_name
#: model:ir.model.fields,field_description:pos_edit_order_line.field_res_config_settings__display_name
msgid "Display Name"
msgstr "Anzeigename"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderButton.xml:0
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Edit Order Lines"
msgstr "Auftragspositionen bearbeiten"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/js/EditOrderButton.esm.js:0
msgid "Empty Order"
msgstr "Leerer Auftrag"

#. module: pos_edit_order_line
#: model:ir.model.fields,field_description:pos_edit_order_line.field_pos_config__id
#: model:ir.model.fields,field_description:pos_edit_order_line.field_res_config_settings__id
msgid "ID"
msgstr "ID"

#. module: pos_edit_order_line
#: model:ir.model,name:pos_edit_order_line.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Kassensystem Konfiguration"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Price excl. VAT"
msgstr "Preis exkl. Mehrwertsteuer"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Product"
msgstr "Produkt"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "Quantity"
msgstr "Menge"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/xml/EditOrderPopup.xml:0
msgid "UoM"
msgstr "Maßeinheit"

#. module: pos_edit_order_line
#. odoo-javascript
#: code:addons/pos_edit_order_line/static/src/js/EditOrderButton.esm.js:0
msgid "You need add some products first."
msgstr "Sie müssen zunächst einige Produkte hinzufügen."
32 changes: 32 additions & 0 deletions pos_partner_birthdate/i18n/de.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_partner_birthdate
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-06-25 21:46+0000\n"
"Last-Translator: intero-chd <c.dominiak@intero-technologies.de>\n"
"Language-Team: none\n"
"Language: de\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.15.2\n"

#. module: pos_partner_birthdate
#: model:ir.model,name:pos_partner_birthdate.model_res_partner
msgid "Contact"
msgstr "Kontakt"

#. module: pos_partner_birthdate
#: model:ir.model.fields,field_description:pos_partner_birthdate.field_res_partner__display_name
msgid "Display Name"
msgstr "Anzeigename"

#. module: pos_partner_birthdate
#: model:ir.model.fields,field_description:pos_partner_birthdate.field_res_partner__id
msgid "ID"
msgstr "ID"
108 changes: 108 additions & 0 deletions pos_sale_picking_keep/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

===========================
Keep sale pickings from PoS
===========================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:14008524ac2e970ae97eda09273f81e2fc25b02a6ccf008e85f4473f3d637815
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/19.0/pos_sale_picking_keep
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-19-0/pos-19-0-pos_sale_picking_keep
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module inhibits the manipulation that the point of sale mades over
the sales orders pickings, and the creation of new pickings under the
PoS picking type.

**Table of contents**

.. contents::
:local:

Use Cases / Context
===================

In some scenarios, you may not want that the point of sale (PoS) handles
the pickings of the products you are paying:

- Using the PoS as a pure payment terminal.
- When complex stock flows are not supplied by the PoS.

In that cases, it's better to keep the original sales pickings.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/pos/issues/new?body=module:%20pos_sale_picking_keep%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Tecnativa

Contributors
------------

- Tecnativa:

- Pedro M. Baeza
- Víctor Martínez

- Jarsa:

- Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

.. |maintainer-pedrobaeza| image:: https://github.com/pedrobaeza.png?size=40px
:target: https://github.com/pedrobaeza
:alt: pedrobaeza

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-pedrobaeza|

This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/19.0/pos_sale_picking_keep>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions pos_sale_picking_keep/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
18 changes: 18 additions & 0 deletions pos_sale_picking_keep/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2025 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Keep sale pickings from PoS",
"version": "19.0.1.0.0",
"category": "Point Of Sale",
"website": "https://github.com/OCA/pos",
"author": "Tecnativa, Odoo Community Association (OCA)",
"maintainers": ["pedrobaeza"],
"license": "AGPL-3",
"installable": True,
"depends": ["pos_sale", "sale_stock"],
"assets": {
"web.assets_tests": [
"pos_sale_picking_keep/static/tests/tours/**/*",
],
},
}
32 changes: 32 additions & 0 deletions pos_sale_picking_keep/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_sale_picking_keep
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-03-13 16:45+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\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.15.2\n"

#. module: pos_sale_picking_keep
#: model:ir.model,name:pos_sale_picking_keep.model_pos_order
msgid "Point of Sale Orders"
msgstr "Ordini punto vendita"

#. module: pos_sale_picking_keep
#: model:ir.model,name:pos_sale_picking_keep.model_pos_session
msgid "Point of Sale Session"
msgstr "Sessione punto vendita"

#. module: pos_sale_picking_keep
#: model:ir.model,name:pos_sale_picking_keep.model_sale_order_line
msgid "Sales Order Line"
msgstr "Riga ordine di vendita"
29 changes: 29 additions & 0 deletions pos_sale_picking_keep/i18n/pos_sale_picking_keep.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_sale_picking_keep
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0\n"
"Report-Msgid-Bugs-To: \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_sale_picking_keep
#: model:ir.model,name:pos_sale_picking_keep.model_pos_order
msgid "Point of Sale Orders"
msgstr ""

#. module: pos_sale_picking_keep
#: model:ir.model,name:pos_sale_picking_keep.model_pos_session
msgid "Point of Sale Session"
msgstr ""

#. module: pos_sale_picking_keep
#: model:ir.model,name:pos_sale_picking_keep.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
4 changes: 4 additions & 0 deletions pos_sale_picking_keep/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import pos_order
from . import pos_session
from . import sale_order_line
47 changes: 47 additions & 0 deletions pos_sale_picking_keep/models/pos_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2025 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models
from odoo.tools import config


class PosOrder(models.Model):
_inherit = "pos.order"

@api.model
def sync_from_ui(self, orders):
# Avoid the cancellation of the SO pickings
so_line_ids = []
for order_data in orders:
for command in order_data.get("lines", []):
if len(command) != 3:
continue # No create/update command
so_line_id = command[2].get("sale_order_line_id")
if so_line_id:
so_line_ids.append(so_line_id)
so_lines = self.env["sale.order.line"].browse(so_line_ids)
# confirm the unconfirmed sale orders that are linked to the sale order lines
# this is done also upstream, but we need to do it first for having already
# the pickings to make the trick
sale_orders = so_lines.order_id
for sale_order in sale_orders.filtered(lambda x: x.state in ["draft", "sent"]):
sale_order.action_confirm()
# Fake the pickings state before calling super for avoiding the move quantity
# reduction that is done upstream that effectively cancels the SO pickings
pickings = so_lines.move_ids.picking_id
pickings.state = "draft"
res = super().sync_from_ui(orders)
pickings._compute_state()
return res

def _create_order_picking(self):
# Nullify the creation of the pickings at this level
# We cannot use self.env.context.get("test_pos_sale_picking_keep") because
# the tours that run in the tests do not allow that context to be maintained.
# Therefore, we use self.config_id.name.
if (
config["test_enable"]
and self.config_id.name != "test_pos_sale_picking_keep"
):
# For not breaking tests of other modules
return super()._create_order_picking()
return True
Loading
Loading