Skip to content
Open
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
152 changes: 152 additions & 0 deletions spreadsheet_quotation/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

================================
Spreadsheet Quotation Calculator
================================

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

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |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%2Fspreadsheet-lightgray.png?logo=github
:target: https://github.com/OCA/spreadsheet/tree/19.0/spreadsheet_quotation
:alt: OCA/spreadsheet
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/spreadsheet-19-0/spreadsheet-19-0-spreadsheet_quotation
: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/spreadsheet&target_branch=19.0
:alt: Try me on Runboat

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

This module allows linking spreadsheet calculators to quotation
templates in Odoo. When a sale order is created from a template that has
a calculator, a copy of the spreadsheet is automatically assigned to the
order with a pre-configured global filter so the ODOO.LIST formulas
display only that order's lines.

The spreadsheet calculator is built on top of ``spreadsheet_oca`` and
uses ODOO.LIST formulas to display sale order line data (product,
quantity, unit price, etc.). Users can add custom formulas,
calculations, and charts to build complex pricing logic.

A **Field Sync** side panel lets users map spreadsheet columns to sale
order line fields. This column-based approach is more intuitive than
cell-by-cell mapping and makes it easy to push calculated values back to
the sale order.

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

Usage
=====

Setting up a quotation calculator

::


1. Go to **Sales > Configuration > Quotation Templates**.
2. Open or create a quotation template.
3. Click **Create Calculator** next to the "Quotation Calculator" field.
4. A wizard will open; set a name and number of initial rows, then click
**Create Calculator**.
5. The spreadsheet editor opens with a pre-configured list of
``sale.order.line`` fields.
6. Customize the spreadsheet: add formulas, charts, or extra columns as
needed.
7. Save the spreadsheet.

Using the calculator on a sale order

1. Create a new quotation and select the template that has a calculator.
2. A **Calculator** smart button appears on the sale order form.
3. Click it to open the spreadsheet filtered to the current order's
lines.
4. Edit values in the spreadsheet.
5. Use **File > Field Sync** to map columns to sale order line fields.
6. Save the spreadsheet from the editor.

Syncing values back to the order

::


After configuring field sync mappings in the spreadsheet, the mapped
column values can be pushed to the corresponding sale order line fields
when saving the spreadsheet or from the sale order form.

Step-by-step guide
~~~~~~~~~~~~~~~~~~

[1. Add quotation templates in settings](image1.png)
[2. Create a new template & create a calculator](image2.png)
[3. Map Sync fields > columns to fields](image3.png)
[4. Save template > create a quotation from template and open calculator](image4.png)
[5. add new lines to the calculator, save and sync](image5.png)
[6. Add new products if any](image6.png)
[7. Quotation updated!!!](image7.png)

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/spreadsheet/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/spreadsheet/issues/new?body=module:%20spreadsheet_quotation%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
-------

* Cloud Lotus

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

- OCA Contributors

- `Cloud Lotus <https://cloudlotus.net>`__

- Cifuentes Roberto

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.

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

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions spreadsheet_quotation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright 2026 Odoo Community Association (OCA)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
from . import wizards
30 changes: 30 additions & 0 deletions spreadsheet_quotation/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2026 Odoo Community Association (OCA)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Spreadsheet Quotation Calculator",
"summary": (
"Use spreadsheets as quotation calculators linked to sale order templates"
),
"version": "19.0.1.0.0",
"license": "AGPL-3",
"author": "Odoo Community Association (OCA), Cloud Lotus",
"website": "https://github.com/OCA/spreadsheet",
"depends": ["spreadsheet_oca", "sale_management"],
"data": [
"security/ir.model.access.csv",
"wizards/spreadsheet_quotation_create.xml",
"views/sale_order_template_views.xml",
"views/sale_order_views.xml",
],
"assets": {
"spreadsheet.o_spreadsheet": [
"spreadsheet_quotation/static/src/quotation_spreadsheet/field_sync_plugin.esm.js",
"spreadsheet_quotation/static/src/quotation_spreadsheet/field_sync_side_panel.esm.js",
"spreadsheet_quotation/static/src/quotation_spreadsheet/field_sync_side_panel.xml",
"spreadsheet_quotation/static/src/quotation_spreadsheet/quotation_spreadsheet.xml",
],
},
"installable": True,
"development_status": "Alpha",
}
Loading
Loading