shutro-erp 0.3.3 → 0.3.5
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_portal/.kosh/bindings.js +1 -1
- package/dist/account_portal/.kosh/schema.d.ts +181 -3
- package/dist/account_portal/module.d.ts +359 -6
- package/dist/accounting/.kosh/bindings.js +1 -1
- package/dist/accounting/.kosh/schema.d.ts +181 -3
- package/dist/accounting/index.js +214 -2
- package/dist/accounting/module.d.ts +217 -5
- package/dist/accounting/module.js +23 -2
- 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 +48 -0
- package/dist/cli/templates.d.ts +1 -1
- package/dist/cli/templates.js +137 -0
- package/dist/contacts/.kosh/bindings.js +1 -1
- package/dist/contacts/.kosh/schema.d.ts +205 -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 +82 -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 +799 -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 +1843 -0
- package/dist/crm/module.js +207 -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 +1639 -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 +6968 -0
- package/dist/event_account/module.js +90 -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/integrations/index.js +12 -0
- package/dist/integrations/web/OAuthAppsPage.d.ts +9 -0
- package/dist/integrations/web/OAuthAppsPage.js +79 -0
- package/dist/integrations/web/index.d.ts +1 -0
- package/dist/integrations/web/index.js +3 -0
- package/dist/integrations/web/messages.js +58 -0
- package/dist/l10n_bd/.kosh/bindings.js +1 -1
- package/dist/l10n_bd/.kosh/schema.d.ts +181 -3
- package/dist/l10n_bd/module.d.ts +359 -6
- package/dist/l10n_in/.kosh/bindings.js +1 -1
- package/dist/l10n_in/.kosh/schema.d.ts +181 -3
- package/dist/l10n_in/module.d.ts +380 -7
- 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 +1371 -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 +6953 -0
- package/dist/maintenance_stock/module.js +192 -0
- package/dist/messaging/web/index.js +1 -1
- package/dist/modules-sdk/index.d.ts +1 -1
- package/dist/modules-sdk/manifest.d.ts +70 -0
- 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 +1378 -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 +392 -0
- package/dist/mrp/module.d.ts +8608 -0
- package/dist/mrp/module.js +695 -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 +2106 -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 +20840 -0
- package/dist/mrp_account/module.js +123 -0
- package/dist/notify/web/index.js +1 -1
- package/dist/payment/.kosh/bindings.js +1 -1
- package/dist/payment/.kosh/schema.d.ts +181 -3
- package/dist/payment/module.d.ts +359 -6
- package/dist/portal/.kosh/bindings.js +1 -1
- package/dist/portal/.kosh/schema.d.ts +205 -3
- 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 +1690 -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 +349 -0
- package/dist/pos/module.d.ts +9636 -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 +2015 -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 +11935 -0
- package/dist/pos_stock/module.js +115 -0
- package/dist/product/.kosh/bindings.js +1 -1
- package/dist/product/.kosh/schema.d.ts +178 -1
- package/dist/product/index.js +81 -4
- package/dist/product/module.d.ts +43 -1
- package/dist/product/module.js +9 -2
- package/dist/project/.kosh/bindings.js +1 -1
- package/dist/project/.kosh/schema.d.ts +181 -3
- package/dist/project/index.js +147 -7
- package/dist/project/module.d.ts +210 -2
- package/dist/project/module.js +52 -5
- package/dist/project_portal/.kosh/bindings.js +1 -1
- package/dist/project_portal/.kosh/schema.d.ts +181 -3
- package/dist/project_portal/module.d.ts +353 -4
- package/dist/purchase/.kosh/bindings.js +1 -1
- package/dist/purchase/.kosh/schema.d.ts +181 -3
- package/dist/purchase/index.js +163 -3
- package/dist/purchase/module.d.ts +215 -3
- package/dist/purchase/module.js +21 -3
- package/dist/purchase_account/.kosh/bindings.js +1 -1
- package/dist/purchase_account/.kosh/schema.d.ts +182 -3
- package/dist/purchase_account/index.js +26 -1
- package/dist/purchase_account/module.d.ts +393 -7
- package/dist/purchase_portal/.kosh/bindings.js +1 -1
- package/dist/purchase_portal/.kosh/schema.d.ts +181 -3
- package/dist/purchase_portal/module.d.ts +366 -5
- 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 +1310 -0
- package/dist/purchase_stock/index.d.ts +7 -0
- package/dist/purchase_stock/index.js +91 -0
- package/dist/purchase_stock/module.d.ts +6763 -0
- package/dist/purchase_stock/module.js +144 -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 +1959 -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 +35366 -0
- package/dist/purchase_stock_account/module.js +162 -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 +990 -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 +3247 -0
- package/dist/recruitment/module.js +193 -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 +186 -3
- package/dist/sale_account/index.js +22 -1
- package/dist/sale_account/module.d.ts +461 -7
- package/dist/sale_portal/.kosh/bindings.js +1 -1
- package/dist/sale_portal/.kosh/schema.d.ts +185 -3
- package/dist/sale_portal/module.d.ts +434 -5
- package/dist/sale_project/.kosh/bindings.js +1 -1
- package/dist/sale_project/.kosh/schema.d.ts +187 -3
- package/dist/sale_project/module.d.ts +476 -6
- 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 +1228 -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 +6791 -0
- package/dist/sale_stock/module.js +146 -0
- package/dist/sales/.kosh/bindings.js +1 -1
- package/dist/sales/.kosh/schema.d.ts +185 -3
- package/dist/sales/index.js +191 -4
- package/dist/sales/module.d.ts +355 -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 +85 -0
- package/dist/server/auth/oauth.d.ts +21 -0
- package/dist/server/auth/oauth.js +579 -0
- package/dist/server/auth/service.d.ts +4 -0
- package/dist/server/auth/service.js +17 -0
- package/dist/server/identity.d.ts +2 -0
- package/dist/server/images.d.ts +12 -0
- package/dist/server/images.js +139 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.js +2 -0
- package/dist/server/server.d.ts +4 -0
- package/dist/server/server.js +9 -1
- package/dist/settings/app-settings.d.ts +2 -0
- package/dist/settings/app-settings.js +518 -0
- package/dist/settings/company.js +3 -1
- package/dist/settings/index.d.ts +1 -0
- package/dist/settings/index.js +15 -0
- package/dist/settings/people.js +32 -6
- package/dist/settings/web/AppSettingsPage.d.ts +11 -0
- package/dist/settings/web/AppSettingsPage.js +210 -0
- package/dist/settings/web/CompaniesPage.js +2 -2
- package/dist/settings/web/CompanyPage.js +13 -2
- package/dist/settings/web/ConnectedAppsPage.d.ts +7 -0
- package/dist/settings/web/ConnectedAppsPage.js +33 -0
- package/dist/settings/web/OverviewPage.js +28 -4
- package/dist/settings/web/PeoplePage.js +23 -18
- package/dist/settings/web/ProfilePage.js +9 -7
- package/dist/settings/web/index.d.ts +2 -0
- package/dist/settings/web/index.js +8 -0
- package/dist/settings/web/messages.js +146 -2
- package/dist/stock/.kosh/bindings.d.ts +22 -0
- package/dist/stock/.kosh/bindings.js +15 -0
- package/dist/stock/.kosh/schema.d.ts +1147 -0
- package/dist/stock/demo.d.ts +7 -0
- package/dist/stock/demo.js +55 -0
- package/dist/stock/index.d.ts +3 -0
- package/dist/stock/index.js +674 -0
- package/dist/stock/module.d.ts +6330 -0
- package/dist/stock/module.js +1325 -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 +11 -0
- package/dist/stock/web/index.js +16 -0
- package/dist/stock/web/messages.d.ts +2 -0
- package/dist/stock/web/messages.js +25 -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 +1875 -0
- package/dist/stock_account/index.d.ts +3 -0
- package/dist/stock_account/index.js +130 -0
- package/dist/stock_account/module.d.ts +10655 -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 +413 -0
- package/dist/trade_finance/module.d.ts +3779 -0
- package/dist/trade_finance/module.js +505 -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 +1711 -0
- package/dist/trade_finance_account/index.d.ts +3 -0
- package/dist/trade_finance_account/index.js +92 -0
- package/dist/trade_finance_account/module.d.ts +7928 -0
- package/dist/trade_finance_account/module.js +244 -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 +1153 -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 +4252 -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 +1071 -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 +4280 -0
- package/dist/trade_finance_sale/module.js +44 -0
- package/dist/ui/api.d.ts +6 -1
- package/dist/ui/api.js +2 -1
- package/dist/ui/app.js +51 -17
- package/dist/ui/components/AppIcon.js +33 -1
- package/dist/ui/components/Avatar.d.ts +21 -0
- package/dist/ui/components/Avatar.js +71 -0
- package/dist/ui/components/primitives.d.ts +2 -0
- package/dist/ui/components/primitives.js +7 -1
- package/dist/ui/i18n/messages.d.ts +53 -0
- package/dist/ui/i18n/messages.js +98 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/offline/queue.d.ts +5 -1
- package/dist/ui/offline/queue.js +2 -0
- package/dist/ui/registry.d.ts +12 -1
- package/dist/ui/registry.js +10 -1
- package/dist/ui/search/ViewTabs.d.ts +14 -0
- package/dist/ui/search/ViewTabs.js +42 -0
- package/dist/ui/shell/Consent.d.ts +5 -0
- package/dist/ui/shell/Consent.js +35 -0
- package/dist/ui/shell/Home.js +136 -16
- package/dist/ui/shell/Sidebar.js +15 -22
- package/dist/ui/views/FormView.js +98 -17
- package/dist/ui/views/KanbanView.d.ts +2 -0
- package/dist/ui/views/KanbanView.js +32 -3
- package/dist/ui/views/ListView.js +155 -31
- 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 +194 -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 +250 -0
- package/dist/website/module.d.ts +2987 -0
- package/dist/website/module.js +281 -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 +966 -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 +2955 -0
- package/dist/website_crm/module.js +44 -0
- package/package.json +118 -1
|
@@ -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: ed4aa028c6a6d3e3
|
|
2
2
|
// Schema view of module `accounting` (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
|
|
|
@@ -28,7 +28,9 @@ export interface SchemaView {
|
|
|
28
28
|
readonly 'auth.session': AuthSession;
|
|
29
29
|
readonly 'auth.user_grant': AuthUserGrant;
|
|
30
30
|
readonly 'auth.user_group': AuthUserGroup;
|
|
31
|
+
readonly 'kosh.image': KoshImage;
|
|
31
32
|
readonly 'kosh.saved_view': KoshSavedView;
|
|
33
|
+
readonly 'kosh.setting': KoshSetting;
|
|
32
34
|
readonly 'mail.activity': MailActivity;
|
|
33
35
|
readonly 'mail.activity.type': MailActivityType;
|
|
34
36
|
readonly 'mail.channel': MailChannel;
|
|
@@ -36,6 +38,10 @@ export interface SchemaView {
|
|
|
36
38
|
readonly 'mail.follower': MailFollower;
|
|
37
39
|
readonly 'mail.message': MailMessage;
|
|
38
40
|
readonly 'mail.message.reaction': MailMessageReaction;
|
|
41
|
+
readonly 'oauth.app': OauthApp;
|
|
42
|
+
readonly 'oauth.code': OauthCode;
|
|
43
|
+
readonly 'oauth.grant': OauthGrant;
|
|
44
|
+
readonly 'oauth.token': OauthToken;
|
|
39
45
|
readonly 'product.category': ProductCategory;
|
|
40
46
|
readonly 'product.product': ProductProduct;
|
|
41
47
|
readonly 'report.dashboard': ReportDashboard;
|
|
@@ -48,6 +54,7 @@ export interface SchemaView {
|
|
|
48
54
|
readonly 'res.currency': ResCurrency;
|
|
49
55
|
readonly 'res.currency.rate': ResCurrencyRate;
|
|
50
56
|
readonly 'res.partner': ResPartner;
|
|
57
|
+
readonly 'res.partner.tag': ResPartnerTag;
|
|
51
58
|
readonly 'res.users': ResUsers;
|
|
52
59
|
readonly 'storage.attachment': StorageAttachment;
|
|
53
60
|
readonly 'uom.uom': UomUom;
|
|
@@ -724,6 +731,29 @@ export interface AuthUserGroup {
|
|
|
724
731
|
export interface AuthUserGroupMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_group'> {
|
|
725
732
|
}
|
|
726
733
|
|
|
734
|
+
/** `kosh.image` (owner: base). */
|
|
735
|
+
export interface KoshImage {
|
|
736
|
+
readonly name: 'kosh.image';
|
|
737
|
+
readonly fields: {
|
|
738
|
+
readonly id: F.Id<'kosh.image'>;
|
|
739
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
740
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
741
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
742
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
743
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
744
|
+
readonly ownerModel: F.Char<{ readonly required: true }>;
|
|
745
|
+
readonly ownerId: F.Integer<{ readonly required: true }>;
|
|
746
|
+
readonly mime: F.Char<{ readonly required: true }>;
|
|
747
|
+
readonly data: F.Text<{ readonly required: true }>;
|
|
748
|
+
readonly hash: F.Char<{ readonly required: true }>;
|
|
749
|
+
};
|
|
750
|
+
readonly methods: KoshImageMethods;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/** Methods of `kosh.image`: declared ones and transitions. */
|
|
754
|
+
export interface KoshImageMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.image'> {
|
|
755
|
+
}
|
|
756
|
+
|
|
727
757
|
/** `kosh.saved_view` (owner: base). */
|
|
728
758
|
export interface KoshSavedView {
|
|
729
759
|
readonly name: 'kosh.saved_view';
|
|
@@ -748,6 +778,26 @@ export interface KoshSavedView {
|
|
|
748
778
|
export interface KoshSavedViewMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.saved_view'> {
|
|
749
779
|
}
|
|
750
780
|
|
|
781
|
+
/** `kosh.setting` (owner: base). */
|
|
782
|
+
export interface KoshSetting {
|
|
783
|
+
readonly name: 'kosh.setting';
|
|
784
|
+
readonly fields: {
|
|
785
|
+
readonly id: F.Id<'kosh.setting'>;
|
|
786
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
787
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
788
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
789
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
790
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
791
|
+
readonly key: F.Char<{ readonly required: true }>;
|
|
792
|
+
readonly value: F.Json;
|
|
793
|
+
};
|
|
794
|
+
readonly methods: KoshSettingMethods;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/** Methods of `kosh.setting`: declared ones and transitions. */
|
|
798
|
+
export interface KoshSettingMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.setting'> {
|
|
799
|
+
}
|
|
800
|
+
|
|
751
801
|
/** `mail.activity` (owner: messaging). */
|
|
752
802
|
export interface MailActivity {
|
|
753
803
|
readonly name: 'mail.activity';
|
|
@@ -926,6 +976,105 @@ export interface MailMessageReaction {
|
|
|
926
976
|
export interface MailMessageReactionMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message.reaction'> {
|
|
927
977
|
}
|
|
928
978
|
|
|
979
|
+
/** `oauth.app` (owner: base). */
|
|
980
|
+
export interface OauthApp {
|
|
981
|
+
readonly name: 'oauth.app';
|
|
982
|
+
readonly fields: {
|
|
983
|
+
readonly id: F.Id<'oauth.app'>;
|
|
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
|
+
readonly clientId: F.Char<{ readonly required: true }>;
|
|
991
|
+
readonly secretHash: F.Char;
|
|
992
|
+
readonly confidential: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
993
|
+
readonly redirectUris: F.Text<{ readonly required: true }>;
|
|
994
|
+
readonly scopes: F.Char<{ readonly required: true }>;
|
|
995
|
+
readonly homepage: F.Char;
|
|
996
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
997
|
+
readonly owner: F.Many2one<'res.users'>;
|
|
998
|
+
};
|
|
999
|
+
readonly methods: OauthAppMethods;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
/** Methods of `oauth.app`: declared ones and transitions. */
|
|
1003
|
+
export interface OauthAppMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.app'> {
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
/** `oauth.code` (owner: base). */
|
|
1007
|
+
export interface OauthCode {
|
|
1008
|
+
readonly name: 'oauth.code';
|
|
1009
|
+
readonly fields: {
|
|
1010
|
+
readonly id: F.Id<'oauth.code'>;
|
|
1011
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1012
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1013
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1014
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1015
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1016
|
+
readonly codeHash: F.Char<{ readonly required: true }>;
|
|
1017
|
+
readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
|
|
1018
|
+
readonly redirectUri: F.Char<{ readonly required: true }>;
|
|
1019
|
+
readonly challenge: F.Char;
|
|
1020
|
+
readonly expiresAt: F.Datetime<{ readonly required: true }>;
|
|
1021
|
+
readonly used: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1022
|
+
};
|
|
1023
|
+
readonly methods: OauthCodeMethods;
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
/** Methods of `oauth.code`: declared ones and transitions. */
|
|
1027
|
+
export interface OauthCodeMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.code'> {
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
/** `oauth.grant` (owner: base). */
|
|
1031
|
+
export interface OauthGrant {
|
|
1032
|
+
readonly name: 'oauth.grant';
|
|
1033
|
+
readonly fields: {
|
|
1034
|
+
readonly id: F.Id<'oauth.grant'>;
|
|
1035
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1036
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1037
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1038
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1039
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1040
|
+
readonly user: F.Many2one<'res.users', { readonly required: true }>;
|
|
1041
|
+
readonly app: F.Many2one<'oauth.app', { readonly required: true }>;
|
|
1042
|
+
readonly scopes: F.Char<{ readonly required: true }>;
|
|
1043
|
+
readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1044
|
+
readonly lastUsedAt: F.Datetime;
|
|
1045
|
+
};
|
|
1046
|
+
readonly methods: OauthGrantMethods;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/** Methods of `oauth.grant`: declared ones and transitions. */
|
|
1050
|
+
export interface OauthGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.grant'> {
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
/** `oauth.token` (owner: base). */
|
|
1054
|
+
export interface OauthToken {
|
|
1055
|
+
readonly name: 'oauth.token';
|
|
1056
|
+
readonly fields: {
|
|
1057
|
+
readonly id: F.Id<'oauth.token'>;
|
|
1058
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1059
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1060
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1061
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1062
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1063
|
+
readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
|
|
1064
|
+
readonly accessHash: F.Char<{ readonly required: true }>;
|
|
1065
|
+
readonly refreshHash: F.Char<{ readonly required: true }>;
|
|
1066
|
+
readonly accessExpiresAt: F.Datetime<{ readonly required: true }>;
|
|
1067
|
+
readonly refreshExpiresAt: F.Datetime<{ readonly required: true }>;
|
|
1068
|
+
readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1069
|
+
readonly rotated: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1070
|
+
};
|
|
1071
|
+
readonly methods: OauthTokenMethods;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
/** Methods of `oauth.token`: declared ones and transitions. */
|
|
1075
|
+
export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
|
|
1076
|
+
}
|
|
1077
|
+
|
|
929
1078
|
/** `product.category` (owner: product). */
|
|
930
1079
|
export interface ProductCategory {
|
|
931
1080
|
readonly name: 'product.category';
|
|
@@ -963,6 +1112,7 @@ export interface ProductProduct {
|
|
|
963
1112
|
readonly category: F.Many2one<'product.category'>;
|
|
964
1113
|
readonly uom: F.Many2one<'uom.uom'>;
|
|
965
1114
|
readonly barcode: F.Char;
|
|
1115
|
+
readonly image: F.Many2one<'storage.attachment'>;
|
|
966
1116
|
readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
967
1117
|
readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
968
1118
|
readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
@@ -993,6 +1143,7 @@ export interface ReportDashboard {
|
|
|
993
1143
|
readonly name: F.Char<{ readonly required: true }>;
|
|
994
1144
|
readonly items: F.Json<unknown, { readonly required: true; readonly default: true }>;
|
|
995
1145
|
readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1146
|
+
readonly key: F.Char;
|
|
996
1147
|
};
|
|
997
1148
|
readonly methods: ReportDashboardMethods;
|
|
998
1149
|
}
|
|
@@ -1133,7 +1284,7 @@ export interface ResBankAccount {
|
|
|
1133
1284
|
export interface ResBankAccountMethods extends F.Methods<typeof import('../module.js').accountingShutro, 'res.bank.account'> {
|
|
1134
1285
|
}
|
|
1135
1286
|
|
|
1136
|
-
/** `res.company` (owner: base; extended by: accounting). */
|
|
1287
|
+
/** `res.company` (owner: base; extended by: contacts, accounting). */
|
|
1137
1288
|
export interface ResCompany {
|
|
1138
1289
|
readonly name: 'res.company';
|
|
1139
1290
|
readonly fields: {
|
|
@@ -1153,6 +1304,8 @@ export interface ResCompany {
|
|
|
1153
1304
|
readonly email: F.Char;
|
|
1154
1305
|
readonly phone: F.Char;
|
|
1155
1306
|
readonly website: F.Char;
|
|
1307
|
+
readonly contactTaxIdRequired: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
|
|
1308
|
+
readonly contactUniqueEmail: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
|
|
1156
1309
|
readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
|
|
1157
1310
|
readonly chartTemplate: F.Char; // accounting
|
|
1158
1311
|
readonly country: F.Char; // accounting
|
|
@@ -1169,7 +1322,7 @@ export interface ResCompany {
|
|
|
1169
1322
|
}
|
|
1170
1323
|
|
|
1171
1324
|
/** Methods of `res.company`: declared ones and transitions. */
|
|
1172
|
-
export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../module.js').accountingShutro, 'res.company'> {
|
|
1325
|
+
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').accountingShutro, 'res.company'> {
|
|
1173
1326
|
}
|
|
1174
1327
|
|
|
1175
1328
|
/** `res.currency` (owner: base). */
|
|
@@ -1228,6 +1381,10 @@ export interface ResPartner {
|
|
|
1228
1381
|
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1229
1382
|
readonly company: F.Many2one<'res.company', { readonly default: true }>;
|
|
1230
1383
|
readonly name: F.Char<{ readonly required: true }>;
|
|
1384
|
+
readonly image: F.Many2one<'storage.attachment'>;
|
|
1385
|
+
readonly tags: F.Many2many<'res.partner.tag', { readonly required: true }>;
|
|
1386
|
+
readonly latitude: F.Decimal;
|
|
1387
|
+
readonly longitude: F.Decimal;
|
|
1231
1388
|
readonly isCompany: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1232
1389
|
readonly parent: F.Many2one<'res.partner'>;
|
|
1233
1390
|
readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
|
|
@@ -1254,6 +1411,25 @@ export interface ResPartner {
|
|
|
1254
1411
|
export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../module.js').accountingShutro, 'res.partner'> {
|
|
1255
1412
|
}
|
|
1256
1413
|
|
|
1414
|
+
/** `res.partner.tag` (owner: contacts). */
|
|
1415
|
+
export interface ResPartnerTag {
|
|
1416
|
+
readonly name: 'res.partner.tag';
|
|
1417
|
+
readonly fields: {
|
|
1418
|
+
readonly id: F.Id<'res.partner.tag'>;
|
|
1419
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1420
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1421
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1422
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1423
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1424
|
+
readonly name: F.Char<{ readonly required: true }>;
|
|
1425
|
+
};
|
|
1426
|
+
readonly methods: ResPartnerTagMethods;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
/** Methods of `res.partner.tag`: declared ones and transitions. */
|
|
1430
|
+
export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1257
1433
|
/** `res.users` (owner: base). */
|
|
1258
1434
|
export interface ResUsers {
|
|
1259
1435
|
readonly name: 'res.users';
|
|
@@ -1299,6 +1475,8 @@ export interface StorageAttachment {
|
|
|
1299
1475
|
readonly key: F.Char<{ readonly required: true }>;
|
|
1300
1476
|
readonly resModel: F.Char<{ readonly required: true }>;
|
|
1301
1477
|
readonly resId: F.Integer<{ readonly required: true }>;
|
|
1478
|
+
readonly variantOf: F.Many2one<'storage.attachment'>;
|
|
1479
|
+
readonly width: F.Integer;
|
|
1302
1480
|
};
|
|
1303
1481
|
readonly methods: StorageAttachmentMethods;
|
|
1304
1482
|
}
|
package/dist/accounting/index.js
CHANGED
|
@@ -18,7 +18,7 @@ import { permissions } from '../permissions/index.js';
|
|
|
18
18
|
import { product } from '../product/index.js';
|
|
19
19
|
import { reporting } from '../reporting/index.js';
|
|
20
20
|
import { HttpProblem } from '../server/index.js';
|
|
21
|
-
import { action, field, form, list, pivot, search } from '../views/index.js';
|
|
21
|
+
import { action, field, form, list, pivot, search, stat } from '../views/index.js';
|
|
22
22
|
import { ChartInstalledError, chartsOf, installChart, installedChart, installImmutability, installLocalization, localizationsOf, } from './chart.js';
|
|
23
23
|
import { agingReport, closeFiscalYear, readSettings, reopenFiscalYear, updateSettings, } from './closing.js';
|
|
24
24
|
import { accountingDemo } from './demo.js';
|
|
@@ -128,6 +128,148 @@ export const accounting = defineModule({
|
|
|
128
128
|
implies: ['user'],
|
|
129
129
|
},
|
|
130
130
|
},
|
|
131
|
+
// Settings › App settings › Accounting (RFC 0020): per company, changed by accounting managers.
|
|
132
|
+
settings: {
|
|
133
|
+
sections: [
|
|
134
|
+
{
|
|
135
|
+
key: 'periods',
|
|
136
|
+
label: 'Fiscal year and lock dates',
|
|
137
|
+
description: 'When the fiscal year starts, and the dates before which nothing may change.',
|
|
138
|
+
keywords: 'fiscal year lock date period closing tax return',
|
|
139
|
+
scope: 'company',
|
|
140
|
+
editors: ['account.manager'],
|
|
141
|
+
fields: [
|
|
142
|
+
{
|
|
143
|
+
key: 'fiscalYearStart',
|
|
144
|
+
min: 1,
|
|
145
|
+
max: 12,
|
|
146
|
+
help: 'The month it starts: 7 for July–June.',
|
|
147
|
+
},
|
|
148
|
+
{ key: 'lockDate', help: 'Nothing is posted, reversed or reconciled on or before it.' },
|
|
149
|
+
{
|
|
150
|
+
key: 'taxLockDate',
|
|
151
|
+
help: 'Tax returns are filed up to it: tax lines cannot change on or before it.',
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
// The Overview (RFC 0022 step 2): what is owed to us and by us, the month's invoicing, who owes most.
|
|
158
|
+
overview: {
|
|
159
|
+
cards: [
|
|
160
|
+
{
|
|
161
|
+
id: 'receivable',
|
|
162
|
+
title: 'Receivable',
|
|
163
|
+
kind: 'kpi',
|
|
164
|
+
model: 'account.move',
|
|
165
|
+
measure: 'sum:amountResidual',
|
|
166
|
+
filter: {
|
|
167
|
+
kind: { in: ['out_invoice', 'out_debit'] },
|
|
168
|
+
state: 'posted',
|
|
169
|
+
paymentState: { in: ['not_paid', 'partial'] },
|
|
170
|
+
},
|
|
171
|
+
w: 3,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: 'payable',
|
|
175
|
+
title: 'Payable',
|
|
176
|
+
kind: 'kpi',
|
|
177
|
+
model: 'account.move',
|
|
178
|
+
measure: 'sum:amountResidual',
|
|
179
|
+
filter: {
|
|
180
|
+
kind: { in: ['in_invoice', 'in_debit'] },
|
|
181
|
+
state: 'posted',
|
|
182
|
+
paymentState: { in: ['not_paid', 'partial'] },
|
|
183
|
+
},
|
|
184
|
+
w: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
id: 'invoiced_month',
|
|
188
|
+
title: 'Invoiced this month',
|
|
189
|
+
kind: 'kpi',
|
|
190
|
+
model: 'account.move',
|
|
191
|
+
measure: 'sum:amountTotal',
|
|
192
|
+
filter: { kind: 'out_invoice', state: 'posted' },
|
|
193
|
+
comparison: { field: 'date', mode: 'previous' },
|
|
194
|
+
w: 3,
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
id: 'billed_month',
|
|
198
|
+
title: 'Bills this month',
|
|
199
|
+
kind: 'kpi',
|
|
200
|
+
model: 'account.move',
|
|
201
|
+
measure: 'sum:amountTotal',
|
|
202
|
+
filter: { kind: 'in_invoice', state: 'posted' },
|
|
203
|
+
comparison: { field: 'date', mode: 'previous' },
|
|
204
|
+
w: 3,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
id: 'revenue_by_month',
|
|
208
|
+
title: 'Invoiced by month',
|
|
209
|
+
kind: 'chart',
|
|
210
|
+
model: 'account.move',
|
|
211
|
+
measure: 'sum:amountTotal',
|
|
212
|
+
groupBy: 'date:month',
|
|
213
|
+
filter: { kind: 'out_invoice', state: 'posted' },
|
|
214
|
+
chart: 'bar',
|
|
215
|
+
w: 6,
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: 'top_debtors',
|
|
219
|
+
title: 'Who owes most',
|
|
220
|
+
kind: 'pivot',
|
|
221
|
+
model: 'account.move',
|
|
222
|
+
measure: 'sum:amountResidual',
|
|
223
|
+
groupBy: 'partner',
|
|
224
|
+
filter: {
|
|
225
|
+
kind: { in: ['out_invoice', 'out_debit'] },
|
|
226
|
+
state: 'posted',
|
|
227
|
+
paymentState: { in: ['not_paid', 'partial'] },
|
|
228
|
+
},
|
|
229
|
+
w: 6,
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
id: 'payments_month',
|
|
233
|
+
title: 'Payments this month',
|
|
234
|
+
kind: 'kpi',
|
|
235
|
+
model: 'account.payment',
|
|
236
|
+
measure: 'sum:amount',
|
|
237
|
+
comparison: { field: 'date', mode: 'previous' },
|
|
238
|
+
w: 3,
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
id: 'drafts',
|
|
242
|
+
title: 'Draft invoices and bills',
|
|
243
|
+
kind: 'kpi',
|
|
244
|
+
model: 'account.move',
|
|
245
|
+
measure: 'count',
|
|
246
|
+
filter: { kind: { ne: 'entry' }, state: 'draft' },
|
|
247
|
+
w: 3,
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
id: 'to_approve',
|
|
251
|
+
title: 'Waiting approval',
|
|
252
|
+
kind: 'kpi',
|
|
253
|
+
model: 'account.move',
|
|
254
|
+
measure: 'count',
|
|
255
|
+
filter: { state: 'to_approve' },
|
|
256
|
+
w: 3,
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
id: 'biggest_open',
|
|
260
|
+
title: 'Biggest open invoices',
|
|
261
|
+
kind: 'list',
|
|
262
|
+
model: 'account.move',
|
|
263
|
+
measure: 'sum:amountResidual',
|
|
264
|
+
filter: {
|
|
265
|
+
kind: { in: ['out_invoice', 'out_debit'] },
|
|
266
|
+
state: 'posted',
|
|
267
|
+
paymentState: { in: ['not_paid', 'partial'] },
|
|
268
|
+
},
|
|
269
|
+
w: 3,
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
},
|
|
131
273
|
actions: {
|
|
132
274
|
'accounting.action_customer_invoices': action(AccountMove, {
|
|
133
275
|
label: 'Customer invoices',
|
|
@@ -425,6 +567,53 @@ export const accounting = defineModule({
|
|
|
425
567
|
],
|
|
426
568
|
// Which withholdings apply to a contact (VDS, TDS), next to their roles (RFC 0016).
|
|
427
569
|
viewExtensions: [
|
|
570
|
+
// The contact's invoices, what they still owe, and their bills (RFC 0022 §3.1).
|
|
571
|
+
{
|
|
572
|
+
view: 'res.partner.form',
|
|
573
|
+
operations: [
|
|
574
|
+
{
|
|
575
|
+
append: 'related',
|
|
576
|
+
nodes: [
|
|
577
|
+
stat({
|
|
578
|
+
id: 'customer_invoices',
|
|
579
|
+
label: 'Invoices',
|
|
580
|
+
model: AccountMove,
|
|
581
|
+
where: {
|
|
582
|
+
partner: { $record: 'id' },
|
|
583
|
+
kind: { in: ['out_invoice', 'out_refund', 'out_debit'] },
|
|
584
|
+
state: 'posted',
|
|
585
|
+
},
|
|
586
|
+
action: 'accounting.action_customer_invoices',
|
|
587
|
+
}),
|
|
588
|
+
stat({
|
|
589
|
+
id: 'customer_due',
|
|
590
|
+
label: 'Due from them',
|
|
591
|
+
model: AccountMove,
|
|
592
|
+
where: {
|
|
593
|
+
partner: { $record: 'id' },
|
|
594
|
+
kind: { in: ['out_invoice', 'out_debit'] },
|
|
595
|
+
state: 'posted',
|
|
596
|
+
paymentState: { ne: 'paid' },
|
|
597
|
+
},
|
|
598
|
+
measure: { sum: 'amountResidual' },
|
|
599
|
+
action: 'accounting.action_customer_invoices',
|
|
600
|
+
tone: 'warning',
|
|
601
|
+
}),
|
|
602
|
+
stat({
|
|
603
|
+
id: 'vendor_bills',
|
|
604
|
+
label: 'Bills',
|
|
605
|
+
model: AccountMove,
|
|
606
|
+
where: {
|
|
607
|
+
partner: { $record: 'id' },
|
|
608
|
+
kind: { in: ['in_invoice', 'in_refund', 'in_debit'] },
|
|
609
|
+
state: 'posted',
|
|
610
|
+
},
|
|
611
|
+
action: 'accounting.action_vendor_bills',
|
|
612
|
+
}),
|
|
613
|
+
],
|
|
614
|
+
},
|
|
615
|
+
],
|
|
616
|
+
},
|
|
428
617
|
// A tax's accounts, reverse charge's payable account, and its components (CGST / SGST / IGST).
|
|
429
618
|
{
|
|
430
619
|
view: 'account.tax.form',
|
|
@@ -575,7 +764,7 @@ export const accounting = defineModule({
|
|
|
575
764
|
'name',
|
|
576
765
|
'partner',
|
|
577
766
|
'date',
|
|
578
|
-
'dateDue',
|
|
767
|
+
{ field: 'dateDue', widget: 'daysLeft' },
|
|
579
768
|
'invoiceOrigin',
|
|
580
769
|
{ field: 'amountTotal', sum: true },
|
|
581
770
|
{ field: 'amountResidual', sum: true },
|
|
@@ -583,6 +772,11 @@ export const accounting = defineModule({
|
|
|
583
772
|
{ field: 'paymentState', widget: 'badge' },
|
|
584
773
|
],
|
|
585
774
|
defaultOrder: ['date desc', 'name desc'],
|
|
775
|
+
decorations: {
|
|
776
|
+
success: { paymentState: 'paid' },
|
|
777
|
+
warning: { paymentState: 'partial' },
|
|
778
|
+
neutral: { state: 'cancel' },
|
|
779
|
+
},
|
|
586
780
|
}),
|
|
587
781
|
'account.move.invoice.form': form(AccountMove, (k) => ({
|
|
588
782
|
header: {
|
|
@@ -596,6 +790,24 @@ export const accounting = defineModule({
|
|
|
596
790
|
],
|
|
597
791
|
},
|
|
598
792
|
sheet: [
|
|
793
|
+
k.stats('related', [
|
|
794
|
+
{
|
|
795
|
+
id: 'invoice_payments',
|
|
796
|
+
label: 'Payments',
|
|
797
|
+
model: AccountPayment,
|
|
798
|
+
where: { documents: { any: { id: { $record: 'id' } } }, state: 'posted' },
|
|
799
|
+
action: 'accounting.action_payments',
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
id: 'invoice_paid',
|
|
803
|
+
label: 'Paid',
|
|
804
|
+
model: AccountPayment,
|
|
805
|
+
where: { documents: { any: { id: { $record: 'id' } } }, state: 'posted' },
|
|
806
|
+
measure: { sum: 'amount' },
|
|
807
|
+
action: 'accounting.action_payments',
|
|
808
|
+
tone: 'success',
|
|
809
|
+
},
|
|
810
|
+
]),
|
|
599
811
|
k.group('party', ['partner', 'kind', 'invoiceOrigin', 'ref', 'debitOf', 'placeOfSupply']),
|
|
600
812
|
k.group('dates', ['date', 'dateDue', 'paymentTerm', 'journal']),
|
|
601
813
|
k.lines('lines', [
|