tawasuyu

tawasuyu/brahman

Rust 334TOML 129Markdown 39JSON 174745 Sutichaykuna

⎇ main examples/nakui-modules/invoices/module.json JSON · 72 siq'ikuna · 3.4 KB Ñawpa willay ch'uya

feat(nakui): metainterfaz declarativa + 6 modulos ERP estandar 06c4fb913 · Sergio ·

1{
2  "id": "invoices",
3  "label": "Facturación",
4  "description": "Facturas emitidas y su seguimiento de pago.",
5  "entities": [
6    {
7      "name": "invoice",
8      "label": "Factura",
9      "fields": [
10        { "name": "invoice_number", "label": "N° factura", "kind": "text", "required": true },
11        { "name": "customer_name", "label": "Cliente", "kind": "text", "required": true },
12        { "name": "issued_at", "label": "Emitida", "kind": "date", "required": true },
13        { "name": "due_at", "label": "Vencimiento", "kind": "date", "required": true },
14        { "name": "subtotal", "label": "Subtotal", "kind": "number", "default": "0" },
15        { "name": "tax", "label": "Impuestos", "kind": "number", "default": "0" },
16        { "name": "total", "label": "Total", "kind": "number", "default": "0" },
17        { "name": "amount_paid", "label": "Pagado", "kind": "number", "default": "0" },
18        { "name": "status", "label": "Estado", "kind": "text", "required": true, "default": "issued", "help": "draft / issued / partially_paid / paid / overdue / void" },
19        { "name": "currency", "label": "Moneda", "kind": "text", "default": "USD" },
20        { "name": "reference_order", "label": "Orden referencia", "kind": "text" }
21      ]
22    }
23  ],
24  "menu": [
25    { "label": "Facturas", "view": "list", "icon": "💳" },
26    { "label": "Nueva factura", "view": "form", "icon": "✚" }
27  ],
28  "views": {
29    "list": {
30      "kind": "list",
31      "title": "Facturas",
32      "entity": "invoice",
33      "columns": [
34        { "field": "invoice_number", "label": "N°", "weight": 1.0 },
35        { "field": "customer_name", "label": "Cliente", "weight": 2.0 },
36        { "field": "issued_at", "label": "Emitida", "weight": 1.0 },
37        { "field": "due_at", "label": "Vence", "weight": 1.0 },
38        { "field": "total", "label": "Total", "weight": 1.0 },
39        { "field": "amount_paid", "label": "Pagado", "weight": 1.0 },
40        { "field": "currency", "label": "Mon.", "weight": 0.5 },
41        { "field": "status", "label": "Estado", "weight": 0.9 }
42      ],
43      "actions": [
44        { "kind": "open_view", "view": "form", "label": "✚ Nueva" }
45      ],
46      "search_in": ["invoice_number", "customer_name", "reference_order"]
47    },
48    "form": {
49      "kind": "form",
50      "title": "Nueva factura",
51      "entity": "invoice",
52      "fields": [
53        { "name": "invoice_number", "label": "Número de factura", "kind": "text", "required": true },
54        { "name": "customer_name", "label": "Cliente", "kind": "text", "required": true },
55        { "name": "issued_at", "label": "Fecha de emisión", "kind": "date", "required": true },
56        { "name": "due_at", "label": "Fecha de vencimiento", "kind": "date", "required": true },
57        { "name": "subtotal", "label": "Subtotal", "kind": "number", "default": "0" },
58        { "name": "tax", "label": "Impuestos", "kind": "number", "default": "0" },
59        { "name": "total", "label": "Total", "kind": "number", "default": "0" },
60        { "name": "amount_paid", "label": "Pagado", "kind": "number", "default": "0" },
61        { "name": "status", "label": "Estado", "kind": "text", "required": true, "default": "issued" },
62        { "name": "currency", "label": "Moneda", "kind": "text", "default": "USD" },
63        { "name": "reference_order", "label": "Orden de venta referenciada", "kind": "text" }
64      ],
65      "on_submit": {
66        "kind": "seed_entity",
67        "entity": "invoice",
68        "next_view": "list"
69      }
70    }
71  }
72}