Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
43391fa
[8.0] [ADD] pos order to sale order (w/o picking) (#188)
legalsylvain Mar 9, 2018
5da2bcf
[FIX] taxes was dropped in the sale order lines. [IMP] Remove limitat…
legalsylvain Mar 23, 2018
cee5bb0
[BUMP] version
legalsylvain Mar 23, 2018
e652e52
Coquille + ajout (BL) pour boutons "vente livrée"
Mar 30, 2018
7583ad9
[FIX] por_order_to_sale_order: PEP8
pedrobaeza Apr 28, 2018
c8cc3ca
[UPD] Update pos_order_to_sale_order.pot
oca-travis Jun 22, 2018
2649a5e
[FIX] do not allow to create sale order several times;
legalsylvain Dec 11, 2018
f79c0e6
[UPD] README.rst
OCA-git-bot Apr 17, 2019
6fc40a3
[UPD] Update pos_order_to_sale_order.pot
oca-travis Apr 17, 2019
638d157
Update translation files
oca-transbot Apr 17, 2019
3f67c5b
[REF] pos_order_to_sale_order: Black python code
legalsylvain Jan 18, 2020
6f44e84
[MIG] pos_order_to_sale_order: Migration to 12.0
legalsylvain Jan 18, 2020
7e5f6ab
[FIX] remove commented code
legalsylvain Jul 4, 2020
a4842e2
[UPD] Update pos_order_to_sale_order.pot
oca-travis Jul 4, 2020
5a43253
[UPD] README.rst
OCA-git-bot Jul 4, 2020
8fb9415
pos_order_to_sale_order 12.0.1.0.1
OCA-git-bot Jul 4, 2020
73c34d9
Update translation files
oca-transbot Jul 6, 2020
0ece902
Added translation using Weblate (Spanish)
danimv5 Jul 27, 2020
bd5a7c1
Translated using Weblate (Spanish)
danimv5 Jul 27, 2020
92a3d37
Added translation using Weblate (Portuguese (Brazil))
augustodinizl Aug 5, 2020
893007c
Translated using Weblate (Portuguese (Brazil))
augustodinizl Aug 5, 2020
4883025
pos_order_to_sale_order: Make JS extendable
gaikaz Sep 11, 2020
9b0b4c1
pos_order_to_sale_order 12.0.1.0.2
OCA-git-bot Sep 11, 2020
1074f2f
[FIX] pos_order_to_sale_order : dependencies to sale module is now re…
legalsylvain Sep 25, 2020
128a69e
[FIX] pos_order_to_sale_order : make the module working if get_order(…
legalsylvain Sep 25, 2020
467ca13
[UPD] Update pos_order_to_sale_order.pot
oca-travis May 14, 2021
d89bc0d
pos_order_to_sale_order 12.0.1.0.3
OCA-git-bot May 14, 2021
443c32f
Update translation files
oca-transbot May 14, 2021
2a3ef49
[UPD] Update pos_order_to_sale_order.pot
oca-travis May 14, 2021
04b6f11
Update translation files
oca-transbot May 14, 2021
e656367
[IMP] pos_order_to_sale_order: black, isort, prettier
manuelregidor Jun 28, 2021
47907d9
[MIG]pos_order_to_sale_order: Migration to 13.0
manuelregidor Jun 28, 2021
92c4b89
[UPD] Update pos_order_to_sale_order.pot
oca-travis Jul 8, 2021
dead281
[UPD] README.rst
OCA-git-bot Jul 8, 2021
9b2895b
[PORT] pos_order_to_sale_order from 13.0 to 16.0:
legalsylvain Oct 6, 2022
6e29555
[UPD] Update pos_order_to_sale_order.pot
Oct 16, 2022
a2a698c
[UPD] README.rst
OCA-git-bot Oct 16, 2022
b82e19a
Update translation files
weblate Oct 17, 2022
703aabe
[UPD] Update pos_order_to_sale_order.pot
Nov 28, 2022
af47397
Update translation files
weblate Nov 28, 2022
dfa7863
[FIX] pos_order_to_sale_order
legalsylvain Dec 20, 2022
b1135f9
[UPD] README.rst
OCA-git-bot Dec 20, 2022
971451f
pos_order_to_sale_order 16.0.1.0.2
OCA-git-bot Dec 20, 2022
a61584d
Added translation using Weblate (Italian)
mymage Mar 30, 2023
d79c31f
Translated using Weblate (Italian)
mymage Mar 30, 2023
f176e9e
Translated using Weblate (Spanish)
FLNerea Mar 31, 2023
230443d
[FIX] pos_order_to_sale_order: Added return for CreateOrderButton com…
geomer198 Jul 10, 2023
753d5ef
pos_order_to_sale_order 16.0.1.0.3
OCA-git-bot Jul 10, 2023
3e9e5bd
[IMP] pos_order_to_sale_order: Improvement for the ability to use the…
GabbasovDinar Aug 5, 2023
4679eac
pos_order_to_sale_order 16.0.1.0.4
OCA-git-bot Aug 6, 2023
5672cf6
[16.0][REF] pos_order_to_sale_order: create method optimization
GabbasovDinar Aug 14, 2023
377b06d
pos_order_to_sale_order 16.0.1.0.5
OCA-git-bot Aug 16, 2023
06e25fd
Translated using Weblate (Spanish)
Ivorra78 Aug 22, 2023
b587dcf
Translated using Weblate (Spanish)
lbpatri Aug 22, 2023
a46ef34
Translated using Weblate (Spanish)
lbpatri Aug 22, 2023
0c6fa64
Translated using Weblate (Spanish)
Ivorra78 Aug 22, 2023
ef81b41
[UPD] README.rst
OCA-git-bot Sep 3, 2023
7700d01
[FIX] pos_order_to_sale_order : make test compatible with pos_minimiz…
legalsylvain Sep 15, 2023
6407d9f
Update translation files
weblate Oct 9, 2023
48fa841
Translated using Weblate (Italian)
mymage Oct 13, 2023
b667031
[REF] pos_order_to_sale_order : add sale order line sequence in the p…
legalsylvain Nov 10, 2023
e4788b8
[IMP] pos_order_to_sale_order : use customer_note to prepare sale ord…
legalsylvain Nov 10, 2023
eb0cc23
[IMP] pos_order_to_sale_order : performance : directly overload _get_…
legalsylvain Nov 10, 2023
f0ba524
[BOT] post-merge updates
OCA-git-bot Nov 24, 2023
f1f7ad7
[IMP] pos_order_to_sale_order: Code is refactored and tests are updated.
geomer198 Nov 25, 2023
b5d0620
[BOT] post-merge updates
OCA-git-bot Nov 30, 2023
f900ff4
Translated using Weblate (Portuguese (Brazil))
May 22, 2024
6d2285b
[IMP] pos_order_to_sale_order: use test helpers
ivantodorovich Jul 1, 2024
eb18a42
[BOT] post-merge updates
OCA-git-bot Jul 2, 2024
ff68e91
[IMP] pos_order_to_sale_order: pre-commit auto fixes
chaule97 Aug 21, 2024
8774aa8
[MIG] pos_order_to_sale_order: Migration to 17.0
chaule97 Aug 21, 2024
1c005f9
[UPD] Update pos_order_to_sale_order.pot
Sep 24, 2024
0fc57c5
[BOT] post-merge updates
OCA-git-bot Sep 24, 2024
225ff2a
Update translation files
weblate Sep 24, 2024
08b0df6
Translated using Weblate (Italian)
mymage Sep 25, 2024
f973968
Added translation using Weblate (Catalan)
mtbochaca Dec 16, 2024
0a888a9
Translated using Weblate (Catalan)
mtbochaca Dec 16, 2024
c4f04e3
[FIX] pos_order_to_sale_order: recompute taxes
danielduqma Feb 21, 2025
cebefb5
[BOT] post-merge updates
OCA-git-bot Feb 25, 2025
85d68e3
[MIG] pos_order_to_sale_order: Migration to 18.0
benwillig Jul 17, 2025
2912298
[CHG] pos_order_to_sale_order: store the pos session on the created s…
benwillig Sep 26, 2025
7d8f7f2
[MIG] pos_order_to_sale_order: pre-commit auto fixes
glitchov Feb 4, 2026
0731135
[MIG] pos_order_to_sale_order: Migration to 19.0
glitchov Feb 4, 2026
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
146 changes: 146 additions & 0 deletions pos_order_to_sale_order/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=======================
PoS Order To Sale Order
=======================

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

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |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_order_to_sale_order
: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_order_to_sale_order
: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 extends the functionality of point of sale to allow sale
orders creation from the Point of Sale.

In the POS UI, button has been added to create a sale order and discard
the current POS order.

This module is usefull in many cases, for exemple :

- take orders with a very simple interface
- if you have some customers that come every day in your shop, but want
to have a unique invoice at the end of the month. With that module,
you can create a sale order and deliver products every time to keep
your stock value correct, and to create a unique invoice, when you
want.

**Table of contents**

.. contents::
:local:

Configuration
=============

- Go to Point Of Sale / Configuration / Point of Sale
- Check the box 'Create Sale Orders'
- Select the desired default behaviour

|image_setting|

.. |image_setting| image:: https://raw.githubusercontent.com/OCA/pos/19.0/pos_order_to_sale_order/static/description/res_config_settings_form.png

Usage
=====

- Open your Point of sale
- Create a new order and select products
- Select a customer
- Click on the "Create Order" button

|image1|

Four options are available (depending on the PoS settings):

- **Create a draft Order** A new sale order in a draft mode will be
created that can be changed later.
- **Create a Confirmed Order** A new sale order will be created and
confirmed.
- **Create Delivered Sale Order** A new sale order will be created and
confirmed. the associated picking will be marked as delivered.
- **Create Invoiced Sale Order** A new sale order will be created and
confirmed. the associated picking will be marked as delivered. An
invoice will be created and confirmed.

|image2|

.. |image1| image:: https://raw.githubusercontent.com/OCA/pos/19.0/pos_order_to_sale_order/static/description/pos_frontend_button.png
.. |image2| image:: https://raw.githubusercontent.com/OCA/pos/19.0/pos_order_to_sale_order/static/description/pos_frontend_popup.png

Development
===========

- Some prepare functions are available in the ``sale.order`` model and
``sale.order.line`` models to overload the creation of the sale order.

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_order_to_sale_order%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
-------

* GRAP

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

- Sylvain LE GAL (https://www.twitter.com/legalsylvain)
- Chau Le (chaulb@trobz.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-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
:target: https://github.com/legalsylvain
:alt: legalsylvain

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

|maintainer-legalsylvain|

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

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions pos_order_to_sale_order/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
30 changes: 30 additions & 0 deletions pos_order_to_sale_order/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# 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).

{
"name": "PoS Order To Sale Order",
"version": "19.0.1.0.0",
"author": "GRAP,Odoo Community Association (OCA)",
"category": "Point Of Sale",
"license": "AGPL-3",
"depends": ["point_of_sale", "sale_stock"],
"maintainers": ["legalsylvain"],
"development_status": "Production/Stable",
"website": "https://github.com/OCA/pos",
"data": ["views/view_res_config_settings.xml"],
"assets": {
"point_of_sale._assets_pos": [
"pos_order_to_sale_order/static/src/components/control_buttons/control_buttons.esm.js",
"pos_order_to_sale_order/static/src/components/control_buttons/control_buttons.xml",
"pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.esm.js",
"pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.xml",
"pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.esm.js",
"pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml",
],
"web.assets_tests": [
"pos_order_to_sale_order/static/tests/tours/**/*",
],
},
"installable": True,
}
180 changes: 180 additions & 0 deletions pos_order_to_sale_order/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_order_to_sale_order
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-12-16 10:06+0000\n"
"Last-Translator: mtbochaca <mtbochaca@gmail.com>\n"
"Language-Team: none\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 5.6.2\n"

#. module: pos_order_to_sale_order
#: model:ir.model,name:pos_order_to_sale_order.model_res_config_settings
msgid "Config Settings"
msgstr "Ajustos de configuració"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0
#, python-format
msgid "Create Confirmed Sale Order"
msgstr "Crear comanda de venda confirmada"

#. module: pos_order_to_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order
#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form
msgid "Create Confirmed Sale Orders"
msgstr "Crear comandes de venda confirmades"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0
#, python-format
msgid "Create Delivered Sale Order"
msgstr "Crear comanda de venda entregada"

#. module: pos_order_to_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_create_delivered_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_delivered_sale_order
#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form
msgid "Create Delivered Sale Orders"
msgstr "Crear comandes de venda entregades"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0
#, python-format
msgid "Create Draft Sale Order"
msgstr "Crear esborrany de comandes de venda"

#. module: pos_order_to_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_create_draft_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_draft_sale_order
#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form
msgid "Create Draft Sale Orders"
msgstr "Crear esborrany de comandes de venda"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0
#, python-format
msgid "Create Invoiced Sale Order"
msgstr "Crear comanda de venda facturada"

#. module: pos_order_to_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_create_invoiced_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_invoiced_sale_order
#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form
msgid "Create Invoiced Sale Orders"
msgstr "Crear comandes de venda facturades"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0
#, python-format
msgid "Create Order"
msgstr "Crear comanda de venda"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0
#, python-format
msgid "Create Sale Order"
msgstr "Crear comanda de venda"

#. module: pos_order_to_sale_order
#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_create_sale_order
msgid "Create Sale Orders"
msgstr "Crear comandes de venda"

#. module: pos_order_to_sale_order
#. odoo-javascript
#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0
#, python-format
msgid "Discard"
msgstr "Descartar"

#. module: pos_order_to_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order
msgid ""
"If checked, the cashier will have the possibility to create a confirmed Sale"
" Order, based on the current draft PoS Order."
msgstr ""
"Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda "
"confirmada, basada en l'esborrany actual de la comanda del TPV."

#. module: pos_order_to_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_invoiced_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_invoiced_sale_order
msgid ""
"If checked, the cashier will have the possibility to create a confirmed sale Order, based on the current draft PoS Order.\n"
" the according picking will be marked as delivered.\n"
" The Invoice will be generated and confirm.\n"
" Only invoice payment process will be possible."
msgstr ""
"Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda "
"confirmada, basada en l'esborrany actual de la comanda del TPV.\n"
"La recollida corresponent es marcarà com a entregada.\n"
" La factura es generarà y es confirmarà.\n"
" Només serà possible el procés de pagament de la factura."

#. module: pos_order_to_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_delivered_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_delivered_sale_order
msgid ""
"If checked, the cashier will have the possibility to create a confirmed sale Order, based on the current draft PoS Order.\n"
" the according picking will be marked as delivered. Only invoices process will be possible."
msgstr ""
"Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda "
"confirmada, basada en l'esborrany actual de la comanda del TPV.\n"
" la recollida corresponent es marcarà com a entregada. Només el procés de "
"factures serà possible."

#. module: pos_order_to_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_draft_sale_order
#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_draft_sale_order
msgid ""
"If checked, the cashier will have the possibility to create a draft Sale "
"Order, based on the current draft PoS Order."
msgstr ""
"Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda "
"confirmada, basada en l'esborrany actual de la comanda del TPV."

#. module: pos_order_to_sale_order
#. odoo-python
#: code:addons/pos_order_to_sale_order/models/sale_order.py:0
#, python-format
msgid "Point of Sale %s"
msgstr "Punt de venda %s"

#. module: pos_order_to_sale_order
#: model:ir.model,name:pos_order_to_sale_order.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Configuració del punt de venda"

#. module: pos_order_to_sale_order
#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form
msgid "Sale Order Creation"
msgstr "Creació de la comanda de venda"

#. module: pos_order_to_sale_order
#: model:ir.model,name:pos_order_to_sale_order.model_sale_order
msgid "Sales Order"
msgstr "Comandes de venda"

#. module: pos_order_to_sale_order
#: model:ir.model,name:pos_order_to_sale_order.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línia de la comanda de venda"
Loading
Loading