add spreadsheet_dashboard_pos_cooperative & pos_dashboard_cooperative
This commit is contained in:
parent
86101218e9
commit
5247938b86
34 changed files with 7974 additions and 0 deletions
7
pos_dashboard_cooperative/readme/CONFIGURE.rst
Normal file
7
pos_dashboard_cooperative/readme/CONFIGURE.rst
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
No specific configuration is required after installation. The module
|
||||
auto-installs ``pos_margin``, ``web_dashboard_tile`` and
|
||||
``web_pivot_computed_measure`` if they are not already present.
|
||||
|
||||
To control who sees the new dashboards, adjust the standard POS
|
||||
security groups (``point_of_sale.group_pos_manager``) — the new analyses
|
||||
inherit the access rules already in place for ``report.pos.order``.
|
||||
1
pos_dashboard_cooperative/readme/CONTRIBUTORS.rst
Normal file
1
pos_dashboard_cooperative/readme/CONTRIBUTORS.rst
Normal file
|
|
@ -0,0 +1 @@
|
|||
* Criptomart <https://criptomart.net>
|
||||
24
pos_dashboard_cooperative/readme/DESCRIPTION.rst
Normal file
24
pos_dashboard_cooperative/readme/DESCRIPTION.rst
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
Real-time Business Intelligence dashboards for cooperative supermarkets
|
||||
built on top of Point of Sale data. Extends the standard
|
||||
``report.pos.order`` view to expose new dimensions that the standard POS
|
||||
analysis lacks:
|
||||
|
||||
* **Cooperative member dimension** — ``is_member_at_date`` flags each
|
||||
ticket line according to the customer's share status *at the order
|
||||
date*, so historic comparisons (members vs. non-members) reflect the
|
||||
reality of the moment.
|
||||
* **Category hierarchy** — ``categ_root_id`` (family) and
|
||||
``categ_parent_id`` (subfamily) derived from
|
||||
``product.category.parent_path``, ready to drive drilldowns.
|
||||
* **Time dimensions** — ``date_day``, ``hour_of_day``, ``day_of_week``
|
||||
for daily/weekly/hourly distributions.
|
||||
|
||||
Pre-configured menu entries under *Point of Sale → Reporting →
|
||||
Cooperative Dashboards* cover overview, members vs. non-members,
|
||||
categories, top products, day-of-week and hour-of-day analyses. Four
|
||||
dashboard tiles surface the most important KPIs on the
|
||||
``web_dashboard_tile`` board.
|
||||
|
||||
The companion module ``spreadsheet_dashboard_pos_cooperative`` publishes
|
||||
spreadsheet dashboards in Odoo's *Dashboards* menu that consume the
|
||||
same data.
|
||||
12
pos_dashboard_cooperative/readme/ROADMAP.rst
Normal file
12
pos_dashboard_cooperative/readme/ROADMAP.rst
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
* Materialize the SQL view into a regular table populated by a nightly
|
||||
cron, in case real-time aggregation becomes too slow on very large
|
||||
POS datasets.
|
||||
* Refine the ``is_member_at_date`` calculation by consuming
|
||||
``subscription.register`` to subtract sell-back and transfer
|
||||
operations from the share balance. The current implementation simply
|
||||
checks for the existence of a ``share.line`` dated on or before the
|
||||
order date, which over-reports memberships when shares are returned.
|
||||
* Add multi-company test coverage once a clean multi-company test
|
||||
fixture is available.
|
||||
* Add Galician, Catalan, French, Dutch and Croatian translations
|
||||
(currently shipped with Spanish only).
|
||||
39
pos_dashboard_cooperative/readme/USAGE.rst
Normal file
39
pos_dashboard_cooperative/readme/USAGE.rst
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
Open *Point of Sale → Reporting → Cooperative Dashboards* and pick one
|
||||
of the predefined analyses:
|
||||
|
||||
* **Overview** — sales, margin and order count grouped by month.
|
||||
* **Members vs Non-members** — same axes split by cooperative
|
||||
membership at the order date.
|
||||
* **Top Members** — sales aggregated per cooperative member, sort by
|
||||
total to obtain the top buyers.
|
||||
* **By Category** — sales by product family (root category); drill down
|
||||
to subfamily and product from the *Group By* menu.
|
||||
* **Top Products** — sales per product.
|
||||
* **By Day of Week / By Hour of Day** — temporal distributions.
|
||||
|
||||
In every view, additional dimensions are available from the *Filters*
|
||||
and *Group By* menus: ``Members``, ``Non members``, ``Member``,
|
||||
``Product Family``, ``Product Subfamily``, ``Day of Week``,
|
||||
``Hour of Day``.
|
||||
|
||||
Time dimensions
|
||||
===============
|
||||
|
||||
* ``day_of_week`` is the ISO day number (``EXTRACT(ISODOW FROM
|
||||
date_order)``): **1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 =
|
||||
Thursday, 5 = Friday, 6 = Saturday, 7 = Sunday**.
|
||||
* ``hour_of_day`` is the integer hour in the order's timezone
|
||||
(``EXTRACT(HOUR FROM date_order)``), 0..23.
|
||||
|
||||
These are deliberately exposed as integers rather than translated
|
||||
labels so they aggregate cleanly in pivots, charts and spreadsheet
|
||||
formulas. Map the numbers to weekday names in the consumer (for
|
||||
example, in the o-spreadsheet dashboards) if a localized label is
|
||||
needed.
|
||||
|
||||
Pivot views support the ratios defined by ``web_pivot_computed_measure``
|
||||
(e.g. average ticket = total sales / order count). Click *Insert
|
||||
Computed Measure* in the pivot's *Measures* menu.
|
||||
|
||||
For curated dashboards rendered in Odoo's *Dashboards* menu, install
|
||||
the companion module ``spreadsheet_dashboard_pos_cooperative``.
|
||||
Loading…
Add table
Add a link
Reference in a new issue