# kerbrose/odoo_pos_refund_validation architecture

> Architecture diagram of the GitHub repository kerbrose/odoo_pos_refund_validation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kerbrose/odoo_pos_refund_validation
- Repository: https://github.com/kerbrose/odoo_pos_refund_validation

## Overview

This small Odoo POS addon configures a return-age limit and blocks selection of an order that exceeds it. Administrators edit the related settings; POS order selection checks the configured limit and shows an error instead of proceeding. The model and JavaScript excerpts support these behaviors. The settings view is listed in the manifest but its XML was not sampled, and the manifest’s asset path does not match the tree, so those connections are not inferred.

Main entry points: [`kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js`](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js) (Ticket Screen Check), [`kerbrose_pos_refund_limit_days/models/res_config_settings.py`](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/models/res_config_settings.py) (Settings Fields), [`kerbrose_pos_refund_limit_days/models/pos_config.py`](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/models/pos_config.py) (POS Return Limits), [`kerbrose_pos_refund_limit_days/__manifest__.py`](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/__manifest__.py) (Addon Manifest)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_settings["Return Settings"]
  node_settings_model["Settings Fields"]
  node_pos_config["POS Return Limits<br/>[pos_config.py]"]
  node_settings_view["Settings View"]
  node_manifest["Addon Manifest<br/>[__manifest__.py]"]
end

subgraph group_pos["POS Enforcement"]
  node_ticket_patch["Ticket Screen Check<br/>[ticket_screen.js]"]
  node_ticket_screen["Odoo Ticket Screen"]
  node_error_popup["Error Popup"]
end

node_admin(("Administrator"))
node_cashier(("Cashier"))

node_admin -.->|"edits"| node_settings_model
node_settings_model -->|"relates fields"| node_pos_config
node_manifest -->|"loads view"| node_settings_view
node_cashier -->|"selects order"| node_ticket_patch
node_ticket_patch -->|"patches handler"| node_ticket_screen
node_ticket_patch -.->|"reads limits"| node_pos_config
node_ticket_patch -->|"shows error"| node_error_popup

click node_settings_model "https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/models/res_config_settings.py"
click node_pos_config "https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/models/pos_config.py"
click node_settings_view "https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/views/res_config_settings.xml"
click node_manifest "https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/__manifest__.py"
click node_ticket_patch "https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_settings_model,node_pos_config,node_settings_view,node_manifest toneBlue
class node_ticket_patch,node_ticket_screen,node_error_popup toneAmber
class node_admin,node_cashier toneIndigo
```

## Components

### Return Settings

- [Settings Fields](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/models/res_config_settings.py): `kerbrose_pos_refund_limit_days/models/res_config_settings.py`
- [POS Return Limits](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/models/pos_config.py): `kerbrose_pos_refund_limit_days/models/pos_config.py`
- [Settings View](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/views/res_config_settings.xml): `kerbrose_pos_refund_limit_days/views/res_config_settings.xml`
- [Addon Manifest](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/__manifest__.py): `kerbrose_pos_refund_limit_days/__manifest__.py`

### POS Enforcement

- [Ticket Screen Check](https://github.com/kerbrose/odoo_pos_refund_validation/blob/master/kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js): `kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js`
- **Odoo Ticket Screen**
- **Error Popup**

### Other components

- **Administrator**
- **Cashier**

## Connections

- Administrator → Settings Fields: edits
- Settings Fields → POS Return Limits: relates fields (evidence: `kerbrose_pos_refund_limit_days/models/res_config_settings.py`)
- Addon Manifest → Settings View: loads view (evidence: `kerbrose_pos_refund_limit_days/__manifest__.py`)
- Cashier → Ticket Screen Check: selects order (evidence: `kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js`)
- Ticket Screen Check → Odoo Ticket Screen: patches handler (evidence: `kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js`)
- Ticket Screen Check → POS Return Limits: reads limits
- Ticket Screen Check → Error Popup: shows error (evidence: `kerbrose_pos_refund_limit_days/static/src/js/ticket_screen.js`)
