shutro-erp 0.3.5 → 0.3.7
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.js +15 -0
- package/dist/{mrp_account → account_asset}/.kosh/schema.d.ts +785 -614
- 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/i18n/bn.d.ts +2 -0
- package/dist/account_asset/i18n/bn.js +97 -0
- package/dist/account_asset/index.d.ts +9 -0
- package/dist/account_asset/index.js +337 -0
- package/dist/account_asset/module.d.ts +11076 -0
- package/dist/account_asset/module.js +230 -0
- package/dist/account_budget/.kosh/bindings.js +15 -0
- package/dist/account_budget/.kosh/schema.d.ts +2841 -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/i18n/bn.d.ts +2 -0
- package/dist/account_budget/i18n/bn.js +63 -0
- package/dist/account_budget/index.d.ts +4 -0
- package/dist/account_budget/index.js +237 -0
- package/dist/account_budget/module.d.ts +27289 -0
- package/dist/account_budget/module.js +182 -0
- package/dist/account_portal/.kosh/bindings.js +1 -1
- package/dist/account_portal/.kosh/schema.d.ts +651 -10
- package/dist/account_portal/i18n/bn.d.ts +2 -0
- package/dist/account_portal/i18n/bn.js +6 -0
- package/dist/account_portal/index.js +2 -0
- package/dist/account_portal/module.d.ts +5212 -1592
- package/dist/accounting/.kosh/bindings.js +1 -1
- package/dist/accounting/.kosh/schema.d.ts +651 -10
- package/dist/accounting/closing.js +1 -0
- package/dist/accounting/fiscal.d.ts +578 -0
- package/dist/accounting/fiscal.js +401 -0
- package/dist/accounting/followups.d.ts +618 -0
- package/dist/accounting/followups.js +420 -0
- package/dist/accounting/i18n/bn.d.ts +2 -0
- package/dist/accounting/i18n/bn.js +425 -0
- package/dist/accounting/index.d.ts +3 -1
- package/dist/accounting/index.js +780 -5
- package/dist/accounting/module.d.ts +5386 -1543
- package/dist/accounting/module.js +155 -18
- package/dist/accounting/statements.d.ts +878 -0
- package/dist/accounting/statements.js +728 -0
- package/dist/accounting/web/BankReconcilePage.d.ts +9 -0
- package/dist/accounting/web/BankReconcilePage.js +138 -0
- package/dist/accounting/web/FollowupsPage.d.ts +8 -0
- package/dist/accounting/web/FollowupsPage.js +54 -0
- package/dist/accounting/web/PostingPreview.d.ts +8 -0
- package/dist/accounting/web/PostingPreview.js +26 -0
- package/dist/accounting/web/index.d.ts +3 -0
- package/dist/accounting/web/index.js +9 -0
- package/dist/accounting/web/messages.js +140 -0
- package/dist/approvals/.kosh/bindings.d.ts +22 -0
- package/dist/approvals/.kosh/bindings.js +15 -0
- package/dist/approvals/.kosh/schema.d.ts +879 -0
- package/dist/approvals/demo.d.ts +7 -0
- package/dist/approvals/demo.js +41 -0
- package/dist/approvals/i18n/bn.d.ts +2 -0
- package/dist/approvals/i18n/bn.js +133 -0
- package/dist/approvals/index.d.ts +36 -0
- package/dist/approvals/index.js +772 -0
- package/dist/approvals/mails.d.ts +30 -0
- package/dist/approvals/mails.js +87 -0
- package/dist/approvals/module.d.ts +2930 -0
- package/dist/approvals/module.js +473 -0
- package/dist/approvals/web/Config.d.ts +12 -0
- package/dist/approvals/web/Config.js +60 -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/Matrix.d.ts +9 -0
- package/dist/approvals/web/Matrix.js +26 -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 +15 -0
- package/dist/approvals/web/index.js +29 -0
- package/dist/approvals/web/messages.d.ts +2 -0
- package/dist/approvals/web/messages.js +211 -0
- package/dist/approvals/web/shared.d.ts +59 -0
- package/dist/approvals/web/shared.js +46 -0
- package/dist/approvals_purchase/.kosh/bindings.d.ts +22 -0
- package/dist/approvals_purchase/.kosh/bindings.js +15 -0
- package/dist/approvals_purchase/.kosh/schema.d.ts +1997 -0
- package/dist/approvals_purchase/i18n/bn.d.ts +2 -0
- package/dist/approvals_purchase/i18n/bn.js +5 -0
- package/dist/approvals_purchase/index.d.ts +3 -0
- package/dist/approvals_purchase/index.js +47 -0
- package/dist/approvals_purchase/module.d.ts +12670 -0
- package/dist/approvals_purchase/module.js +84 -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 +1106 -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/i18n/bn.d.ts +2 -0
- package/dist/attendance/i18n/bn.js +147 -0
- package/dist/attendance/index.d.ts +4 -0
- package/dist/attendance/index.js +515 -0
- package/dist/attendance/module.d.ts +4413 -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/automation/engine.js +1 -1
- package/dist/calendar/.kosh/bindings.js +1 -1
- package/dist/calendar/.kosh/schema.d.ts +2 -1
- package/dist/calendar/i18n/bn.d.ts +2 -0
- package/dist/calendar/i18n/bn.js +80 -0
- package/dist/calendar/index.js +77 -0
- package/dist/calendar/module.d.ts +26 -0
- package/dist/calendar/module.js +14 -4
- package/dist/cli/apps.js +25 -5
- package/dist/cli/init.js +46 -4
- package/dist/cli/templates.d.ts +1 -1
- package/dist/cli/templates.js +123 -5
- package/dist/contacts/.kosh/bindings.js +1 -1
- package/dist/contacts/.kosh/schema.d.ts +2 -1
- package/dist/contacts/i18n/bn.d.ts +2 -0
- package/dist/contacts/i18n/bn.js +67 -0
- package/dist/contacts/index.js +3 -0
- package/dist/contacts/module.d.ts +42 -0
- package/dist/contacts/module.js +19 -3
- package/dist/crm/.kosh/bindings.js +1 -1
- package/dist/crm/.kosh/schema.d.ts +3 -1
- package/dist/crm/i18n/bn.d.ts +2 -0
- package/dist/crm/i18n/bn.js +80 -0
- package/dist/crm/index.js +22 -0
- package/dist/crm/module.d.ts +22 -0
- package/dist/crm/module.js +6 -3
- package/dist/documents/.kosh/bindings.d.ts +22 -0
- package/dist/documents/.kosh/bindings.js +15 -0
- package/dist/documents/.kosh/schema.d.ts +863 -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/i18n/bn.d.ts +2 -0
- package/dist/documents/i18n/bn.js +83 -0
- package/dist/documents/index.d.ts +30 -0
- package/dist/documents/index.js +569 -0
- package/dist/documents/module.d.ts +2801 -0
- package/dist/documents/module.js +215 -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.js +1 -1
- package/dist/event/.kosh/schema.d.ts +2 -1
- package/dist/event/i18n/bn.d.ts +2 -0
- package/dist/event/i18n/bn.js +101 -0
- package/dist/event/index.js +66 -0
- package/dist/event/module.d.ts +20 -0
- package/dist/event/module.js +8 -1
- package/dist/event_account/.kosh/bindings.js +1 -1
- package/dist/event_account/.kosh/schema.d.ts +651 -10
- package/dist/event_account/i18n/bn.d.ts +2 -0
- package/dist/event_account/i18n/bn.js +5 -0
- package/dist/event_account/index.js +2 -0
- package/dist/event_account/module.d.ts +5133 -1513
- package/dist/expense/.kosh/bindings.d.ts +22 -0
- package/dist/expense/.kosh/bindings.js +15 -0
- package/dist/expense/.kosh/schema.d.ts +1620 -0
- package/dist/expense/demo.d.ts +7 -0
- package/dist/expense/demo.js +69 -0
- package/dist/expense/i18n/bn.d.ts +2 -0
- package/dist/expense/i18n/bn.js +155 -0
- package/dist/expense/index.d.ts +3 -0
- package/dist/expense/index.js +502 -0
- package/dist/expense/module.d.ts +6768 -0
- package/dist/expense/module.js +649 -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 +2515 -0
- package/dist/expense_account/i18n/bn.d.ts +2 -0
- package/dist/expense_account/i18n/bn.js +15 -0
- package/dist/expense_account/index.d.ts +3 -0
- package/dist/expense_account/index.js +76 -0
- package/dist/expense_account/module.d.ts +14628 -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 +886 -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/i18n/bn.d.ts +2 -0
- package/dist/helpdesk/i18n/bn.js +127 -0
- package/dist/helpdesk/index.d.ts +10 -0
- package/dist/helpdesk/index.js +463 -0
- package/dist/helpdesk/module.d.ts +2960 -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.js +1 -1
- package/dist/hr/.kosh/schema.d.ts +59 -1
- package/dist/hr/demo.js +11 -1
- package/dist/hr/i18n/bn.d.ts +2 -0
- package/dist/hr/i18n/bn.js +126 -0
- package/dist/hr/index.d.ts +1 -1
- package/dist/hr/index.js +158 -12
- package/dist/hr/module.d.ts +932 -59
- package/dist/hr/module.js +114 -17
- package/dist/indent/.kosh/bindings.d.ts +22 -0
- package/dist/indent/.kosh/bindings.js +15 -0
- package/dist/indent/.kosh/schema.d.ts +2084 -0
- package/dist/indent/demo.d.ts +7 -0
- package/dist/indent/demo.js +48 -0
- package/dist/indent/i18n/bn.d.ts +2 -0
- package/dist/indent/i18n/bn.js +143 -0
- package/dist/indent/index.d.ts +3 -0
- package/dist/indent/index.js +450 -0
- package/dist/indent/module.d.ts +13424 -0
- package/dist/indent/module.js +792 -0
- package/dist/indent_purchase/.kosh/bindings.d.ts +22 -0
- package/dist/indent_purchase/.kosh/bindings.js +15 -0
- package/dist/indent_purchase/.kosh/schema.d.ts +2710 -0
- package/dist/indent_purchase/i18n/bn.d.ts +2 -0
- package/dist/indent_purchase/i18n/bn.js +13 -0
- package/dist/indent_purchase/index.d.ts +3 -0
- package/dist/indent_purchase/index.js +61 -0
- package/dist/indent_purchase/module.d.ts +27950 -0
- package/dist/indent_purchase/module.js +163 -0
- package/dist/l10n_bd/.kosh/bindings.js +1 -1
- package/dist/l10n_bd/.kosh/schema.d.ts +651 -10
- package/dist/l10n_bd/i18n/bn.d.ts +2 -0
- package/dist/l10n_bd/i18n/bn.js +69 -0
- package/dist/l10n_bd/index.js +2 -0
- package/dist/l10n_bd/module.d.ts +5212 -1592
- 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 +2891 -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/i18n/bn.d.ts +2 -0
- package/dist/l10n_bd_payroll/i18n/bn.js +4 -0
- package/dist/l10n_bd_payroll/index.d.ts +4 -0
- package/dist/l10n_bd_payroll/index.js +26 -0
- package/dist/l10n_bd_payroll/module.d.ts +17294 -0
- package/dist/l10n_bd_payroll/module.js +86 -0
- package/dist/l10n_bd_pos/.kosh/bindings.d.ts +22 -0
- package/dist/{mrp_account → l10n_bd_pos}/.kosh/bindings.js +2 -2
- package/dist/l10n_bd_pos/.kosh/schema.d.ts +2341 -0
- package/dist/l10n_bd_pos/i18n/bn.d.ts +2 -0
- package/dist/l10n_bd_pos/i18n/bn.js +32 -0
- package/dist/l10n_bd_pos/index.d.ts +3 -0
- package/dist/l10n_bd_pos/index.js +111 -0
- package/dist/{mrp_account → l10n_bd_pos}/module.d.ts +9047 -6981
- package/dist/l10n_bd_pos/module.js +43 -0
- package/dist/l10n_in/.kosh/bindings.js +1 -1
- package/dist/l10n_in/.kosh/schema.d.ts +651 -10
- package/dist/l10n_in/i18n/bn.d.ts +2 -0
- package/dist/l10n_in/i18n/bn.js +95 -0
- package/dist/l10n_in/index.js +2 -0
- package/dist/l10n_in/module.d.ts +6778 -1580
- package/dist/l10n_in/module.js +25 -5
- package/dist/l10n_in/web/GstSettings.js +2 -2
- package/dist/mail/inbound/handle.js +8 -5
- package/dist/mail/inbound/models.js +5 -3
- package/dist/mail/index.d.ts +12 -1
- package/dist/mail/index.js +139 -2
- package/dist/mail/send.d.ts +56 -0
- package/dist/mail/send.js +394 -0
- package/dist/mail/web/SendButton.d.ts +9 -0
- package/dist/mail/web/SendButton.js +71 -0
- package/dist/mail/web/SendSelected.d.ts +8 -0
- package/dist/mail/web/SendSelected.js +33 -0
- package/dist/mail/web/index.d.ts +2 -0
- package/dist/mail/web/index.js +6 -0
- package/dist/mail/web/messages.js +36 -0
- package/dist/maintenance/.kosh/bindings.js +1 -1
- package/dist/maintenance/.kosh/schema.d.ts +2 -1
- package/dist/maintenance/i18n/bn.d.ts +2 -0
- package/dist/maintenance/i18n/bn.js +132 -0
- package/dist/maintenance/index.js +85 -0
- package/dist/maintenance/module.d.ts +25 -0
- package/dist/maintenance/module.js +27 -9
- package/dist/maintenance_stock/.kosh/bindings.js +1 -1
- package/dist/maintenance_stock/.kosh/schema.d.ts +374 -3
- package/dist/maintenance_stock/i18n/bn.d.ts +2 -0
- package/dist/maintenance_stock/i18n/bn.js +21 -0
- package/dist/maintenance_stock/index.js +2 -0
- package/dist/maintenance_stock/module.d.ts +6095 -1327
- package/dist/maintenance_stock/module.js +1 -0
- package/dist/modules-sdk/apps.d.ts +10 -0
- package/dist/modules-sdk/apps.js +32 -0
- package/dist/modules-sdk/index.d.ts +1 -1
- package/dist/modules-sdk/manifest.d.ts +105 -2
- package/dist/payment/.kosh/bindings.js +1 -1
- package/dist/payment/.kosh/schema.d.ts +653 -11
- package/dist/payment/i18n/bn.d.ts +2 -0
- package/dist/payment/i18n/bn.js +59 -0
- package/dist/payment/index.d.ts +41 -0
- package/dist/payment/index.js +216 -74
- package/dist/payment/module.d.ts +5353 -1675
- package/dist/payment/module.js +36 -6
- package/dist/payment/settle.js +11 -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 +1448 -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/i18n/bn.d.ts +2 -0
- package/dist/payroll/i18n/bn.js +206 -0
- package/dist/payroll/index.d.ts +230 -0
- package/dist/payroll/index.js +715 -0
- package/dist/{mrp → payroll}/module.d.ts +4294 -2624
- 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 +2887 -0
- package/dist/payroll_account/i18n/bn.d.ts +2 -0
- package/dist/payroll_account/i18n/bn.js +10 -0
- package/dist/payroll_account/index.d.ts +3 -0
- package/dist/payroll_account/index.js +42 -0
- package/dist/payroll_account/module.d.ts +16738 -0
- package/dist/payroll_account/module.js +256 -0
- package/dist/permissions/approvals.d.ts +227 -12
- package/dist/permissions/approvals.js +1421 -67
- package/dist/permissions/index.d.ts +1 -1
- package/dist/permissions/index.js +2 -2
- package/dist/permissions/models.js +364 -13
- package/dist/permissions/routes.d.ts +9 -1
- package/dist/permissions/routes.js +72 -5
- package/dist/permissions/web/ApprovalPanel.d.ts +5 -4
- package/dist/permissions/web/ApprovalPanel.js +75 -11
- 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 +95 -0
- package/dist/portal/.kosh/bindings.js +1 -1
- package/dist/portal/.kosh/schema.d.ts +2 -1
- package/dist/portal/documents.d.ts +3 -0
- package/dist/portal/documents.js +21 -1
- package/dist/portal/i18n/bn.d.ts +2 -0
- package/dist/portal/i18n/bn.js +33 -0
- package/dist/portal/index.js +3 -1
- package/dist/portal/module.d.ts +20 -0
- package/dist/portal/routes-documents.js +76 -0
- package/dist/pos/.kosh/bindings.js +1 -1
- package/dist/pos/.kosh/schema.d.ts +652 -10
- package/dist/pos/i18n/bn.d.ts +2 -0
- package/dist/pos/i18n/bn.js +133 -0
- package/dist/pos/index.js +87 -1
- package/dist/pos/module.d.ts +6967 -1709
- package/dist/pos/module.js +49 -5
- package/dist/pos/routes.js +80 -7
- package/dist/pos/web/Register.js +2 -5
- package/dist/pos_stock/.kosh/bindings.js +1 -1
- package/dist/pos_stock/.kosh/schema.d.ts +822 -12
- package/dist/pos_stock/i18n/bn.d.ts +2 -0
- package/dist/pos_stock/i18n/bn.js +6 -0
- package/dist/pos_stock/index.js +2 -0
- package/dist/pos_stock/module.d.ts +11241 -2851
- package/dist/product/.kosh/bindings.js +1 -1
- package/dist/product/.kosh/schema.d.ts +203 -1
- package/dist/product/i18n/bn.d.ts +2 -0
- package/dist/product/i18n/bn.js +175 -0
- package/dist/product/index.d.ts +1 -0
- package/dist/product/index.js +301 -1
- package/dist/product/module.d.ts +1727 -0
- package/dist/product/module.js +67 -6
- package/dist/product/pricelist.d.ts +575 -0
- package/dist/product/pricelist.js +257 -0
- package/dist/product/variants.d.ts +908 -0
- package/dist/product/variants.js +251 -0
- package/dist/production/.kosh/bindings.d.ts +22 -0
- package/dist/production/.kosh/bindings.js +15 -0
- package/dist/production/.kosh/schema.d.ts +2345 -0
- package/dist/{mrp → production}/demo.d.ts +1 -1
- package/dist/{mrp → production}/demo.js +5 -5
- package/dist/production/depth.d.ts +790 -0
- package/dist/production/depth.js +262 -0
- package/dist/production/i18n/bn.d.ts +2 -0
- package/dist/production/i18n/bn.js +350 -0
- package/dist/production/index.d.ts +6 -0
- package/dist/production/index.js +1256 -0
- package/dist/production/module.d.ts +17327 -0
- package/dist/production/module.js +1333 -0
- package/dist/production/plan.d.ts +921 -0
- package/dist/production/plan.js +511 -0
- package/dist/production/schedule.d.ts +656 -0
- package/dist/production/schedule.js +309 -0
- package/dist/production_account/.kosh/bindings.d.ts +22 -0
- package/dist/production_account/.kosh/bindings.js +15 -0
- package/dist/production_account/.kosh/schema.d.ts +3496 -0
- package/dist/production_account/i18n/bn.d.ts +2 -0
- package/dist/production_account/i18n/bn.js +93 -0
- package/dist/production_account/index.d.ts +4 -0
- package/dist/production_account/index.js +246 -0
- package/dist/production_account/module.d.ts +1192 -0
- package/dist/{mrp_account → production_account}/module.js +72 -18
- package/dist/production_account/overhead.d.ts +1195 -0
- package/dist/production_account/overhead.js +554 -0
- package/dist/project/.kosh/bindings.js +1 -1
- package/dist/project/.kosh/schema.d.ts +735 -1
- package/dist/project/i18n/bn.d.ts +2 -0
- package/dist/project/i18n/bn.js +383 -0
- package/dist/project/index.d.ts +3 -1
- package/dist/project/index.js +1024 -14
- package/dist/project/module.d.ts +9912 -390
- package/dist/project/module.js +1590 -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 +2763 -0
- package/dist/project_account/i18n/bn.d.ts +2 -0
- package/dist/project_account/i18n/bn.js +6 -0
- package/dist/project_account/index.d.ts +3 -0
- package/dist/project_account/index.js +29 -0
- package/dist/project_account/module.d.ts +15013 -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 +735 -1
- package/dist/project_portal/i18n/bn.d.ts +2 -0
- package/dist/project_portal/i18n/bn.js +6 -0
- package/dist/project_portal/index.js +2 -0
- package/dist/project_portal/module.d.ts +4796 -87
- 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 +3393 -0
- package/dist/project_purchase/i18n/bn.d.ts +2 -0
- package/dist/project_purchase/i18n/bn.js +4 -0
- package/dist/project_purchase/index.d.ts +9 -0
- package/dist/project_purchase/index.js +24 -0
- package/dist/project_purchase/module.d.ts +38613 -0
- package/dist/project_purchase/module.js +56 -0
- package/dist/purchase/.kosh/bindings.js +1 -1
- package/dist/purchase/.kosh/schema.d.ts +908 -5
- package/dist/purchase/comparison.d.ts +993 -0
- package/dist/purchase/comparison.js +415 -0
- package/dist/purchase/extras.d.ts +1509 -0
- package/dist/purchase/extras.js +445 -0
- package/dist/purchase/i18n/bn.d.ts +2 -0
- package/dist/purchase/i18n/bn.js +413 -0
- package/dist/purchase/index.d.ts +5 -0
- package/dist/purchase/index.js +1280 -4
- package/dist/purchase/module.d.ts +7147 -395
- package/dist/purchase/module.js +303 -10
- package/dist/purchase/request.d.ts +696 -0
- package/dist/purchase/request.js +446 -0
- package/dist/purchase/tender.d.ts +1208 -0
- package/dist/purchase/tender.js +507 -0
- package/dist/purchase/vendorprice.d.ts +340 -0
- package/dist/purchase/vendorprice.js +153 -0
- package/dist/purchase_account/.kosh/bindings.js +1 -1
- package/dist/purchase_account/.kosh/schema.d.ts +1209 -16
- package/dist/purchase_account/i18n/bn.d.ts +2 -0
- package/dist/purchase_account/i18n/bn.js +22 -0
- package/dist/purchase_account/index.js +20 -0
- package/dist/purchase_account/module.d.ts +12232 -2028
- package/dist/purchase_account/module.js +252 -9
- package/dist/purchase_portal/.kosh/bindings.js +1 -1
- package/dist/purchase_portal/.kosh/schema.d.ts +908 -5
- package/dist/purchase_portal/i18n/bn.d.ts +2 -0
- package/dist/purchase_portal/i18n/bn.js +5 -0
- package/dist/purchase_portal/index.js +2 -0
- package/dist/purchase_portal/module.d.ts +6853 -352
- package/dist/purchase_stock/.kosh/bindings.js +1 -1
- package/dist/purchase_stock/.kosh/schema.d.ts +1096 -21
- package/dist/purchase_stock/i18n/bn.d.ts +2 -0
- package/dist/purchase_stock/i18n/bn.js +19 -0
- package/dist/purchase_stock/index.d.ts +2 -2
- package/dist/purchase_stock/index.js +38 -2
- package/dist/purchase_stock/module.d.ts +12930 -1612
- package/dist/purchase_stock/module.js +317 -9
- package/dist/purchase_stock/scorecard.d.ts +22 -0
- package/dist/purchase_stock/scorecard.js +77 -0
- package/dist/purchase_stock/web/Scorecard.d.ts +7 -0
- package/dist/purchase_stock/web/Scorecard.js +22 -0
- package/dist/purchase_stock/web/index.d.ts +11 -0
- package/dist/purchase_stock/web/index.js +16 -0
- package/dist/purchase_stock/web/messages.d.ts +2 -0
- package/dist/purchase_stock/web/messages.js +27 -0
- package/dist/purchase_stock_account/.kosh/bindings.js +1 -1
- package/dist/purchase_stock_account/.kosh/schema.d.ts +1444 -20
- package/dist/purchase_stock_account/i18n/bn.d.ts +2 -0
- package/dist/purchase_stock_account/i18n/bn.js +8 -0
- package/dist/purchase_stock_account/index.js +18 -0
- package/dist/purchase_stock_account/module.d.ts +7 -35346
- package/dist/purchase_stock_account/module.js +35 -8
- package/dist/recruitment/.kosh/bindings.js +1 -1
- package/dist/recruitment/.kosh/schema.d.ts +60 -1
- package/dist/recruitment/i18n/bn.d.ts +2 -0
- package/dist/recruitment/i18n/bn.js +93 -0
- package/dist/recruitment/index.js +64 -0
- package/dist/recruitment/module.d.ts +460 -8
- package/dist/recruitment/module.js +13 -4
- package/dist/reporting/documents.d.ts +5 -0
- package/dist/reporting/documents.js +11 -1
- package/dist/reporting/index.d.ts +1 -1
- package/dist/reporting/index.js +1 -1
- package/dist/reporting/web/CalendarView.d.ts +18 -5
- package/dist/reporting/web/CalendarView.js +163 -29
- package/dist/reporting/web/messages.js +18 -0
- package/dist/sale_account/.kosh/bindings.js +1 -1
- package/dist/sale_account/.kosh/schema.d.ts +763 -18
- package/dist/sale_account/i18n/bn.d.ts +2 -0
- package/dist/sale_account/i18n/bn.js +48 -0
- package/dist/sale_account/index.d.ts +1 -1
- package/dist/sale_account/index.js +102 -4
- package/dist/sale_account/module.d.ts +8241 -2052
- package/dist/sale_account/module.js +535 -46
- package/dist/sale_crm/.kosh/bindings.d.ts +22 -0
- package/dist/sale_crm/.kosh/bindings.js +15 -0
- package/dist/{mrp → sale_crm}/.kosh/schema.d.ts +391 -494
- package/dist/sale_crm/i18n/bn.d.ts +2 -0
- package/dist/sale_crm/i18n/bn.js +9 -0
- package/dist/sale_crm/index.d.ts +7 -0
- package/dist/sale_crm/index.js +104 -0
- package/dist/sale_crm/module.d.ts +5609 -0
- package/dist/sale_crm/module.js +73 -0
- package/dist/sale_portal/.kosh/bindings.js +1 -1
- package/dist/sale_portal/.kosh/schema.d.ts +292 -4
- package/dist/sale_portal/i18n/bn.d.ts +2 -0
- package/dist/sale_portal/i18n/bn.js +7 -0
- package/dist/sale_portal/index.js +10 -0
- package/dist/sale_portal/module.d.ts +2563 -292
- package/dist/sale_project/.kosh/bindings.js +1 -1
- package/dist/sale_project/.kosh/schema.d.ts +1025 -4
- package/dist/sale_project/i18n/bn.d.ts +2 -0
- package/dist/sale_project/i18n/bn.js +12 -0
- package/dist/sale_project/index.js +2 -0
- package/dist/sale_project/module.d.ts +9280 -762
- package/dist/sale_project/module.js +17 -1
- package/dist/sale_stock/.kosh/bindings.js +1 -1
- package/dist/sale_stock/.kosh/schema.d.ts +463 -6
- package/dist/sale_stock/i18n/bn.d.ts +2 -0
- package/dist/sale_stock/i18n/bn.js +15 -0
- package/dist/sale_stock/index.js +2 -0
- package/dist/sale_stock/module.d.ts +8355 -1334
- package/dist/sale_stock/module.js +20 -3
- package/dist/sales/.kosh/bindings.js +1 -1
- package/dist/sales/.kosh/schema.d.ts +292 -4
- package/dist/sales/i18n/bn.d.ts +2 -0
- package/dist/sales/i18n/bn.js +128 -0
- package/dist/sales/index.js +124 -5
- package/dist/sales/module.d.ts +3568 -633
- package/dist/sales/module.js +306 -11
- package/dist/server/api/duplicate.d.ts +14 -0
- package/dist/server/api/duplicate.js +75 -0
- package/dist/server/api/explain.d.ts +70 -0
- package/dist/server/api/explain.js +111 -0
- package/dist/server/api/metadata.d.ts +2 -0
- package/dist/server/api/metadata.js +9 -0
- package/dist/server/api/openapi.js +15 -0
- package/dist/server/api/rest.d.ts +1 -0
- package/dist/server/api/rest.js +76 -12
- package/dist/server/api/views.js +1 -1
- package/dist/server/apps.d.ts +16 -1
- package/dist/server/apps.js +164 -2
- package/dist/server/auth/base.js +2 -0
- package/dist/server/auth/service.d.ts +8 -0
- package/dist/server/auth/service.js +19 -0
- package/dist/server/events.d.ts +13 -0
- package/dist/server/events.js +22 -0
- package/dist/server/i18n.d.ts +27 -0
- package/dist/server/i18n.js +143 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.js +2 -0
- package/dist/server/server.js +6 -0
- package/dist/settings/company.d.ts +3 -1
- package/dist/settings/company.js +26 -5
- package/dist/settings/routes.d.ts +10 -0
- package/dist/settings/routes.js +19 -3
- package/dist/settings/web/AppsPage.d.ts +3 -2
- package/dist/settings/web/AppsPage.js +26 -8
- package/dist/settings/web/CompaniesPage.js +91 -6
- package/dist/settings/web/messages.js +64 -0
- package/dist/sign/.kosh/bindings.d.ts +22 -0
- package/dist/{mrp → sign}/.kosh/bindings.js +2 -2
- package/dist/sign/.kosh/schema.d.ts +991 -0
- package/dist/sign/i18n/bn.d.ts +2 -0
- package/dist/sign/i18n/bn.js +97 -0
- package/dist/sign/index.d.ts +29 -0
- package/dist/sign/index.js +478 -0
- package/dist/sign/module.d.ts +4518 -0
- package/dist/sign/module.js +167 -0
- package/dist/sign/sign.d.ts +82 -0
- package/dist/sign/sign.js +474 -0
- package/dist/stock/.kosh/bindings.js +1 -1
- package/dist/stock/.kosh/schema.d.ts +374 -3
- package/dist/stock/demo.d.ts +2 -1
- package/dist/stock/demo.js +28 -1
- package/dist/stock/i18n/bn.d.ts +2 -0
- package/dist/stock/i18n/bn.js +311 -0
- package/dist/stock/index.d.ts +4 -1
- package/dist/stock/index.js +674 -6
- package/dist/stock/ledger.d.ts +78 -0
- package/dist/stock/ledger.js +582 -0
- package/dist/stock/module.d.ts +6142 -1380
- package/dist/stock/module.js +780 -26
- package/dist/stock/replenish.d.ts +38 -0
- package/dist/stock/replenish.js +191 -0
- package/dist/stock/returns.d.ts +157 -0
- package/dist/stock/returns.js +163 -0
- package/dist/stock/web/Ledger.d.ts +9 -0
- package/dist/stock/web/Ledger.js +108 -0
- package/dist/stock/web/Operations.d.ts +8 -0
- package/dist/stock/web/Operations.js +33 -0
- package/dist/stock/web/Replenishment.d.ts +8 -0
- package/dist/stock/web/Replenishment.js +84 -0
- package/dist/stock/web/ReturnButton.d.ts +7 -0
- package/dist/stock/web/ReturnButton.js +62 -0
- package/dist/stock/web/index.d.ts +7 -2
- package/dist/stock/web/index.js +15 -2
- package/dist/stock/web/messages.js +206 -0
- package/dist/stock_account/.kosh/bindings.js +1 -1
- package/dist/stock_account/.kosh/schema.d.ts +878 -12
- package/dist/stock_account/i18n/bn.d.ts +2 -0
- package/dist/stock_account/i18n/bn.js +73 -0
- package/dist/stock_account/index.d.ts +1 -0
- package/dist/stock_account/index.js +141 -3
- package/dist/stock_account/landed.d.ts +429 -0
- package/dist/stock_account/landed.js +335 -0
- package/dist/stock_account/module.d.ts +12143 -3391
- package/dist/stock_account/module.js +135 -6
- package/dist/stock_account/web/LandedPreview.d.ts +7 -0
- package/dist/stock_account/web/LandedPreview.js +23 -0
- package/dist/stock_account/web/index.d.ts +11 -0
- package/dist/stock_account/web/index.js +16 -0
- package/dist/stock_account/web/messages.d.ts +2 -0
- package/dist/stock_account/web/messages.js +27 -0
- package/dist/todo/i18n/bn.d.ts +2 -0
- package/dist/todo/i18n/bn.js +66 -0
- package/dist/todo/index.js +59 -0
- package/dist/todo/module.d.ts +5 -0
- package/dist/todo/module.js +5 -3
- package/dist/trade_finance/.kosh/bindings.js +1 -1
- package/dist/trade_finance/.kosh/schema.d.ts +2 -1
- package/dist/trade_finance/i18n/bn.d.ts +2 -0
- package/dist/trade_finance/i18n/bn.js +162 -0
- package/dist/trade_finance/index.js +95 -0
- package/dist/trade_finance/module.d.ts +26 -0
- package/dist/trade_finance/module.js +29 -8
- package/dist/trade_finance_account/.kosh/bindings.js +1 -1
- package/dist/trade_finance_account/.kosh/schema.d.ts +651 -10
- package/dist/trade_finance_account/i18n/bn.d.ts +2 -0
- package/dist/trade_finance_account/i18n/bn.js +27 -0
- package/dist/trade_finance_account/index.js +3 -0
- package/dist/trade_finance_account/module.d.ts +5129 -1509
- package/dist/trade_finance_account/module.js +2 -0
- package/dist/trade_finance_purchase/.kosh/bindings.js +1 -1
- package/dist/trade_finance_purchase/.kosh/schema.d.ts +908 -5
- package/dist/trade_finance_purchase/i18n/bn.d.ts +2 -0
- package/dist/trade_finance_purchase/i18n/bn.js +6 -0
- package/dist/trade_finance_purchase/index.js +2 -0
- package/dist/trade_finance_purchase/module.d.ts +6909 -408
- package/dist/trade_finance_sale/.kosh/bindings.js +1 -1
- package/dist/trade_finance_sale/.kosh/schema.d.ts +292 -4
- package/dist/trade_finance_sale/i18n/bn.d.ts +2 -0
- package/dist/trade_finance_sale/i18n/bn.js +6 -0
- package/dist/trade_finance_sale/index.js +2 -0
- package/dist/trade_finance_sale/module.d.ts +2602 -331
- package/dist/ui/api.d.ts +2 -0
- package/dist/ui/app.d.ts +9 -0
- package/dist/ui/app.js +47 -15
- package/dist/ui/components/AppIcon.js +9 -2
- package/dist/ui/components/Explain.d.ts +69 -0
- package/dist/ui/components/Explain.js +62 -0
- package/dist/ui/context.d.ts +8 -1
- package/dist/ui/context.js +34 -1
- package/dist/ui/i18n/messages.d.ts +40 -0
- package/dist/ui/i18n/messages.js +80 -0
- package/dist/ui/index.d.ts +2 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/registry.d.ts +14 -0
- package/dist/ui/registry.js +10 -0
- package/dist/ui/views/FormView.d.ts +6 -0
- package/dist/ui/views/FormView.js +51 -12
- package/dist/ui/views/KanbanView.js +9 -1
- package/dist/ui/views/ListView.d.ts +8 -0
- package/dist/ui/views/ListView.js +14 -5
- package/dist/ui/views/StatsRow.js +2 -1
- package/dist/ui/views/widgets.js +7 -1
- package/dist/views/extend.js +12 -0
- package/dist/views/types.d.ts +13 -2
- package/dist/views/validate.js +8 -1
- package/dist/website/.kosh/bindings.js +1 -1
- package/dist/website/.kosh/schema.d.ts +2 -1
- package/dist/website/i18n/bn.d.ts +2 -0
- package/dist/website/i18n/bn.js +113 -0
- package/dist/website/index.js +37 -0
- package/dist/website/module.d.ts +20 -0
- package/dist/website/module.js +30 -5
- package/dist/website_crm/.kosh/bindings.js +1 -1
- package/dist/website_crm/.kosh/schema.d.ts +3 -1
- package/dist/website_crm/i18n/bn.d.ts +2 -0
- package/dist/website_crm/i18n/bn.js +5 -0
- package/dist/website_crm/index.js +2 -0
- package/dist/website_crm/module.d.ts +41 -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 +2909 -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/i18n/bn.d.ts +2 -0
- package/dist/website_sale/i18n/bn.js +132 -0
- package/dist/website_sale/index.d.ts +49 -0
- package/dist/website_sale/index.js +620 -0
- package/dist/website_sale/module.d.ts +35182 -0
- package/dist/website_sale/module.js +419 -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 +662 -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 +3400 -0
- package/dist/website_sale_stock/i18n/bn.d.ts +2 -0
- package/dist/website_sale_stock/i18n/bn.js +4 -0
- package/dist/website_sale_stock/index.d.ts +9 -0
- package/dist/website_sale_stock/index.js +22 -0
- package/dist/website_sale_stock/module.d.ts +11 -0
- package/dist/website_sale_stock/module.js +32 -0
- package/package.json +117 -8
- package/dist/mrp/index.d.ts +0 -3
- package/dist/mrp/index.js +0 -392
- package/dist/mrp/module.js +0 -695
- package/dist/mrp_account/index.d.ts +0 -3
- package/dist/mrp_account/index.js +0 -22
- /package/dist/{mrp → account_asset}/.kosh/bindings.d.ts +0 -0
- /package/dist/{mrp_account → account_budget}/.kosh/bindings.d.ts +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The data layer of the Pipeline ↔ Sales bridge (RFC 0028 §3.4): a quotation keeps its deal, a deal its quotations.
|
|
3
|
+
* A confirmed quotation wins its deal (the first winning stage); a deal whose quotations are all cancelled is lost.
|
|
4
|
+
* Both follow the orders through the outbox (`sale.order.confirmed`, `sale.order.cancelled`), once each.
|
|
5
|
+
*/
|
|
6
|
+
import { crmShutro } from '../crm/index.js';
|
|
7
|
+
import { salesShutro } from '../sales/index.js';
|
|
8
|
+
import { orm } from '../server/orm.js';
|
|
9
|
+
import { defineModule, extendModel, f, record } from './.kosh/bindings.js';
|
|
10
|
+
export const OrderDeal = extendModel('sale.order', {
|
|
11
|
+
fields: {
|
|
12
|
+
deal: f.many2one('crm.deal', {
|
|
13
|
+
ondelete: 'set null',
|
|
14
|
+
label: 'Deal',
|
|
15
|
+
help: 'The Pipeline deal this quotation is for: confirming it wins the deal.',
|
|
16
|
+
}),
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
export const DealQuotations = extendModel('crm.deal', {
|
|
20
|
+
fields: {
|
|
21
|
+
quotations: f.one2many('sale.order', 'deal', { label: 'Quotations' }),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
/** A confirmed order wins its deal: the deal moves to the first winning stage, unless it is lost or won already. */
|
|
25
|
+
export async function winDealOf(env, order) {
|
|
26
|
+
const [o] = await env
|
|
27
|
+
.model('sale.order')
|
|
28
|
+
.browse([order])
|
|
29
|
+
.load({ deal: { stage: true } });
|
|
30
|
+
const deal = o?.deal;
|
|
31
|
+
if (deal === null || deal === undefined || deal.lost === true || deal.stage?.won === true)
|
|
32
|
+
return false;
|
|
33
|
+
const [won] = await (await env.model('crm.stage').search({ where: { won: true }, order: ['sequence asc'], limit: 1 })).load([]);
|
|
34
|
+
if (won === undefined)
|
|
35
|
+
return false;
|
|
36
|
+
await env.model('crm.deal').browse([deal.id]).write({ stage: won.id });
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
/** A cancelled order loses its deal when every quotation of the deal is cancelled and the deal is still open. */
|
|
40
|
+
export async function loseDealOf(env, order) {
|
|
41
|
+
const [o] = await env
|
|
42
|
+
.model('sale.order')
|
|
43
|
+
.browse([order])
|
|
44
|
+
.load({ deal: { stage: true, quotations: true } });
|
|
45
|
+
const deal = o?.deal;
|
|
46
|
+
if (deal === null || deal === undefined || deal.lost === true || deal.stage?.won === true)
|
|
47
|
+
return false;
|
|
48
|
+
if ([...deal.quotations].some((q) => q.state !== 'cancel'))
|
|
49
|
+
return false;
|
|
50
|
+
// A lost deal says why: the bridge's own reason.
|
|
51
|
+
const reason = await env
|
|
52
|
+
.refId('crm.lost.reason', 'sale_crm.reason_quotations_cancelled')
|
|
53
|
+
.catch(() => null);
|
|
54
|
+
await env.model('crm.deal').browse([deal.id]).write({ lost: true, lostReason: reason });
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
export const saleCrmShutro = defineModule({
|
|
58
|
+
name: 'sale_crm',
|
|
59
|
+
version: '0.1.0',
|
|
60
|
+
depends: [salesShutro, crmShutro],
|
|
61
|
+
groups: [
|
|
62
|
+
orm.defineGroup({
|
|
63
|
+
code: 'sale_crm.user',
|
|
64
|
+
label: 'Quotations from deals',
|
|
65
|
+
implies: ['sales.user', 'crm.user'],
|
|
66
|
+
}),
|
|
67
|
+
],
|
|
68
|
+
models: [],
|
|
69
|
+
extensions: [OrderDeal, DealQuotations],
|
|
70
|
+
data: [
|
|
71
|
+
record('crm.lost.reason', 'reason_quotations_cancelled', { name: 'Every quotation was cancelled' }, { noupdate: true }),
|
|
72
|
+
],
|
|
73
|
+
});
|
|
@@ -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: 9a7c4ebfaa8a5f06
|
|
2
2
|
// Bindings of module `sale_portal`: 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,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: 9a7c4ebfaa8a5f06
|
|
2
2
|
// Schema view of module `sale_portal` (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
|
|
|
@@ -29,8 +29,15 @@ export interface SchemaView {
|
|
|
29
29
|
readonly 'portal.announcement': PortalAnnouncement;
|
|
30
30
|
readonly 'portal.invitation': PortalInvitation;
|
|
31
31
|
readonly 'portal.signature': PortalSignature;
|
|
32
|
+
readonly 'product.attribute': ProductAttribute;
|
|
33
|
+
readonly 'product.attribute.value': ProductAttributeValue;
|
|
32
34
|
readonly 'product.category': ProductCategory;
|
|
35
|
+
readonly 'product.pricelist': ProductPricelist;
|
|
36
|
+
readonly 'product.pricelist.rule': ProductPricelistRule;
|
|
33
37
|
readonly 'product.product': ProductProduct;
|
|
38
|
+
readonly 'product.template': ProductTemplate;
|
|
39
|
+
readonly 'product.template.exclusion': ProductTemplateExclusion;
|
|
40
|
+
readonly 'product.template.line': ProductTemplateLine;
|
|
34
41
|
readonly 'res.company': ResCompany;
|
|
35
42
|
readonly 'res.currency': ResCurrency;
|
|
36
43
|
readonly 'res.partner': ResPartner;
|
|
@@ -38,6 +45,9 @@ export interface SchemaView {
|
|
|
38
45
|
readonly 'res.users': ResUsers;
|
|
39
46
|
readonly 'sale.order': SaleOrder;
|
|
40
47
|
readonly 'sale.order.line': SaleOrderLine;
|
|
48
|
+
readonly 'sale.order.option': SaleOrderOption;
|
|
49
|
+
readonly 'sale.order.template': SaleOrderTemplate;
|
|
50
|
+
readonly 'sale.order.template.line': SaleOrderTemplateLine;
|
|
41
51
|
readonly 'storage.attachment': StorageAttachment;
|
|
42
52
|
readonly 'uom.uom': UomUom;
|
|
43
53
|
}
|
|
@@ -655,6 +665,53 @@ export interface PortalSignature {
|
|
|
655
665
|
export interface PortalSignatureMethods extends F.Methods<typeof import('../../portal/index.js').portalShutro, 'portal.signature'> {
|
|
656
666
|
}
|
|
657
667
|
|
|
668
|
+
/** `product.attribute` (owner: product). */
|
|
669
|
+
export interface ProductAttribute {
|
|
670
|
+
readonly name: 'product.attribute';
|
|
671
|
+
readonly fields: {
|
|
672
|
+
readonly id: F.Id<'product.attribute'>;
|
|
673
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
674
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
675
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
676
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
677
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
678
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
679
|
+
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
680
|
+
readonly display: F.Selection<'list' | 'radio' | 'swatch' | 'size', { readonly required: true; readonly default: true }>;
|
|
681
|
+
readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
|
|
682
|
+
readonly values: F.One2many<'product.attribute.value', { readonly required: true }>;
|
|
683
|
+
};
|
|
684
|
+
readonly methods: ProductAttributeMethods;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
/** Methods of `product.attribute`: declared ones and transitions. */
|
|
688
|
+
export interface ProductAttributeMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute'> {
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
/** `product.attribute.value` (owner: product). */
|
|
692
|
+
export interface ProductAttributeValue {
|
|
693
|
+
readonly name: 'product.attribute.value';
|
|
694
|
+
readonly fields: {
|
|
695
|
+
readonly id: F.Id<'product.attribute.value'>;
|
|
696
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
697
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
698
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
699
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
700
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
701
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
702
|
+
readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
|
|
703
|
+
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
704
|
+
readonly color: F.Char;
|
|
705
|
+
readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
|
|
706
|
+
readonly extraPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
707
|
+
};
|
|
708
|
+
readonly methods: ProductAttributeValueMethods;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
/** Methods of `product.attribute.value`: declared ones and transitions. */
|
|
712
|
+
export interface ProductAttributeValueMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute.value'> {
|
|
713
|
+
}
|
|
714
|
+
|
|
658
715
|
/** `product.category` (owner: product). */
|
|
659
716
|
export interface ProductCategory {
|
|
660
717
|
readonly name: 'product.category';
|
|
@@ -665,8 +722,10 @@ export interface ProductCategory {
|
|
|
665
722
|
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
666
723
|
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
667
724
|
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
725
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
668
726
|
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
669
727
|
readonly parent: F.Many2one<'product.category'>;
|
|
728
|
+
readonly approvalUsers: F.Many2many<'res.users', { readonly required: true }>;
|
|
670
729
|
};
|
|
671
730
|
readonly methods: ProductCategoryMethods;
|
|
672
731
|
}
|
|
@@ -675,6 +734,66 @@ export interface ProductCategory {
|
|
|
675
734
|
export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'> {
|
|
676
735
|
}
|
|
677
736
|
|
|
737
|
+
/** `product.pricelist` (owner: product). */
|
|
738
|
+
export interface ProductPricelist {
|
|
739
|
+
readonly name: 'product.pricelist';
|
|
740
|
+
readonly fields: {
|
|
741
|
+
readonly id: F.Id<'product.pricelist'>;
|
|
742
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
743
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
744
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
745
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
746
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
747
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
748
|
+
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
749
|
+
readonly sequence: F.Integer<{ readonly default: true }>;
|
|
750
|
+
readonly currency: F.Many2one<'res.currency'>;
|
|
751
|
+
readonly company: F.Many2one<'res.company'>;
|
|
752
|
+
readonly rules: F.One2many<'product.pricelist.rule', { readonly required: true }>;
|
|
753
|
+
readonly note: F.Text;
|
|
754
|
+
};
|
|
755
|
+
readonly methods: ProductPricelistMethods;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
/** Methods of `product.pricelist`: declared ones and transitions. */
|
|
759
|
+
export interface ProductPricelistMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist'> {
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/** `product.pricelist.rule` (owner: product). */
|
|
763
|
+
export interface ProductPricelistRule {
|
|
764
|
+
readonly name: 'product.pricelist.rule';
|
|
765
|
+
readonly fields: {
|
|
766
|
+
readonly id: F.Id<'product.pricelist.rule'>;
|
|
767
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
768
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
769
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
770
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
771
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
772
|
+
readonly pricelist: F.Many2one<'product.pricelist', { readonly required: true }>;
|
|
773
|
+
readonly sequence: F.Integer<{ readonly default: true }>;
|
|
774
|
+
readonly appliesTo: F.Selection<'all' | 'category' | 'product', { readonly required: true; readonly default: true }>;
|
|
775
|
+
readonly product: F.Many2one<'product.product'>;
|
|
776
|
+
readonly category: F.Many2one<'product.category'>;
|
|
777
|
+
readonly minQuantity: F.Decimal<{ readonly default: true }>;
|
|
778
|
+
readonly dateFrom: F.DateOnly;
|
|
779
|
+
readonly dateTo: F.DateOnly;
|
|
780
|
+
readonly compute: F.Selection<'fixed' | 'discount' | 'formula', { readonly required: true; readonly default: true }>;
|
|
781
|
+
readonly fixedPrice: F.Decimal;
|
|
782
|
+
readonly base: F.Selection<'list' | 'cost' | 'pricelist', { readonly required: true; readonly default: true }>;
|
|
783
|
+
readonly basePricelist: F.Many2one<'product.pricelist'>;
|
|
784
|
+
readonly discount: F.Decimal<{ readonly default: true }>;
|
|
785
|
+
readonly surcharge: F.Decimal<{ readonly default: true }>;
|
|
786
|
+
readonly rounding: F.Decimal<{ readonly default: true }>;
|
|
787
|
+
readonly minMargin: F.Decimal;
|
|
788
|
+
readonly maxMargin: F.Decimal;
|
|
789
|
+
};
|
|
790
|
+
readonly methods: ProductPricelistRuleMethods;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
/** Methods of `product.pricelist.rule`: declared ones and transitions. */
|
|
794
|
+
export interface ProductPricelistRuleMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist.rule'> {
|
|
795
|
+
}
|
|
796
|
+
|
|
678
797
|
/** `product.product` (owner: product). */
|
|
679
798
|
export interface ProductProduct {
|
|
680
799
|
readonly name: 'product.product';
|
|
@@ -690,8 +809,11 @@ export interface ProductProduct {
|
|
|
690
809
|
readonly code: F.Char<{ readonly readonly: true; readonly sequence: true }>;
|
|
691
810
|
readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
|
|
692
811
|
readonly category: F.Many2one<'product.category'>;
|
|
812
|
+
readonly invoicePolicy: F.Selection<'ordered' | 'delivered', { readonly default: true }>;
|
|
693
813
|
readonly uom: F.Many2one<'uom.uom'>;
|
|
694
814
|
readonly barcode: F.Char;
|
|
815
|
+
readonly weight: F.Decimal;
|
|
816
|
+
readonly volume: F.Decimal;
|
|
695
817
|
readonly image: F.Many2one<'storage.attachment'>;
|
|
696
818
|
readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
697
819
|
readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
@@ -702,6 +824,9 @@ export interface ProductProduct {
|
|
|
702
824
|
readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
|
|
703
825
|
readonly purchaseTax: F.Many2one<'account.tax', { readonly readonly: true }>;
|
|
704
826
|
readonly description: F.Text<{ readonly translate: true }>;
|
|
827
|
+
readonly template: F.Many2one<'product.template'>;
|
|
828
|
+
readonly attributeValues: F.Many2many<'product.attribute.value', { readonly required: true }>;
|
|
829
|
+
readonly followsTemplatePrice: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
705
830
|
};
|
|
706
831
|
readonly methods: ProductProductMethods;
|
|
707
832
|
}
|
|
@@ -710,6 +835,86 @@ export interface ProductProduct {
|
|
|
710
835
|
export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'> {
|
|
711
836
|
}
|
|
712
837
|
|
|
838
|
+
/** `product.template` (owner: product). */
|
|
839
|
+
export interface ProductTemplate {
|
|
840
|
+
readonly name: 'product.template';
|
|
841
|
+
readonly fields: {
|
|
842
|
+
readonly id: F.Id<'product.template'>;
|
|
843
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
844
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
845
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
846
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
847
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
848
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
849
|
+
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
850
|
+
readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
|
|
851
|
+
readonly category: F.Many2one<'product.category'>;
|
|
852
|
+
readonly uom: F.Many2one<'uom.uom'>;
|
|
853
|
+
readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
854
|
+
readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
855
|
+
readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
856
|
+
readonly purchaseOk: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
857
|
+
readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
|
|
858
|
+
readonly purchaseTaxes: F.Many2many<'account.tax', { readonly required: true }>;
|
|
859
|
+
readonly image: F.Many2one<'storage.attachment'>;
|
|
860
|
+
readonly description: F.Text<{ readonly translate: true }>;
|
|
861
|
+
readonly lines: F.One2many<'product.template.line', { readonly required: true }>;
|
|
862
|
+
readonly exclusions: F.One2many<'product.template.exclusion', { readonly required: true }>;
|
|
863
|
+
readonly variants: F.One2many<'product.product', { readonly required: true }>;
|
|
864
|
+
readonly variantCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
|
|
865
|
+
readonly state: F.State<'draft' | 'ready', { readonly required: true; readonly readonly: true; readonly default: true }>;
|
|
866
|
+
};
|
|
867
|
+
readonly methods: ProductTemplateMethods;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
/** Methods of `product.template`: declared ones and transitions. */
|
|
871
|
+
export interface ProductTemplateMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template'> {
|
|
872
|
+
readonly 'generate': () => Promise<void>;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
/** `product.template.exclusion` (owner: product). */
|
|
876
|
+
export interface ProductTemplateExclusion {
|
|
877
|
+
readonly name: 'product.template.exclusion';
|
|
878
|
+
readonly fields: {
|
|
879
|
+
readonly id: F.Id<'product.template.exclusion'>;
|
|
880
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
881
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
882
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
883
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
884
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
885
|
+
readonly template: F.Many2one<'product.template', { readonly required: true }>;
|
|
886
|
+
readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
|
|
887
|
+
readonly note: F.Char;
|
|
888
|
+
};
|
|
889
|
+
readonly methods: ProductTemplateExclusionMethods;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
/** Methods of `product.template.exclusion`: declared ones and transitions. */
|
|
893
|
+
export interface ProductTemplateExclusionMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.exclusion'> {
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
/** `product.template.line` (owner: product). */
|
|
897
|
+
export interface ProductTemplateLine {
|
|
898
|
+
readonly name: 'product.template.line';
|
|
899
|
+
readonly fields: {
|
|
900
|
+
readonly id: F.Id<'product.template.line'>;
|
|
901
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
902
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
903
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
904
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
905
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
906
|
+
readonly template: F.Many2one<'product.template', { readonly required: true }>;
|
|
907
|
+
readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
|
|
908
|
+
readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
|
|
909
|
+
readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
|
|
910
|
+
};
|
|
911
|
+
readonly methods: ProductTemplateLineMethods;
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
/** Methods of `product.template.line`: declared ones and transitions. */
|
|
915
|
+
export interface ProductTemplateLineMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.line'> {
|
|
916
|
+
}
|
|
917
|
+
|
|
713
918
|
/** `res.company` (owner: base; extended by: contacts, sales). */
|
|
714
919
|
export interface ResCompany {
|
|
715
920
|
readonly name: 'res.company';
|
|
@@ -763,7 +968,7 @@ export interface ResCurrency {
|
|
|
763
968
|
export interface ResCurrencyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.currency'> {
|
|
764
969
|
}
|
|
765
970
|
|
|
766
|
-
/** `res.partner` (owner: contacts; extended by: portal). */
|
|
971
|
+
/** `res.partner` (owner: contacts; extended by: portal, sales). */
|
|
767
972
|
export interface ResPartner {
|
|
768
973
|
readonly name: 'res.partner';
|
|
769
974
|
readonly fields: {
|
|
@@ -784,6 +989,7 @@ export interface ResPartner {
|
|
|
784
989
|
readonly parent: F.Many2one<'res.partner'>;
|
|
785
990
|
readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
|
|
786
991
|
readonly email: F.Char;
|
|
992
|
+
readonly lang: F.Selection<'en' | 'bn'>;
|
|
787
993
|
readonly phone: F.Char;
|
|
788
994
|
readonly mobile: F.Char;
|
|
789
995
|
readonly website: F.Char;
|
|
@@ -798,12 +1004,13 @@ export interface ResPartner {
|
|
|
798
1004
|
readonly currency: F.Many2one<'res.currency'>;
|
|
799
1005
|
readonly notes: F.Text;
|
|
800
1006
|
readonly portalUsers: F.One2many<'res.users', { readonly required: true }>; // portal
|
|
1007
|
+
readonly pricelist: F.Many2one<'product.pricelist'>; // sales
|
|
801
1008
|
};
|
|
802
1009
|
readonly methods: ResPartnerMethods;
|
|
803
1010
|
}
|
|
804
1011
|
|
|
805
1012
|
/** Methods of `res.partner`: declared ones and transitions. */
|
|
806
|
-
export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../portal/index.js').portalShutro, 'res.partner'> {
|
|
1013
|
+
export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../portal/index.js').portalShutro, 'res.partner'>, F.Methods<typeof import('../../sales/index.js').salesShutro, 'res.partner'> {
|
|
807
1014
|
}
|
|
808
1015
|
|
|
809
1016
|
/** `res.partner.tag` (owner: contacts). */
|
|
@@ -868,12 +1075,17 @@ export interface SaleOrder {
|
|
|
868
1075
|
readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
|
|
869
1076
|
readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
|
|
870
1077
|
readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
|
|
1078
|
+
readonly partnerInvoice: F.Many2one<'res.partner'>;
|
|
1079
|
+
readonly partnerShipping: F.Many2one<'res.partner'>;
|
|
1080
|
+
readonly pricelist: F.Many2one<'product.pricelist'>;
|
|
871
1081
|
readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
|
|
872
1082
|
readonly dateOrder: F.DateOnly<{ readonly required: true; readonly default: true }>;
|
|
873
1083
|
readonly validityDate: F.DateOnly;
|
|
874
1084
|
readonly clientReference: F.Char;
|
|
875
1085
|
readonly note: F.Text;
|
|
876
1086
|
readonly lines: F.One2many<'sale.order.line', { readonly required: true }>;
|
|
1087
|
+
readonly template: F.Many2one<'sale.order.template'>;
|
|
1088
|
+
readonly options: F.One2many<'sale.order.option', { readonly required: true }>;
|
|
877
1089
|
readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
|
|
878
1090
|
readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
|
|
879
1091
|
readonly amountTotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
|
|
@@ -888,6 +1100,7 @@ export interface SaleOrder {
|
|
|
888
1100
|
export interface SaleOrderMethods extends F.Methods<typeof import('../../sales/index.js').salesShutro, 'sale.order'>, F.Methods<typeof import('../module.js').salePortalShutro, 'sale.order'> {
|
|
889
1101
|
readonly 'cancel': () => Promise<void>;
|
|
890
1102
|
readonly 'confirm': () => Promise<void>;
|
|
1103
|
+
readonly 'fill': () => Promise<void>;
|
|
891
1104
|
readonly 'lock': () => Promise<void>;
|
|
892
1105
|
readonly 'redraft': () => Promise<void>;
|
|
893
1106
|
readonly 'send': () => Promise<void>;
|
|
@@ -909,7 +1122,9 @@ export interface SaleOrderLine {
|
|
|
909
1122
|
readonly name: F.Char<{ readonly required: true }>;
|
|
910
1123
|
readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
911
1124
|
readonly uom: F.Many2one<'uom.uom'>;
|
|
912
|
-
readonly priceUnit: F.Decimal<{ readonly
|
|
1125
|
+
readonly priceUnit: F.Decimal<{ readonly compute: true; readonly store: true; readonly inverse: true }>;
|
|
1126
|
+
readonly manualPrice: F.Decimal;
|
|
1127
|
+
readonly priceReason: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
|
|
913
1128
|
readonly discount: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
914
1129
|
readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
|
|
915
1130
|
readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
|
|
@@ -925,6 +1140,79 @@ export interface SaleOrderLine {
|
|
|
925
1140
|
export interface SaleOrderLineMethods extends F.Methods<typeof import('../../sales/index.js').salesShutro, 'sale.order.line'> {
|
|
926
1141
|
}
|
|
927
1142
|
|
|
1143
|
+
/** `sale.order.option` (owner: sales). */
|
|
1144
|
+
export interface SaleOrderOption {
|
|
1145
|
+
readonly name: 'sale.order.option';
|
|
1146
|
+
readonly fields: {
|
|
1147
|
+
readonly id: F.Id<'sale.order.option'>;
|
|
1148
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1149
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1150
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1151
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1152
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1153
|
+
readonly order: F.Many2one<'sale.order', { readonly required: true }>;
|
|
1154
|
+
readonly product: F.Many2one<'product.product', { readonly required: true }>;
|
|
1155
|
+
readonly name: F.Char<{ readonly required: true }>;
|
|
1156
|
+
readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
1157
|
+
readonly priceUnit: F.Decimal;
|
|
1158
|
+
readonly line: F.Many2one<'sale.order.line'>;
|
|
1159
|
+
readonly state: F.State<'offered' | 'added', { readonly required: true; readonly readonly: true; readonly default: true }>;
|
|
1160
|
+
};
|
|
1161
|
+
readonly methods: SaleOrderOptionMethods;
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
/** Methods of `sale.order.option`: declared ones and transitions. */
|
|
1165
|
+
export interface SaleOrderOptionMethods extends F.Methods<typeof import('../../sales/index.js').salesShutro, 'sale.order.option'> {
|
|
1166
|
+
readonly 'add': () => Promise<void>;
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
/** `sale.order.template` (owner: sales). */
|
|
1170
|
+
export interface SaleOrderTemplate {
|
|
1171
|
+
readonly name: 'sale.order.template';
|
|
1172
|
+
readonly fields: {
|
|
1173
|
+
readonly id: F.Id<'sale.order.template'>;
|
|
1174
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1175
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1176
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1177
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1178
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1179
|
+
readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1180
|
+
readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
|
|
1181
|
+
readonly validityDays: F.Integer<{ readonly default: true }>;
|
|
1182
|
+
readonly note: F.Text;
|
|
1183
|
+
readonly lines: F.One2many<'sale.order.template.line', { readonly required: true }>;
|
|
1184
|
+
};
|
|
1185
|
+
readonly methods: SaleOrderTemplateMethods;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
/** Methods of `sale.order.template`: declared ones and transitions. */
|
|
1189
|
+
export interface SaleOrderTemplateMethods extends F.Methods<typeof import('../../sales/index.js').salesShutro, 'sale.order.template'> {
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
/** `sale.order.template.line` (owner: sales). */
|
|
1193
|
+
export interface SaleOrderTemplateLine {
|
|
1194
|
+
readonly name: 'sale.order.template.line';
|
|
1195
|
+
readonly fields: {
|
|
1196
|
+
readonly id: F.Id<'sale.order.template.line'>;
|
|
1197
|
+
readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1198
|
+
readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
|
|
1199
|
+
readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1200
|
+
readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
|
|
1201
|
+
readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
|
|
1202
|
+
readonly template: F.Many2one<'sale.order.template', { readonly required: true }>;
|
|
1203
|
+
readonly sequence: F.Integer<{ readonly default: true }>;
|
|
1204
|
+
readonly product: F.Many2one<'product.product', { readonly required: true }>;
|
|
1205
|
+
readonly name: F.Char<{ readonly required: true }>;
|
|
1206
|
+
readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
|
|
1207
|
+
readonly optional: F.Bool<{ readonly required: true; readonly default: true }>;
|
|
1208
|
+
};
|
|
1209
|
+
readonly methods: SaleOrderTemplateLineMethods;
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
/** Methods of `sale.order.template.line`: declared ones and transitions. */
|
|
1213
|
+
export interface SaleOrderTemplateLineMethods extends F.Methods<typeof import('../../sales/index.js').salesShutro, 'sale.order.template.line'> {
|
|
1214
|
+
}
|
|
1215
|
+
|
|
928
1216
|
/** `storage.attachment` (owner: storage). */
|
|
929
1217
|
export interface StorageAttachment {
|
|
930
1218
|
readonly name: 'storage.attachment';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Bangla for the module's labels, keyed by their English text (RFC 0023 §3.1; `pnpm i18n:extract`). */
|
|
2
|
+
export const bn = {
|
|
3
|
+
'Accept and sign': 'গ্রহণ করে স্বাক্ষর করুন',
|
|
4
|
+
Decline: 'প্রত্যাখ্যান করুন',
|
|
5
|
+
'Portal access (sales documents)': 'পোর্টাল প্রবেশাধিকার (বিক্রয় নথি)',
|
|
6
|
+
'Quotations and orders': 'উদ্ধৃতি ও অর্ডার',
|
|
7
|
+
};
|
|
@@ -15,6 +15,8 @@ export const salePortal = defineModule({
|
|
|
15
15
|
depends: [sales, portal],
|
|
16
16
|
// A sent quotation is announced to its customer by email (the portal reads the order's changes).
|
|
17
17
|
changeEvents: ['sale.order'],
|
|
18
|
+
// Bangla for the labels it serves (RFC 0023 §3.1; `pnpm i18n:extract`).
|
|
19
|
+
i18n: { bn: () => import('./i18n/bn.js') },
|
|
18
20
|
accessLevels: {
|
|
19
21
|
manager: { label: 'Portal access (sales documents)', groups: ['portal.manager'] },
|
|
20
22
|
},
|
|
@@ -45,6 +47,14 @@ export const salePortal = defineModule({
|
|
|
45
47
|
field: 'lines',
|
|
46
48
|
fields: ['product', 'name', 'quantity', 'priceUnit', 'discount', 'subtotal'],
|
|
47
49
|
},
|
|
50
|
+
// Optional products the customer adds before signing (RFC 0028 §3.5).
|
|
51
|
+
options: {
|
|
52
|
+
field: 'options',
|
|
53
|
+
fields: ['product', 'name', 'quantity', 'priceUnit'],
|
|
54
|
+
offered: { state: 'offered' },
|
|
55
|
+
when: { state: 'sent' },
|
|
56
|
+
add: 'add',
|
|
57
|
+
},
|
|
48
58
|
pdf: 'sales.quotation',
|
|
49
59
|
actions: [
|
|
50
60
|
{
|