Files
sale-tools/sale_outstanding/README.md
2026-06-02 12:46:25 +02:00

111 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sale Outstanding
![Production/Stable](https://img.shields.io/badge/maturity-Production%2FStable-green.png)
![License: AGPL-3](https://img.shields.io/badge/licence-AGPL--3-blue.png)
![GitHub](https://img.shields.io/badge/github-elabore--coop%2Fsale--tools-lightgray.png?logo=github)
This module computes and displays two financial indicators on sale orders:
- **Outstanding (Untaxed)**: total amount of order lines that have been delivered but not yet invoiced.
- **To Do (Untaxed)**: total amount of order lines that have not yet been fully delivered
(excluding services billed on order with the `ordered_timesheet` policy).
Both values are visible directly on the sale order form and in the list view
(columns hidden by default, toggleable via the column selector).
## Table of Contents
- [Description](#description)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Known Issues / Roadmap](#known-issues--roadmap)
- [Bug Tracker](#bug-tracker)
- [Credits](#credits)
## Description
This module extends the `sale.order` model with two computed, stored monetary fields.
### `sum_outstanding` — Outstanding (Untaxed)
Computed as the sum across all order lines of:
```
qty_to_invoice × price_unit
```
This amount represents what has been delivered to the customer but not yet invoiced.
### `sum_pending_work` — To Do (Untaxed)
Computed as the sum across all order lines of:
```
(ordered_qty delivered_qty) × price_unit
```
Services whose invoicing policy is `ordered_timesheet` are excluded from this calculation,
as they are invoiced upon order confirmation rather than upon delivery.
This amount represents work that still needs to be delivered and has not yet been invoiced.
### Display
- **Form view**: both fields appear in an `oe_subtotal_footer` group placed after the order
totals block.
- **List view**: both columns are added after `amount_tax`, hidden by default, with column
footer totals.
## Installation
This module depends on:
- `base` (Odoo core)
- `sale` (Odoo core)
Use the standard Odoo module installation procedure to install `sale_outstanding`.
## Configuration
No specific configuration is required. The fields are computed automatically.
To display the columns in the sale order list view, click the column selector icon
(top-right corner of the list) and enable **Outstanding (Untaxed)** and/or **To Do (Untaxed)**.
## Usage
1. Open a confirmed sale order for which deliveries have been (partially or fully) completed.
2. The **Outstanding (Untaxed)** field shows the amount delivered but not yet invoiced.
3. The **To Do (Untaxed)** field shows the amount of work not yet delivered.
4. In the sale order list view, enable the optional columns for a global overview of outstanding amounts.
## Known Issues / Roadmap
- Amounts are computed excluding taxes. A possible improvement would be to add tax-included variants.
- The filter on `service_policy == 'ordered_timesheet'` is hard-coded; a configurable setting
would allow more flexibility.
## Bug Tracker
Bugs are tracked on [our issue tracker](https://github.com/elabore-coop/sale-tools/issues).
If you encounter a problem, please check whether your issue has already been reported.
If you are the first to spot it, help us by providing detailed and actionable feedback.
## Credits
### Contributors
- Stéphan Sainléger \<stephan@sainleger.fr\>
### Funders
The development of this module has been financially supported by:
- [Elabore](https://elabore.coop)
- [Datactivist](https://datactivist.coop)
### Maintainer
This module is maintained by [Elabore](https://elabore.coop).