@feedmepos/mf-inventory-portal 1.7.13-dev.3 → 1.7.13-dev.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{App-OcI38sEw.js → App-JqoqVVdP.js} +471 -460
- package/dist/{ApprovalView-qTRrEvTp.js → ApprovalView-JiWbXkVU.js} +9 -9
- package/dist/{BindingsDialog-G8tFbm7v.js → BindingsDialog-BK4xofWu.js} +2 -2
- package/dist/{BindingsPicker-DB3mjjVh.js → BindingsPicker-CLMsAseG.js} +2 -2
- package/dist/{BindingsTable-DLf8XLyn.js → BindingsTable-DKrBQTxN.js} +4 -4
- package/dist/{BulkReceiveRequestView-2AWitWXo.js → BulkReceiveRequestView-bttHw2ub.js} +19 -19
- package/dist/{ClosingDraftView-c25_GCaw.js → ClosingDraftView-Bhdwo-n8.js} +19 -19
- package/dist/ClosingHistoryView-DrQPWnr6.js +761 -0
- package/dist/{ClosingTemplateView-BzaVZ1Mf.js → ClosingTemplateView-UkwXCrz_.js} +16 -16
- package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-Dlh4ThV0.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DNtMdFVF.js} +1 -1
- package/dist/{DefaultView-e9RSHejw.js → DefaultView-sGrYeUGh.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-BSbiO2Vd.js → DeliveryOrderPrintPreview-CVnqC9Jy.js} +10 -10
- package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-D_8msVau.js → EmailDialog.vue_vue_type_script_setup_true_lang-CYtHQ2Ru.js} +2250 -2250
- package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DUjcebMR.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DXTdvT0C.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BA6stZHF.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DtfiRgsD.js} +2 -2
- package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-yBIbCJYy.js +243 -0
- package/dist/{FmMultiselectDialog-DEg8KNwS.js → FmMultiselectDialog-A9VIMLGn.js} +1 -1
- package/dist/{FmMultiselectDialog-DsA4X91e.js → FmMultiselectDialog-DL00XnUc.js} +2 -2
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-CPlywwpg.js → FmUnitInput.vue_vue_type_script_setup_true_lang-RJKOB-cm.js} +66 -63
- package/dist/{ImportView-D9QCHpOd.js → ImportView-DPrLnJO8.js} +6 -6
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-C7iOvnZV.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-IAQyFPmi.js} +1 -1
- package/dist/{IngredientGroupView-BRH304Pf.js → IngredientGroupView-DyhC6lJ8.js} +5 -5
- package/dist/{IngredientsView-BUGYJ6cN.js → IngredientsView-P4AqPikD.js} +15 -15
- package/dist/{IntegrationExplorerView-Z3_x4C5I.js → IntegrationExplorerView-CujhjHHV.js} +4 -4
- package/dist/{IntegrationView-ClWTgLai.js → IntegrationView-CFqsZyzI.js} +3077 -2998
- package/dist/{InventoryBindingForm-B7tGISLQ.js → InventoryBindingForm-B0NJ8H51.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-DOWePtXq.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-bbIpFo_4.js} +5 -5
- package/dist/{InventoryBindingSummary-j3YGRPOt.js → InventoryBindingSummary-CBgO_tCz.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CPpO-iyC.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DuuXzyKH.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-BP8f4hlw.js → PremiumBadge.vue_vue_type_script_setup_true_lang-C418f34P.js} +1 -1
- package/dist/ProductionRunDetailView-tSByC3nQ.js +5165 -0
- package/dist/ProductionRunPreparePrintView-zPAATL-n.js +31 -0
- package/dist/ProductionRunTabs.vue_vue_type_script_setup_true_lang-DgtZJgrs.js +3506 -0
- package/dist/ProductionRunView-BsP02jgC.js +815 -0
- package/dist/{PublishView-CL747KZU.js → PublishView-Cf0Tn7xt.js} +3 -3
- package/dist/{PurchaseOrderPrintPreview-C5AB03ht.js → PurchaseOrderPrintPreview-BTlSyQqZ.js} +6 -6
- package/dist/{ReceiveRequestView-BDy40tBg.js → ReceiveRequestView-9LFOl2hJ.js} +14 -14
- package/dist/{RecipeView-BbBZGBPb.js → RecipeView-C4KxMCpQ.js} +17 -17
- package/dist/{SettingsView-rcalnrlB.js → SettingsView-ShrefnTM.js} +4 -4
- package/dist/{StockView-BSLGMo1e.js → StockView-BVd6f7Fr.js} +21 -21
- package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DeEq2HQe.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-B-rB7p9o.js} +1 -1
- package/dist/{SupplierView-DOq8oosU.js → SupplierView-DZSY6_eU.js} +12 -12
- package/dist/{SurchargeView-BK9Yakao.js → SurchargeView-UUYoT8MK.js} +6 -6
- package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-DQRfvdyo.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-BLMxzi1C.js} +2 -2
- package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CjfzWy2p.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-z3qIVKP7.js} +1 -1
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-6qKRU6v7.js → TransferDetails.vue_vue_type_script_setup_true_lang-DEO8CP-X.js} +20 -20
- package/dist/{TransferTemplateView-BmWxWDe8.js → TransferTemplateView-C21o2V_1.js} +20 -20
- package/dist/{UnitCostHistoryView-BCvCf-2e.js → UnitCostHistoryView-DPEGVLBP.js} +4 -4
- package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-DJu3u-cT.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-BuGmmHBk.js} +4 -4
- package/dist/{UnitView-CW8GRw2n.js → UnitView-Bx03E4uc.js} +7 -7
- package/dist/{WarehouseView-ZWuCwzuM.js → WarehouseView-BehHQ9Ao.js} +6 -6
- package/dist/{WastageTemplateView-DkwVp2Bc.js → WastageTemplateView-gmr7doXL.js} +14 -14
- package/dist/api/netsuite.d.ts +13 -0
- package/dist/api/production-run-error.d.ts +36 -0
- package/dist/api/production-run-error.spec.d.ts +1 -0
- package/dist/api/production-run.d.ts +58 -0
- package/dist/api/stock.d.ts +0 -6
- package/dist/{app-BJsy0dhl.js → app-BT7hD4az.js} +16523 -12629
- package/dist/app.d.ts +3047 -71
- package/dist/app.js +1 -1
- package/dist/{closing-template-DdxIx-dq.js → closing-template-BNfr1RIX.js} +1 -1
- package/dist/components/FmInventoryBanner.vue.d.ts +39 -0
- package/dist/components/FmUnitInput.spec.d.ts +1 -0
- package/dist/components/FmUnitInputProps.d.ts +2 -0
- package/dist/composable/useModalA11y.d.ts +9 -0
- package/dist/composable/useModalA11y.spec.d.ts +1 -0
- package/dist/cypress/component/ChangelogPanel.cy.d.ts +1 -0
- package/dist/cypress/support/component.d.ts +1 -2
- package/dist/{date2-BySoG7zL.js → date2-CAh7rsAp.js} +1 -1
- package/dist/{dayjs.min-CEK_HLa5.js → dayjs.min-BJk-edO7.js} +7 -7
- package/dist/{decimal-CxH3h_oz.js → decimal-DYlKNkVX.js} +2 -2
- package/dist/{defineDeepModel-BiNh3hbS.js → defineDeepModel-BPHl7mTD.js} +1 -1
- package/dist/{duplicate-template-BqTirEVQ.js → duplicate-template-BWUUIdzG.js} +1 -1
- package/dist/{feature-CtiarMKO.js → feature-CSvVyBN2.js} +2 -2
- package/dist/{format-time-from-id-BZlQSqcg.js → format-time-from-id-Dh3lxXpc.js} +1 -1
- package/dist/{format-unit-display-Ckyw7NDq.js → format-unit-display-B1ft2wxm.js} +12 -12
- package/dist/{import-export.helper-93ZgMgfA.js → import-export.helper-txDvkMf0.js} +6 -6
- package/dist/{index-6U0mJTRK.js → index-AmTodx3_.js} +1 -1
- package/dist/{index-OMz6kBpd.js → index-B4wQijn6.js} +1 -1
- package/dist/{index-BDmWjw_1.js → index-TIX5DyQk.js} +3 -3
- package/dist/inventory-core-dart.default-BpMxAF-0.js +31060 -0
- package/dist/{lz-string-BgsMxnd4.js → lz-string-CFDYH-K6.js} +1 -1
- package/dist/{netsuite-DFRzj2t1.js → netsuite-CdW9v92G.js} +477 -462
- package/dist/{number-D-_PL2pH.js → number-DRRlTYv7.js} +6 -6
- package/dist/{predefined-templates-Ccsy5pq1.js → predefined-templates-C68U85pc.js} +1 -1
- package/dist/production-run-display-DmyfdjHR.js +239 -0
- package/dist/production-run-prepare-sheet-BvxMd19E.js +189 -0
- package/dist/{purchase-order-template-DhWqGEYn.js → purchase-order-template-BvED3CpO.js} +1 -1
- package/dist/{recalculationUtils-DBZx8AEF.js → recalculationUtils-9rFepwwr.js} +1 -1
- package/dist/router/name.d.ts +2 -0
- package/dist/{rules-14YnQFVP.js → rules-C8RmopTe.js} +2 -2
- package/dist/{stock-CqPXExNE.js → stock-BKkluaaM.js} +26 -36
- package/dist/{stock-NwBpU2GU.js → stock-CiCsT5JK.js} +3 -3
- package/dist/stores/integration/codemax.d.ts +1 -1
- package/dist/stores/integration/netsuite.d.ts +54 -0
- package/dist/style.css +1 -1
- package/dist/{supplier-BGh3ELiI.js → supplier--zZMQHPc.js} +2 -2
- package/dist/{surcharge-B2A5F8CG.js → surcharge-BLF3XV0G.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{uom-rules-B9vLSzRQ.js → uom-rules-CjCCXiGL.js} +1 -1
- package/dist/{use-ingredient-select-dialog-vwF7iReq.js → use-ingredient-select-dialog-DnUiY-Ic.js} +2 -2
- package/dist/{use-inventory-binding-dialog-DBp_gbnj.js → use-inventory-binding-dialog-BAU-P8kV.js} +2 -2
- package/dist/{use-template-enabled-locations-DSvlNPYu.js → use-template-enabled-locations-DZMzYCi-.js} +2 -2
- package/dist/{use-transfer-locations-OMxT9ofA.js → use-transfer-locations-DomGLsT2.js} +2 -2
- package/dist/{useHrmPermission-BbjcDYMn.js → useHrmPermission-CrhsV_5z.js} +1 -1
- package/dist/{useNavigationMenu-CJw7QuVt.js → useNavigationMenu-1h-G_-el.js} +2 -2
- package/dist/{useSseClient-CT69SXDP.js → useSseClient-o_3wiqhX.js} +1 -1
- package/dist/views/changelog/components/ChangelogFloatingButton.spec.d.ts +1 -0
- package/dist/views/changelog/composables/fab-position.d.ts +21 -0
- package/dist/views/changelog/composables/use-inventory-record-commits.d.ts +1 -1
- package/dist/views/closing-draft/helpers/draft-status-to-class-name.helper.d.ts +1 -1
- package/dist/views/integration/components/ApplyProductDialogCodemax.vue.d.ts +2 -2
- package/dist/views/integration/components/CodemaxDialog.vue.d.ts +2 -2
- package/dist/views/integration/components/netsuite/business/vendor-publish.d.ts +7 -0
- package/dist/views/integration/components/netsuite/business/vendor-publish.spec.d.ts +1 -0
- package/dist/views/production-run/ProductionRunDetailView.spec.d.ts +1 -0
- package/dist/views/production-run/ProductionRunDetailView.vue.d.ts +15 -0
- package/dist/views/production-run/ProductionRunPreparePrintView.spec.d.ts +1 -0
- package/dist/views/production-run/ProductionRunPreparePrintView.vue.d.ts +2 -0
- package/dist/views/production-run/ProductionRunView.spec.d.ts +1 -0
- package/dist/views/production-run/ProductionRunView.vue.d.ts +2 -0
- package/dist/views/production-run/components/CancelRunDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/CancelRunDialog.vue.d.ts +918 -0
- package/dist/views/production-run/components/CancelRunDialogProps.d.ts +9 -0
- package/dist/views/production-run/components/CloseRunDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/CloseRunDialog.vue.d.ts +918 -0
- package/dist/views/production-run/components/CloseRunDialogProps.d.ts +29 -0
- package/dist/views/production-run/components/PrepareRunConfirmationDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/PrepareRunConfirmationDialog.vue.d.ts +29 -0
- package/dist/views/production-run/components/PrepareRunDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/PrepareRunDialog.vue.d.ts +18 -0
- package/dist/views/production-run/components/PrepareRunDialogProps.d.ts +29 -0
- package/dist/views/production-run/components/PrepareSheetDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/PrepareSheetDialog.vue.d.ts +26 -0
- package/dist/views/{stock/components/dialog/SnapshotRecalculationDialog.vue.d.ts → production-run/components/ProductionRunActionMenuItem.vue.d.ts} +7 -10
- package/dist/views/production-run/components/ProductionRunActionsCell.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunActionsCell.vue.d.ts +20 -0
- package/dist/views/production-run/components/ProductionRunActivityTab.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunActivityTab.vue.d.ts +15 -0
- package/dist/views/production-run/components/ProductionRunBanner.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunBanner.vue.d.ts +42 -0
- package/dist/views/production-run/components/ProductionRunBatchCard.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunBatchCard.vue.d.ts +69 -0
- package/dist/views/production-run/components/ProductionRunBatchWastageDetails.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunBatchWastageDetails.vue.d.ts +33 -0
- package/dist/views/production-run/components/ProductionRunBindingsDisclosure.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunBindingsDisclosure.vue.d.ts +25 -0
- package/dist/views/production-run/components/ProductionRunBindingsList.vue.d.ts +51 -0
- package/dist/views/production-run/components/ProductionRunCompactDisclosure.vue.d.ts +25 -0
- package/dist/views/production-run/components/ProductionRunContributorBranch.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunContributorBranch.vue.d.ts +25 -0
- package/dist/views/production-run/components/ProductionRunCostRail.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunCostRail.vue.d.ts +77 -0
- package/dist/views/production-run/components/ProductionRunDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunDialog.vue.d.ts +24 -0
- package/dist/views/production-run/components/ProductionRunDialogProps.d.ts +15 -0
- package/dist/views/production-run/components/ProductionRunDialogSurface.vue.d.ts +33 -0
- package/dist/views/production-run/components/ProductionRunDiscardDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunDiscardDialog.vue.d.ts +21 -0
- package/dist/views/production-run/components/ProductionRunDuplicateDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunDuplicateDialog.vue.d.ts +51 -0
- package/dist/views/production-run/components/ProductionRunFormDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunFormDialog.vue.d.ts +918 -0
- package/dist/views/production-run/components/ProductionRunFormDialogProps.d.ts +22 -0
- package/dist/views/production-run/components/ProductionRunHeader.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunHeader.vue.d.ts +65 -0
- package/dist/views/production-run/components/ProductionRunHelpPopover.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunHelpPopover.vue.d.ts +52 -0
- package/dist/views/production-run/components/ProductionRunIngredientTree.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunIngredientTree.vue.d.ts +42 -0
- package/dist/views/production-run/components/ProductionRunIngredientsTab.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunIngredientsTab.vue.d.ts +63 -0
- package/dist/views/production-run/components/ProductionRunInstructionsCard.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunInstructionsCard.vue.d.ts +15 -0
- package/dist/views/production-run/components/ProductionRunItemPickerDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunItemPickerDialog.vue.d.ts +30 -0
- package/dist/views/production-run/components/ProductionRunItemsCell.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunItemsCell.vue.d.ts +33 -0
- package/dist/views/production-run/components/ProductionRunItemsTable.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunItemsTable.vue.d.ts +73 -0
- package/dist/views/production-run/components/ProductionRunLoadBannerContract.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunNoBindingsHelp.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunNoBindingsHelp.vue.d.ts +15 -0
- package/dist/views/production-run/components/ProductionRunOutputTab.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunOutputTab.vue.d.ts +26 -0
- package/dist/views/production-run/components/ProductionRunOverviewTab.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunOverviewTab.vue.d.ts +999 -0
- package/dist/views/production-run/components/ProductionRunPlanCard.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunPlanCard.vue.d.ts +50 -0
- package/dist/views/production-run/components/ProductionRunPlanner.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunPlanner.vue.d.ts +61 -0
- package/dist/views/production-run/components/ProductionRunPrepareSheet.vue.d.ts +16 -0
- package/dist/views/production-run/components/ProductionRunProjectionFeedback.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunProjectionFeedback.vue.d.ts +41 -0
- package/dist/views/production-run/components/ProductionRunRecordOutputDetails.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunRecordOutputDetails.vue.d.ts +43 -0
- package/dist/views/production-run/components/ProductionRunRecordOutputWastageStatus.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunRecordOutputWastageStatus.vue.d.ts +31 -0
- package/dist/views/production-run/components/ProductionRunRequestedOverview.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunRequestedOverview.vue.d.ts +48 -0
- package/dist/views/production-run/components/ProductionRunResultTable.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunResultTable.vue.d.ts +31 -0
- package/dist/views/production-run/components/ProductionRunScrollHint.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunScrollHint.vue.d.ts +31 -0
- package/dist/views/production-run/components/ProductionRunSelectionCheckbox.vue.d.ts +31 -0
- package/dist/views/production-run/components/ProductionRunSelectionControls.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunSelectionRadio.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunSelectionRadio.vue.d.ts +37 -0
- package/dist/views/production-run/components/ProductionRunSideSheet.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunSideSheet.vue.d.ts +77 -0
- package/dist/views/production-run/components/ProductionRunSideSheetSurface.vue.d.ts +52 -0
- package/dist/views/production-run/components/ProductionRunSortHeader.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunSortHeader.vue.d.ts +25 -0
- package/dist/views/production-run/components/ProductionRunStatusBadge.vue.d.ts +15 -0
- package/dist/views/production-run/components/ProductionRunTabs.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunTabs.vue.d.ts +47 -0
- package/dist/views/production-run/components/ProductionRunTerminalNotice.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunTerminalNotice.vue.d.ts +15 -0
- package/dist/views/production-run/components/ProductionRunTextarea.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunTextarea.vue.d.ts +53 -0
- package/dist/views/production-run/components/ProductionRunUnitInput.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunUnitInput.vue.d.ts +34 -0
- package/dist/views/production-run/components/ProductionRunWastageDisclosure.spec.d.ts +1 -0
- package/dist/views/production-run/components/ProductionRunWastageDisclosure.vue.d.ts +23 -0
- package/dist/views/production-run/components/RecordOutputDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/RecordOutputDialog.vue.d.ts +20 -0
- package/dist/views/production-run/components/RecordOutputDialogProps.d.ts +28 -0
- package/dist/views/production-run/components/TargetReachedDialog.spec.d.ts +1 -0
- package/dist/views/production-run/components/TargetReachedDialog.vue.d.ts +927 -0
- package/dist/views/production-run/components/production-run-deduction-parity.spec.d.ts +1 -0
- package/dist/views/production-run/components/production-run-prepare-sheet.d.ts +17 -0
- package/dist/views/production-run/components/production-run-typography-contract.spec.d.ts +1 -0
- package/dist/views/production-run/components/production-run-unit-snapshot.d.ts +39 -0
- package/dist/views/production-run/composables/production-run-display.d.ts +272 -0
- package/dist/views/production-run/composables/production-run-display.spec.d.ts +1 -0
- package/dist/views/production-run/composables/production-run-list.d.ts +46 -0
- package/dist/views/production-run/composables/production-run-list.spec.d.ts +1 -0
- package/dist/views/production-run/composables/production-run-request-confirmation.d.ts +20 -0
- package/dist/views/production-run/composables/use-production-run-actions.d.ts +37 -0
- package/dist/views/production-run/composables/use-production-run-actions.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-cost.d.ts +672 -0
- package/dist/views/production-run/composables/use-production-run-cost.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-detail.d.ts +1894 -0
- package/dist/views/production-run/composables/use-production-run-detail.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-disclosure.d.ts +15 -0
- package/dist/views/production-run/composables/use-production-run-disclosure.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-duplicate-sources.d.ts +19 -0
- package/dist/views/production-run/composables/use-production-run-duplicate-sources.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-economics.d.ts +92 -0
- package/dist/views/production-run/composables/use-production-run-economics.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-form.d.ts +277 -0
- package/dist/views/production-run/composables/use-production-run-form.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-record-output.d.ts +261 -0
- package/dist/views/production-run/composables/use-production-run-record-output.spec.d.ts +1 -0
- package/dist/views/production-run/composables/use-production-run-scroll-hint.d.ts +9 -0
- package/dist/views/production-run/composables/use-production-run-table.d.ts +19 -0
- package/dist/views/production-run/composables/use-production-run-table.spec.d.ts +1 -0
- package/dist/views/production-run/helpers/production-run-precision.helper.d.ts +31 -0
- package/dist/views/production-run/helpers/production-run-quantity.helper.d.ts +55 -0
- package/dist/views/production-run/helpers/production-run-quantity.helper.spec.d.ts +1 -0
- package/dist/views/production-run/production-run.fixture.d.ts +70 -0
- package/dist/views/production-run/production-run.fixture.spec.d.ts +1 -0
- package/dist/views/receive-request/composables/use-receive-request-form.d.ts +3 -3
- package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-form.d.ts +3 -3
- package/dist/views/stock/components/dialog/RecalculationDialog.vue.d.ts +2 -17
- package/dist/{vue-i18n--DyBLMYh.js → vue-i18n-hE8n67Ig.js} +358 -358
- package/dist/{xlsx.util-BthUZo9U.js → xlsx.util-Jv7EpwFc.js} +2 -2
- package/package.json +5 -5
- package/dist/ChangeLocationComponent.vue_vue_type_script_setup_true_lang-DpqPCG-m.js +0 -126
- package/dist/ClosingHistoryView-Cy2yMiEc.js +0 -1112
- package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-C28nZw_t.js +0 -120
- package/dist/ProductionView-DGB2sdwD.js +0 -1441
- package/dist/inventory-core-dart.default-BmR8gM8k.js +0 -25155
- package/dist/views/stock/components/StockRecalculateDialog.vue.d.ts +0 -9
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { FdoDecimal } from '@feedmepos/core/entity';
|
|
3
|
+
import { type RecordProductionOutputResult } from '@/api/production-run';
|
|
4
|
+
import { type ProductionRunUnitSnapshot } from '../components/production-run-unit-snapshot';
|
|
5
|
+
/**
|
|
6
|
+
* The record-output dialog's session: one `operationKey`, its whole life.
|
|
7
|
+
*
|
|
8
|
+
* `complete` receipts stock for a batch. The operation key is minted once per
|
|
9
|
+
* intent and survives the request, but the QA slice makes no automatic retry
|
|
10
|
+
* or lost-response recovery claim: an ambiguous response stops and requires a
|
|
11
|
+
* reload/manual review. Defensive resume remains post-QA.
|
|
12
|
+
*
|
|
13
|
+
* Closing the dialog clears the key from memory. Persistent recovery,
|
|
14
|
+
* lost-response reconciliation and partial-write resume are explicitly
|
|
15
|
+
* post-QA; an ambiguous response stops and asks the operator to reload.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Past this, a backdate stops looking like late paperwork and starts looking
|
|
19
|
+
* like a mistyped year.
|
|
20
|
+
*
|
|
21
|
+
* A THRESHOLD, not an invariant — it warns, it does not refuse. See `warnings`
|
|
22
|
+
* below for why this one is soft while the other two produced-time rules are
|
|
23
|
+
* hard, and why moving it back into `validate()` would be a regression rather
|
|
24
|
+
* than a repair.
|
|
25
|
+
*/
|
|
26
|
+
export declare const PRODUCED_AT_MAX_BACKDATE_DAYS = 14;
|
|
27
|
+
export type RecordOutputPhase =
|
|
28
|
+
/** No dialog session — nothing minted. */
|
|
29
|
+
'idle' | 'editing' | 'submitting'
|
|
30
|
+
/** The request may never have arrived. Same key is safe to resend. */
|
|
31
|
+
| 'timeout'
|
|
32
|
+
/** Anything else that failed but did not close the door on the key. */
|
|
33
|
+
| 'failed'
|
|
34
|
+
/**
|
|
35
|
+
* The run moved under us and the request cannot be resent as-is. Distinct
|
|
36
|
+
* from `'failed'`: there is nothing to retry, only something to re-read.
|
|
37
|
+
*/
|
|
38
|
+
| 'stale'
|
|
39
|
+
/**
|
|
40
|
+
* A previous submission exists that this session cannot identify.
|
|
41
|
+
*
|
|
42
|
+
* Reached only from unreadable stored state. We know a write may be
|
|
43
|
+
* outstanding and we cannot reproduce it, so neither resending nor starting
|
|
44
|
+
* fresh is honest — the run has to be re-read by a human.
|
|
45
|
+
*/
|
|
46
|
+
| 'blocked' | 'saved';
|
|
47
|
+
export type RecordOutputErrorCode = 'overCommitted' | 'negativeOutput' | 'producedAtFuture' | 'producedAtBeforeIssue' | 'wastageAmount' | 'wastageIngredient' | 'wastageItem' | 'wastageReason' | 'wastageRemark' | 'measurementUnavailable' | 'measurementMismatch'
|
|
48
|
+
/** Post-QA reserved code; no QA path persists an intent. */
|
|
49
|
+
| 'storageUnavailable';
|
|
50
|
+
/**
|
|
51
|
+
* A rule the user may overrule, as distinct from one they may not.
|
|
52
|
+
*
|
|
53
|
+
* Deliberately its own union rather than a member of `RecordOutputErrorCode`
|
|
54
|
+
* with a severity beside it. The type is the statement: nothing that reaches
|
|
55
|
+
* `errors` can be acknowledged past, and nothing here refuses anything.
|
|
56
|
+
* `producedAtTooOld` sat in the error union until FM-149 was ruled, and keeping
|
|
57
|
+
* it there behind a flag would leave the next reader one boolean away from
|
|
58
|
+
* restoring a refusal that was removed on purpose.
|
|
59
|
+
*/
|
|
60
|
+
export type RecordOutputWarningCode = 'producedAtTooOld';
|
|
61
|
+
/**
|
|
62
|
+
* Why a session is `'blocked'`. Both mean "a write may be outstanding and this
|
|
63
|
+
* session cannot resend it", and they differ only in what the user is told.
|
|
64
|
+
*/
|
|
65
|
+
export type RecordOutputBlockedReason = 'unreadableIntent' | 'storageUnreadable';
|
|
66
|
+
/**
|
|
67
|
+
* A validation failure, as a code plus its parameters rather than a sentence.
|
|
68
|
+
*
|
|
69
|
+
* The composable is not a rendering surface and has no `t()`. Carrying the code
|
|
70
|
+
* keeps the copy in the four locale files where a translator can reach it, and
|
|
71
|
+
* keeps the spec asserting the RULE rather than an English string that a
|
|
72
|
+
* wording change would break.
|
|
73
|
+
*
|
|
74
|
+
* `field` is what the dialog scrolls to and marks — every error names one.
|
|
75
|
+
*/
|
|
76
|
+
export interface RecordOutputError {
|
|
77
|
+
field: string;
|
|
78
|
+
code: RecordOutputErrorCode;
|
|
79
|
+
params: Record<string, string | number>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Same shape as an error, and pointedly not the same thing.
|
|
83
|
+
*
|
|
84
|
+
* Carries a code and its params for the identical reason (see above), but a
|
|
85
|
+
* warning names something the user is being ASKED about rather than told. It
|
|
86
|
+
* blocks the button only until it is acknowledged, and never populates
|
|
87
|
+
* `errors` — a validation banner headed "fix these" is the wrong sentence for
|
|
88
|
+
* a value that may well be correct.
|
|
89
|
+
*/
|
|
90
|
+
export interface RecordOutputWarning {
|
|
91
|
+
field: string;
|
|
92
|
+
code: RecordOutputWarningCode;
|
|
93
|
+
params: Record<string, string | number>;
|
|
94
|
+
}
|
|
95
|
+
export interface RecordOutputLine {
|
|
96
|
+
skuId: string;
|
|
97
|
+
name: string;
|
|
98
|
+
/** Unit abbrev from the issuance snapshot — the unit the movement was valued in. */
|
|
99
|
+
unit: string | null;
|
|
100
|
+
/**
|
|
101
|
+
* The same unit as the whole entity, which `FmUnitInput` needs to render and
|
|
102
|
+
* to police precision. The abbrev above stays for the plain-text lines that
|
|
103
|
+
* only interpolate it into a sentence.
|
|
104
|
+
*/
|
|
105
|
+
unitRef: FdoInventoryUnit | null;
|
|
106
|
+
/** Frozen on the issuance, never re-read from the live catalogue. */
|
|
107
|
+
valuation: F_INVENTORY_VALUATION_METHODS | null;
|
|
108
|
+
/** Base units. */
|
|
109
|
+
committed: number;
|
|
110
|
+
/** Base units, across every batch already recorded. */
|
|
111
|
+
produced: number;
|
|
112
|
+
/** `committed - produced`, floored at 0. */
|
|
113
|
+
remaining: number;
|
|
114
|
+
/**
|
|
115
|
+
* This batch, BASE units. Every comparison on this run is in base units —
|
|
116
|
+
* committed, produced, remaining, the over-target guard — so this stays the
|
|
117
|
+
* one figure they read, whatever unit the user typed in.
|
|
118
|
+
*/
|
|
119
|
+
amount: number;
|
|
120
|
+
/**
|
|
121
|
+
* What the user actually typed, verbatim, and the unit they typed it in.
|
|
122
|
+
*
|
|
123
|
+
* Sent on the wire as the pair the entity calls a unit of record: the amount
|
|
124
|
+
* is expressed IN `measurement`. Null is unresolved UI state and is never
|
|
125
|
+
* durable; the base choice carries an explicit base-UOM snapshot too. Held
|
|
126
|
+
* rather than derived back from `amount`, because converting to base and
|
|
127
|
+
* dividing out again is a rounding trip for no gain.
|
|
128
|
+
*/
|
|
129
|
+
entered: FdoDecimal;
|
|
130
|
+
measurement: ProductionRunUnitSnapshot | null;
|
|
131
|
+
}
|
|
132
|
+
export interface RecordOutputWastageLine {
|
|
133
|
+
/** Stable list key — wastage lines have no server identity until written. */
|
|
134
|
+
key: string;
|
|
135
|
+
/** The output item being made when the loss happened. */
|
|
136
|
+
itemSkuId: string;
|
|
137
|
+
/** The ingredient that was lost. */
|
|
138
|
+
skuId: string | null;
|
|
139
|
+
/** Base units of the INGREDIENT — see `RecordOutputLine.amount`. */
|
|
140
|
+
amount: number;
|
|
141
|
+
/** The entered pair — see `RecordOutputLine.entered`. */
|
|
142
|
+
entered: FdoDecimal;
|
|
143
|
+
measurement: ProductionRunUnitSnapshot | null;
|
|
144
|
+
/** Snapshotted when the ingredient is chosen; required before submit. */
|
|
145
|
+
unitRef: FdoInventoryUnit | null;
|
|
146
|
+
reason: F_PRODUCTION_WASTAGE_REASON | null;
|
|
147
|
+
remark: string;
|
|
148
|
+
}
|
|
149
|
+
export interface RecordOutputOverTargetLine {
|
|
150
|
+
skuId: string;
|
|
151
|
+
name: string;
|
|
152
|
+
valuation: F_INVENTORY_VALUATION_METHODS;
|
|
153
|
+
amount: number;
|
|
154
|
+
remaining: number;
|
|
155
|
+
excess: number;
|
|
156
|
+
excessPercent: number;
|
|
157
|
+
unit: string | null;
|
|
158
|
+
/** The target was already met before this batch began. */
|
|
159
|
+
alreadyAtTarget: boolean;
|
|
160
|
+
}
|
|
161
|
+
export interface RecordOutputSubmitOutcome {
|
|
162
|
+
result: RecordProductionOutputResult | null;
|
|
163
|
+
/** Present when the attempt failed in a way the dialog must narrate. */
|
|
164
|
+
phase: RecordOutputPhase;
|
|
165
|
+
}
|
|
166
|
+
export interface RecordOutputIngredientContext {
|
|
167
|
+
unit: FdoInventoryUnit;
|
|
168
|
+
/** Frozen contributor edges for this issued ingredient. */
|
|
169
|
+
outputSkuIds: string[];
|
|
170
|
+
}
|
|
171
|
+
export interface UseProductionRunRecordOutput {
|
|
172
|
+
phase: Ref<RecordOutputPhase>;
|
|
173
|
+
operationKey: Ref<string | null>;
|
|
174
|
+
producedAt: Ref<string>;
|
|
175
|
+
lines: Ref<RecordOutputLine[]>;
|
|
176
|
+
/** Output SKUs deliberately left out of this batch; lines stay in memory for restore. */
|
|
177
|
+
excludedSkuIds: Ref<Set<string>>;
|
|
178
|
+
wastages: Ref<RecordOutputWastageLine[]>;
|
|
179
|
+
remark: Ref<string>;
|
|
180
|
+
errors: Ref<RecordOutputError[]>;
|
|
181
|
+
/** A hard produced-time refusal, live while the operator edits the field. */
|
|
182
|
+
producedAtError: Ref<RecordOutputError | null>;
|
|
183
|
+
/** Live, not on submit — nothing here is a refusal, so nothing waits. */
|
|
184
|
+
warnings: Ref<RecordOutputWarning[]>;
|
|
185
|
+
/** Has the user confirmed the produced time CURRENTLY in the field? */
|
|
186
|
+
producedAtAcknowledged: Ref<boolean>;
|
|
187
|
+
/** A warning stands unanswered — the button waits, the user decides. */
|
|
188
|
+
needsAcknowledgement: Ref<boolean>;
|
|
189
|
+
failureMessage: Ref<string | null>;
|
|
190
|
+
/** Always false in QA; persistent resume is post-QA. */
|
|
191
|
+
isResume: Ref<boolean>;
|
|
192
|
+
/** Why the session is `'blocked'`, so the dialog can say which one it is. */
|
|
193
|
+
blockedReason: Ref<RecordOutputBlockedReason | null>;
|
|
194
|
+
/** The freshest run this session has seen — a 409 re-reads it silently. */
|
|
195
|
+
latestRun: Ref<FdoProductionRun | null>;
|
|
196
|
+
batchNumber: Ref<number>;
|
|
197
|
+
batchTotal: Ref<number>;
|
|
198
|
+
isOpen: Ref<boolean>;
|
|
199
|
+
isSubmitting: Ref<boolean>;
|
|
200
|
+
isTerminal: Ref<boolean>;
|
|
201
|
+
canSubmit: Ref<boolean>;
|
|
202
|
+
canRetry: Ref<boolean>;
|
|
203
|
+
/** True only while the one in-memory request is in flight. */
|
|
204
|
+
isFrozen: Ref<boolean>;
|
|
205
|
+
reachesTarget: Ref<boolean>;
|
|
206
|
+
/** Any line exceeds its remaining commitment. */
|
|
207
|
+
overTarget: Ref<boolean>;
|
|
208
|
+
/** The lines over target, with the frozen valuation that decides the rule. */
|
|
209
|
+
overTargetLines: Ref<RecordOutputOverTargetLine[]>;
|
|
210
|
+
/** At least one over-target line is not weighted-average and must be refused. */
|
|
211
|
+
refusedOverTarget: Ref<boolean>;
|
|
212
|
+
earliestIssuedAt: Ref<string | null>;
|
|
213
|
+
open: (run: FdoProductionRun, ingredients?: Record<string, RecordOutputIngredientContext>) => void;
|
|
214
|
+
close: () => void;
|
|
215
|
+
addWastage: (itemSkuId?: string) => void;
|
|
216
|
+
/** Rebind asynchronously loaded issuance ingredients without reopening the operation. */
|
|
217
|
+
updateIngredientContext: (ingredients: Record<string, RecordOutputIngredientContext>) => void;
|
|
218
|
+
excludeOutput: (skuId: string) => void;
|
|
219
|
+
restoreExcludedOutputs: () => void;
|
|
220
|
+
selectWastageSku: (key: string, skuId: string | null) => void;
|
|
221
|
+
removeWastage: (key: string) => void;
|
|
222
|
+
clearErrors: () => void;
|
|
223
|
+
validate: () => RecordOutputError[];
|
|
224
|
+
submit: () => Promise<RecordOutputSubmitOutcome>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* `YYYY-MM-DDTHH:mm` in the browser's own zone — what `<input type="date">` and
|
|
228
|
+
* `<input type="time">` read and write. Kept local end to end and converted to
|
|
229
|
+
* an instant only at the API boundary, so a run recorded at 5:05 pm reads back
|
|
230
|
+
* as 5:05 pm rather than shifting by the offset.
|
|
231
|
+
*/
|
|
232
|
+
export declare function toLocalDateTimeInput(date: Date): string;
|
|
233
|
+
/**
|
|
234
|
+
* Write an entered pair onto a line, and re-derive its base projection.
|
|
235
|
+
*
|
|
236
|
+
* The single place the two representations are allowed to diverge, so a caller
|
|
237
|
+
* cannot set one and forget the other — which is exactly how a base amount
|
|
238
|
+
* ends up sitting beside a non-null measurement.
|
|
239
|
+
*/
|
|
240
|
+
export declare function applyEntry(line: {
|
|
241
|
+
amount: number;
|
|
242
|
+
entered: FdoDecimal;
|
|
243
|
+
measurement: ProductionRunUnitSnapshot | null;
|
|
244
|
+
}, entered: FdoDecimal, measurement: ProductionRunUnitSnapshot | null): void;
|
|
245
|
+
/**
|
|
246
|
+
* Seed a line from a figure already in base units — the remaining commitment or
|
|
247
|
+
* zero — and record the base unit explicitly. A missing unit stays null and is
|
|
248
|
+
* refused before submission; null never means "base" for a durable quantity.
|
|
249
|
+
*/
|
|
250
|
+
export declare function applyBase(line: {
|
|
251
|
+
amount: number;
|
|
252
|
+
entered: FdoDecimal;
|
|
253
|
+
measurement: ProductionRunUnitSnapshot | null;
|
|
254
|
+
unitRef: FdoInventoryUnit | null;
|
|
255
|
+
}, base: number, precision: number): void;
|
|
256
|
+
export declare function toDecimal(value: number, precision?: number): FdoDecimal;
|
|
257
|
+
/** Convert a stored decimal to the form's numeric projection. */
|
|
258
|
+
export declare function fromDecimal(value: FdoDecimal): number;
|
|
259
|
+
/** Compatibility for deferred recovery specs; QA never persists an intent. */
|
|
260
|
+
export declare function hasPendingIntent(_dbName: string | null, _runId: string): boolean;
|
|
261
|
+
export declare function useProductionRunRecordOutput(): UseProductionRunRecordOutput;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type MaybeRefOrGetter } from 'vue';
|
|
2
|
+
/** Tracks whether a bounded Production list still has content below it. */
|
|
3
|
+
export declare function useProductionRunScrollHint(enabled?: MaybeRefOrGetter<boolean>): {
|
|
4
|
+
scroller: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
5
|
+
canScrollFurther: import("vue").Ref<boolean, boolean>;
|
|
6
|
+
measure: () => void;
|
|
7
|
+
scheduleMeasure: () => void;
|
|
8
|
+
onScroll: () => void;
|
|
9
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ColumnDef } from '@tanstack/vue-table';
|
|
2
|
+
import type { WithRev } from '@/api/type';
|
|
3
|
+
import type { ProductionRunLifecycleAction } from './use-production-run-actions';
|
|
4
|
+
export type ProductionRunRow = WithRev<FdoProductionRun>;
|
|
5
|
+
/**
|
|
6
|
+
* Column definitions for the production-run listing.
|
|
7
|
+
*
|
|
8
|
+
* Every sort is client-side because the list endpoint is unpaginated. That is
|
|
9
|
+
* correct only while the whole list is in memory: sorting one fetched page is
|
|
10
|
+
* not sorting the list, so a paginated endpoint moves sort to the server.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useProductionRunTable(onAction: (action: ProductionRunLifecycleAction, run: ProductionRunRow) => void,
|
|
13
|
+
/** Live inventory resolves the durable sku ids into operator-facing names. */
|
|
14
|
+
resolveSku?: (skuId: string) => FdoInventorySku | null | undefined, onOpen?: (run: ProductionRunRow) => void, currentSort?: () => {
|
|
15
|
+
id: string;
|
|
16
|
+
desc: boolean;
|
|
17
|
+
} | undefined, onSort?: (columnId: string) => void, hrefForRun?: (run: ProductionRunRow) => string): {
|
|
18
|
+
columnDefs: ColumnDef<ProductionRunRow>[];
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many decimal places a sku's quantities are meaningful to, in its BASE
|
|
3
|
+
* unit.
|
|
4
|
+
*
|
|
5
|
+
* The figure belongs to the unit — `FdoInventoryUnit.precision`, the same field
|
|
6
|
+
* the unit editor writes and every quantity input already validates against, so
|
|
7
|
+
* a display that rounds harder than the form allows is a display that hides a
|
|
8
|
+
* quantity someone was permitted to enter. Reached through
|
|
9
|
+
* `getAllowedPrecision` rather than off the field directly, because that helper
|
|
10
|
+
* is the portal's one statement of what "allowed precision" means and it is
|
|
11
|
+
* where the measurement-relative rule lives should a caller ever need it.
|
|
12
|
+
*
|
|
13
|
+
* **No measurement argument on purpose.** Everything the ingredient tree renders
|
|
14
|
+
* has already been converted to base units by the projection, so the base
|
|
15
|
+
* unit's own precision is the right increment. Passing a measurement here would
|
|
16
|
+
* answer a different question — how finely a quantity may be TYPED in grams —
|
|
17
|
+
* and silently widen every figure on the screen.
|
|
18
|
+
*
|
|
19
|
+
* Resolution is by sku rather than by unit abbrev: two units can print the same
|
|
20
|
+
* short string, and the projection rows carry ids, not units.
|
|
21
|
+
*
|
|
22
|
+
* Null when the sku is not in the catalogue — an unresolved unit, not a unit
|
|
23
|
+
* with no decimals. Callers hand that straight to `formatQuantity`, which falls
|
|
24
|
+
* back to what this module rendered at before precision was unit-derived.
|
|
25
|
+
*/
|
|
26
|
+
export declare function quantityPrecisionOf(sku: FdoInventorySku): number;
|
|
27
|
+
/**
|
|
28
|
+
* The same rule, reached by id, for the surfaces that hold projection rows
|
|
29
|
+
* rather than skus. {@link quantityPrecisionOf} is the rule; this is the lookup.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useQuantityPrecision(): (skuId: string) => number | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { FdoDecimal } from '@feedmepos/core/entity';
|
|
2
|
+
/**
|
|
3
|
+
* What the run was issued against, per production item, summed across every
|
|
4
|
+
* issuance. This — not `requestedAmount` — is the denominator of every figure
|
|
5
|
+
* after issuance: a run that committed more than it requested is not at 120%
|
|
6
|
+
* of anything.
|
|
7
|
+
*/
|
|
8
|
+
export declare function committedBySku(run: FdoProductionRun): Record<string, number>;
|
|
9
|
+
/** What the run has produced, per production item, summed across every batch. */
|
|
10
|
+
export declare function producedBySku(run: FdoProductionRun): Record<string, number>;
|
|
11
|
+
/** Total committed across production items. Zero on a run that has not issued. */
|
|
12
|
+
export declare function committedTotal(run: FdoProductionRun): number;
|
|
13
|
+
/** Total produced across production items. */
|
|
14
|
+
export declare function producedTotal(run: FdoProductionRun): number;
|
|
15
|
+
/**
|
|
16
|
+
* Committed minus produced per production item, floored at 0 — what the run
|
|
17
|
+
* still owes.
|
|
18
|
+
*
|
|
19
|
+
* Keyed on the COMMITTED items: a sku produced but never committed to (a
|
|
20
|
+
* byproduct, once those land) owes nothing and would otherwise appear as a
|
|
21
|
+
* negative remainder. Overproduction clamps to 0 for the same reason — it
|
|
22
|
+
* leaves nothing unaccounted.
|
|
23
|
+
*/
|
|
24
|
+
export declare function remainingBySku(run: FdoProductionRun): Record<string, number>;
|
|
25
|
+
/**
|
|
26
|
+
* Output attainment at 100%: every committed item produced in full.
|
|
27
|
+
*
|
|
28
|
+
* Asked of core rather than derived from the totals above, because the totals
|
|
29
|
+
* are cross-sku SUMS and this is a per-sku question. A two-output run that made
|
|
30
|
+
* 15 of one and 5 of another against 10 each sums to 20 of 20 and is not at
|
|
31
|
+
* target; core compares item by item.
|
|
32
|
+
*
|
|
33
|
+
* It is **attainment, not yield** — the denominator is what the run committed
|
|
34
|
+
* to make, not the ingredient quantity issued. And it decides nothing: the run
|
|
35
|
+
* stays open until someone closes it. Callers use it to offer closure, to show
|
|
36
|
+
* the persistent target-reached state, and to derive a closed run's outcome.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isAtTarget(run: FdoProductionRun): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* One stored amount in base units, kept as a decimal.
|
|
41
|
+
*
|
|
42
|
+
* Prefer {@link baseAmount} for anything that renders. This exists for the one
|
|
43
|
+
* case that must NOT flatten: handing a converted figure back to a core
|
|
44
|
+
* controller, where going through `number` would re-derive the precision the
|
|
45
|
+
* decimal already carries.
|
|
46
|
+
*/
|
|
47
|
+
export declare function baseDecimal(amount: FdoDecimal, measurement: FdoProductionUnitSnapshot): FdoDecimal;
|
|
48
|
+
/** One production amount in base units. Its durable snapshot is always explicit. */
|
|
49
|
+
export declare function baseAmount(amount: FdoDecimal, measurement: FdoProductionUnitSnapshot): number;
|
|
50
|
+
/**
|
|
51
|
+
* Legacy inventory adjustments predate Production's required snapshot and may
|
|
52
|
+
* still encode base as null. Keep that compatibility at the adjustment read
|
|
53
|
+
* edge; durable Production quantities must use {@link baseAmount} instead.
|
|
54
|
+
*/
|
|
55
|
+
export declare function adjustmentBaseAmount(amount: FdoDecimal, measurement?: FdoUnitMeasurement | null): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { FCurrency, FdoDecimal, FdoDinero, FdoEmployeeRef } from '@feedmepos/core/entity';
|
|
2
|
+
import { type ProductionRunUnitSnapshot } from './components/production-run-unit-snapshot';
|
|
3
|
+
/**
|
|
4
|
+
* Shared builders for the production-run specs.
|
|
5
|
+
*
|
|
6
|
+
* These documents cross the JS→Dart bridge, which deserialises them strictly:
|
|
7
|
+
* a missing required field is a runtime error, not an undefined read. So the
|
|
8
|
+
* builders below produce FULLY POPULATED documents and let a spec override only
|
|
9
|
+
* what it is actually asserting on.
|
|
10
|
+
*
|
|
11
|
+
* The unit setup is deliberate: the base unit is **kg** and `GRAM` is a
|
|
12
|
+
* measurement on it, so a run recorded partly in grams and partly in kilograms
|
|
13
|
+
* exercises the conversion every quantity in this module depends on.
|
|
14
|
+
*/
|
|
15
|
+
export declare function dec(value: number, precision?: number): FdoDecimal;
|
|
16
|
+
export declare function dinero(value: number, precision?: number, currency?: FCurrency): FdoDinero;
|
|
17
|
+
export declare const ACTOR: FdoEmployeeRef;
|
|
18
|
+
/** Grams, expressed against a kilogram base unit: 1 g = 0.001 kg. */
|
|
19
|
+
export declare const GRAM: FdoUnitMeasurement;
|
|
20
|
+
export declare const KILOGRAM: FdoInventoryUnit;
|
|
21
|
+
export declare const LITRE: FdoInventoryUnit;
|
|
22
|
+
/** Explicit production snapshots; generic adjustment measurements stay separate. */
|
|
23
|
+
export declare const KILOGRAM_SNAPSHOT: ProductionRunUnitSnapshot;
|
|
24
|
+
export declare const LITRE_SNAPSHOT: ProductionRunUnitSnapshot;
|
|
25
|
+
export declare const GRAM_SNAPSHOT: ProductionRunUnitSnapshot;
|
|
26
|
+
export declare function sku(id: string, unit?: FdoInventoryUnit): FdoInventorySku;
|
|
27
|
+
export declare function item(skuId: string, requested: number, measurement?: FdoUnitMeasurement | ProductionRunUnitSnapshot): FdoProductionRunItem;
|
|
28
|
+
export interface IssuanceLine {
|
|
29
|
+
skuId: string;
|
|
30
|
+
committed: number;
|
|
31
|
+
measurement?: FdoUnitMeasurement | ProductionRunUnitSnapshot;
|
|
32
|
+
unit?: FdoInventoryUnit;
|
|
33
|
+
}
|
|
34
|
+
export declare function issuance(lines: IssuanceLine[], overrides?: Partial<FdoProductionRunIssuance>): FdoProductionRunIssuance;
|
|
35
|
+
export interface BatchLine {
|
|
36
|
+
skuId: string;
|
|
37
|
+
produced: number;
|
|
38
|
+
measurement?: FdoUnitMeasurement | ProductionRunUnitSnapshot;
|
|
39
|
+
unit?: FdoInventoryUnit;
|
|
40
|
+
}
|
|
41
|
+
export declare function batch(lines: BatchLine[], overrides?: Partial<FdoProductionRunBatch>): FdoProductionRunBatch;
|
|
42
|
+
export declare function activityLog(action: F_PRODUCTION_RUN_ACTION, performedAt: string, remark?: string | null): FdoProductionRunActivityLog;
|
|
43
|
+
export declare function productionRun(overrides?: Partial<FdoProductionRun>): FdoProductionRun;
|
|
44
|
+
/**
|
|
45
|
+
* An issue adjustment carrying a cost pool of `poolValue`, spread over the
|
|
46
|
+
* named ingredients. `uncosted` ingredients consume stock but carry no cost
|
|
47
|
+
* balance on either side — the state that makes the pool an under-count and
|
|
48
|
+
* lights up the amber note.
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* An issue adjustment, shaped the way `deductStock` actually writes one.
|
|
52
|
+
*
|
|
53
|
+
* The `amounts` carry `ref` — the OUTPUT sku each deduction was made for — and
|
|
54
|
+
* that line's own valuation-derived `cost`. That is not decoration: FM-127
|
|
55
|
+
* reads exactly those two fields to split the pool between outputs. A fixture
|
|
56
|
+
* with bare amounts would pass against a BOM-derived split and prove nothing
|
|
57
|
+
* about the one that ships.
|
|
58
|
+
*
|
|
59
|
+
* `perOutput` says how the pool divides. Default: everything on one output.
|
|
60
|
+
*/
|
|
61
|
+
export declare function issueAdjustment({ poolValue, costed, uncosted, perOutput, runId }: {
|
|
62
|
+
poolValue: number;
|
|
63
|
+
costed?: string[];
|
|
64
|
+
uncosted?: string[];
|
|
65
|
+
perOutput?: {
|
|
66
|
+
skuId: string;
|
|
67
|
+
value: number;
|
|
68
|
+
}[];
|
|
69
|
+
runId?: string;
|
|
70
|
+
}): FdoInventoryAdjustment;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2338,7 +2338,7 @@ export declare function useReceiveRequestForm(scope: PO_SCOPE, initialDateRange?
|
|
|
2338
2338
|
ref: string;
|
|
2339
2339
|
milestones: {
|
|
2340
2340
|
estimatedTime?: string | null | undefined;
|
|
2341
|
-
type: "CANCELLED" | "DELIVERED" | "
|
|
2341
|
+
type: "CANCELLED" | "DELIVERED" | "PREPARING" | "CREATED" | "IN_TRANSIT" | "FAILED_DELIVERY";
|
|
2342
2342
|
createdAt: string;
|
|
2343
2343
|
description: string;
|
|
2344
2344
|
}[];
|
|
@@ -2349,7 +2349,7 @@ export declare function useReceiveRequestForm(scope: PO_SCOPE, initialDateRange?
|
|
|
2349
2349
|
ref: string;
|
|
2350
2350
|
milestones: {
|
|
2351
2351
|
estimatedTime?: string | null | undefined;
|
|
2352
|
-
type: "CANCELLED" | "DELIVERED" | "
|
|
2352
|
+
type: "CANCELLED" | "DELIVERED" | "PREPARING" | "CREATED" | "IN_TRANSIT" | "FAILED_DELIVERY";
|
|
2353
2353
|
createdAt: string;
|
|
2354
2354
|
description: string;
|
|
2355
2355
|
}[];
|
|
@@ -2360,7 +2360,7 @@ export declare function useReceiveRequestForm(scope: PO_SCOPE, initialDateRange?
|
|
|
2360
2360
|
ref: string;
|
|
2361
2361
|
milestones: {
|
|
2362
2362
|
estimatedTime?: string | null | undefined;
|
|
2363
|
-
type: "CANCELLED" | "DELIVERED" | "
|
|
2363
|
+
type: "CANCELLED" | "DELIVERED" | "PREPARING" | "CREATED" | "IN_TRANSIT" | "FAILED_DELIVERY";
|
|
2364
2364
|
createdAt: string;
|
|
2365
2365
|
description: string;
|
|
2366
2366
|
}[];
|
|
@@ -1509,7 +1509,7 @@ export declare function useBulkReceiveRequestForm(initialDateRange?: Partial<Dat
|
|
|
1509
1509
|
ref: string;
|
|
1510
1510
|
milestones: {
|
|
1511
1511
|
estimatedTime?: string | null | undefined;
|
|
1512
|
-
type: "CANCELLED" | "DELIVERED" | "
|
|
1512
|
+
type: "CANCELLED" | "DELIVERED" | "PREPARING" | "CREATED" | "IN_TRANSIT" | "FAILED_DELIVERY";
|
|
1513
1513
|
createdAt: string;
|
|
1514
1514
|
description: string;
|
|
1515
1515
|
}[];
|
|
@@ -1520,7 +1520,7 @@ export declare function useBulkReceiveRequestForm(initialDateRange?: Partial<Dat
|
|
|
1520
1520
|
ref: string;
|
|
1521
1521
|
milestones: {
|
|
1522
1522
|
estimatedTime?: string | null | undefined;
|
|
1523
|
-
type: "CANCELLED" | "DELIVERED" | "
|
|
1523
|
+
type: "CANCELLED" | "DELIVERED" | "PREPARING" | "CREATED" | "IN_TRANSIT" | "FAILED_DELIVERY";
|
|
1524
1524
|
createdAt: string;
|
|
1525
1525
|
description: string;
|
|
1526
1526
|
}[];
|
|
@@ -1531,7 +1531,7 @@ export declare function useBulkReceiveRequestForm(initialDateRange?: Partial<Dat
|
|
|
1531
1531
|
ref: string;
|
|
1532
1532
|
milestones: {
|
|
1533
1533
|
estimatedTime?: string | null | undefined;
|
|
1534
|
-
type: "CANCELLED" | "DELIVERED" | "
|
|
1534
|
+
type: "CANCELLED" | "DELIVERED" | "PREPARING" | "CREATED" | "IN_TRANSIT" | "FAILED_DELIVERY";
|
|
1535
1535
|
createdAt: string;
|
|
1536
1536
|
description: string;
|
|
1537
1537
|
}[];
|
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
declare function open(): Promise<void>;
|
|
2
|
-
declare
|
|
3
|
-
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
4
|
-
showButton: boolean;
|
|
5
|
-
}>>, {
|
|
2
|
+
declare const _default: import("vue").DefineComponent<{}, {
|
|
6
3
|
open: typeof open;
|
|
7
|
-
close: typeof close;
|
|
8
4
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
5
|
submitted: () => void;
|
|
10
|
-
}, string, import("vue").PublicProps, Readonly<
|
|
11
|
-
showButton: boolean;
|
|
12
|
-
}>>> & Readonly<{
|
|
6
|
+
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
13
7
|
onSubmitted?: (() => any) | undefined;
|
|
14
8
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
15
9
|
export default _default;
|
|
16
|
-
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
17
|
-
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
18
|
-
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
19
|
-
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
20
|
-
} : {
|
|
21
|
-
type: import('vue').PropType<T[K]>;
|
|
22
|
-
required: true;
|
|
23
|
-
};
|
|
24
|
-
};
|