shutro-erp 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account_asset/.kosh/bindings.d.ts +22 -0
- package/dist/account_asset/.kosh/bindings.js +15 -0
- package/dist/account_asset/.kosh/schema.d.ts +1755 -0
- package/dist/account_asset/board.d.ts +61 -0
- package/dist/account_asset/board.js +86 -0
- package/dist/account_asset/books.d.ts +42 -0
- package/dist/account_asset/books.js +398 -0
- package/dist/account_asset/demo.d.ts +7 -0
- package/dist/account_asset/demo.js +72 -0
- package/dist/account_asset/index.d.ts +9 -0
- package/dist/account_asset/index.js +335 -0
- package/dist/account_asset/module.d.ts +7622 -0
- package/dist/account_asset/module.js +230 -0
- package/dist/account_budget/.kosh/bindings.d.ts +22 -0
- package/dist/account_budget/.kosh/bindings.js +15 -0
- package/dist/account_budget/.kosh/schema.d.ts +1767 -0
- package/dist/account_budget/budget.d.ts +5 -0
- package/dist/account_budget/budget.js +142 -0
- package/dist/account_budget/demo.d.ts +6 -0
- package/dist/account_budget/demo.js +30 -0
- package/dist/account_budget/index.d.ts +4 -0
- package/dist/account_budget/index.js +223 -0
- package/dist/account_budget/module.d.ts +13863 -0
- package/dist/account_budget/module.js +167 -0
- package/dist/account_portal/.kosh/bindings.js +1 -1
- package/dist/account_portal/.kosh/schema.d.ts +176 -6
- package/dist/account_portal/module.d.ts +505 -6
- package/dist/accounting/.kosh/bindings.js +1 -1
- package/dist/accounting/.kosh/schema.d.ts +176 -6
- package/dist/accounting/index.d.ts +1 -1
- package/dist/accounting/index.js +344 -4
- package/dist/accounting/module.d.ts +513 -5
- package/dist/accounting/module.js +55 -3
- package/dist/approvals/.kosh/bindings.d.ts +22 -0
- package/dist/approvals/.kosh/bindings.js +15 -0
- package/dist/approvals/.kosh/schema.d.ts +611 -0
- package/dist/approvals/index.d.ts +18 -0
- package/dist/approvals/index.js +302 -0
- package/dist/approvals/mails.d.ts +25 -0
- package/dist/approvals/mails.js +82 -0
- package/dist/approvals/module.d.ts +1 -0
- package/dist/approvals/module.js +12 -0
- package/dist/approvals/web/History.d.ts +4 -0
- package/dist/approvals/web/History.js +13 -0
- package/dist/approvals/web/Inbox.d.ts +9 -0
- package/dist/approvals/web/Inbox.js +114 -0
- package/dist/approvals/web/Mine.d.ts +7 -0
- package/dist/approvals/web/Mine.js +27 -0
- package/dist/approvals/web/index.d.ts +13 -0
- package/dist/approvals/web/index.js +22 -0
- package/dist/approvals/web/messages.d.ts +2 -0
- package/dist/approvals/web/messages.js +119 -0
- package/dist/approvals/web/shared.d.ts +59 -0
- package/dist/approvals/web/shared.js +46 -0
- package/dist/attendance/.kosh/bindings.d.ts +22 -0
- package/dist/attendance/.kosh/bindings.js +15 -0
- package/dist/attendance/.kosh/schema.d.ts +1048 -0
- package/dist/attendance/days.d.ts +96 -0
- package/dist/attendance/days.js +430 -0
- package/dist/attendance/demo.d.ts +7 -0
- package/dist/attendance/demo.js +58 -0
- package/dist/attendance/index.d.ts +4 -0
- package/dist/attendance/index.js +513 -0
- package/dist/attendance/module.d.ts +3969 -0
- package/dist/attendance/module.js +412 -0
- package/dist/attendance/routes.d.ts +16 -0
- package/dist/attendance/routes.js +266 -0
- package/dist/attendance/web/Check.d.ts +8 -0
- package/dist/attendance/web/Check.js +40 -0
- package/dist/attendance/web/Kiosk.d.ts +8 -0
- package/dist/attendance/web/Kiosk.js +62 -0
- package/dist/attendance/web/PinButton.d.ts +7 -0
- package/dist/attendance/web/PinButton.js +29 -0
- package/dist/attendance/web/index.d.ts +13 -0
- package/dist/attendance/web/index.js +22 -0
- package/dist/attendance/web/messages.d.ts +2 -0
- package/dist/attendance/web/messages.js +61 -0
- package/dist/calendar/.kosh/bindings.d.ts +22 -0
- package/dist/calendar/.kosh/bindings.js +15 -0
- package/dist/calendar/.kosh/schema.d.ts +795 -0
- package/dist/calendar/demo.d.ts +6 -0
- package/dist/calendar/demo.js +24 -0
- package/dist/calendar/index.d.ts +3 -0
- package/dist/calendar/index.js +291 -0
- package/dist/calendar/module.d.ts +1705 -0
- package/dist/calendar/module.js +180 -0
- package/dist/cli/init.js +80 -0
- package/dist/cli/templates.d.ts +1 -1
- package/dist/cli/templates.js +226 -0
- package/dist/contacts/.kosh/bindings.js +1 -1
- package/dist/contacts/.kosh/schema.d.ts +78 -3
- package/dist/contacts/demo.js +30 -1
- package/dist/contacts/index.d.ts +1 -1
- package/dist/contacts/index.js +155 -9
- package/dist/contacts/module.d.ts +338 -2
- package/dist/contacts/module.js +93 -5
- package/dist/crm/.kosh/bindings.d.ts +22 -0
- package/dist/crm/.kosh/bindings.js +15 -0
- package/dist/crm/.kosh/schema.d.ts +800 -0
- package/dist/crm/demo.d.ts +6 -0
- package/dist/crm/demo.js +45 -0
- package/dist/crm/index.d.ts +3 -0
- package/dist/crm/index.js +361 -0
- package/dist/crm/module.d.ts +1845 -0
- package/dist/crm/module.js +208 -0
- package/dist/documents/.kosh/bindings.d.ts +22 -0
- package/dist/documents/.kosh/bindings.js +15 -0
- package/dist/documents/.kosh/schema.d.ts +862 -0
- package/dist/documents/demo.d.ts +6 -0
- package/dist/documents/demo.js +22 -0
- package/dist/documents/documents.d.ts +98 -0
- package/dist/documents/documents.js +318 -0
- package/dist/documents/index.d.ts +30 -0
- package/dist/documents/index.js +442 -0
- package/dist/documents/module.d.ts +2781 -0
- package/dist/documents/module.js +214 -0
- package/dist/documents/web/Versions.d.ts +7 -0
- package/dist/documents/web/Versions.js +45 -0
- package/dist/documents/web/index.d.ts +11 -0
- package/dist/documents/web/index.js +16 -0
- package/dist/documents/web/messages.d.ts +2 -0
- package/dist/documents/web/messages.js +21 -0
- package/dist/event/.kosh/bindings.d.ts +22 -0
- package/dist/event/.kosh/bindings.js +15 -0
- package/dist/event/.kosh/schema.d.ts +843 -0
- package/dist/event/demo.d.ts +6 -0
- package/dist/event/demo.js +65 -0
- package/dist/event/index.d.ts +14 -0
- package/dist/event/index.js +333 -0
- package/dist/event/mails.d.ts +15 -0
- package/dist/event/mails.js +112 -0
- package/dist/event/module.d.ts +2800 -0
- package/dist/event/module.js +323 -0
- package/dist/event/web/CheckInBox.d.ts +9 -0
- package/dist/event/web/CheckInBox.js +87 -0
- package/dist/event/web/index.d.ts +11 -0
- package/dist/event/web/index.js +16 -0
- package/dist/event/web/messages.d.ts +2 -0
- package/dist/event/web/messages.js +23 -0
- package/dist/event_account/.kosh/bindings.d.ts +22 -0
- package/dist/event_account/.kosh/bindings.js +15 -0
- package/dist/event_account/.kosh/schema.d.ts +1758 -0
- package/dist/event_account/index.d.ts +3 -0
- package/dist/event_account/index.js +28 -0
- package/dist/event_account/module.d.ts +7114 -0
- package/dist/event_account/module.js +90 -0
- package/dist/expense/.kosh/bindings.d.ts +22 -0
- package/dist/expense/.kosh/bindings.js +15 -0
- package/dist/expense/.kosh/schema.d.ts +1299 -0
- package/dist/expense/demo.d.ts +7 -0
- package/dist/expense/demo.js +69 -0
- package/dist/expense/index.d.ts +3 -0
- package/dist/expense/index.js +495 -0
- package/dist/expense/module.d.ts +4747 -0
- package/dist/expense/module.js +647 -0
- package/dist/expense_account/.kosh/bindings.d.ts +22 -0
- package/dist/expense_account/.kosh/bindings.js +15 -0
- package/dist/expense_account/.kosh/schema.d.ts +1936 -0
- package/dist/expense_account/index.d.ts +3 -0
- package/dist/expense_account/index.js +74 -0
- package/dist/expense_account/module.d.ts +9153 -0
- package/dist/expense_account/module.js +318 -0
- package/dist/helpdesk/.kosh/bindings.d.ts +22 -0
- package/dist/helpdesk/.kosh/bindings.js +15 -0
- package/dist/helpdesk/.kosh/schema.d.ts +885 -0
- package/dist/helpdesk/demo.d.ts +7 -0
- package/dist/helpdesk/demo.js +65 -0
- package/dist/helpdesk/hours.d.ts +17 -0
- package/dist/helpdesk/hours.js +94 -0
- package/dist/helpdesk/index.d.ts +10 -0
- package/dist/helpdesk/index.js +461 -0
- package/dist/helpdesk/module.d.ts +2940 -0
- package/dist/helpdesk/module.js +326 -0
- package/dist/helpdesk/routes.d.ts +12 -0
- package/dist/helpdesk/routes.js +132 -0
- package/dist/helpdesk/sla.d.ts +37 -0
- package/dist/helpdesk/sla.js +226 -0
- package/dist/hr/.kosh/bindings.d.ts +22 -0
- package/dist/hr/.kosh/bindings.js +15 -0
- package/dist/hr/.kosh/schema.d.ts +878 -0
- package/dist/hr/demo.d.ts +6 -0
- package/dist/hr/demo.js +60 -0
- package/dist/hr/index.d.ts +3 -0
- package/dist/hr/index.js +483 -0
- package/dist/hr/module.d.ts +2611 -0
- package/dist/hr/module.js +350 -0
- package/dist/l10n_bd/.kosh/bindings.js +1 -1
- package/dist/l10n_bd/.kosh/schema.d.ts +176 -6
- package/dist/l10n_bd/module.d.ts +505 -6
- package/dist/l10n_bd_payroll/.kosh/bindings.d.ts +22 -0
- package/dist/l10n_bd_payroll/.kosh/bindings.js +15 -0
- package/dist/l10n_bd_payroll/.kosh/schema.d.ts +2312 -0
- package/dist/l10n_bd_payroll/data.d.ts +47 -0
- package/dist/l10n_bd_payroll/data.js +347 -0
- package/dist/l10n_bd_payroll/index.d.ts +4 -0
- package/dist/l10n_bd_payroll/index.js +24 -0
- package/dist/l10n_bd_payroll/module.d.ts +12932 -0
- package/dist/l10n_bd_payroll/module.js +86 -0
- package/dist/l10n_in/.kosh/bindings.js +1 -1
- package/dist/l10n_in/.kosh/schema.d.ts +176 -6
- package/dist/l10n_in/module.d.ts +527 -7
- package/dist/mail/inbound/handle.js +6 -1
- package/dist/maintenance/.kosh/bindings.d.ts +22 -0
- package/dist/maintenance/.kosh/bindings.js +15 -0
- package/dist/maintenance/.kosh/schema.d.ts +911 -0
- package/dist/maintenance/demo.d.ts +6 -0
- package/dist/maintenance/demo.js +60 -0
- package/dist/maintenance/index.d.ts +3 -0
- package/dist/maintenance/index.js +422 -0
- package/dist/maintenance/module.d.ts +3545 -0
- package/dist/maintenance/module.js +446 -0
- package/dist/maintenance_stock/.kosh/bindings.d.ts +22 -0
- package/dist/maintenance_stock/.kosh/bindings.js +15 -0
- package/dist/maintenance_stock/.kosh/schema.d.ts +1446 -0
- package/dist/maintenance_stock/index.d.ts +9 -0
- package/dist/maintenance_stock/index.js +52 -0
- package/dist/maintenance_stock/module.d.ts +7675 -0
- package/dist/maintenance_stock/module.js +192 -0
- package/dist/modules-sdk/index.d.ts +1 -1
- package/dist/modules-sdk/manifest.d.ts +109 -2
- package/dist/modules-sdk/manifest.js +35 -1
- package/dist/mrp/.kosh/bindings.d.ts +22 -0
- package/dist/mrp/.kosh/bindings.js +15 -0
- package/dist/mrp/.kosh/schema.d.ts +1453 -0
- package/dist/mrp/demo.d.ts +7 -0
- package/dist/mrp/demo.js +42 -0
- package/dist/mrp/index.d.ts +3 -0
- package/dist/mrp/index.js +393 -0
- package/dist/mrp/module.d.ts +9335 -0
- package/dist/mrp/module.js +757 -0
- package/dist/mrp_account/.kosh/bindings.d.ts +22 -0
- package/dist/mrp_account/.kosh/bindings.js +15 -0
- package/dist/mrp_account/.kosh/schema.d.ts +2299 -0
- package/dist/mrp_account/index.d.ts +3 -0
- package/dist/mrp_account/index.js +22 -0
- package/dist/mrp_account/module.d.ts +23151 -0
- package/dist/mrp_account/module.js +123 -0
- package/dist/payment/.kosh/bindings.js +1 -1
- package/dist/payment/.kosh/schema.d.ts +178 -7
- package/dist/payment/index.d.ts +41 -0
- package/dist/payment/index.js +131 -74
- package/dist/payment/module.d.ts +569 -12
- package/dist/payment/module.js +19 -3
- package/dist/payment/settle.js +10 -1
- package/dist/payroll/.kosh/bindings.d.ts +22 -0
- package/dist/payroll/.kosh/bindings.js +15 -0
- package/dist/payroll/.kosh/schema.d.ts +1390 -0
- package/dist/payroll/compute.d.ts +35 -0
- package/dist/payroll/compute.js +398 -0
- package/dist/payroll/demo.d.ts +55 -0
- package/dist/payroll/demo.js +121 -0
- package/dist/payroll/formula.d.ts +62 -0
- package/dist/payroll/formula.js +320 -0
- package/dist/payroll/index.d.ts +230 -0
- package/dist/payroll/index.js +713 -0
- package/dist/payroll/module.d.ts +9390 -0
- package/dist/payroll/module.js +606 -0
- package/dist/payroll/routes.d.ts +10 -0
- package/dist/payroll/routes.js +112 -0
- package/dist/payroll_account/.kosh/bindings.d.ts +22 -0
- package/dist/payroll_account/.kosh/bindings.js +15 -0
- package/dist/payroll_account/.kosh/schema.d.ts +2308 -0
- package/dist/payroll_account/index.d.ts +3 -0
- package/dist/payroll_account/index.js +40 -0
- package/dist/payroll_account/module.d.ts +12396 -0
- package/dist/payroll_account/module.js +256 -0
- package/dist/permissions/approvals.d.ts +131 -9
- package/dist/permissions/approvals.js +662 -57
- package/dist/permissions/index.d.ts +1 -1
- package/dist/permissions/index.js +2 -2
- package/dist/permissions/models.js +191 -12
- package/dist/permissions/routes.d.ts +6 -1
- package/dist/permissions/routes.js +37 -4
- package/dist/permissions/web/ApprovalPanel.d.ts +5 -4
- package/dist/permissions/web/ApprovalPanel.js +39 -13
- package/dist/permissions/web/index.d.ts +6 -4
- package/dist/permissions/web/index.js +13 -4
- package/dist/permissions/web/messages.d.ts +2 -0
- package/dist/permissions/web/messages.js +43 -0
- package/dist/portal/.kosh/bindings.js +1 -1
- package/dist/portal/.kosh/schema.d.ts +78 -3
- package/dist/portal/index.js +1 -1
- package/dist/portal/module.d.ts +166 -2
- package/dist/pos/.kosh/bindings.d.ts +22 -0
- package/dist/pos/.kosh/bindings.js +15 -0
- package/dist/pos/.kosh/schema.d.ts +1809 -0
- package/dist/pos/accounting.d.ts +10 -0
- package/dist/pos/accounting.js +149 -0
- package/dist/pos/demo.d.ts +6 -0
- package/dist/pos/demo.js +90 -0
- package/dist/pos/index.d.ts +9 -0
- package/dist/pos/index.js +353 -0
- package/dist/pos/module.d.ts +9783 -0
- package/dist/pos/module.js +423 -0
- package/dist/pos/routes.d.ts +39 -0
- package/dist/pos/routes.js +368 -0
- package/dist/pos/web/Register.d.ts +9 -0
- package/dist/pos/web/Register.js +252 -0
- package/dist/pos/web/index.d.ts +11 -0
- package/dist/pos/web/index.js +16 -0
- package/dist/pos/web/messages.d.ts +2 -0
- package/dist/pos/web/messages.js +87 -0
- package/dist/pos_stock/.kosh/bindings.d.ts +22 -0
- package/dist/pos_stock/.kosh/bindings.js +15 -0
- package/dist/pos_stock/.kosh/schema.d.ts +2208 -0
- package/dist/pos_stock/index.d.ts +9 -0
- package/dist/pos_stock/index.js +35 -0
- package/dist/pos_stock/module.d.ts +12803 -0
- package/dist/pos_stock/module.js +115 -0
- package/dist/product/.kosh/bindings.js +1 -1
- package/dist/product/.kosh/schema.d.ts +52 -1
- package/dist/product/index.js +94 -4
- package/dist/product/module.d.ts +45 -1
- package/dist/product/module.js +11 -3
- package/dist/project/.kosh/bindings.js +1 -1
- package/dist/project/.kosh/schema.d.ts +725 -3
- package/dist/project/index.d.ts +3 -1
- package/dist/project/index.js +1045 -18
- package/dist/project/module.d.ts +10168 -458
- package/dist/project/module.js +1578 -14
- package/dist/project/routes.d.ts +44 -0
- package/dist/project/routes.js +314 -0
- package/dist/project/schedule.d.ts +72 -0
- package/dist/project/schedule.js +192 -0
- package/dist/project/web/Refresh.d.ts +8 -0
- package/dist/project/web/Refresh.js +29 -0
- package/dist/project/web/Schedule.d.ts +9 -0
- package/dist/project/web/Schedule.js +93 -0
- package/dist/project/web/Structure.d.ts +8 -0
- package/dist/project/web/Structure.js +86 -0
- package/dist/project/web/Workload.d.ts +8 -0
- package/dist/project/web/Workload.js +43 -0
- package/dist/project/web/index.d.ts +14 -0
- package/dist/project/web/index.js +25 -0
- package/dist/project/web/messages.d.ts +2 -0
- package/dist/project/web/messages.js +85 -0
- package/dist/project_account/.kosh/bindings.d.ts +22 -0
- package/dist/project_account/.kosh/bindings.js +15 -0
- package/dist/project_account/.kosh/schema.d.ts +2241 -0
- package/dist/project_account/index.d.ts +3 -0
- package/dist/project_account/index.js +27 -0
- package/dist/project_account/module.d.ts +11539 -0
- package/dist/project_account/module.js +76 -0
- package/dist/project_portal/.kosh/bindings.js +1 -1
- package/dist/project_portal/.kosh/schema.d.ts +725 -3
- package/dist/project_portal/module.d.ts +5137 -119
- package/dist/project_purchase/.kosh/bindings.d.ts +22 -0
- package/dist/project_purchase/.kosh/bindings.js +15 -0
- package/dist/project_purchase/.kosh/schema.d.ts +2320 -0
- package/dist/project_purchase/index.d.ts +9 -0
- package/dist/project_purchase/index.js +22 -0
- package/dist/project_purchase/module.d.ts +25147 -0
- package/dist/project_purchase/module.js +56 -0
- package/dist/purchase/.kosh/bindings.js +1 -1
- package/dist/purchase/.kosh/schema.d.ts +150 -6
- package/dist/purchase/index.js +163 -3
- package/dist/purchase/module.d.ts +228 -5
- package/dist/purchase/module.js +30 -3
- package/dist/purchase_account/.kosh/bindings.js +1 -1
- package/dist/purchase_account/.kosh/schema.d.ts +180 -8
- package/dist/purchase_account/index.js +27 -1
- package/dist/purchase_account/module.d.ts +591 -30
- package/dist/purchase_account/module.js +13 -2
- package/dist/purchase_portal/.kosh/bindings.js +1 -1
- package/dist/purchase_portal/.kosh/schema.d.ts +150 -6
- package/dist/purchase_portal/module.d.ts +372 -6
- package/dist/purchase_stock/.kosh/bindings.d.ts +22 -0
- package/dist/purchase_stock/.kosh/bindings.js +15 -0
- package/dist/purchase_stock/.kosh/schema.d.ts +1479 -0
- package/dist/purchase_stock/index.d.ts +7 -0
- package/dist/purchase_stock/index.js +98 -0
- package/dist/purchase_stock/module.d.ts +7535 -0
- package/dist/purchase_stock/module.js +380 -0
- package/dist/purchase_stock_account/.kosh/bindings.d.ts +22 -0
- package/dist/purchase_stock_account/.kosh/bindings.js +15 -0
- package/dist/purchase_stock_account/.kosh/schema.d.ts +2155 -0
- package/dist/purchase_stock_account/index.d.ts +3 -0
- package/dist/purchase_stock_account/index.js +24 -0
- package/dist/purchase_stock_account/module.d.ts +38015 -0
- package/dist/purchase_stock_account/module.js +168 -0
- package/dist/recruitment/.kosh/bindings.d.ts +22 -0
- package/dist/recruitment/.kosh/bindings.js +15 -0
- package/dist/recruitment/.kosh/schema.d.ts +991 -0
- package/dist/recruitment/demo.d.ts +6 -0
- package/dist/recruitment/demo.js +45 -0
- package/dist/recruitment/index.d.ts +3 -0
- package/dist/recruitment/index.js +385 -0
- package/dist/recruitment/module.d.ts +3249 -0
- package/dist/recruitment/module.js +194 -0
- package/dist/recruitment/web/HireButton.d.ts +9 -0
- package/dist/recruitment/web/HireButton.js +32 -0
- package/dist/recruitment/web/index.d.ts +11 -0
- package/dist/recruitment/web/index.js +16 -0
- package/dist/recruitment/web/messages.d.ts +2 -0
- package/dist/recruitment/web/messages.js +19 -0
- package/dist/reporting/documents.d.ts +5 -0
- package/dist/reporting/documents.js +28 -1
- package/dist/reporting/index.d.ts +1 -1
- package/dist/reporting/index.js +4 -2
- package/dist/reporting/models.js +9 -0
- package/dist/reporting/overviews.d.ts +16 -0
- package/dist/reporting/overviews.js +56 -0
- package/dist/reporting/routes-documents.js +1 -1
- package/dist/reporting/routes.js +138 -80
- package/dist/reporting/web/DashboardView.d.ts +11 -0
- package/dist/reporting/web/DashboardView.js +2 -2
- package/dist/reporting/web/DesignerView.js +5 -0
- package/dist/reporting/web/Overview.d.ts +9 -0
- package/dist/reporting/web/Overview.js +53 -0
- package/dist/reporting/web/index.d.ts +1 -0
- package/dist/reporting/web/index.js +4 -1
- package/dist/reporting/web/messages.js +9 -0
- package/dist/sale_account/.kosh/bindings.js +1 -1
- package/dist/sale_account/.kosh/schema.d.ts +181 -6
- package/dist/sale_account/index.js +22 -1
- package/dist/sale_account/module.d.ts +639 -38
- package/dist/sale_portal/.kosh/bindings.js +1 -1
- package/dist/sale_portal/.kosh/schema.d.ts +59 -3
- package/dist/sale_portal/module.d.ts +435 -5
- package/dist/sale_project/.kosh/bindings.js +1 -1
- package/dist/sale_project/.kosh/schema.d.ts +732 -3
- package/dist/sale_project/module.d.ts +5349 -208
- package/dist/sale_project/module.js +17 -1
- package/dist/sale_stock/.kosh/bindings.d.ts +22 -0
- package/dist/sale_stock/.kosh/bindings.js +15 -0
- package/dist/sale_stock/.kosh/schema.d.ts +1303 -0
- package/dist/sale_stock/index.d.ts +7 -0
- package/dist/sale_stock/index.js +84 -0
- package/dist/sale_stock/module.d.ts +7514 -0
- package/dist/sale_stock/module.js +146 -0
- package/dist/sales/.kosh/bindings.js +1 -1
- package/dist/sales/.kosh/schema.d.ts +59 -3
- package/dist/sales/index.js +195 -4
- package/dist/sales/module.d.ts +356 -3
- package/dist/sales/module.js +78 -3
- package/dist/server/api/metadata.d.ts +5 -0
- package/dist/server/api/metadata.js +5 -0
- package/dist/server/api/rest.js +64 -1
- package/dist/server/api/views.js +1 -0
- package/dist/server/app-settings.d.ts +7 -0
- package/dist/server/app-settings.js +10 -0
- package/dist/server/auth/base.js +9 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +1 -0
- package/dist/settings/app-settings.d.ts +2 -0
- package/dist/settings/app-settings.js +518 -0
- package/dist/settings/index.d.ts +1 -0
- package/dist/settings/index.js +15 -0
- package/dist/settings/people.js +29 -5
- package/dist/settings/web/AppSettingsPage.d.ts +11 -0
- package/dist/settings/web/AppSettingsPage.js +210 -0
- package/dist/settings/web/OverviewPage.js +16 -3
- package/dist/settings/web/PeoplePage.js +20 -6
- package/dist/settings/web/index.d.ts +1 -0
- package/dist/settings/web/index.js +3 -0
- package/dist/settings/web/messages.js +118 -2
- package/dist/sign/.kosh/bindings.d.ts +22 -0
- package/dist/sign/.kosh/bindings.js +15 -0
- package/dist/sign/.kosh/schema.d.ts +990 -0
- package/dist/sign/index.d.ts +14 -0
- package/dist/sign/index.js +350 -0
- package/dist/sign/module.d.ts +4478 -0
- package/dist/sign/module.js +158 -0
- package/dist/sign/sign.d.ts +82 -0
- package/dist/sign/sign.js +474 -0
- package/dist/stock/.kosh/bindings.d.ts +22 -0
- package/dist/stock/.kosh/bindings.js +15 -0
- package/dist/stock/.kosh/schema.d.ts +1222 -0
- package/dist/stock/demo.d.ts +8 -0
- package/dist/stock/demo.js +82 -0
- package/dist/stock/index.d.ts +4 -0
- package/dist/stock/index.js +903 -0
- package/dist/stock/module.d.ts +7856 -0
- package/dist/stock/module.js +1880 -0
- package/dist/stock/replenish.d.ts +38 -0
- package/dist/stock/replenish.js +176 -0
- package/dist/stock/web/Replenishment.d.ts +8 -0
- package/dist/stock/web/Replenishment.js +84 -0
- package/dist/stock/web/ScanBox.d.ts +8 -0
- package/dist/stock/web/ScanBox.js +90 -0
- package/dist/stock/web/index.d.ts +13 -0
- package/dist/stock/web/index.js +20 -0
- package/dist/stock/web/messages.d.ts +2 -0
- package/dist/stock/web/messages.js +77 -0
- package/dist/stock_account/.kosh/bindings.d.ts +22 -0
- package/dist/stock_account/.kosh/bindings.js +15 -0
- package/dist/stock_account/.kosh/schema.d.ts +2068 -0
- package/dist/stock_account/index.d.ts +3 -0
- package/dist/stock_account/index.js +140 -0
- package/dist/stock_account/module.d.ts +11523 -0
- package/dist/stock_account/module.js +339 -0
- package/dist/storage/attachments.d.ts +5 -0
- package/dist/storage/attachments.js +12 -1
- package/dist/storage/models.js +3 -0
- package/dist/storage/routes.js +13 -2
- package/dist/todo/.kosh/bindings.d.ts +22 -0
- package/dist/todo/.kosh/bindings.js +15 -0
- package/dist/todo/.kosh/schema.d.ts +732 -0
- package/dist/todo/demo.d.ts +6 -0
- package/dist/todo/demo.js +35 -0
- package/dist/todo/index.d.ts +3 -0
- package/dist/todo/index.js +187 -0
- package/dist/todo/module.d.ts +1180 -0
- package/dist/todo/module.js +130 -0
- package/dist/trade_finance/.kosh/bindings.d.ts +22 -0
- package/dist/trade_finance/.kosh/bindings.js +15 -0
- package/dist/trade_finance/.kosh/schema.d.ts +884 -0
- package/dist/trade_finance/demo.d.ts +6 -0
- package/dist/trade_finance/demo.js +63 -0
- package/dist/trade_finance/index.d.ts +3 -0
- package/dist/trade_finance/index.js +415 -0
- package/dist/trade_finance/module.d.ts +3779 -0
- package/dist/trade_finance/module.js +507 -0
- package/dist/trade_finance_account/.kosh/bindings.d.ts +22 -0
- package/dist/trade_finance_account/.kosh/bindings.js +15 -0
- package/dist/trade_finance_account/.kosh/schema.d.ts +1830 -0
- package/dist/trade_finance_account/index.d.ts +3 -0
- package/dist/trade_finance_account/index.js +93 -0
- package/dist/trade_finance_account/module.d.ts +8074 -0
- package/dist/trade_finance_account/module.js +245 -0
- package/dist/trade_finance_purchase/.kosh/bindings.d.ts +22 -0
- package/dist/trade_finance_purchase/.kosh/bindings.js +15 -0
- package/dist/trade_finance_purchase/.kosh/schema.d.ts +1246 -0
- package/dist/trade_finance_purchase/index.d.ts +8 -0
- package/dist/trade_finance_purchase/index.js +50 -0
- package/dist/trade_finance_purchase/module.d.ts +4257 -0
- package/dist/trade_finance_purchase/module.js +44 -0
- package/dist/trade_finance_sale/.kosh/bindings.d.ts +22 -0
- package/dist/trade_finance_sale/.kosh/bindings.js +15 -0
- package/dist/trade_finance_sale/.kosh/schema.d.ts +1072 -0
- package/dist/trade_finance_sale/index.d.ts +8 -0
- package/dist/trade_finance_sale/index.js +50 -0
- package/dist/trade_finance_sale/module.d.ts +4281 -0
- package/dist/trade_finance_sale/module.js +44 -0
- package/dist/ui/api.d.ts +2 -1
- package/dist/ui/api.js +2 -1
- package/dist/ui/app.js +26 -13
- package/dist/ui/components/AppIcon.js +30 -1
- package/dist/ui/components/primitives.d.ts +2 -0
- package/dist/ui/components/primitives.js +7 -1
- package/dist/ui/i18n/messages.d.ts +27 -0
- package/dist/ui/i18n/messages.js +46 -0
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.js +1 -0
- package/dist/ui/offline/queue.d.ts +5 -1
- package/dist/ui/offline/queue.js +2 -0
- package/dist/ui/registry.d.ts +5 -0
- package/dist/ui/shell/Home.js +55 -4
- package/dist/ui/views/FormView.js +102 -19
- package/dist/ui/views/KanbanView.d.ts +2 -0
- package/dist/ui/views/KanbanView.js +40 -3
- package/dist/ui/views/ListView.js +110 -11
- package/dist/ui/views/StatsRow.d.ts +14 -0
- package/dist/ui/views/StatsRow.js +88 -0
- package/dist/ui/views/widgets.d.ts +2 -1
- package/dist/ui/views/widgets.js +200 -1
- package/dist/views/builders.d.ts +19 -2
- package/dist/views/builders.js +21 -1
- package/dist/views/condition.d.ts +6 -0
- package/dist/views/condition.js +20 -0
- package/dist/views/documents.d.ts +8 -0
- package/dist/views/extend.d.ts +2 -2
- package/dist/views/extend.js +11 -1
- package/dist/views/index.d.ts +2 -2
- package/dist/views/index.js +2 -2
- package/dist/views/types.d.ts +52 -5
- package/dist/views/validate.js +39 -1
- package/dist/website/.kosh/bindings.d.ts +22 -0
- package/dist/website/.kosh/bindings.js +15 -0
- package/dist/website/.kosh/schema.d.ts +881 -0
- package/dist/website/demo.d.ts +6 -0
- package/dist/website/demo.js +115 -0
- package/dist/website/index.d.ts +9 -0
- package/dist/website/index.js +251 -0
- package/dist/website/module.d.ts +2987 -0
- package/dist/website/module.js +282 -0
- package/dist/website/render.d.ts +45 -0
- package/dist/website/render.js +102 -0
- package/dist/website/routes.d.ts +12 -0
- package/dist/website/routes.js +246 -0
- package/dist/website/web/PagePreview.d.ts +7 -0
- package/dist/website/web/PagePreview.js +33 -0
- package/dist/website/web/index.d.ts +11 -0
- package/dist/website/web/index.js +16 -0
- package/dist/website/web/messages.d.ts +2 -0
- package/dist/website/web/messages.js +15 -0
- package/dist/website_crm/.kosh/bindings.d.ts +22 -0
- package/dist/website_crm/.kosh/bindings.js +15 -0
- package/dist/website_crm/.kosh/schema.d.ts +967 -0
- package/dist/website_crm/index.d.ts +3 -0
- package/dist/website_crm/index.js +39 -0
- package/dist/website_crm/module.d.ts +2956 -0
- package/dist/website_crm/module.js +44 -0
- package/dist/website_sale/.kosh/bindings.d.ts +22 -0
- package/dist/website_sale/.kosh/bindings.js +15 -0
- package/dist/website_sale/.kosh/schema.d.ts +2284 -0
- package/dist/website_sale/couriers.d.ts +50 -0
- package/dist/website_sale/couriers.js +59 -0
- package/dist/website_sale/demo.d.ts +7 -0
- package/dist/website_sale/demo.js +90 -0
- package/dist/website_sale/growth.d.ts +31 -0
- package/dist/website_sale/growth.js +163 -0
- package/dist/website_sale/index.d.ts +49 -0
- package/dist/website_sale/index.js +538 -0
- package/dist/website_sale/module.d.ts +22027 -0
- package/dist/website_sale/module.js +397 -0
- package/dist/website_sale/shipments.d.ts +16 -0
- package/dist/website_sale/shipments.js +113 -0
- package/dist/website_sale/shop.d.ts +81 -0
- package/dist/website_sale/shop.js +649 -0
- package/dist/website_sale_stock/.kosh/bindings.d.ts +22 -0
- package/dist/website_sale_stock/.kosh/bindings.js +15 -0
- package/dist/website_sale_stock/.kosh/schema.d.ts +2681 -0
- package/dist/website_sale_stock/index.d.ts +9 -0
- package/dist/website_sale_stock/index.js +20 -0
- package/dist/website_sale_stock/module.d.ts +24998 -0
- package/dist/website_sale_stock/module.js +28 -0
- package/package.json +200 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The data layer of the Projects ↔ Purchase bridge (RFC 0026 step 4): the untaxed lines of confirmed purchase orders
|
|
3
|
+
* on a project's cost centre that are not billed yet are its **committed costs**; once billed and posted they are
|
|
4
|
+
* booked instead (`project_account`), so nothing counts twice.
|
|
5
|
+
*/
|
|
6
|
+
import { projectShutro } from '../project/index.js';
|
|
7
|
+
import { projectAccountShutro } from '../project_account/index.js';
|
|
8
|
+
import { purchaseAccountShutro } from '../purchase_account/index.js';
|
|
9
|
+
import { orm } from '../server/orm.js';
|
|
10
|
+
import { defineModule, extendModel } from './.kosh/bindings.js';
|
|
11
|
+
const ZERO = orm.toDecimal(0);
|
|
12
|
+
export const ProjectCommitted = extendModel('project.project', {
|
|
13
|
+
overrides: {
|
|
14
|
+
moneyOf: async function (next) {
|
|
15
|
+
// After project_account's: the cost centres exist.
|
|
16
|
+
const out = await next();
|
|
17
|
+
const projects = this;
|
|
18
|
+
const env = projects.env;
|
|
19
|
+
for (const p of await projects.load({ analytic: true })) {
|
|
20
|
+
if (p.analytic === null)
|
|
21
|
+
continue;
|
|
22
|
+
const lines = await env
|
|
23
|
+
.model('purchase.order.line')
|
|
24
|
+
.search({
|
|
25
|
+
where: {
|
|
26
|
+
analytic: p.analytic.id,
|
|
27
|
+
'order.state': { in: ['purchase', 'done'] },
|
|
28
|
+
'order.billState': { ne: 'billed' },
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
.then((r) => r.load(['subtotal']));
|
|
32
|
+
const committed = [...lines].reduce((s, l) => s.plus(l.subtotal?.amount ?? ZERO), ZERO);
|
|
33
|
+
const before = out.get(p.id) ?? { booked: '0', committed: '0' };
|
|
34
|
+
out.set(p.id, {
|
|
35
|
+
booked: before.booked,
|
|
36
|
+
committed: orm.toDecimal(before.committed).plus(committed).toFixed(2),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
export const projectPurchaseShutro = defineModule({
|
|
44
|
+
name: 'project_purchase',
|
|
45
|
+
version: '0.1.0',
|
|
46
|
+
depends: [projectShutro, projectAccountShutro, purchaseAccountShutro],
|
|
47
|
+
groups: [
|
|
48
|
+
orm.defineGroup({
|
|
49
|
+
code: 'project_purchase.user',
|
|
50
|
+
label: 'Projects with their purchases',
|
|
51
|
+
implies: ['project_account.user', 'purchase.user'],
|
|
52
|
+
}),
|
|
53
|
+
],
|
|
54
|
+
models: [],
|
|
55
|
+
extensions: [ProjectCommitted],
|
|
56
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash:
|
|
1
|
+
// GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ca13902b51545168
|
|
2
2
|
// Bindings of module `purchase`: import the definition API from here to get types scoped to what it can see.
|
|
3
3
|
export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
|
|
4
4
|
import { definitions } from '../../server/orm.js';
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
// GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash:
|
|
1
|
+
// GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ca13902b51545168
|
|
2
2
|
// Schema view of module `purchase` (RFC 0002 §7.7): the models it owns or depends on, with the extensions it can see.
|
|
3
3
|
import type { F } from '../../server/orm.js';
|
|
4
4
|
|
|
5
5
|
/** Model name → model type (RFC 0002 §7.7). */
|
|
6
6
|
export interface SchemaView {
|
|
7
7
|
readonly 'account.tax': AccountTax;
|
|
8
|
+
readonly 'approval.delegation': ApprovalDelegation;
|
|
8
9
|
readonly 'approval.level': ApprovalLevel;
|
|
10
|
+
readonly 'approval.link': ApprovalLink;
|
|
9
11
|
readonly 'approval.policy': ApprovalPolicy;
|
|
10
12
|
readonly 'approval.request': ApprovalRequest;
|
|
13
|
+
readonly 'approval.vote': ApprovalVote;
|
|
11
14
|
readonly 'audit.event': AuditEvent;
|
|
12
15
|
readonly 'auth.api_key': AuthApiKey;
|
|
13
16
|
readonly 'auth.credential': AuthCredential;
|
|
@@ -17,6 +20,7 @@ export interface SchemaView {
|
|
|
17
20
|
readonly 'auth.user_group': AuthUserGroup;
|
|
18
21
|
readonly 'kosh.image': KoshImage;
|
|
19
22
|
readonly 'kosh.saved_view': KoshSavedView;
|
|
23
|
+
readonly 'kosh.setting': KoshSetting;
|
|
20
24
|
readonly 'mail.activity': MailActivity;
|
|
21
25
|
readonly 'mail.activity.type': MailActivityType;
|
|
22
26
|
readonly 'mail.channel': MailChannel;
|
|
@@ -35,6 +39,7 @@ export interface SchemaView {
|
|
|
35
39
|
readonly 'res.company': ResCompany;
|
|
36
40
|
readonly 'res.currency': ResCurrency;
|
|
37
41
|
readonly 'res.partner': ResPartner;
|
|
42
|
+
readonly 'res.partner.tag': ResPartnerTag;
|
|
38
43
|
readonly 'res.users': ResUsers;
|
|
39
44
|
readonly 'storage.attachment': StorageAttachment;
|
|
40
45
|
readonly 'uom.uom': UomUom;
|
|
@@ -68,6 +73,29 @@ export interface AccountTax {
|
|
|
68
73
|
export interface AccountTaxMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'account.tax'> {
|
|
69
74
|
}
|
|
70
75
|
|
|
76
|
+
/** `approval.delegation` (owner: permissions). */
|
|
77
|
+
export interface ApprovalDelegation {
|
|
78
|
+
readonly name: 'approval.delegation';
|
|
79
|
+
readonly fields: {
|
|
80
|
+
readonly id: F.Id<'approval.delegation'>;
|
|
81
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
82
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
83
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
84
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
85
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
86
|
+
readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
|
|
87
|
+
readonly delegate: F.Many2one<'res.users', { readonly required: true }>;
|
|
88
|
+
readonly dateFrom: F.DateOnly<{ readonly required: true }>;
|
|
89
|
+
readonly dateTo: F.DateOnly<{ readonly required: true }>;
|
|
90
|
+
readonly note: F.Char;
|
|
91
|
+
};
|
|
92
|
+
readonly methods: ApprovalDelegationMethods;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Methods of `approval.delegation`: declared ones and transitions. */
|
|
96
|
+
export interface ApprovalDelegationMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.delegation'> {
|
|
97
|
+
}
|
|
98
|
+
|
|
71
99
|
/** `approval.level` (owner: permissions). */
|
|
72
100
|
export interface ApprovalLevel {
|
|
73
101
|
readonly name: 'approval.level';
|
|
@@ -82,7 +110,14 @@ export interface ApprovalLevel {
|
|
|
82
110
|
readonly sequence: F.Integer<{ readonly default: true }>;
|
|
83
111
|
readonly name: F.Char<{ readonly required: true }>;
|
|
84
112
|
readonly condition: F.Json;
|
|
85
|
-
readonly
|
|
113
|
+
readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'field', { readonly required: true; readonly default: true }>;
|
|
114
|
+
readonly approverRole: F.Char;
|
|
115
|
+
readonly approverUsers: F.Many2many<'res.users', { readonly required: true }>;
|
|
116
|
+
readonly approverField: F.Char;
|
|
117
|
+
readonly quorum: F.Selection<'any' | 'all' | 'count', { readonly required: true; readonly default: true }>;
|
|
118
|
+
readonly quorumCount: F.Integer;
|
|
119
|
+
readonly deadlineHours: F.Integer;
|
|
120
|
+
readonly escalateRole: F.Char;
|
|
86
121
|
};
|
|
87
122
|
readonly methods: ApprovalLevelMethods;
|
|
88
123
|
}
|
|
@@ -91,6 +126,29 @@ export interface ApprovalLevel {
|
|
|
91
126
|
export interface ApprovalLevelMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.level'> {
|
|
92
127
|
}
|
|
93
128
|
|
|
129
|
+
/** `approval.link` (owner: permissions). */
|
|
130
|
+
export interface ApprovalLink {
|
|
131
|
+
readonly name: 'approval.link';
|
|
132
|
+
readonly fields: {
|
|
133
|
+
readonly id: F.Id<'approval.link'>;
|
|
134
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
135
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
136
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
137
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
138
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
139
|
+
readonly request: F.Many2one<'approval.request', { readonly required: true }>;
|
|
140
|
+
readonly user: F.Many2one<'res.users', { readonly required: true }>;
|
|
141
|
+
readonly tokenHash: F.Char<{ readonly required: true }>;
|
|
142
|
+
readonly expiresAt: F.Datetime<{ readonly required: true }>;
|
|
143
|
+
readonly usedAt: F.Datetime;
|
|
144
|
+
};
|
|
145
|
+
readonly methods: ApprovalLinkMethods;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/** Methods of `approval.link`: declared ones and transitions. */
|
|
149
|
+
export interface ApprovalLinkMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.link'> {
|
|
150
|
+
}
|
|
151
|
+
|
|
94
152
|
/** `approval.policy` (owner: permissions). */
|
|
95
153
|
export interface ApprovalPolicy {
|
|
96
154
|
readonly name: 'approval.policy';
|
|
@@ -108,6 +166,9 @@ export interface ApprovalPolicy {
|
|
|
108
166
|
readonly company: F.Many2one<'res.company'>;
|
|
109
167
|
readonly onApproved: F.Char;
|
|
110
168
|
readonly onRejected: F.Char;
|
|
169
|
+
readonly onSentBack: F.Char;
|
|
170
|
+
readonly onWithdrawn: F.Char;
|
|
171
|
+
readonly reasonRequired: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
111
172
|
readonly levels: F.One2many<'approval.level', { readonly required: true }>;
|
|
112
173
|
};
|
|
113
174
|
readonly methods: ApprovalPolicyMethods;
|
|
@@ -134,8 +195,16 @@ export interface ApprovalRequest {
|
|
|
134
195
|
readonly targetModel: F.Char<{ readonly required: true }>;
|
|
135
196
|
readonly targetId: F.Integer<{ readonly required: true }>;
|
|
136
197
|
readonly company: F.Many2one<'res.company'>;
|
|
137
|
-
readonly approverRole: F.Char
|
|
138
|
-
readonly
|
|
198
|
+
readonly approverRole: F.Char;
|
|
199
|
+
readonly approvers: F.Many2many<'res.users', { readonly required: true }>;
|
|
200
|
+
readonly required: F.Integer<{ readonly required: true; readonly default: true }>;
|
|
201
|
+
readonly round: F.Integer<{ readonly required: true; readonly default: true }>;
|
|
202
|
+
readonly votes: F.One2many<'approval.vote', { readonly required: true }>;
|
|
203
|
+
readonly dueAt: F.Datetime;
|
|
204
|
+
readonly remindedAt: F.Datetime;
|
|
205
|
+
readonly escalatedTo: F.Char;
|
|
206
|
+
readonly escalatedAt: F.Datetime;
|
|
207
|
+
readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'sent_back' | 'cancelled', { readonly required: true; readonly default: true }>;
|
|
139
208
|
readonly requestedBy: F.Many2one<'res.users'>;
|
|
140
209
|
readonly decidedBy: F.Many2one<'res.users'>;
|
|
141
210
|
readonly decidedAt: F.Datetime;
|
|
@@ -148,6 +217,31 @@ export interface ApprovalRequest {
|
|
|
148
217
|
export interface ApprovalRequestMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.request'> {
|
|
149
218
|
}
|
|
150
219
|
|
|
220
|
+
/** `approval.vote` (owner: permissions). */
|
|
221
|
+
export interface ApprovalVote {
|
|
222
|
+
readonly name: 'approval.vote';
|
|
223
|
+
readonly fields: {
|
|
224
|
+
readonly id: F.Id<'approval.vote'>;
|
|
225
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
226
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
227
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
228
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
229
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
230
|
+
readonly request: F.Many2one<'approval.request', { readonly required: true }>;
|
|
231
|
+
readonly user: F.Many2one<'res.users', { readonly required: true }>;
|
|
232
|
+
readonly decision: F.Selection<'approve' | 'reject' | 'send_back', { readonly required: true }>;
|
|
233
|
+
readonly comment: F.Text;
|
|
234
|
+
readonly at: F.Datetime<{ readonly required: true }>;
|
|
235
|
+
readonly onBehalfOf: F.Many2one<'res.users'>;
|
|
236
|
+
readonly ip: F.Char;
|
|
237
|
+
};
|
|
238
|
+
readonly methods: ApprovalVoteMethods;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/** Methods of `approval.vote`: declared ones and transitions. */
|
|
242
|
+
export interface ApprovalVoteMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.vote'> {
|
|
243
|
+
}
|
|
244
|
+
|
|
151
245
|
/** `audit.event` (owner: base). */
|
|
152
246
|
export interface AuditEvent {
|
|
153
247
|
readonly name: 'audit.event';
|
|
@@ -364,6 +458,26 @@ export interface KoshSavedView {
|
|
|
364
458
|
export interface KoshSavedViewMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.saved_view'> {
|
|
365
459
|
}
|
|
366
460
|
|
|
461
|
+
/** `kosh.setting` (owner: base). */
|
|
462
|
+
export interface KoshSetting {
|
|
463
|
+
readonly name: 'kosh.setting';
|
|
464
|
+
readonly fields: {
|
|
465
|
+
readonly id: F.Id<'kosh.setting'>;
|
|
466
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
467
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
468
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
469
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
470
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
471
|
+
readonly key: F.Char<{ readonly required: true }>;
|
|
472
|
+
readonly value: F.Json;
|
|
473
|
+
};
|
|
474
|
+
readonly methods: KoshSettingMethods;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/** Methods of `kosh.setting`: declared ones and transitions. */
|
|
478
|
+
export interface KoshSettingMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.setting'> {
|
|
479
|
+
}
|
|
480
|
+
|
|
367
481
|
/** `mail.activity` (owner: messaging). */
|
|
368
482
|
export interface MailActivity {
|
|
369
483
|
readonly name: 'mail.activity';
|
|
@@ -651,6 +765,7 @@ export interface ProductCategory {
|
|
|
651
765
|
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
652
766
|
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
653
767
|
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
768
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
654
769
|
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
655
770
|
readonly parent: F.Many2one<'product.category'>;
|
|
656
771
|
};
|
|
@@ -678,6 +793,7 @@ export interface ProductProduct {
|
|
|
678
793
|
readonly category: F.Many2one<'product.category'>;
|
|
679
794
|
readonly uom: F.Many2one<'uom.uom'>;
|
|
680
795
|
readonly barcode: F.Char;
|
|
796
|
+
readonly image: F.Many2one<'storage.attachment'>;
|
|
681
797
|
readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
682
798
|
readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
683
799
|
readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
@@ -766,7 +882,7 @@ export interface PurchaseOrderLine {
|
|
|
766
882
|
export interface PurchaseOrderLineMethods extends F.Methods<typeof import('../module.js').purchaseShutro, 'purchase.order.line'> {
|
|
767
883
|
}
|
|
768
884
|
|
|
769
|
-
/** `res.company` (owner: base). */
|
|
885
|
+
/** `res.company` (owner: base; extended by: contacts, purchase). */
|
|
770
886
|
export interface ResCompany {
|
|
771
887
|
readonly name: 'res.company';
|
|
772
888
|
readonly fields: {
|
|
@@ -786,12 +902,15 @@ export interface ResCompany {
|
|
|
786
902
|
readonly email: F.Char;
|
|
787
903
|
readonly phone: F.Char;
|
|
788
904
|
readonly website: F.Char;
|
|
905
|
+
readonly contactTaxIdRequired: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
|
|
906
|
+
readonly contactUniqueEmail: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
|
|
907
|
+
readonly purchaseTerms: F.Text; // purchase
|
|
789
908
|
};
|
|
790
909
|
readonly methods: ResCompanyMethods;
|
|
791
910
|
}
|
|
792
911
|
|
|
793
912
|
/** Methods of `res.company`: declared ones and transitions. */
|
|
794
|
-
export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'> {
|
|
913
|
+
export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.company'>, F.Methods<typeof import('../module.js').purchaseShutro, 'res.company'> {
|
|
795
914
|
}
|
|
796
915
|
|
|
797
916
|
/** `res.currency` (owner: base). */
|
|
@@ -828,6 +947,10 @@ export interface ResPartner {
|
|
|
828
947
|
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
829
948
|
readonly company: F.Many2one<'res.company', { readonly default: true }>;
|
|
830
949
|
readonly name: F.Char<{ readonly required: true }>;
|
|
950
|
+
readonly image: F.Many2one<'storage.attachment'>;
|
|
951
|
+
readonly tags: F.Many2many<'res.partner.tag', { readonly required: true }>;
|
|
952
|
+
readonly latitude: F.Decimal;
|
|
953
|
+
readonly longitude: F.Decimal;
|
|
831
954
|
readonly isCompany: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
832
955
|
readonly parent: F.Many2one<'res.partner'>;
|
|
833
956
|
readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
|
|
@@ -853,6 +976,25 @@ export interface ResPartner {
|
|
|
853
976
|
export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'> {
|
|
854
977
|
}
|
|
855
978
|
|
|
979
|
+
/** `res.partner.tag` (owner: contacts). */
|
|
980
|
+
export interface ResPartnerTag {
|
|
981
|
+
readonly name: 'res.partner.tag';
|
|
982
|
+
readonly fields: {
|
|
983
|
+
readonly id: F.Id<'res.partner.tag'>;
|
|
984
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
985
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
986
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
987
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
988
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
989
|
+
readonly name: F.Char<{ readonly required: true }>;
|
|
990
|
+
};
|
|
991
|
+
readonly methods: ResPartnerTagMethods;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
/** Methods of `res.partner.tag`: declared ones and transitions. */
|
|
995
|
+
export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
|
|
996
|
+
}
|
|
997
|
+
|
|
856
998
|
/** `res.users` (owner: base). */
|
|
857
999
|
export interface ResUsers {
|
|
858
1000
|
readonly name: 'res.users';
|
|
@@ -898,6 +1040,8 @@ export interface StorageAttachment {
|
|
|
898
1040
|
readonly key: F.Char<{ readonly required: true }>;
|
|
899
1041
|
readonly resModel: F.Char<{ readonly required: true }>;
|
|
900
1042
|
readonly resId: F.Integer<{ readonly required: true }>;
|
|
1043
|
+
readonly variantOf: F.Many2one<'storage.attachment'>;
|
|
1044
|
+
readonly width: F.Integer;
|
|
901
1045
|
};
|
|
902
1046
|
readonly methods: StorageAttachmentMethods;
|
|
903
1047
|
}
|
package/dist/purchase/index.js
CHANGED
|
@@ -9,7 +9,8 @@ import { messaging } from '../messaging/index.js';
|
|
|
9
9
|
import { defineModule } from '../modules-sdk/index.js';
|
|
10
10
|
import { permissions } from '../permissions/index.js';
|
|
11
11
|
import { product } from '../product/index.js';
|
|
12
|
-
import {
|
|
12
|
+
import { reporting } from '../reporting/index.js';
|
|
13
|
+
import { action, calendar, form, kanban, list, search, stat } from '../views/index.js';
|
|
13
14
|
import { purchaseDemo } from './demo.js';
|
|
14
15
|
import { PurchaseOrder, purchaseShutro } from './module.js';
|
|
15
16
|
export { PurchaseOrder, PurchaseOrderLine, purchaseShutro } from './module.js';
|
|
@@ -17,7 +18,14 @@ export const purchase = defineModule({
|
|
|
17
18
|
shutro: purchaseShutro,
|
|
18
19
|
kosh: '^0.1.0',
|
|
19
20
|
hooks: { demo: purchaseDemo },
|
|
20
|
-
depends: [contacts, product, messaging, permissions],
|
|
21
|
+
depends: [contacts, product, messaging, permissions, reporting],
|
|
22
|
+
events: [
|
|
23
|
+
{
|
|
24
|
+
topic: 'purchase.order.confirmed',
|
|
25
|
+
model: 'purchase.order',
|
|
26
|
+
label: 'Purchase order confirmed',
|
|
27
|
+
},
|
|
28
|
+
],
|
|
21
29
|
app: {
|
|
22
30
|
code: 'purchase',
|
|
23
31
|
label: 'Purchase',
|
|
@@ -31,6 +39,22 @@ export const purchase = defineModule({
|
|
|
31
39
|
manager: { label: 'Manager (all orders)', groups: ['purchase.manager'], implies: ['user'] },
|
|
32
40
|
director: { label: 'Director', groups: ['purchase.director'], implies: ['manager'] },
|
|
33
41
|
},
|
|
42
|
+
// Settings › App settings › Purchase (RFC 0020): per company, changed by purchase managers.
|
|
43
|
+
settings: {
|
|
44
|
+
sections: [
|
|
45
|
+
{
|
|
46
|
+
key: 'orders',
|
|
47
|
+
label: 'Purchase orders',
|
|
48
|
+
description: 'The terms new requests for quotation and purchase orders start with.',
|
|
49
|
+
keywords: 'purchase order rfq terms conditions vendor',
|
|
50
|
+
scope: 'company',
|
|
51
|
+
editors: ['purchase.manager'],
|
|
52
|
+
fields: [
|
|
53
|
+
{ key: 'purchaseTerms', help: 'Filled in on new orders; each can still be changed.' },
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
34
58
|
approvals: [
|
|
35
59
|
{
|
|
36
60
|
name: 'Purchase approvals',
|
|
@@ -51,6 +75,134 @@ export const purchase = defineModule({
|
|
|
51
75
|
],
|
|
52
76
|
},
|
|
53
77
|
],
|
|
78
|
+
// The Overview (RFC 0022 step 2): spend against last month, what waits, who we buy from.
|
|
79
|
+
overview: {
|
|
80
|
+
cards: [
|
|
81
|
+
{
|
|
82
|
+
id: 'spend_month',
|
|
83
|
+
title: 'Purchases this month',
|
|
84
|
+
kind: 'kpi',
|
|
85
|
+
model: 'purchase.order',
|
|
86
|
+
measure: 'sum:amountTotal',
|
|
87
|
+
filter: { state: { in: ['purchase', 'done'] } },
|
|
88
|
+
comparison: { field: 'dateOrder', mode: 'previous' },
|
|
89
|
+
w: 3,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: 'orders_month',
|
|
93
|
+
title: 'Orders this month',
|
|
94
|
+
kind: 'kpi',
|
|
95
|
+
model: 'purchase.order',
|
|
96
|
+
measure: 'count',
|
|
97
|
+
filter: { state: { in: ['purchase', 'done'] } },
|
|
98
|
+
comparison: { field: 'dateOrder', mode: 'previous' },
|
|
99
|
+
w: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: 'open_rfqs',
|
|
103
|
+
title: 'Open requests',
|
|
104
|
+
kind: 'kpi',
|
|
105
|
+
model: 'purchase.order',
|
|
106
|
+
measure: 'count',
|
|
107
|
+
filter: { state: { in: ['draft', 'sent'] } },
|
|
108
|
+
w: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: 'to_approve',
|
|
112
|
+
title: 'Waiting approval',
|
|
113
|
+
kind: 'kpi',
|
|
114
|
+
model: 'purchase.order',
|
|
115
|
+
measure: 'count',
|
|
116
|
+
filter: { state: 'to_approve' },
|
|
117
|
+
w: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 'spend_by_month',
|
|
121
|
+
title: 'Purchases by month',
|
|
122
|
+
kind: 'chart',
|
|
123
|
+
model: 'purchase.order',
|
|
124
|
+
measure: 'sum:amountTotal',
|
|
125
|
+
groupBy: 'dateOrder:month',
|
|
126
|
+
filter: { state: { in: ['purchase', 'done'] } },
|
|
127
|
+
chart: 'bar',
|
|
128
|
+
w: 6,
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 'top_vendors',
|
|
132
|
+
title: 'Top vendors',
|
|
133
|
+
kind: 'pivot',
|
|
134
|
+
model: 'purchase.order',
|
|
135
|
+
measure: 'sum:amountTotal',
|
|
136
|
+
groupBy: 'partner',
|
|
137
|
+
filter: { state: { in: ['purchase', 'done'] } },
|
|
138
|
+
w: 6,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: 'by_buyer',
|
|
142
|
+
title: 'By buyer',
|
|
143
|
+
kind: 'chart',
|
|
144
|
+
model: 'purchase.order',
|
|
145
|
+
measure: 'sum:amountTotal',
|
|
146
|
+
groupBy: 'user',
|
|
147
|
+
filter: { state: { in: ['purchase', 'done'] } },
|
|
148
|
+
chart: 'pie',
|
|
149
|
+
w: 6,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: 'biggest_open',
|
|
153
|
+
title: 'Biggest open requests',
|
|
154
|
+
kind: 'list',
|
|
155
|
+
model: 'purchase.order',
|
|
156
|
+
measure: 'sum:amountTotal',
|
|
157
|
+
filter: { state: { in: ['draft', 'sent', 'to_approve'] } },
|
|
158
|
+
w: 6,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
viewExtensions: [
|
|
163
|
+
{
|
|
164
|
+
view: 'product.product.form',
|
|
165
|
+
operations: [
|
|
166
|
+
{
|
|
167
|
+
append: 'related',
|
|
168
|
+
nodes: [
|
|
169
|
+
stat({
|
|
170
|
+
id: 'product_bought',
|
|
171
|
+
label: 'Bought',
|
|
172
|
+
model: 'purchase.order.line',
|
|
173
|
+
where: { product: { $record: 'id' }, 'order.state': { in: ['purchase', 'done'] } },
|
|
174
|
+
measure: { sum: 'quantity' },
|
|
175
|
+
}),
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
view: 'res.partner.form',
|
|
182
|
+
operations: [
|
|
183
|
+
{
|
|
184
|
+
append: 'related',
|
|
185
|
+
nodes: [
|
|
186
|
+
stat({
|
|
187
|
+
id: 'purchase_orders',
|
|
188
|
+
label: 'Purchase orders',
|
|
189
|
+
model: PurchaseOrder,
|
|
190
|
+
where: { partner: { $record: 'id' }, state: { in: ['purchase', 'done'] } },
|
|
191
|
+
action: 'purchase.action_orders',
|
|
192
|
+
}),
|
|
193
|
+
stat({
|
|
194
|
+
id: 'purchase_spend',
|
|
195
|
+
label: 'Purchases',
|
|
196
|
+
model: PurchaseOrder,
|
|
197
|
+
where: { partner: { $record: 'id' }, state: { in: ['purchase', 'done'] } },
|
|
198
|
+
measure: { sum: 'amountTotal' },
|
|
199
|
+
action: 'purchase.action_orders',
|
|
200
|
+
}),
|
|
201
|
+
],
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
],
|
|
54
206
|
actions: {
|
|
55
207
|
'purchase.action_rfqs': action(PurchaseOrder, {
|
|
56
208
|
label: 'Requests for quotation',
|
|
@@ -59,7 +211,7 @@ export const purchase = defineModule({
|
|
|
59
211
|
}),
|
|
60
212
|
'purchase.action_orders': action(PurchaseOrder, {
|
|
61
213
|
label: 'Purchase orders',
|
|
62
|
-
views: ['list', 'kanban', 'form'],
|
|
214
|
+
views: ['list', 'kanban', 'calendar', 'form'],
|
|
63
215
|
defaultFilters: ['orders'],
|
|
64
216
|
}),
|
|
65
217
|
'purchase.action_to_approve': action(PurchaseOrder, {
|
|
@@ -138,6 +290,8 @@ export const purchase = defineModule({
|
|
|
138
290
|
],
|
|
139
291
|
},
|
|
140
292
|
sheet: [
|
|
293
|
+
// Bills and receipts: the bridges append their tiles (RFC 0022 §3.1).
|
|
294
|
+
k.stats('related', []),
|
|
141
295
|
k.group('vendor', ['partner', 'partnerReference', 'currency']),
|
|
142
296
|
k.group('dates', ['name', 'dateOrder', 'datePlanned', 'user', 'origin']),
|
|
143
297
|
k.lines('lines', [
|
|
@@ -157,6 +311,12 @@ export const purchase = defineModule({
|
|
|
157
311
|
readonlyWhen: { state: { in: ['done', 'cancel'] } },
|
|
158
312
|
chatter: true,
|
|
159
313
|
})),
|
|
314
|
+
'purchase.order.calendar': calendar(PurchaseOrder, {
|
|
315
|
+
dateStart: 'datePlanned',
|
|
316
|
+
title: 'name',
|
|
317
|
+
color: 'state',
|
|
318
|
+
mode: 'month',
|
|
319
|
+
}),
|
|
160
320
|
},
|
|
161
321
|
search: {
|
|
162
322
|
'purchase.order': search(PurchaseOrder, {
|