@tailor-platform/erp-kit 0.4.1 → 0.5.1
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/CHANGELOG.md +36 -0
- package/README.md +12 -12
- package/dist/cli.mjs +503 -32
- package/package.json +2 -11
- package/skills/erp-kit-app-2-requirements-review/SKILL.md +2 -2
- package/skills/erp-kit-app-2-requirements-review/references/best-practices-check.md +1 -1
- package/skills/erp-kit-app-3-plan/references/resolver-extraction.md +6 -3
- package/skills/erp-kit-app-4-plan-review/SKILL.md +5 -3
- package/skills/erp-kit-app-4-plan-review/references/orphan-detection.md +3 -0
- package/skills/erp-kit-app-4-plan-review/references/story-resolver-parity.md +21 -3
- package/skills/erp-kit-app-5-impl-backend/SKILL.md +15 -4
- package/skills/erp-kit-app-6-impl-frontend/SKILL.md +8 -4
- package/skills/erp-kit-app-7-impl-review/SKILL.md +1 -1
- package/skills/erp-kit-app-shared/references/resolver-classification.md +3 -0
- package/skills/erp-kit-module-2-requirements-review/SKILL.md +3 -30
- package/skills/erp-kit-module-3-update-plan/SKILL.md +132 -0
- package/skills/erp-kit-module-3-update-plan/references/command-extraction.md +87 -0
- package/skills/erp-kit-module-3-update-plan/references/model-extraction.md +72 -0
- package/skills/erp-kit-module-3-update-plan/references/naming.md +73 -0
- package/skills/erp-kit-module-3-update-plan/references/query-extraction.md +59 -0
- package/skills/erp-kit-module-4-plan-review/SKILL.md +3 -69
- package/skills/erp-kit-module-5-impl/SKILL.md +1 -0
- package/skills/erp-kit-module-6-impl-review/SKILL.md +42 -120
- package/skills/erp-kit-module-6-impl-review/references/command-doc-test-parity.md +1 -1
- package/skills/erp-kit-module-6-impl-review/references/{error-implementation-parity.md → command-error-implementation-parity.md} +3 -3
- package/skills/erp-kit-module-6-impl-review/references/impl-parity-report-format.md +1 -1
- package/skills/erp-kit-module-6-impl-review/references/query-doc-code-parity.md +110 -0
- package/skills/erp-kit-module-6-impl-review/references/query-doc-test-parity.md +108 -0
- package/skills/erp-kit-module-6-impl-review/references/query-error-implementation-parity.md +100 -0
- package/src/commands/app/index.ts +18 -3
- package/src/commands/check.test.ts +1 -1
- package/src/commands/doc/module.ts +2 -3
- package/src/commands/doc/modules.test.ts +0 -7
- package/src/commands/doc/modules.ts +1 -2
- package/src/commands/doc/search.ts +1 -2
- package/src/commands/init-module.test.ts +17 -3
- package/src/commands/init-module.ts +0 -12
- package/src/commands/init.ts +4 -0
- package/src/commands/lib/distribute.test.ts +32 -1
- package/src/commands/lib/distribute.ts +47 -5
- package/src/commands/lib/sync-check-source.test.ts +1 -1
- package/src/commands/update.test.ts +16 -0
- package/src/commands/update.ts +4 -1
- package/src/generator/generate-code-boilerplate.test.ts +9 -1
- package/src/generator/generate-seed.ts +69 -0
- package/src/generator/scaffold.ts +6 -2
- package/src/mdschema.ts +39 -3
- package/src/module.ts +56 -0
- package/src/modules/business-partner/README.md +2 -2
- package/src/modules/inventory/README.md +65 -0
- package/src/modules/inventory/command/approveCountLine.generated.ts +6 -0
- package/src/modules/inventory/command/approveCountLine.test.ts +89 -0
- package/src/modules/inventory/command/approveCountLine.ts +68 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.test.ts +56 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.ts +50 -0
- package/src/modules/inventory/command/assignSerialNumber.generated.ts +6 -0
- package/src/modules/inventory/command/assignSerialNumber.test.ts +133 -0
- package/src/modules/inventory/command/assignSerialNumber.ts +83 -0
- package/src/modules/inventory/command/cancelInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/cancelInventoryCount.test.ts +114 -0
- package/src/modules/inventory/command/cancelInventoryCount.ts +62 -0
- package/src/modules/inventory/command/cancelStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/cancelStockMovement.test.ts +102 -0
- package/src/modules/inventory/command/cancelStockMovement.ts +56 -0
- package/src/modules/inventory/command/completeInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/completeInventoryCount.test.ts +99 -0
- package/src/modules/inventory/command/completeInventoryCount.ts +70 -0
- package/src/modules/inventory/command/confirmInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/confirmInventoryAdjustment.test.ts +324 -0
- package/src/modules/inventory/command/confirmInventoryAdjustment.ts +194 -0
- package/src/modules/inventory/command/confirmStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/confirmStockMovement.test.ts +126 -0
- package/src/modules/inventory/command/confirmStockMovement.ts +131 -0
- package/src/modules/inventory/command/createInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/createInventoryAdjustment.test.ts +298 -0
- package/src/modules/inventory/command/createInventoryAdjustment.ts +124 -0
- package/src/modules/inventory/command/createInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/createInventoryCount.test.ts +157 -0
- package/src/modules/inventory/command/createInventoryCount.ts +72 -0
- package/src/modules/inventory/command/createLot.generated.ts +6 -0
- package/src/modules/inventory/command/createLot.test.ts +106 -0
- package/src/modules/inventory/command/createLot.ts +72 -0
- package/src/modules/inventory/command/createStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/createStockMovement.test.ts +342 -0
- package/src/modules/inventory/command/createStockMovement.ts +172 -0
- package/src/modules/inventory/command/createStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/createStorageLocation.test.ts +246 -0
- package/src/modules/inventory/command/createStorageLocation.ts +126 -0
- package/src/modules/inventory/command/createValuationPolicy.generated.ts +6 -0
- package/src/modules/inventory/command/createValuationPolicy.test.ts +75 -0
- package/src/modules/inventory/command/createValuationPolicy.ts +52 -0
- package/src/modules/inventory/command/createWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/createWarehouse.test.ts +143 -0
- package/src/modules/inventory/command/createWarehouse.ts +76 -0
- package/src/modules/inventory/command/deactivateStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/deactivateStorageLocation.test.ts +69 -0
- package/src/modules/inventory/command/deactivateStorageLocation.ts +51 -0
- package/src/modules/inventory/command/deactivateWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/deactivateWarehouse.test.ts +75 -0
- package/src/modules/inventory/command/deactivateWarehouse.ts +45 -0
- package/src/modules/inventory/command/executeStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/executeStockMovement.test.ts +502 -0
- package/src/modules/inventory/command/executeStockMovement.ts +303 -0
- package/src/modules/inventory/command/reactivateStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/reactivateStorageLocation.test.ts +78 -0
- package/src/modules/inventory/command/reactivateStorageLocation.ts +63 -0
- package/src/modules/inventory/command/reactivateWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/reactivateWarehouse.test.ts +87 -0
- package/src/modules/inventory/command/reactivateWarehouse.ts +65 -0
- package/src/modules/inventory/command/recordCountLine.generated.ts +6 -0
- package/src/modules/inventory/command/recordCountLine.test.ts +211 -0
- package/src/modules/inventory/command/recordCountLine.ts +81 -0
- package/src/modules/inventory/command/rejectCountLine.generated.ts +6 -0
- package/src/modules/inventory/command/rejectCountLine.test.ts +66 -0
- package/src/modules/inventory/command/rejectCountLine.ts +50 -0
- package/src/modules/inventory/command/rejectInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/rejectInventoryAdjustment.test.ts +69 -0
- package/src/modules/inventory/command/rejectInventoryAdjustment.ts +50 -0
- package/src/modules/inventory/command/releaseReservation.generated.ts +6 -0
- package/src/modules/inventory/command/releaseReservation.test.ts +65 -0
- package/src/modules/inventory/command/releaseReservation.ts +50 -0
- package/src/modules/inventory/command/reserveStock.generated.ts +6 -0
- package/src/modules/inventory/command/reserveStock.test.ts +141 -0
- package/src/modules/inventory/command/reserveStock.ts +88 -0
- package/src/modules/inventory/command/reviseInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/reviseInventoryAdjustment.test.ts +68 -0
- package/src/modules/inventory/command/reviseInventoryAdjustment.ts +48 -0
- package/src/modules/inventory/command/startInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/startInventoryCount.test.ts +100 -0
- package/src/modules/inventory/command/startInventoryCount.ts +90 -0
- package/src/modules/inventory/command/submitInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/submitInventoryAdjustment.test.ts +53 -0
- package/src/modules/inventory/command/submitInventoryAdjustment.ts +47 -0
- package/src/modules/inventory/command/updateLot.generated.ts +6 -0
- package/src/modules/inventory/command/updateLot.test.ts +88 -0
- package/src/modules/inventory/command/updateLot.ts +52 -0
- package/src/modules/inventory/command/updateStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/updateStockMovement.test.ts +250 -0
- package/src/modules/inventory/command/updateStockMovement.ts +164 -0
- package/src/modules/inventory/command/updateStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/updateStorageLocation.test.ts +72 -0
- package/src/modules/inventory/command/updateStorageLocation.ts +77 -0
- package/src/modules/inventory/command/updateValuationPolicy.generated.ts +6 -0
- package/src/modules/inventory/command/updateValuationPolicy.test.ts +68 -0
- package/src/modules/inventory/command/updateValuationPolicy.ts +74 -0
- package/src/modules/inventory/command/updateWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/updateWarehouse.test.ts +88 -0
- package/src/modules/inventory/command/updateWarehouse.ts +64 -0
- package/src/modules/inventory/db/costLayer.ts +54 -0
- package/src/modules/inventory/db/inventoryAdjustment.ts +88 -0
- package/src/modules/inventory/db/inventoryCount.ts +58 -0
- package/src/modules/inventory/db/inventoryCountLine.ts +61 -0
- package/src/modules/inventory/db/itemValuation.ts +50 -0
- package/src/modules/inventory/db/lot.ts +51 -0
- package/src/modules/inventory/db/lotStockLevel.ts +48 -0
- package/src/modules/inventory/db/serialNumber.ts +53 -0
- package/src/modules/inventory/db/stockLevel.ts +51 -0
- package/src/modules/inventory/db/stockMoveLine.ts +78 -0
- package/src/modules/inventory/db/stockMovement.ts +48 -0
- package/src/modules/inventory/db/storageLocation.ts +56 -0
- package/src/modules/inventory/db/valuationPolicy.ts +33 -0
- package/src/modules/inventory/db/warehouse.ts +45 -0
- package/src/modules/inventory/docs/commands/ApproveCountLine.md +44 -0
- package/src/modules/inventory/docs/commands/ApproveInventoryAdjustment.md +37 -0
- package/src/modules/inventory/docs/commands/AssignSerialNumber.md +46 -0
- package/src/modules/inventory/docs/commands/CancelInventoryCount.md +49 -0
- package/src/modules/inventory/docs/commands/CancelStockMovement.md +44 -0
- package/src/modules/inventory/docs/commands/CompleteInventoryCount.md +47 -0
- package/src/modules/inventory/docs/commands/ConfirmInventoryAdjustment.md +72 -0
- package/src/modules/inventory/docs/commands/ConfirmStockMovement.md +43 -0
- package/src/modules/inventory/docs/commands/CreateInventoryAdjustment.md +75 -0
- package/src/modules/inventory/docs/commands/CreateInventoryCount.md +49 -0
- package/src/modules/inventory/docs/commands/CreateLot.md +40 -0
- package/src/modules/inventory/docs/commands/CreateStockMovement.md +76 -0
- package/src/modules/inventory/docs/commands/CreateStorageLocation.md +66 -0
- package/src/modules/inventory/docs/commands/CreateValuationPolicy.md +45 -0
- package/src/modules/inventory/docs/commands/CreateWarehouse.md +47 -0
- package/src/modules/inventory/docs/commands/DeactivateStorageLocation.md +39 -0
- package/src/modules/inventory/docs/commands/DeactivateWarehouse.md +38 -0
- package/src/modules/inventory/docs/commands/ExecuteStockMovement.md +82 -0
- package/src/modules/inventory/docs/commands/ReactivateStorageLocation.md +42 -0
- package/src/modules/inventory/docs/commands/ReactivateWarehouse.md +42 -0
- package/src/modules/inventory/docs/commands/RecordCountLine.md +52 -0
- package/src/modules/inventory/docs/commands/RejectCountLine.md +42 -0
- package/src/modules/inventory/docs/commands/RejectInventoryAdjustment.md +38 -0
- package/src/modules/inventory/docs/commands/ReleaseReservation.md +37 -0
- package/src/modules/inventory/docs/commands/ReserveStock.md +49 -0
- package/src/modules/inventory/docs/commands/ReviseInventoryAdjustment.md +38 -0
- package/src/modules/inventory/docs/commands/StartInventoryCount.md +47 -0
- package/src/modules/inventory/docs/commands/SubmitInventoryAdjustment.md +37 -0
- package/src/modules/inventory/docs/commands/UpdateLot.md +41 -0
- package/src/modules/inventory/docs/commands/UpdateStockMovement.md +45 -0
- package/src/modules/inventory/docs/commands/UpdateStorageLocation.md +41 -0
- package/src/modules/inventory/docs/commands/UpdateValuationPolicy.md +44 -0
- package/src/modules/inventory/docs/commands/UpdateWarehouse.md +42 -0
- package/src/modules/inventory/docs/features/inventory-adjustment.md +64 -0
- package/src/modules/inventory/docs/features/inventory-count.md +78 -0
- package/src/modules/inventory/docs/features/inventory-valuation.md +77 -0
- package/src/modules/inventory/docs/features/lot-and-batch-tracking.md +81 -0
- package/src/modules/inventory/docs/features/scrap-management.md +63 -0
- package/src/modules/inventory/docs/features/serial-number-tracking.md +68 -0
- package/src/modules/inventory/docs/features/stock-movement.md +72 -0
- package/src/modules/inventory/docs/features/stock-tracking.md +78 -0
- package/src/modules/inventory/docs/features/warehouse-management.md +97 -0
- package/src/modules/inventory/docs/models/CostLayer.md +37 -0
- package/src/modules/inventory/docs/models/InventoryAdjustment.md +69 -0
- package/src/modules/inventory/docs/models/InventoryCount.md +53 -0
- package/src/modules/inventory/docs/models/InventoryCountLine.md +53 -0
- package/src/modules/inventory/docs/models/ItemValuation.md +38 -0
- package/src/modules/inventory/docs/models/Lot.md +45 -0
- package/src/modules/inventory/docs/models/LotStockLevel.md +34 -0
- package/src/modules/inventory/docs/models/SerialNumber.md +53 -0
- package/src/modules/inventory/docs/models/StockLevel.md +41 -0
- package/src/modules/inventory/docs/models/StockMoveLine.md +44 -0
- package/src/modules/inventory/docs/models/StockMovement.md +52 -0
- package/src/modules/inventory/docs/models/StorageLocation.md +55 -0
- package/src/modules/inventory/docs/models/ValuationPolicy.md +38 -0
- package/src/modules/inventory/docs/models/Warehouse.md +50 -0
- package/src/modules/inventory/docs/queries/GetInventoryAdjustment.md +40 -0
- package/src/modules/inventory/docs/queries/GetInventoryCount.md +43 -0
- package/src/modules/inventory/docs/queries/GetItemValuation.md +42 -0
- package/src/modules/inventory/docs/queries/GetLot.md +42 -0
- package/src/modules/inventory/docs/queries/GetSerialNumber.md +43 -0
- package/src/modules/inventory/docs/queries/GetSerialNumberHistory.md +50 -0
- package/src/modules/inventory/docs/queries/GetStockLevel.md +42 -0
- package/src/modules/inventory/docs/queries/GetStockMovement.md +41 -0
- package/src/modules/inventory/docs/queries/GetStorageLocation.md +40 -0
- package/src/modules/inventory/docs/queries/GetValuationPolicy.md +38 -0
- package/src/modules/inventory/docs/queries/GetWarehouse.md +40 -0
- package/src/modules/inventory/docs/queries/GetWarehouseStockSummary.md +50 -0
- package/src/modules/inventory/docs/queries/ListCostLayers.md +49 -0
- package/src/modules/inventory/docs/queries/ListExpiringLots.md +51 -0
- package/src/modules/inventory/docs/queries/ListInventoryAdjustments.md +47 -0
- package/src/modules/inventory/docs/queries/ListInventoryCounts.md +57 -0
- package/src/modules/inventory/docs/queries/ListItemValuations.md +44 -0
- package/src/modules/inventory/docs/queries/ListLots.md +57 -0
- package/src/modules/inventory/docs/queries/ListSerialNumbers.md +44 -0
- package/src/modules/inventory/docs/queries/ListStockLevels.md +49 -0
- package/src/modules/inventory/docs/queries/ListStockMovements.md +47 -0
- package/src/modules/inventory/docs/queries/ListStorageLocations.md +47 -0
- package/src/modules/inventory/docs/queries/ListValuationPolicies.md +38 -0
- package/src/modules/inventory/docs/queries/ListWarehouses.md +42 -0
- package/src/modules/inventory/docs/queries/TraceLotBackward.md +46 -0
- package/src/modules/inventory/docs/queries/TraceLotForward.md +46 -0
- package/src/modules/inventory/executor/.gitkeep +0 -0
- package/src/modules/inventory/generated/.gitkeep +0 -0
- package/src/modules/inventory/generated/enums.ts +131 -0
- package/src/modules/inventory/generated/kysely-tailordb.ts +201 -0
- package/src/modules/inventory/index.ts +2 -0
- package/src/modules/inventory/lib/_db_deps.ts +17 -0
- package/src/modules/inventory/lib/errors.generated.ts +317 -0
- package/src/modules/inventory/lib/permissions.generated.ts +38 -0
- package/src/modules/inventory/lib/types.ts +92 -0
- package/src/modules/inventory/module.ts +202 -0
- package/src/modules/inventory/permissions.ts +3 -0
- package/src/modules/inventory/query/.gitkeep +0 -0
- package/src/modules/inventory/query/getInventoryAdjustment.generated.ts +5 -0
- package/src/modules/inventory/query/getInventoryAdjustment.test.ts +58 -0
- package/src/modules/inventory/query/getInventoryAdjustment.ts +16 -0
- package/src/modules/inventory/query/getInventoryCount.generated.ts +5 -0
- package/src/modules/inventory/query/getInventoryCount.test.ts +65 -0
- package/src/modules/inventory/query/getInventoryCount.ts +27 -0
- package/src/modules/inventory/query/getItemValuation.generated.ts +5 -0
- package/src/modules/inventory/query/getItemValuation.test.ts +72 -0
- package/src/modules/inventory/query/getItemValuation.ts +29 -0
- package/src/modules/inventory/query/getLot.generated.ts +5 -0
- package/src/modules/inventory/query/getLot.test.ts +62 -0
- package/src/modules/inventory/query/getLot.ts +28 -0
- package/src/modules/inventory/query/getSerialNumber.generated.ts +5 -0
- package/src/modules/inventory/query/getSerialNumber.test.ts +59 -0
- package/src/modules/inventory/query/getSerialNumber.ts +18 -0
- package/src/modules/inventory/query/getSerialNumberHistory.generated.ts +5 -0
- package/src/modules/inventory/query/getSerialNumberHistory.test.ts +80 -0
- package/src/modules/inventory/query/getSerialNumberHistory.ts +30 -0
- package/src/modules/inventory/query/getStockLevel.generated.ts +5 -0
- package/src/modules/inventory/query/getStockLevel.test.ts +70 -0
- package/src/modules/inventory/query/getStockLevel.ts +24 -0
- package/src/modules/inventory/query/getStockMovement.generated.ts +5 -0
- package/src/modules/inventory/query/getStockMovement.test.ts +62 -0
- package/src/modules/inventory/query/getStockMovement.ts +26 -0
- package/src/modules/inventory/query/getStorageLocation.generated.ts +5 -0
- package/src/modules/inventory/query/getStorageLocation.test.ts +54 -0
- package/src/modules/inventory/query/getStorageLocation.ts +26 -0
- package/src/modules/inventory/query/getValuationPolicy.generated.ts +5 -0
- package/src/modules/inventory/query/getValuationPolicy.test.ts +42 -0
- package/src/modules/inventory/query/getValuationPolicy.ts +16 -0
- package/src/modules/inventory/query/getWarehouse.generated.ts +5 -0
- package/src/modules/inventory/query/getWarehouse.test.ts +61 -0
- package/src/modules/inventory/query/getWarehouse.ts +26 -0
- package/src/modules/inventory/query/getWarehouseStockSummary.generated.ts +5 -0
- package/src/modules/inventory/query/getWarehouseStockSummary.test.ts +97 -0
- package/src/modules/inventory/query/getWarehouseStockSummary.ts +82 -0
- package/src/modules/inventory/query/listCostLayers.generated.ts +5 -0
- package/src/modules/inventory/query/listCostLayers.test.ts +58 -0
- package/src/modules/inventory/query/listCostLayers.ts +45 -0
- package/src/modules/inventory/query/listExpiringLots.generated.ts +5 -0
- package/src/modules/inventory/query/listExpiringLots.test.ts +70 -0
- package/src/modules/inventory/query/listExpiringLots.ts +74 -0
- package/src/modules/inventory/query/listInventoryAdjustments.generated.ts +5 -0
- package/src/modules/inventory/query/listInventoryAdjustments.test.ts +89 -0
- package/src/modules/inventory/query/listInventoryAdjustments.ts +59 -0
- package/src/modules/inventory/query/listInventoryCounts.generated.ts +5 -0
- package/src/modules/inventory/query/listInventoryCounts.test.ts +78 -0
- package/src/modules/inventory/query/listInventoryCounts.ts +55 -0
- package/src/modules/inventory/query/listItemValuations.generated.ts +5 -0
- package/src/modules/inventory/query/listItemValuations.test.ts +54 -0
- package/src/modules/inventory/query/listItemValuations.ts +39 -0
- package/src/modules/inventory/query/listLots.generated.ts +5 -0
- package/src/modules/inventory/query/listLots.test.ts +120 -0
- package/src/modules/inventory/query/listLots.ts +68 -0
- package/src/modules/inventory/query/listSerialNumbers.generated.ts +5 -0
- package/src/modules/inventory/query/listSerialNumbers.test.ts +58 -0
- package/src/modules/inventory/query/listSerialNumbers.ts +53 -0
- package/src/modules/inventory/query/listStockLevels.generated.ts +5 -0
- package/src/modules/inventory/query/listStockLevels.test.ts +73 -0
- package/src/modules/inventory/query/listStockLevels.ts +79 -0
- package/src/modules/inventory/query/listStockMovements.generated.ts +5 -0
- package/src/modules/inventory/query/listStockMovements.test.ts +98 -0
- package/src/modules/inventory/query/listStockMovements.ts +105 -0
- package/src/modules/inventory/query/listStorageLocations.generated.ts +5 -0
- package/src/modules/inventory/query/listStorageLocations.test.ts +70 -0
- package/src/modules/inventory/query/listStorageLocations.ts +53 -0
- package/src/modules/inventory/query/listValuationPolicies.generated.ts +5 -0
- package/src/modules/inventory/query/listValuationPolicies.test.ts +38 -0
- package/src/modules/inventory/query/listValuationPolicies.ts +39 -0
- package/src/modules/inventory/query/listWarehouses.generated.ts +5 -0
- package/src/modules/inventory/query/listWarehouses.test.ts +60 -0
- package/src/modules/inventory/query/listWarehouses.ts +39 -0
- package/src/modules/inventory/query/traceLotBackward.generated.ts +5 -0
- package/src/modules/inventory/query/traceLotBackward.test.ts +63 -0
- package/src/modules/inventory/query/traceLotBackward.ts +36 -0
- package/src/modules/inventory/query/traceLotForward.generated.ts +5 -0
- package/src/modules/inventory/query/traceLotForward.test.ts +63 -0
- package/src/modules/inventory/query/traceLotForward.ts +36 -0
- package/src/modules/inventory/tailor.config.ts +13 -0
- package/src/modules/inventory/tailor.d.ts +13 -0
- package/src/modules/inventory/testing/commandTestUtils.ts +29 -0
- package/src/modules/inventory/testing/fixtures.ts +412 -0
- package/src/modules/item-management/docs/models/{item.md → Item.md} +1 -1
- package/src/modules/primitives/seed/currencies.ts +22 -0
- package/src/modules/primitives/seed/exchangeRates.ts +22 -0
- package/src/modules/primitives/seed/index.ts +4 -0
- package/src/modules/primitives/seed/seed.test.ts +80 -0
- package/src/modules/primitives/seed/units.ts +62 -0
- package/src/modules/primitives/seed/uomCategories.ts +24 -0
- package/src/modules/purchase/README.md +63 -0
- package/src/modules/purchase/command/.gitkeep +0 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.test.ts +53 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.ts +39 -0
- package/src/modules/purchase/command/activatePurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/activatePurchasePriceList.test.ts +39 -0
- package/src/modules/purchase/command/activatePurchasePriceList.ts +32 -0
- package/src/modules/purchase/command/activatePurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/activatePurchasePriceRule.test.ts +133 -0
- package/src/modules/purchase/command/activatePurchasePriceRule.ts +75 -0
- package/src/modules/purchase/command/approvePurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/approvePurchaseOrder.test.ts +161 -0
- package/src/modules/purchase/command/approvePurchaseOrder.ts +89 -0
- package/src/modules/purchase/command/cancelGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/cancelGoodsReceipt.test.ts +37 -0
- package/src/modules/purchase/command/cancelGoodsReceipt.ts +29 -0
- package/src/modules/purchase/command/cancelPurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/cancelPurchaseBill.test.ts +101 -0
- package/src/modules/purchase/command/cancelPurchaseBill.ts +84 -0
- package/src/modules/purchase/command/cancelPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/cancelPurchaseOrder.test.ts +119 -0
- package/src/modules/purchase/command/cancelPurchaseOrder.ts +65 -0
- package/src/modules/purchase/command/closePurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/closePurchaseOrder.test.ts +128 -0
- package/src/modules/purchase/command/closePurchaseOrder.ts +58 -0
- package/src/modules/purchase/command/createGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/createGoodsReceipt.test.ts +233 -0
- package/src/modules/purchase/command/createGoodsReceipt.ts +93 -0
- package/src/modules/purchase/command/createPurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchaseBill.test.ts +277 -0
- package/src/modules/purchase/command/createPurchaseBill.ts +107 -0
- package/src/modules/purchase/command/createPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchaseOrder.test.ts +291 -0
- package/src/modules/purchase/command/createPurchaseOrder.ts +131 -0
- package/src/modules/purchase/command/createPurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchasePaymentTerm.test.ts +140 -0
- package/src/modules/purchase/command/createPurchasePaymentTerm.ts +66 -0
- package/src/modules/purchase/command/createPurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchasePriceList.test.ts +108 -0
- package/src/modules/purchase/command/createPurchasePriceList.ts +63 -0
- package/src/modules/purchase/command/createPurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchasePriceRule.test.ts +139 -0
- package/src/modules/purchase/command/createPurchasePriceRule.ts +95 -0
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.test.ts +49 -0
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.ts +41 -0
- package/src/modules/purchase/command/deactivatePurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/deactivatePurchasePriceList.test.ts +50 -0
- package/src/modules/purchase/command/deactivatePurchasePriceList.ts +32 -0
- package/src/modules/purchase/command/deactivatePurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/deactivatePurchasePriceRule.test.ts +50 -0
- package/src/modules/purchase/command/deactivatePurchasePriceRule.ts +32 -0
- package/src/modules/purchase/command/matchPurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/matchPurchaseBill.test.ts +188 -0
- package/src/modules/purchase/command/matchPurchaseBill.ts +146 -0
- package/src/modules/purchase/command/postGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/postGoodsReceipt.test.ts +210 -0
- package/src/modules/purchase/command/postGoodsReceipt.ts +143 -0
- package/src/modules/purchase/command/rejectPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/rejectPurchaseOrder.test.ts +79 -0
- package/src/modules/purchase/command/rejectPurchaseOrder.ts +41 -0
- package/src/modules/purchase/command/releasePurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/releasePurchaseBill.test.ts +94 -0
- package/src/modules/purchase/command/releasePurchaseBill.ts +111 -0
- package/src/modules/purchase/command/setSupplierDefaultPurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/setSupplierDefaultPurchasePaymentTerm.test.ts +171 -0
- package/src/modules/purchase/command/setSupplierDefaultPurchasePaymentTerm.ts +90 -0
- package/src/modules/purchase/command/submitPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/submitPurchaseOrder.test.ts +98 -0
- package/src/modules/purchase/command/submitPurchaseOrder.ts +73 -0
- package/src/modules/purchase/command/updateGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/updateGoodsReceipt.test.ts +115 -0
- package/src/modules/purchase/command/updateGoodsReceipt.ts +73 -0
- package/src/modules/purchase/command/updatePurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchaseBill.test.ts +137 -0
- package/src/modules/purchase/command/updatePurchaseBill.ts +89 -0
- package/src/modules/purchase/command/updatePurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchaseOrder.test.ts +195 -0
- package/src/modules/purchase/command/updatePurchaseOrder.ts +121 -0
- package/src/modules/purchase/command/updatePurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchasePaymentTerm.test.ts +154 -0
- package/src/modules/purchase/command/updatePurchasePaymentTerm.ts +73 -0
- package/src/modules/purchase/command/updatePurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchasePriceList.test.ts +73 -0
- package/src/modules/purchase/command/updatePurchasePriceList.ts +55 -0
- package/src/modules/purchase/command/updatePurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchasePriceRule.test.ts +191 -0
- package/src/modules/purchase/command/updatePurchasePriceRule.ts +104 -0
- package/src/modules/purchase/db/.gitkeep +0 -0
- package/src/modules/purchase/db/goodsReceipt.ts +62 -0
- package/src/modules/purchase/db/purchaseBill.ts +74 -0
- package/src/modules/purchase/db/purchaseOrder.ts +100 -0
- package/src/modules/purchase/db/purchasePaymentTerm.ts +46 -0
- package/src/modules/purchase/db/purchasePriceList.ts +53 -0
- package/src/modules/purchase/db/purchasePriceRule.ts +74 -0
- package/src/modules/purchase/db/supplierProfile.ts +59 -0
- package/src/modules/purchase/docs/commands/ActivatePurchasePaymentTerm.md +39 -0
- package/src/modules/purchase/docs/commands/ActivatePurchasePriceList.md +37 -0
- package/src/modules/purchase/docs/commands/ActivatePurchasePriceRule.md +47 -0
- package/src/modules/purchase/docs/commands/ApprovePurchaseOrder.md +55 -0
- package/src/modules/purchase/docs/commands/CancelGoodsReceipt.md +39 -0
- package/src/modules/purchase/docs/commands/CancelPurchaseBill.md +49 -0
- package/src/modules/purchase/docs/commands/CancelPurchaseOrder.md +47 -0
- package/src/modules/purchase/docs/commands/ClosePurchaseOrder.md +49 -0
- package/src/modules/purchase/docs/commands/CreateGoodsReceipt.md +54 -0
- package/src/modules/purchase/docs/commands/CreatePurchaseBill.md +59 -0
- package/src/modules/purchase/docs/commands/CreatePurchaseOrder.md +66 -0
- package/src/modules/purchase/docs/commands/CreatePurchasePaymentTerm.md +52 -0
- package/src/modules/purchase/docs/commands/CreatePurchasePriceList.md +48 -0
- package/src/modules/purchase/docs/commands/CreatePurchasePriceRule.md +62 -0
- package/src/modules/purchase/docs/commands/DeactivatePurchasePaymentTerm.md +42 -0
- package/src/modules/purchase/docs/commands/DeactivatePurchasePriceList.md +39 -0
- package/src/modules/purchase/docs/commands/DeactivatePurchasePriceRule.md +39 -0
- package/src/modules/purchase/docs/commands/MatchPurchaseBill.md +63 -0
- package/src/modules/purchase/docs/commands/PostGoodsReceipt.md +61 -0
- package/src/modules/purchase/docs/commands/RejectPurchaseOrder.md +44 -0
- package/src/modules/purchase/docs/commands/ReleasePurchaseBill.md +48 -0
- package/src/modules/purchase/docs/commands/SetSupplierDefaultPurchasePaymentTerm.md +50 -0
- package/src/modules/purchase/docs/commands/SubmitPurchaseOrder.md +51 -0
- package/src/modules/purchase/docs/commands/UpdateGoodsReceipt.md +48 -0
- package/src/modules/purchase/docs/commands/UpdatePurchaseBill.md +51 -0
- package/src/modules/purchase/docs/commands/UpdatePurchaseOrder.md +59 -0
- package/src/modules/purchase/docs/commands/UpdatePurchasePaymentTerm.md +51 -0
- package/src/modules/purchase/docs/commands/UpdatePurchasePriceList.md +43 -0
- package/src/modules/purchase/docs/commands/UpdatePurchasePriceRule.md +60 -0
- package/src/modules/purchase/docs/features/goods-receipt-matching.md +71 -0
- package/src/modules/purchase/docs/features/purchase-order-lifecycle.md +87 -0
- package/src/modules/purchase/docs/features/purchase-payment-terms.md +67 -0
- package/src/modules/purchase/docs/features/supplier-bill-matching.md +79 -0
- package/src/modules/purchase/docs/features/supplier-purchase-pricing.md +72 -0
- package/src/modules/purchase/docs/models/GoodsReceipt.md +58 -0
- package/src/modules/purchase/docs/models/PurchaseBill.md +68 -0
- package/src/modules/purchase/docs/models/PurchaseOrder.md +88 -0
- package/src/modules/purchase/docs/models/PurchasePaymentTerm.md +59 -0
- package/src/modules/purchase/docs/models/PurchasePriceList.md +53 -0
- package/src/modules/purchase/docs/models/PurchasePriceRule.md +58 -0
- package/src/modules/purchase/docs/models/SupplierProfile.md +37 -0
- package/src/modules/purchase/docs/queries/CalculatePurchaseBillDueSchedule.md +47 -0
- package/src/modules/purchase/docs/queries/CalculatePurchasePrice.md +53 -0
- package/src/modules/purchase/docs/queries/GetGoodsReceipt.md +36 -0
- package/src/modules/purchase/docs/queries/GetPurchaseBill.md +41 -0
- package/src/modules/purchase/docs/queries/GetPurchaseOrder.md +42 -0
- package/src/modules/purchase/docs/queries/GetPurchasePaymentTerm.md +36 -0
- package/src/modules/purchase/docs/queries/GetPurchasePriceList.md +36 -0
- package/src/modules/purchase/docs/queries/GetSupplierProfile.md +36 -0
- package/src/modules/purchase/executor/.gitkeep +0 -0
- package/src/modules/purchase/generated/.gitkeep +0 -0
- package/src/modules/purchase/generated/enums.ts +63 -0
- package/src/modules/purchase/generated/kysely-tailordb.ts +186 -0
- package/src/modules/purchase/index.ts +2 -0
- package/src/modules/purchase/lib/_db_deps.ts +77 -0
- package/src/modules/purchase/lib/domain.ts +467 -0
- package/src/modules/purchase/lib/errors.generated.ts +367 -0
- package/src/modules/purchase/lib/permissions.generated.ts +34 -0
- package/src/modules/purchase/lib/types.ts +65 -0
- package/src/modules/purchase/module.ts +218 -0
- package/src/modules/purchase/permissions.ts +1 -0
- package/src/modules/purchase/query/.gitkeep +0 -0
- package/src/modules/purchase/query/calculatePurchaseBillDueSchedule.generated.ts +5 -0
- package/src/modules/purchase/query/calculatePurchaseBillDueSchedule.test.ts +183 -0
- package/src/modules/purchase/query/calculatePurchaseBillDueSchedule.ts +41 -0
- package/src/modules/purchase/query/calculatePurchasePrice.generated.ts +5 -0
- package/src/modules/purchase/query/calculatePurchasePrice.test.ts +143 -0
- package/src/modules/purchase/query/calculatePurchasePrice.ts +113 -0
- package/src/modules/purchase/query/getGoodsReceipt.generated.ts +5 -0
- package/src/modules/purchase/query/getGoodsReceipt.test.ts +42 -0
- package/src/modules/purchase/query/getGoodsReceipt.ts +27 -0
- package/src/modules/purchase/query/getPurchaseBill.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchaseBill.test.ts +69 -0
- package/src/modules/purchase/query/getPurchaseBill.ts +35 -0
- package/src/modules/purchase/query/getPurchaseOrder.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchaseOrder.test.ts +65 -0
- package/src/modules/purchase/query/getPurchaseOrder.ts +33 -0
- package/src/modules/purchase/query/getPurchasePaymentTerm.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchasePaymentTerm.test.ts +44 -0
- package/src/modules/purchase/query/getPurchasePaymentTerm.ts +30 -0
- package/src/modules/purchase/query/getPurchasePriceList.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchasePriceList.test.ts +48 -0
- package/src/modules/purchase/query/getPurchasePriceList.ts +30 -0
- package/src/modules/purchase/query/getSupplierProfile.generated.ts +5 -0
- package/src/modules/purchase/query/getSupplierProfile.test.ts +50 -0
- package/src/modules/purchase/query/getSupplierProfile.ts +18 -0
- package/src/modules/purchase/tailor.config.ts +13 -0
- package/src/modules/purchase/tailor.d.ts +13 -0
- package/src/modules/purchase/testing/commandTestUtils.ts +35 -0
- package/src/modules/purchase/testing/fixtures.ts +317 -0
- package/src/modules/sales/README.md +69 -0
- package/src/modules/sales/command/.gitkeep +0 -0
- package/src/modules/sales/command/activateChannel.generated.ts +6 -0
- package/src/modules/sales/command/activateChannel.test.ts +70 -0
- package/src/modules/sales/command/activateChannel.ts +48 -0
- package/src/modules/sales/command/activateListing.generated.ts +6 -0
- package/src/modules/sales/command/activateListing.test.ts +87 -0
- package/src/modules/sales/command/activateListing.ts +49 -0
- package/src/modules/sales/command/activateSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/activateSalesPaymentTerm.test.ts +58 -0
- package/src/modules/sales/command/activateSalesPaymentTerm.ts +50 -0
- package/src/modules/sales/command/activateSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/activateSalesPriceList.test.ts +55 -0
- package/src/modules/sales/command/activateSalesPriceList.ts +46 -0
- package/src/modules/sales/command/activateSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/activateSalesPriceRule.test.ts +83 -0
- package/src/modules/sales/command/activateSalesPriceRule.ts +58 -0
- package/src/modules/sales/command/cancelChannelOrder.generated.ts +6 -0
- package/src/modules/sales/command/cancelChannelOrder.test.ts +47 -0
- package/src/modules/sales/command/cancelChannelOrder.ts +30 -0
- package/src/modules/sales/command/cancelSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/cancelSalesInvoice.test.ts +47 -0
- package/src/modules/sales/command/cancelSalesInvoice.ts +37 -0
- package/src/modules/sales/command/cancelSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/cancelSalesOrder.test.ts +70 -0
- package/src/modules/sales/command/cancelSalesOrder.ts +48 -0
- package/src/modules/sales/command/cancelSyncJob.generated.ts +6 -0
- package/src/modules/sales/command/cancelSyncJob.test.ts +58 -0
- package/src/modules/sales/command/cancelSyncJob.ts +30 -0
- package/src/modules/sales/command/closeSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/closeSalesOrder.test.ts +41 -0
- package/src/modules/sales/command/closeSalesOrder.ts +51 -0
- package/src/modules/sales/command/confirmSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/confirmSalesOrder.test.ts +68 -0
- package/src/modules/sales/command/confirmSalesOrder.ts +67 -0
- package/src/modules/sales/command/convertChannelOrder.generated.ts +6 -0
- package/src/modules/sales/command/convertChannelOrder.test.ts +118 -0
- package/src/modules/sales/command/convertChannelOrder.ts +151 -0
- package/src/modules/sales/command/createChannel.generated.ts +6 -0
- package/src/modules/sales/command/createChannel.test.ts +100 -0
- package/src/modules/sales/command/createChannel.ts +58 -0
- package/src/modules/sales/command/createListing.generated.ts +6 -0
- package/src/modules/sales/command/createListing.test.ts +88 -0
- package/src/modules/sales/command/createListing.ts +76 -0
- package/src/modules/sales/command/createSalesCreditNote.generated.ts +6 -0
- package/src/modules/sales/command/createSalesCreditNote.test.ts +56 -0
- package/src/modules/sales/command/createSalesCreditNote.ts +75 -0
- package/src/modules/sales/command/createSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/createSalesInvoice.test.ts +85 -0
- package/src/modules/sales/command/createSalesInvoice.ts +94 -0
- package/src/modules/sales/command/createSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/createSalesOrder.test.ts +134 -0
- package/src/modules/sales/command/createSalesOrder.ts +140 -0
- package/src/modules/sales/command/createSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/createSalesPaymentTerm.test.ts +59 -0
- package/src/modules/sales/command/createSalesPaymentTerm.ts +50 -0
- package/src/modules/sales/command/createSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/createSalesPriceList.test.ts +67 -0
- package/src/modules/sales/command/createSalesPriceList.ts +45 -0
- package/src/modules/sales/command/createSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/createSalesPriceRule.test.ts +137 -0
- package/src/modules/sales/command/createSalesPriceRule.ts +66 -0
- package/src/modules/sales/command/createShipment.generated.ts +6 -0
- package/src/modules/sales/command/createShipment.test.ts +75 -0
- package/src/modules/sales/command/createShipment.ts +86 -0
- package/src/modules/sales/command/deactivateChannel.generated.ts +6 -0
- package/src/modules/sales/command/deactivateChannel.test.ts +29 -0
- package/src/modules/sales/command/deactivateChannel.ts +30 -0
- package/src/modules/sales/command/deactivateSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/deactivateSalesPaymentTerm.test.ts +29 -0
- package/src/modules/sales/command/deactivateSalesPaymentTerm.ts +37 -0
- package/src/modules/sales/command/deactivateSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/deactivateSalesPriceList.test.ts +33 -0
- package/src/modules/sales/command/deactivateSalesPriceList.ts +37 -0
- package/src/modules/sales/command/deactivateSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/deactivateSalesPriceRule.test.ts +33 -0
- package/src/modules/sales/command/deactivateSalesPriceRule.ts +37 -0
- package/src/modules/sales/command/issueSalesCreditNote.generated.ts +6 -0
- package/src/modules/sales/command/issueSalesCreditNote.test.ts +62 -0
- package/src/modules/sales/command/issueSalesCreditNote.ts +71 -0
- package/src/modules/sales/command/issueSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/issueSalesInvoice.test.ts +88 -0
- package/src/modules/sales/command/issueSalesInvoice.ts +115 -0
- package/src/modules/sales/command/markChannelOrderException.generated.ts +6 -0
- package/src/modules/sales/command/markChannelOrderException.test.ts +59 -0
- package/src/modules/sales/command/markChannelOrderException.ts +49 -0
- package/src/modules/sales/command/pauseListing.generated.ts +6 -0
- package/src/modules/sales/command/pauseListing.test.ts +40 -0
- package/src/modules/sales/command/pauseListing.ts +30 -0
- package/src/modules/sales/command/placeSalesOrderOnCreditHold.generated.ts +6 -0
- package/src/modules/sales/command/placeSalesOrderOnCreditHold.test.ts +74 -0
- package/src/modules/sales/command/placeSalesOrderOnCreditHold.ts +46 -0
- package/src/modules/sales/command/postShipment.generated.ts +6 -0
- package/src/modules/sales/command/postShipment.test.ts +97 -0
- package/src/modules/sales/command/postShipment.ts +89 -0
- package/src/modules/sales/command/recordChannelOrder.generated.ts +6 -0
- package/src/modules/sales/command/recordChannelOrder.test.ts +124 -0
- package/src/modules/sales/command/recordChannelOrder.ts +93 -0
- package/src/modules/sales/command/rejectSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/rejectSalesOrder.test.ts +78 -0
- package/src/modules/sales/command/rejectSalesOrder.ts +42 -0
- package/src/modules/sales/command/releaseSalesOrderCreditHold.generated.ts +6 -0
- package/src/modules/sales/command/releaseSalesOrderCreditHold.test.ts +50 -0
- package/src/modules/sales/command/releaseSalesOrderCreditHold.ts +51 -0
- package/src/modules/sales/command/retireListing.generated.ts +6 -0
- package/src/modules/sales/command/retireListing.test.ts +42 -0
- package/src/modules/sales/command/retireListing.ts +30 -0
- package/src/modules/sales/command/retrySyncJob.generated.ts +6 -0
- package/src/modules/sales/command/retrySyncJob.test.ts +54 -0
- package/src/modules/sales/command/retrySyncJob.ts +44 -0
- package/src/modules/sales/command/sendSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/sendSalesInvoice.test.ts +50 -0
- package/src/modules/sales/command/sendSalesInvoice.ts +43 -0
- package/src/modules/sales/command/startSyncJob.generated.ts +6 -0
- package/src/modules/sales/command/startSyncJob.test.ts +65 -0
- package/src/modules/sales/command/startSyncJob.ts +54 -0
- package/src/modules/sales/command/submitSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/submitSalesOrder.test.ts +58 -0
- package/src/modules/sales/command/submitSalesOrder.ts +49 -0
- package/src/modules/sales/command/updateChannel.generated.ts +6 -0
- package/src/modules/sales/command/updateChannel.test.ts +71 -0
- package/src/modules/sales/command/updateChannel.ts +68 -0
- package/src/modules/sales/command/updateListing.generated.ts +6 -0
- package/src/modules/sales/command/updateListing.test.ts +56 -0
- package/src/modules/sales/command/updateListing.ts +60 -0
- package/src/modules/sales/command/updateSalesCreditNote.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesCreditNote.test.ts +68 -0
- package/src/modules/sales/command/updateSalesCreditNote.ts +68 -0
- package/src/modules/sales/command/updateSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesInvoice.test.ts +73 -0
- package/src/modules/sales/command/updateSalesInvoice.ts +80 -0
- package/src/modules/sales/command/updateSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesOrder.test.ts +93 -0
- package/src/modules/sales/command/updateSalesOrder.ts +121 -0
- package/src/modules/sales/command/updateSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesPaymentTerm.test.ts +66 -0
- package/src/modules/sales/command/updateSalesPaymentTerm.ts +59 -0
- package/src/modules/sales/command/updateSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesPriceList.test.ts +71 -0
- package/src/modules/sales/command/updateSalesPriceList.ts +52 -0
- package/src/modules/sales/command/updateSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesPriceRule.test.ts +95 -0
- package/src/modules/sales/command/updateSalesPriceRule.ts +81 -0
- package/src/modules/sales/command/updateShipment.generated.ts +6 -0
- package/src/modules/sales/command/updateShipment.test.ts +78 -0
- package/src/modules/sales/command/updateShipment.ts +84 -0
- package/src/modules/sales/db/.gitkeep +0 -0
- package/src/modules/sales/db/channel.ts +43 -0
- package/src/modules/sales/db/channelOrder.ts +109 -0
- package/src/modules/sales/db/channelOrderLine.ts +84 -0
- package/src/modules/sales/db/listing.ts +81 -0
- package/src/modules/sales/db/salesCreditNote.ts +63 -0
- package/src/modules/sales/db/salesCreditNoteLine.ts +49 -0
- package/src/modules/sales/db/salesInvoice.ts +95 -0
- package/src/modules/sales/db/salesInvoiceLine.ts +64 -0
- package/src/modules/sales/db/salesOrder.ts +103 -0
- package/src/modules/sales/db/salesOrderLine.ts +82 -0
- package/src/modules/sales/db/salesPaymentTerm.ts +46 -0
- package/src/modules/sales/db/salesPriceList.ts +61 -0
- package/src/modules/sales/db/salesPriceRule.ts +96 -0
- package/src/modules/sales/db/shipment.ts +78 -0
- package/src/modules/sales/db/shipmentLine.ts +58 -0
- package/src/modules/sales/db/syncJob.ts +70 -0
- package/src/modules/sales/docs/commands/ActivateChannel.md +42 -0
- package/src/modules/sales/docs/commands/ActivateListing.md +46 -0
- package/src/modules/sales/docs/commands/ActivateSalesPaymentTerm.md +41 -0
- package/src/modules/sales/docs/commands/ActivateSalesPriceList.md +39 -0
- package/src/modules/sales/docs/commands/ActivateSalesPriceRule.md +48 -0
- package/src/modules/sales/docs/commands/CancelChannelOrder.md +37 -0
- package/src/modules/sales/docs/commands/CancelSalesInvoice.md +39 -0
- package/src/modules/sales/docs/commands/CancelSalesOrder.md +40 -0
- package/src/modules/sales/docs/commands/CancelSyncJob.md +36 -0
- package/src/modules/sales/docs/commands/CloseSalesOrder.md +39 -0
- package/src/modules/sales/docs/commands/ConfirmSalesOrder.md +43 -0
- package/src/modules/sales/docs/commands/ConvertChannelOrder.md +44 -0
- package/src/modules/sales/docs/commands/CreateChannel.md +40 -0
- package/src/modules/sales/docs/commands/CreateListing.md +40 -0
- package/src/modules/sales/docs/commands/CreateSalesCreditNote.md +37 -0
- package/src/modules/sales/docs/commands/CreateSalesInvoice.md +39 -0
- package/src/modules/sales/docs/commands/CreateSalesOrder.md +51 -0
- package/src/modules/sales/docs/commands/CreateSalesPaymentTerm.md +38 -0
- package/src/modules/sales/docs/commands/CreateSalesPriceList.md +37 -0
- package/src/modules/sales/docs/commands/CreateSalesPriceRule.md +46 -0
- package/src/modules/sales/docs/commands/CreateShipment.md +38 -0
- package/src/modules/sales/docs/commands/DeactivateChannel.md +35 -0
- package/src/modules/sales/docs/commands/DeactivateSalesPaymentTerm.md +35 -0
- package/src/modules/sales/docs/commands/DeactivateSalesPriceList.md +35 -0
- package/src/modules/sales/docs/commands/DeactivateSalesPriceRule.md +35 -0
- package/src/modules/sales/docs/commands/IssueSalesCreditNote.md +38 -0
- package/src/modules/sales/docs/commands/IssueSalesInvoice.md +43 -0
- package/src/modules/sales/docs/commands/MarkChannelOrderException.md +37 -0
- package/src/modules/sales/docs/commands/PauseListing.md +36 -0
- package/src/modules/sales/docs/commands/PlaceSalesOrderOnCreditHold.md +41 -0
- package/src/modules/sales/docs/commands/PostShipment.md +41 -0
- package/src/modules/sales/docs/commands/RecordChannelOrder.md +45 -0
- package/src/modules/sales/docs/commands/RejectSalesOrder.md +41 -0
- package/src/modules/sales/docs/commands/ReleaseSalesOrderCreditHold.md +36 -0
- package/src/modules/sales/docs/commands/RetireListing.md +36 -0
- package/src/modules/sales/docs/commands/RetrySyncJob.md +39 -0
- package/src/modules/sales/docs/commands/SendSalesInvoice.md +38 -0
- package/src/modules/sales/docs/commands/StartSyncJob.md +39 -0
- package/src/modules/sales/docs/commands/SubmitSalesOrder.md +43 -0
- package/src/modules/sales/docs/commands/UpdateChannel.md +43 -0
- package/src/modules/sales/docs/commands/UpdateListing.md +38 -0
- package/src/modules/sales/docs/commands/UpdateSalesCreditNote.md +38 -0
- package/src/modules/sales/docs/commands/UpdateSalesInvoice.md +38 -0
- package/src/modules/sales/docs/commands/UpdateSalesOrder.md +45 -0
- package/src/modules/sales/docs/commands/UpdateSalesPaymentTerm.md +41 -0
- package/src/modules/sales/docs/commands/UpdateSalesPriceList.md +40 -0
- package/src/modules/sales/docs/commands/UpdateSalesPriceRule.md +49 -0
- package/src/modules/sales/docs/commands/UpdateShipment.md +38 -0
- package/src/modules/sales/docs/commands/bin/rm.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/codex.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/ps2ps2.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/rg.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/sha384sum.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/opt/libpq/bin/pg_combinebackup.md +52 -0
- package/src/modules/sales/docs/commands/sbin/mount_msdos.md +52 -0
- package/src/modules/sales/docs/commands/sbin/mount_nfs.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/cupstestppd.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/enc2xs.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/hash.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/jarsigner.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/mpsgraphtool.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/nano.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/pod2html5.34.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/ri.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/rs.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/trustcachectl.md +52 -0
- package/src/modules/sales/docs/commands/usr/sbin/htpasswd.md +52 -0
- package/src/modules/sales/docs/commands/usr/sbin/lpadmin.md +52 -0
- package/src/modules/sales/docs/commands/usr/sbin/setkey.md +52 -0
- package/src/modules/sales/docs/features/channel-listing-management.md +68 -0
- package/src/modules/sales/docs/features/channel-order-sync.md +78 -0
- package/src/modules/sales/docs/features/customer-invoicing.md +89 -0
- package/src/modules/sales/docs/features/customer-sales-pricing.md +72 -0
- package/src/modules/sales/docs/features/sales-order-lifecycle.md +96 -0
- package/src/modules/sales/docs/features/sales-payment-terms.md +67 -0
- package/src/modules/sales/docs/features/shipment-fulfillment.md +71 -0
- package/src/modules/sales/docs/models/Channel.md +48 -0
- package/src/modules/sales/docs/models/ChannelOrder.md +56 -0
- package/src/modules/sales/docs/models/ChannelOrderLine.md +39 -0
- package/src/modules/sales/docs/models/Listing.md +56 -0
- package/src/modules/sales/docs/models/SalesCreditNote.md +47 -0
- package/src/modules/sales/docs/models/SalesCreditNoteLine.md +37 -0
- package/src/modules/sales/docs/models/SalesInvoice.md +55 -0
- package/src/modules/sales/docs/models/SalesInvoiceLine.md +39 -0
- package/src/modules/sales/docs/models/SalesOrder.md +79 -0
- package/src/modules/sales/docs/models/SalesOrderLine.md +42 -0
- package/src/modules/sales/docs/models/SalesPaymentTerm.md +53 -0
- package/src/modules/sales/docs/models/SalesPriceList.md +50 -0
- package/src/modules/sales/docs/models/SalesPriceRule.md +51 -0
- package/src/modules/sales/docs/models/Shipment.md +49 -0
- package/src/modules/sales/docs/models/ShipmentLine.md +38 -0
- package/src/modules/sales/docs/models/SyncJob.md +53 -0
- package/src/modules/sales/docs/queries/CalculateInvoiceDueSchedule.md +37 -0
- package/src/modules/sales/docs/queries/GetApplicableSalesPrice.md +38 -0
- package/src/modules/sales/docs/queries/GetChannel.md +34 -0
- package/src/modules/sales/docs/queries/GetChannelOrder.md +34 -0
- package/src/modules/sales/docs/queries/GetListing.md +34 -0
- package/src/modules/sales/docs/queries/GetListingByExternalIdentifier.md +35 -0
- package/src/modules/sales/docs/queries/GetSalesCreditNote.md +34 -0
- package/src/modules/sales/docs/queries/GetSalesInvoice.md +34 -0
- package/src/modules/sales/docs/queries/GetSalesOrder.md +36 -0
- package/src/modules/sales/docs/queries/GetSalesPaymentTerm.md +34 -0
- package/src/modules/sales/docs/queries/GetSalesPriceList.md +34 -0
- package/src/modules/sales/docs/queries/GetShipment.md +34 -0
- package/src/modules/sales/docs/queries/GetSyncJob.md +34 -0
- package/src/modules/sales/docs/queries/ListChannelOrdersByStatus.md +34 -0
- package/src/modules/sales/docs/queries/ListChannels.md +33 -0
- package/src/modules/sales/docs/queries/ListListingsByChannel.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesCreditNotesByInvoice.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesInvoicesBySalesOrder.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesOrders.md +36 -0
- package/src/modules/sales/docs/queries/ListSalesPaymentTerms.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesPriceLists.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesPriceRulesByPriceList.md +33 -0
- package/src/modules/sales/docs/queries/ListShipmentsBySalesOrder.md +33 -0
- package/src/modules/sales/docs/queries/ListSyncJobs.md +34 -0
- package/src/modules/sales/executor/.gitkeep +0 -0
- package/src/modules/sales/generated/.gitkeep +0 -0
- package/src/modules/sales/generated/enums.ts +119 -0
- package/src/modules/sales/generated/kysely-tailordb.ts +332 -0
- package/src/modules/sales/index.ts +2 -0
- package/src/modules/sales/lib/_db_deps.ts +67 -0
- package/src/modules/sales/lib/domain.ts +354 -0
- package/src/modules/sales/lib/errors.generated.ts +417 -0
- package/src/modules/sales/lib/permissions.generated.ts +53 -0
- package/src/modules/sales/lib/repository.ts +137 -0
- package/src/modules/sales/lib/types.ts +105 -0
- package/src/modules/sales/module.ts +418 -0
- package/src/modules/sales/permissions.ts +3 -0
- package/src/modules/sales/query/.gitkeep +0 -0
- package/src/modules/sales/query/calculateInvoiceDueSchedule.generated.ts +5 -0
- package/src/modules/sales/query/calculateInvoiceDueSchedule.test.ts +107 -0
- package/src/modules/sales/query/calculateInvoiceDueSchedule.ts +35 -0
- package/src/modules/sales/query/getApplicableSalesPrice.generated.ts +5 -0
- package/src/modules/sales/query/getApplicableSalesPrice.test.ts +110 -0
- package/src/modules/sales/query/getApplicableSalesPrice.ts +81 -0
- package/src/modules/sales/query/getChannel.generated.ts +5 -0
- package/src/modules/sales/query/getChannel.test.ts +39 -0
- package/src/modules/sales/query/getChannel.ts +15 -0
- package/src/modules/sales/query/getChannelOrder.generated.ts +5 -0
- package/src/modules/sales/query/getChannelOrder.test.ts +50 -0
- package/src/modules/sales/query/getChannelOrder.ts +29 -0
- package/src/modules/sales/query/getListing.generated.ts +5 -0
- package/src/modules/sales/query/getListing.test.ts +39 -0
- package/src/modules/sales/query/getListing.ts +15 -0
- package/src/modules/sales/query/getListingByExternalIdentifier.generated.ts +5 -0
- package/src/modules/sales/query/getListingByExternalIdentifier.test.ts +61 -0
- package/src/modules/sales/query/getListingByExternalIdentifier.ts +23 -0
- package/src/modules/sales/query/getSalesCreditNote.generated.ts +5 -0
- package/src/modules/sales/query/getSalesCreditNote.test.ts +44 -0
- package/src/modules/sales/query/getSalesCreditNote.ts +14 -0
- package/src/modules/sales/query/getSalesInvoice.generated.ts +5 -0
- package/src/modules/sales/query/getSalesInvoice.test.ts +44 -0
- package/src/modules/sales/query/getSalesInvoice.ts +14 -0
- package/src/modules/sales/query/getSalesOrder.generated.ts +5 -0
- package/src/modules/sales/query/getSalesOrder.test.ts +57 -0
- package/src/modules/sales/query/getSalesOrder.ts +20 -0
- package/src/modules/sales/query/getSalesPaymentTerm.generated.ts +5 -0
- package/src/modules/sales/query/getSalesPaymentTerm.test.ts +44 -0
- package/src/modules/sales/query/getSalesPaymentTerm.ts +24 -0
- package/src/modules/sales/query/getSalesPriceList.generated.ts +5 -0
- package/src/modules/sales/query/getSalesPriceList.test.ts +39 -0
- package/src/modules/sales/query/getSalesPriceList.ts +15 -0
- package/src/modules/sales/query/getShipment.generated.ts +5 -0
- package/src/modules/sales/query/getShipment.test.ts +44 -0
- package/src/modules/sales/query/getShipment.ts +12 -0
- package/src/modules/sales/query/getSyncJob.generated.ts +5 -0
- package/src/modules/sales/query/getSyncJob.test.ts +43 -0
- package/src/modules/sales/query/getSyncJob.ts +24 -0
- package/src/modules/sales/query/listChannelOrdersByStatus.generated.ts +5 -0
- package/src/modules/sales/query/listChannelOrdersByStatus.test.ts +58 -0
- package/src/modules/sales/query/listChannelOrdersByStatus.ts +53 -0
- package/src/modules/sales/query/listChannels.generated.ts +5 -0
- package/src/modules/sales/query/listChannels.test.ts +36 -0
- package/src/modules/sales/query/listChannels.ts +39 -0
- package/src/modules/sales/query/listListingsByChannel.generated.ts +5 -0
- package/src/modules/sales/query/listListingsByChannel.test.ts +36 -0
- package/src/modules/sales/query/listListingsByChannel.ts +39 -0
- package/src/modules/sales/query/listSalesCreditNotesByInvoice.generated.ts +5 -0
- package/src/modules/sales/query/listSalesCreditNotesByInvoice.test.ts +36 -0
- package/src/modules/sales/query/listSalesCreditNotesByInvoice.ts +42 -0
- package/src/modules/sales/query/listSalesInvoicesBySalesOrder.generated.ts +5 -0
- package/src/modules/sales/query/listSalesInvoicesBySalesOrder.test.ts +36 -0
- package/src/modules/sales/query/listSalesInvoicesBySalesOrder.ts +42 -0
- package/src/modules/sales/query/listSalesOrders.generated.ts +5 -0
- package/src/modules/sales/query/listSalesOrders.test.ts +79 -0
- package/src/modules/sales/query/listSalesOrders.ts +67 -0
- package/src/modules/sales/query/listSalesPaymentTerms.generated.ts +5 -0
- package/src/modules/sales/query/listSalesPaymentTerms.test.ts +36 -0
- package/src/modules/sales/query/listSalesPaymentTerms.ts +42 -0
- package/src/modules/sales/query/listSalesPriceLists.generated.ts +5 -0
- package/src/modules/sales/query/listSalesPriceLists.test.ts +36 -0
- package/src/modules/sales/query/listSalesPriceLists.ts +39 -0
- package/src/modules/sales/query/listSalesPriceRulesByPriceList.generated.ts +5 -0
- package/src/modules/sales/query/listSalesPriceRulesByPriceList.test.ts +39 -0
- package/src/modules/sales/query/listSalesPriceRulesByPriceList.ts +47 -0
- package/src/modules/sales/query/listShipmentsBySalesOrder.generated.ts +5 -0
- package/src/modules/sales/query/listShipmentsBySalesOrder.test.ts +36 -0
- package/src/modules/sales/query/listShipmentsBySalesOrder.ts +36 -0
- package/src/modules/sales/query/listSyncJobs.generated.ts +5 -0
- package/src/modules/sales/query/listSyncJobs.test.ts +50 -0
- package/src/modules/sales/query/listSyncJobs.ts +47 -0
- package/src/modules/sales/tailor.config.ts +13 -0
- package/src/modules/sales/tailor.d.ts +13 -0
- package/src/modules/sales/testing/commandTestUtils.ts +35 -0
- package/src/modules/sales/testing/fixtures.ts +520 -0
- package/src/modules/user-management/command/.gitkeep +0 -0
- package/src/modules/user-management/db/.gitkeep +0 -0
- package/src/modules/user-management/executor/.gitkeep +0 -0
- package/src/modules/user-management/generated/.gitkeep +0 -0
- package/src/modules/user-management/lib/errors.generated.ts +0 -5
- package/src/modules/user-management/lib/recomputeUserPermissions.ts +4 -2
- package/src/modules/user-management/permissions.ts +3 -0
- package/src/modules/user-management/query/.gitkeep +0 -0
- package/src/modules/user-management/query/listRolePermissionsByRole.generated.ts +5 -0
- package/src/modules/user-management/query/listRolePermissionsByRole.test.ts +20 -0
- package/src/modules/user-management/query/listRolePermissionsByRole.ts +28 -0
- package/src/modules/user-management/query/listUserRolesByUser.generated.ts +5 -0
- package/src/modules/user-management/query/listUserRolesByUser.test.ts +20 -0
- package/src/modules/user-management/query/listUserRolesByUser.ts +28 -0
- package/src/schemas.ts +6 -6
- package/src/shared/defineCommand.ts +1 -1
- package/src/shared/entityTypes.ts +1 -1
- package/src/shared/uuidv5.test.ts +18 -0
- package/src/shared/uuidv5.ts +23 -0
- package/src/testing/index.ts +1 -1
- package/templates/scaffold/app/backend/package.json +1 -3
- package/templates/scaffold/app/backend/seed/exec.mjs +7 -5
- package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +0 -11
- package/templates/scaffold/module/__dot__gitignore +3 -0
- package/templates/scaffold/module/eslint.config.js +31 -0
- package/templates/scaffold/module/generated/kysely-tailordb.ts +3 -0
- package/templates/scaffold/module/lib/types.ts +1 -6
- package/templates/scaffold/module/package.json +26 -0
- package/templates/scaffold/module/seed/index.ts +19 -0
- package/templates/scaffold/module/tsconfig.json +16 -0
- /package/schemas/{app-compose → app}/actors.yml +0 -0
- /package/schemas/{app-compose → app}/business-flow.yml +0 -0
- /package/schemas/{app-compose → app}/requirements.yml +0 -0
- /package/schemas/{app-compose → app}/resolver.yml +0 -0
- /package/schemas/{app-compose → app}/screen.yml +0 -0
- /package/schemas/{app-compose → app}/story.yml +0 -0
- /package/src/modules/{purchase → inventory/command}/.gitkeep +0 -0
- /package/{templates/scaffold/module/generated → src/modules/inventory/db}/.gitkeep +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { DB } from "../generated/kysely-tailordb";
|
|
2
|
+
import type {
|
|
3
|
+
InferSchema,
|
|
4
|
+
Selectable,
|
|
5
|
+
Insertable,
|
|
6
|
+
Updateable,
|
|
7
|
+
} from "@tailor-platform/erp-kit/module";
|
|
8
|
+
|
|
9
|
+
export type Schema = InferSchema<DB>;
|
|
10
|
+
|
|
11
|
+
export type Channel<T extends { Channel: object }> = Selectable<T["Channel"]>;
|
|
12
|
+
export type ChannelCreate<T extends { Channel: object }> = Insertable<T["Channel"]>;
|
|
13
|
+
export type ChannelUpdate<T extends { Channel: object }> = Updateable<T["Channel"]>;
|
|
14
|
+
|
|
15
|
+
export type Listing<T extends { Listing: object }> = Selectable<T["Listing"]>;
|
|
16
|
+
export type ListingCreate<T extends { Listing: object }> = Insertable<T["Listing"]>;
|
|
17
|
+
export type ListingUpdate<T extends { Listing: object }> = Updateable<T["Listing"]>;
|
|
18
|
+
|
|
19
|
+
export type SalesPaymentTerm<T extends { SalesPaymentTerm: object }> = Selectable<
|
|
20
|
+
T["SalesPaymentTerm"]
|
|
21
|
+
>;
|
|
22
|
+
export type SalesPaymentTermCreate<T extends { SalesPaymentTerm: object }> = Insertable<
|
|
23
|
+
T["SalesPaymentTerm"]
|
|
24
|
+
>;
|
|
25
|
+
export type SalesPaymentTermUpdate<T extends { SalesPaymentTerm: object }> = Updateable<
|
|
26
|
+
T["SalesPaymentTerm"]
|
|
27
|
+
>;
|
|
28
|
+
|
|
29
|
+
export type SalesPriceList<T extends { SalesPriceList: object }> = Selectable<T["SalesPriceList"]>;
|
|
30
|
+
export type SalesPriceListCreate<T extends { SalesPriceList: object }> = Insertable<
|
|
31
|
+
T["SalesPriceList"]
|
|
32
|
+
>;
|
|
33
|
+
export type SalesPriceListUpdate<T extends { SalesPriceList: object }> = Updateable<
|
|
34
|
+
T["SalesPriceList"]
|
|
35
|
+
>;
|
|
36
|
+
|
|
37
|
+
export type SalesPriceRule<T extends { SalesPriceRule: object }> = Selectable<T["SalesPriceRule"]>;
|
|
38
|
+
export type SalesPriceRuleCreate<T extends { SalesPriceRule: object }> = Insertable<
|
|
39
|
+
T["SalesPriceRule"]
|
|
40
|
+
>;
|
|
41
|
+
export type SalesPriceRuleUpdate<T extends { SalesPriceRule: object }> = Updateable<
|
|
42
|
+
T["SalesPriceRule"]
|
|
43
|
+
>;
|
|
44
|
+
|
|
45
|
+
export type SalesOrder<T extends { SalesOrder: object }> = Selectable<T["SalesOrder"]>;
|
|
46
|
+
export type SalesOrderCreate<T extends { SalesOrder: object }> = Insertable<T["SalesOrder"]>;
|
|
47
|
+
export type SalesOrderUpdate<T extends { SalesOrder: object }> = Updateable<T["SalesOrder"]>;
|
|
48
|
+
|
|
49
|
+
export type SalesOrderLine<T extends { SalesOrderLine: object }> = Selectable<T["SalesOrderLine"]>;
|
|
50
|
+
export type SalesOrderLineCreate<T extends { SalesOrderLine: object }> = Insertable<
|
|
51
|
+
T["SalesOrderLine"]
|
|
52
|
+
>;
|
|
53
|
+
export type SalesOrderLineUpdate<T extends { SalesOrderLine: object }> = Updateable<
|
|
54
|
+
T["SalesOrderLine"]
|
|
55
|
+
>;
|
|
56
|
+
|
|
57
|
+
export type Shipment<T extends { Shipment: object }> = Selectable<T["Shipment"]>;
|
|
58
|
+
export type ShipmentCreate<T extends { Shipment: object }> = Insertable<T["Shipment"]>;
|
|
59
|
+
export type ShipmentUpdate<T extends { Shipment: object }> = Updateable<T["Shipment"]>;
|
|
60
|
+
|
|
61
|
+
export type ShipmentLine<T extends { ShipmentLine: object }> = Selectable<T["ShipmentLine"]>;
|
|
62
|
+
export type ShipmentLineCreate<T extends { ShipmentLine: object }> = Insertable<T["ShipmentLine"]>;
|
|
63
|
+
export type ShipmentLineUpdate<T extends { ShipmentLine: object }> = Updateable<T["ShipmentLine"]>;
|
|
64
|
+
|
|
65
|
+
export type SalesInvoice<T extends { SalesInvoice: object }> = Selectable<T["SalesInvoice"]>;
|
|
66
|
+
export type SalesInvoiceCreate<T extends { SalesInvoice: object }> = Insertable<T["SalesInvoice"]>;
|
|
67
|
+
export type SalesInvoiceUpdate<T extends { SalesInvoice: object }> = Updateable<T["SalesInvoice"]>;
|
|
68
|
+
|
|
69
|
+
export type SalesInvoiceLine<T extends { SalesInvoiceLine: object }> = Selectable<
|
|
70
|
+
T["SalesInvoiceLine"]
|
|
71
|
+
>;
|
|
72
|
+
export type SalesInvoiceLineCreate<T extends { SalesInvoiceLine: object }> = Insertable<
|
|
73
|
+
T["SalesInvoiceLine"]
|
|
74
|
+
>;
|
|
75
|
+
export type SalesInvoiceLineUpdate<T extends { SalesInvoiceLine: object }> = Updateable<
|
|
76
|
+
T["SalesInvoiceLine"]
|
|
77
|
+
>;
|
|
78
|
+
|
|
79
|
+
export type SalesCreditNote<T extends { SalesCreditNote: object }> = Selectable<
|
|
80
|
+
T["SalesCreditNote"]
|
|
81
|
+
>;
|
|
82
|
+
export type SalesCreditNoteCreate<T extends { SalesCreditNote: object }> = Insertable<
|
|
83
|
+
T["SalesCreditNote"]
|
|
84
|
+
>;
|
|
85
|
+
export type SalesCreditNoteUpdate<T extends { SalesCreditNote: object }> = Updateable<
|
|
86
|
+
T["SalesCreditNote"]
|
|
87
|
+
>;
|
|
88
|
+
|
|
89
|
+
export type SalesCreditNoteLine<T extends { SalesCreditNoteLine: object }> = Selectable<
|
|
90
|
+
T["SalesCreditNoteLine"]
|
|
91
|
+
>;
|
|
92
|
+
export type SalesCreditNoteLineCreate<T extends { SalesCreditNoteLine: object }> = Insertable<
|
|
93
|
+
T["SalesCreditNoteLine"]
|
|
94
|
+
>;
|
|
95
|
+
export type SalesCreditNoteLineUpdate<T extends { SalesCreditNoteLine: object }> = Updateable<
|
|
96
|
+
T["SalesCreditNoteLine"]
|
|
97
|
+
>;
|
|
98
|
+
|
|
99
|
+
export type ChannelOrder<T extends { ChannelOrder: object }> = Selectable<T["ChannelOrder"]>;
|
|
100
|
+
export type ChannelOrderCreate<T extends { ChannelOrder: object }> = Insertable<T["ChannelOrder"]>;
|
|
101
|
+
export type ChannelOrderUpdate<T extends { ChannelOrder: object }> = Updateable<T["ChannelOrder"]>;
|
|
102
|
+
|
|
103
|
+
export type SyncJob<T extends { SyncJob: object }> = Selectable<T["SyncJob"]>;
|
|
104
|
+
export type SyncJobCreate<T extends { SyncJob: object }> = Insertable<T["SyncJob"]>;
|
|
105
|
+
export type SyncJobUpdate<T extends { SyncJob: object }> = Updateable<T["SyncJob"]>;
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
import type { TailorAnyDBField } from "@tailor-platform/sdk";
|
|
2
|
+
import type { defineModule as defineBusinessPartnerModule } from "../business-partner";
|
|
3
|
+
import type { defineModule as defineItemManagementModule } from "../item-management";
|
|
4
|
+
import type { defineModule as defineOrganizationModule } from "../organization";
|
|
5
|
+
import type { defineModule as definePrimitivesModule } from "../primitives";
|
|
6
|
+
import { activateChannel } from "./command/activateChannel.generated";
|
|
7
|
+
import { activateListing } from "./command/activateListing.generated";
|
|
8
|
+
import { activateSalesPaymentTerm } from "./command/activateSalesPaymentTerm.generated";
|
|
9
|
+
import { activateSalesPriceList } from "./command/activateSalesPriceList.generated";
|
|
10
|
+
import { activateSalesPriceRule } from "./command/activateSalesPriceRule.generated";
|
|
11
|
+
import { cancelChannelOrder } from "./command/cancelChannelOrder.generated";
|
|
12
|
+
import { cancelSalesInvoice } from "./command/cancelSalesInvoice.generated";
|
|
13
|
+
import { cancelSalesOrder } from "./command/cancelSalesOrder.generated";
|
|
14
|
+
import { cancelSyncJob } from "./command/cancelSyncJob.generated";
|
|
15
|
+
import { closeSalesOrder } from "./command/closeSalesOrder.generated";
|
|
16
|
+
import { confirmSalesOrder } from "./command/confirmSalesOrder.generated";
|
|
17
|
+
import { convertChannelOrder } from "./command/convertChannelOrder.generated";
|
|
18
|
+
import { createChannel } from "./command/createChannel.generated";
|
|
19
|
+
import { createListing } from "./command/createListing.generated";
|
|
20
|
+
import { createSalesCreditNote } from "./command/createSalesCreditNote.generated";
|
|
21
|
+
import { createSalesInvoice } from "./command/createSalesInvoice.generated";
|
|
22
|
+
import { createSalesOrder } from "./command/createSalesOrder.generated";
|
|
23
|
+
import { createSalesPaymentTerm } from "./command/createSalesPaymentTerm.generated";
|
|
24
|
+
import { createSalesPriceList } from "./command/createSalesPriceList.generated";
|
|
25
|
+
import { createSalesPriceRule } from "./command/createSalesPriceRule.generated";
|
|
26
|
+
import { createShipment } from "./command/createShipment.generated";
|
|
27
|
+
import { deactivateChannel } from "./command/deactivateChannel.generated";
|
|
28
|
+
import { deactivateSalesPaymentTerm } from "./command/deactivateSalesPaymentTerm.generated";
|
|
29
|
+
import { deactivateSalesPriceList } from "./command/deactivateSalesPriceList.generated";
|
|
30
|
+
import { deactivateSalesPriceRule } from "./command/deactivateSalesPriceRule.generated";
|
|
31
|
+
import { issueSalesCreditNote } from "./command/issueSalesCreditNote.generated";
|
|
32
|
+
import { issueSalesInvoice } from "./command/issueSalesInvoice.generated";
|
|
33
|
+
import { markChannelOrderException } from "./command/markChannelOrderException.generated";
|
|
34
|
+
import { pauseListing } from "./command/pauseListing.generated";
|
|
35
|
+
import { placeSalesOrderOnCreditHold } from "./command/placeSalesOrderOnCreditHold.generated";
|
|
36
|
+
import { postShipment } from "./command/postShipment.generated";
|
|
37
|
+
import { recordChannelOrder } from "./command/recordChannelOrder.generated";
|
|
38
|
+
import { rejectSalesOrder } from "./command/rejectSalesOrder.generated";
|
|
39
|
+
import { releaseSalesOrderCreditHold } from "./command/releaseSalesOrderCreditHold.generated";
|
|
40
|
+
import { retireListing } from "./command/retireListing.generated";
|
|
41
|
+
import { retrySyncJob } from "./command/retrySyncJob.generated";
|
|
42
|
+
import { sendSalesInvoice } from "./command/sendSalesInvoice.generated";
|
|
43
|
+
import { startSyncJob } from "./command/startSyncJob.generated";
|
|
44
|
+
import { submitSalesOrder } from "./command/submitSalesOrder.generated";
|
|
45
|
+
import { updateChannel } from "./command/updateChannel.generated";
|
|
46
|
+
import { updateListing } from "./command/updateListing.generated";
|
|
47
|
+
import { updateSalesCreditNote } from "./command/updateSalesCreditNote.generated";
|
|
48
|
+
import { updateSalesInvoice } from "./command/updateSalesInvoice.generated";
|
|
49
|
+
import { updateSalesOrder } from "./command/updateSalesOrder.generated";
|
|
50
|
+
import { updateSalesPaymentTerm } from "./command/updateSalesPaymentTerm.generated";
|
|
51
|
+
import { updateSalesPriceList } from "./command/updateSalesPriceList.generated";
|
|
52
|
+
import { updateSalesPriceRule } from "./command/updateSalesPriceRule.generated";
|
|
53
|
+
import { updateShipment } from "./command/updateShipment.generated";
|
|
54
|
+
import { createChannelType, type CreateChannelTypeParams } from "./db/channel";
|
|
55
|
+
import { createChannelOrderType, type CreateChannelOrderTypeParams } from "./db/channelOrder";
|
|
56
|
+
import {
|
|
57
|
+
createChannelOrderLineType,
|
|
58
|
+
type CreateChannelOrderLineTypeParams,
|
|
59
|
+
} from "./db/channelOrderLine";
|
|
60
|
+
import { createListingType, type CreateListingTypeParams } from "./db/listing";
|
|
61
|
+
import {
|
|
62
|
+
createSalesCreditNoteType,
|
|
63
|
+
type CreateSalesCreditNoteTypeParams,
|
|
64
|
+
} from "./db/salesCreditNote";
|
|
65
|
+
import {
|
|
66
|
+
createSalesCreditNoteLineType,
|
|
67
|
+
type CreateSalesCreditNoteLineTypeParams,
|
|
68
|
+
} from "./db/salesCreditNoteLine";
|
|
69
|
+
import { createSalesInvoiceType, type CreateSalesInvoiceTypeParams } from "./db/salesInvoice";
|
|
70
|
+
import {
|
|
71
|
+
createSalesInvoiceLineType,
|
|
72
|
+
type CreateSalesInvoiceLineTypeParams,
|
|
73
|
+
} from "./db/salesInvoiceLine";
|
|
74
|
+
import { createSalesOrderType, type CreateSalesOrderTypeParams } from "./db/salesOrder";
|
|
75
|
+
import { createSalesOrderLineType, type CreateSalesOrderLineTypeParams } from "./db/salesOrderLine";
|
|
76
|
+
import {
|
|
77
|
+
createSalesPaymentTermType,
|
|
78
|
+
type CreateSalesPaymentTermTypeParams,
|
|
79
|
+
} from "./db/salesPaymentTerm";
|
|
80
|
+
import { createSalesPriceListType, type CreateSalesPriceListTypeParams } from "./db/salesPriceList";
|
|
81
|
+
import { createSalesPriceRuleType, type CreateSalesPriceRuleTypeParams } from "./db/salesPriceRule";
|
|
82
|
+
import { createShipmentType, type CreateShipmentTypeParams } from "./db/shipment";
|
|
83
|
+
import { createShipmentLineType, type CreateShipmentLineTypeParams } from "./db/shipmentLine";
|
|
84
|
+
import { createSyncJobType, type CreateSyncJobTypeParams } from "./db/syncJob";
|
|
85
|
+
import { calculateInvoiceDueSchedule } from "./query/calculateInvoiceDueSchedule.generated";
|
|
86
|
+
import { getApplicableSalesPrice } from "./query/getApplicableSalesPrice.generated";
|
|
87
|
+
import { getChannel } from "./query/getChannel.generated";
|
|
88
|
+
import { getChannelOrder } from "./query/getChannelOrder.generated";
|
|
89
|
+
import { getListing } from "./query/getListing.generated";
|
|
90
|
+
import { getListingByExternalIdentifier } from "./query/getListingByExternalIdentifier.generated";
|
|
91
|
+
import { getSalesCreditNote } from "./query/getSalesCreditNote.generated";
|
|
92
|
+
import { getSalesInvoice } from "./query/getSalesInvoice.generated";
|
|
93
|
+
import { getSalesOrder } from "./query/getSalesOrder.generated";
|
|
94
|
+
import { getSalesPaymentTerm } from "./query/getSalesPaymentTerm.generated";
|
|
95
|
+
import { getSalesPriceList } from "./query/getSalesPriceList.generated";
|
|
96
|
+
import { getShipment } from "./query/getShipment.generated";
|
|
97
|
+
import { getSyncJob } from "./query/getSyncJob.generated";
|
|
98
|
+
import { listChannelOrdersByStatus } from "./query/listChannelOrdersByStatus.generated";
|
|
99
|
+
import { listChannels } from "./query/listChannels.generated";
|
|
100
|
+
import { listListingsByChannel } from "./query/listListingsByChannel.generated";
|
|
101
|
+
import { listSalesCreditNotesByInvoice } from "./query/listSalesCreditNotesByInvoice.generated";
|
|
102
|
+
import { listSalesInvoicesBySalesOrder } from "./query/listSalesInvoicesBySalesOrder.generated";
|
|
103
|
+
import { listSalesOrders } from "./query/listSalesOrders.generated";
|
|
104
|
+
import { listSalesPaymentTerms } from "./query/listSalesPaymentTerms.generated";
|
|
105
|
+
import { listSalesPriceLists } from "./query/listSalesPriceLists.generated";
|
|
106
|
+
import { listSalesPriceRulesByPriceList } from "./query/listSalesPriceRulesByPriceList.generated";
|
|
107
|
+
import { listShipmentsBySalesOrder } from "./query/listShipmentsBySalesOrder.generated";
|
|
108
|
+
import { listSyncJobs } from "./query/listSyncJobs.generated";
|
|
109
|
+
import { type EmptyFields } from "@tailor-platform/erp-kit/module";
|
|
110
|
+
|
|
111
|
+
type OrganizationModule = ReturnType<typeof defineOrganizationModule>;
|
|
112
|
+
type OrganizationDB = OrganizationModule["db"];
|
|
113
|
+
type BusinessPartnerModule = ReturnType<typeof defineBusinessPartnerModule>;
|
|
114
|
+
type BusinessPartnerDB = BusinessPartnerModule["db"];
|
|
115
|
+
type ItemManagementModule = ReturnType<typeof defineItemManagementModule>;
|
|
116
|
+
type ItemManagementDB = ItemManagementModule["db"];
|
|
117
|
+
type PrimitivesModule = ReturnType<typeof definePrimitivesModule>;
|
|
118
|
+
type PrimitivesDB = PrimitivesModule["db"];
|
|
119
|
+
|
|
120
|
+
export interface DefineModuleParams<
|
|
121
|
+
ChF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
122
|
+
LiF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
123
|
+
PtF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
124
|
+
PlF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
125
|
+
PrF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
126
|
+
SoF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
127
|
+
SolF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
128
|
+
ShF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
129
|
+
ShlF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
130
|
+
SiF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
131
|
+
SilF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
132
|
+
ScF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
133
|
+
SclF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
134
|
+
CoF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
135
|
+
ColF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
136
|
+
SjF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
137
|
+
> {
|
|
138
|
+
channel?: CreateChannelTypeParams<ChF>;
|
|
139
|
+
listing?: CreateListingTypeParams<LiF>;
|
|
140
|
+
salesPaymentTerm?: CreateSalesPaymentTermTypeParams<PtF>;
|
|
141
|
+
salesPriceList?: CreateSalesPriceListTypeParams<PlF>;
|
|
142
|
+
salesPriceRule?: CreateSalesPriceRuleTypeParams<PrF>;
|
|
143
|
+
salesOrder?: CreateSalesOrderTypeParams<SoF>;
|
|
144
|
+
salesOrderLine?: CreateSalesOrderLineTypeParams<SolF>;
|
|
145
|
+
shipment?: CreateShipmentTypeParams<ShF>;
|
|
146
|
+
shipmentLine?: CreateShipmentLineTypeParams<ShlF>;
|
|
147
|
+
salesInvoice?: CreateSalesInvoiceTypeParams<SiF>;
|
|
148
|
+
salesInvoiceLine?: CreateSalesInvoiceLineTypeParams<SilF>;
|
|
149
|
+
salesCreditNote?: CreateSalesCreditNoteTypeParams<ScF>;
|
|
150
|
+
salesCreditNoteLine?: CreateSalesCreditNoteLineTypeParams<SclF>;
|
|
151
|
+
channelOrder?: CreateChannelOrderTypeParams<CoF>;
|
|
152
|
+
channelOrderLine?: CreateChannelOrderLineTypeParams<ColF>;
|
|
153
|
+
syncJob?: CreateSyncJobTypeParams<SjF>;
|
|
154
|
+
organization: {
|
|
155
|
+
db: {
|
|
156
|
+
company: OrganizationDB["company"];
|
|
157
|
+
site: OrganizationDB["site"];
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
businessPartner: {
|
|
161
|
+
db: {
|
|
162
|
+
businessPartner: BusinessPartnerDB["businessPartner"];
|
|
163
|
+
partnerRole: BusinessPartnerDB["partnerRole"];
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
itemManagement: {
|
|
167
|
+
db: {
|
|
168
|
+
item: ItemManagementDB["item"];
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
primitives: {
|
|
172
|
+
db: {
|
|
173
|
+
currency: PrimitivesDB["currency"];
|
|
174
|
+
unit: PrimitivesDB["unit"];
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export const defineModule = <
|
|
180
|
+
const ChF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
181
|
+
const LiF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
182
|
+
const PtF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
183
|
+
const PlF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
184
|
+
const PrF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
185
|
+
const SoF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
186
|
+
const SolF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
187
|
+
const ShF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
188
|
+
const ShlF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
189
|
+
const SiF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
190
|
+
const SilF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
191
|
+
const ScF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
192
|
+
const SclF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
193
|
+
const CoF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
194
|
+
const ColF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
195
|
+
const SjF extends Record<string, TailorAnyDBField> = EmptyFields,
|
|
196
|
+
>(
|
|
197
|
+
params: DefineModuleParams<
|
|
198
|
+
ChF,
|
|
199
|
+
LiF,
|
|
200
|
+
PtF,
|
|
201
|
+
PlF,
|
|
202
|
+
PrF,
|
|
203
|
+
SoF,
|
|
204
|
+
SolF,
|
|
205
|
+
ShF,
|
|
206
|
+
ShlF,
|
|
207
|
+
SiF,
|
|
208
|
+
SilF,
|
|
209
|
+
ScF,
|
|
210
|
+
SclF,
|
|
211
|
+
CoF,
|
|
212
|
+
ColF,
|
|
213
|
+
SjF
|
|
214
|
+
>,
|
|
215
|
+
) => {
|
|
216
|
+
const channelDb = createChannelType({
|
|
217
|
+
...params.channel,
|
|
218
|
+
companyType: params.organization.db.company,
|
|
219
|
+
});
|
|
220
|
+
const salesPaymentTermDb = createSalesPaymentTermType({
|
|
221
|
+
...params.salesPaymentTerm,
|
|
222
|
+
companyType: params.organization.db.company,
|
|
223
|
+
});
|
|
224
|
+
const salesPriceListDb = createSalesPriceListType({
|
|
225
|
+
...params.salesPriceList,
|
|
226
|
+
companyType: params.organization.db.company,
|
|
227
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
228
|
+
channelType: channelDb,
|
|
229
|
+
});
|
|
230
|
+
const listingDb = createListingType({
|
|
231
|
+
...params.listing,
|
|
232
|
+
companyType: params.organization.db.company,
|
|
233
|
+
channelType: channelDb,
|
|
234
|
+
itemType: params.itemManagement.db.item,
|
|
235
|
+
salesPriceListType: salesPriceListDb,
|
|
236
|
+
});
|
|
237
|
+
const salesPriceRuleDb = createSalesPriceRuleType({
|
|
238
|
+
...params.salesPriceRule,
|
|
239
|
+
salesPriceListType: salesPriceListDb,
|
|
240
|
+
itemType: params.itemManagement.db.item,
|
|
241
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
242
|
+
channelType: channelDb,
|
|
243
|
+
currencyType: params.primitives.db.currency,
|
|
244
|
+
unitType: params.primitives.db.unit,
|
|
245
|
+
});
|
|
246
|
+
const salesOrderDb = createSalesOrderType({
|
|
247
|
+
...params.salesOrder,
|
|
248
|
+
companyType: params.organization.db.company,
|
|
249
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
250
|
+
channelType: channelDb,
|
|
251
|
+
paymentTermType: salesPaymentTermDb,
|
|
252
|
+
});
|
|
253
|
+
const salesOrderLineDb = createSalesOrderLineType({
|
|
254
|
+
...params.salesOrderLine,
|
|
255
|
+
salesOrderType: salesOrderDb,
|
|
256
|
+
itemType: params.itemManagement.db.item,
|
|
257
|
+
currencyType: params.primitives.db.currency,
|
|
258
|
+
unitType: params.primitives.db.unit,
|
|
259
|
+
salesPriceRuleType: salesPriceRuleDb,
|
|
260
|
+
});
|
|
261
|
+
const shipmentDb = createShipmentType({
|
|
262
|
+
...params.shipment,
|
|
263
|
+
companyType: params.organization.db.company,
|
|
264
|
+
salesOrderType: salesOrderDb,
|
|
265
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
266
|
+
siteType: params.organization.db.site,
|
|
267
|
+
});
|
|
268
|
+
const shipmentLineDb = createShipmentLineType({
|
|
269
|
+
...params.shipmentLine,
|
|
270
|
+
shipmentType: shipmentDb,
|
|
271
|
+
salesOrderLineType: salesOrderLineDb,
|
|
272
|
+
unitType: params.primitives.db.unit,
|
|
273
|
+
});
|
|
274
|
+
const salesInvoiceDb = createSalesInvoiceType({
|
|
275
|
+
...params.salesInvoice,
|
|
276
|
+
companyType: params.organization.db.company,
|
|
277
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
278
|
+
salesOrderType: salesOrderDb,
|
|
279
|
+
paymentTermType: salesPaymentTermDb,
|
|
280
|
+
shipmentType: shipmentDb,
|
|
281
|
+
});
|
|
282
|
+
const salesInvoiceLineDb = createSalesInvoiceLineType({
|
|
283
|
+
...params.salesInvoiceLine,
|
|
284
|
+
salesInvoiceType: salesInvoiceDb,
|
|
285
|
+
salesOrderLineType: salesOrderLineDb,
|
|
286
|
+
shipmentLineType: shipmentLineDb,
|
|
287
|
+
});
|
|
288
|
+
const salesCreditNoteDb = createSalesCreditNoteType({
|
|
289
|
+
...params.salesCreditNote,
|
|
290
|
+
companyType: params.organization.db.company,
|
|
291
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
292
|
+
salesInvoiceType: salesInvoiceDb,
|
|
293
|
+
});
|
|
294
|
+
const salesCreditNoteLineDb = createSalesCreditNoteLineType({
|
|
295
|
+
...params.salesCreditNoteLine,
|
|
296
|
+
salesCreditNoteType: salesCreditNoteDb,
|
|
297
|
+
salesInvoiceLineType: salesInvoiceLineDb,
|
|
298
|
+
});
|
|
299
|
+
const syncJobDb = createSyncJobType({
|
|
300
|
+
...params.syncJob,
|
|
301
|
+
companyType: params.organization.db.company,
|
|
302
|
+
channelType: channelDb,
|
|
303
|
+
});
|
|
304
|
+
const channelOrderDb = createChannelOrderType({
|
|
305
|
+
...params.channelOrder,
|
|
306
|
+
companyType: params.organization.db.company,
|
|
307
|
+
channelType: channelDb,
|
|
308
|
+
customerType: params.businessPartner.db.businessPartner,
|
|
309
|
+
salesOrderType: salesOrderDb,
|
|
310
|
+
currencyType: params.primitives.db.currency,
|
|
311
|
+
syncJobType: syncJobDb,
|
|
312
|
+
});
|
|
313
|
+
const channelOrderLineDb = createChannelOrderLineType({
|
|
314
|
+
...params.channelOrderLine,
|
|
315
|
+
channelOrderType: channelOrderDb,
|
|
316
|
+
listingType: listingDb,
|
|
317
|
+
itemType: params.itemManagement.db.item,
|
|
318
|
+
currencyType: params.primitives.db.currency,
|
|
319
|
+
unitType: params.primitives.db.unit,
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
return {
|
|
323
|
+
db: {
|
|
324
|
+
channel: channelDb,
|
|
325
|
+
listing: listingDb,
|
|
326
|
+
salesPaymentTerm: salesPaymentTermDb,
|
|
327
|
+
salesPriceList: salesPriceListDb,
|
|
328
|
+
salesPriceRule: salesPriceRuleDb,
|
|
329
|
+
salesOrder: salesOrderDb,
|
|
330
|
+
salesOrderLine: salesOrderLineDb,
|
|
331
|
+
shipment: shipmentDb,
|
|
332
|
+
shipmentLine: shipmentLineDb,
|
|
333
|
+
salesInvoice: salesInvoiceDb,
|
|
334
|
+
salesInvoiceLine: salesInvoiceLineDb,
|
|
335
|
+
salesCreditNote: salesCreditNoteDb,
|
|
336
|
+
salesCreditNoteLine: salesCreditNoteLineDb,
|
|
337
|
+
channelOrder: channelOrderDb,
|
|
338
|
+
channelOrderLine: channelOrderLineDb,
|
|
339
|
+
syncJob: syncJobDb,
|
|
340
|
+
},
|
|
341
|
+
commands: {
|
|
342
|
+
activateChannel: activateChannel(),
|
|
343
|
+
activateListing: activateListing(),
|
|
344
|
+
activateSalesPaymentTerm: activateSalesPaymentTerm(),
|
|
345
|
+
activateSalesPriceList: activateSalesPriceList(),
|
|
346
|
+
activateSalesPriceRule: activateSalesPriceRule(),
|
|
347
|
+
cancelChannelOrder: cancelChannelOrder(),
|
|
348
|
+
cancelSalesInvoice: cancelSalesInvoice(),
|
|
349
|
+
cancelSalesOrder: cancelSalesOrder(),
|
|
350
|
+
cancelSyncJob: cancelSyncJob(),
|
|
351
|
+
closeSalesOrder: closeSalesOrder(),
|
|
352
|
+
confirmSalesOrder: confirmSalesOrder(),
|
|
353
|
+
convertChannelOrder: convertChannelOrder(),
|
|
354
|
+
createChannel: createChannel(),
|
|
355
|
+
createListing: createListing(),
|
|
356
|
+
createSalesCreditNote: createSalesCreditNote(),
|
|
357
|
+
createSalesInvoice: createSalesInvoice(),
|
|
358
|
+
createSalesOrder: createSalesOrder(),
|
|
359
|
+
createSalesPaymentTerm: createSalesPaymentTerm(),
|
|
360
|
+
createSalesPriceList: createSalesPriceList(),
|
|
361
|
+
createSalesPriceRule: createSalesPriceRule(),
|
|
362
|
+
createShipment: createShipment(),
|
|
363
|
+
deactivateChannel: deactivateChannel(),
|
|
364
|
+
deactivateSalesPaymentTerm: deactivateSalesPaymentTerm(),
|
|
365
|
+
deactivateSalesPriceList: deactivateSalesPriceList(),
|
|
366
|
+
deactivateSalesPriceRule: deactivateSalesPriceRule(),
|
|
367
|
+
issueSalesCreditNote: issueSalesCreditNote(),
|
|
368
|
+
issueSalesInvoice: issueSalesInvoice(),
|
|
369
|
+
markChannelOrderException: markChannelOrderException(),
|
|
370
|
+
pauseListing: pauseListing(),
|
|
371
|
+
placeSalesOrderOnCreditHold: placeSalesOrderOnCreditHold(),
|
|
372
|
+
postShipment: postShipment(),
|
|
373
|
+
recordChannelOrder: recordChannelOrder(),
|
|
374
|
+
rejectSalesOrder: rejectSalesOrder(),
|
|
375
|
+
releaseSalesOrderCreditHold: releaseSalesOrderCreditHold(),
|
|
376
|
+
retireListing: retireListing(),
|
|
377
|
+
retrySyncJob: retrySyncJob(),
|
|
378
|
+
sendSalesInvoice: sendSalesInvoice(),
|
|
379
|
+
startSyncJob: startSyncJob(),
|
|
380
|
+
submitSalesOrder: submitSalesOrder(),
|
|
381
|
+
updateChannel: updateChannel(),
|
|
382
|
+
updateListing: updateListing(),
|
|
383
|
+
updateSalesCreditNote: updateSalesCreditNote(),
|
|
384
|
+
updateSalesInvoice: updateSalesInvoice(),
|
|
385
|
+
updateSalesOrder: updateSalesOrder(),
|
|
386
|
+
updateSalesPaymentTerm: updateSalesPaymentTerm(),
|
|
387
|
+
updateSalesPriceList: updateSalesPriceList(),
|
|
388
|
+
updateSalesPriceRule: updateSalesPriceRule(),
|
|
389
|
+
updateShipment: updateShipment(),
|
|
390
|
+
},
|
|
391
|
+
queries: {
|
|
392
|
+
calculateInvoiceDueSchedule,
|
|
393
|
+
getApplicableSalesPrice,
|
|
394
|
+
getChannel,
|
|
395
|
+
getChannelOrder,
|
|
396
|
+
getListing,
|
|
397
|
+
getListingByExternalIdentifier,
|
|
398
|
+
getSalesCreditNote,
|
|
399
|
+
getSalesInvoice,
|
|
400
|
+
getSalesOrder,
|
|
401
|
+
getSalesPaymentTerm,
|
|
402
|
+
getSalesPriceList,
|
|
403
|
+
getShipment,
|
|
404
|
+
getSyncJob,
|
|
405
|
+
listChannelOrdersByStatus,
|
|
406
|
+
listChannels,
|
|
407
|
+
listListingsByChannel,
|
|
408
|
+
listSalesCreditNotesByInvoice,
|
|
409
|
+
listSalesInvoicesBySalesOrder,
|
|
410
|
+
listSalesOrders,
|
|
411
|
+
listSalesPaymentTerms,
|
|
412
|
+
listSalesPriceLists,
|
|
413
|
+
listSalesPriceRulesByPriceList,
|
|
414
|
+
listShipmentsBySalesOrder,
|
|
415
|
+
listSyncJobs,
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { createMockDb } from "../../../testing/index";
|
|
3
|
+
import type { DB } from "../generated/kysely-tailordb";
|
|
4
|
+
import { InvalidPaymentTermDefinitionError } from "../lib/errors.generated";
|
|
5
|
+
import { encodeJson, type DueScheduleLine, type PaymentTermScheduleLineInput } from "../lib/domain";
|
|
6
|
+
import {
|
|
7
|
+
basePaymentTerm,
|
|
8
|
+
installmentScheduleLines,
|
|
9
|
+
endOfMonthScheduleLines,
|
|
10
|
+
} from "../testing/fixtures";
|
|
11
|
+
import { expectErr, expectOk } from "../testing/commandTestUtils";
|
|
12
|
+
import { run } from "./calculateInvoiceDueSchedule";
|
|
13
|
+
|
|
14
|
+
const invoiceDate = new Date("2024-02-15T00:00:00.000Z");
|
|
15
|
+
|
|
16
|
+
describe("calculateInvoiceDueSchedule", () => {
|
|
17
|
+
it("calculates net-day due schedule", async () => {
|
|
18
|
+
const { db, spies } = createMockDb<DB>();
|
|
19
|
+
spies.select.mockReturnValueOnce(basePaymentTerm);
|
|
20
|
+
|
|
21
|
+
const result = await run(db, {
|
|
22
|
+
paymentTermId: basePaymentTerm.id,
|
|
23
|
+
invoiceDate,
|
|
24
|
+
invoiceAmount: 1000,
|
|
25
|
+
});
|
|
26
|
+
const { dueSchedule } = expectOk<{ dueSchedule: DueScheduleLine[] }>(result as never);
|
|
27
|
+
|
|
28
|
+
expect(dueSchedule).toHaveLength(1);
|
|
29
|
+
expect(dueSchedule[0]).toMatchObject({
|
|
30
|
+
amount: 1000,
|
|
31
|
+
dueDate: new Date("2024-03-16T00:00:00.000Z"),
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("calculates installment due schedule", async () => {
|
|
36
|
+
const { db, spies } = createMockDb<DB>();
|
|
37
|
+
const installmentTerm = {
|
|
38
|
+
...basePaymentTerm,
|
|
39
|
+
id: "payment-term-installment",
|
|
40
|
+
scheduleLines: encodeJson(installmentScheduleLines),
|
|
41
|
+
};
|
|
42
|
+
spies.select.mockReturnValueOnce(installmentTerm);
|
|
43
|
+
|
|
44
|
+
const result = await run(db, {
|
|
45
|
+
paymentTermId: installmentTerm.id,
|
|
46
|
+
invoiceDate,
|
|
47
|
+
invoiceAmount: 1000,
|
|
48
|
+
});
|
|
49
|
+
const { dueSchedule } = expectOk<{ dueSchedule: DueScheduleLine[] }>(result as never);
|
|
50
|
+
|
|
51
|
+
expect(dueSchedule).toHaveLength(2);
|
|
52
|
+
expect(dueSchedule[0]).toMatchObject({
|
|
53
|
+
amount: 500,
|
|
54
|
+
dueDate: new Date("2024-03-01T00:00:00.000Z"),
|
|
55
|
+
});
|
|
56
|
+
expect(dueSchedule[1]).toMatchObject({
|
|
57
|
+
amount: 500,
|
|
58
|
+
dueDate: new Date("2024-03-16T00:00:00.000Z"),
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("calculates end-of-month due schedule", async () => {
|
|
63
|
+
const { db, spies } = createMockDb<DB>();
|
|
64
|
+
const eomTerm = {
|
|
65
|
+
...basePaymentTerm,
|
|
66
|
+
id: "payment-term-eom",
|
|
67
|
+
scheduleLines: encodeJson(endOfMonthScheduleLines),
|
|
68
|
+
};
|
|
69
|
+
spies.select.mockReturnValueOnce(eomTerm);
|
|
70
|
+
|
|
71
|
+
const result = await run(db, {
|
|
72
|
+
paymentTermId: eomTerm.id,
|
|
73
|
+
invoiceDate,
|
|
74
|
+
invoiceAmount: 500,
|
|
75
|
+
});
|
|
76
|
+
const { dueSchedule } = expectOk<{ dueSchedule: DueScheduleLine[] }>(result as never);
|
|
77
|
+
|
|
78
|
+
expect(dueSchedule).toHaveLength(1);
|
|
79
|
+
// End of February 2024 (leap year) → Feb 29
|
|
80
|
+
expect(dueSchedule[0]).toMatchObject({
|
|
81
|
+
amount: 500,
|
|
82
|
+
dueDate: new Date("2024-02-29T00:00:00.000Z"),
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("throws when payment term definition is invalid", async () => {
|
|
87
|
+
const { db, spies } = createMockDb<DB>();
|
|
88
|
+
const invalidLines: PaymentTermScheduleLineInput[] = [
|
|
89
|
+
{ kind: "INSTALLMENT", days: 15, percentage: 40 },
|
|
90
|
+
{ kind: "INSTALLMENT", days: 30, percentage: 40 },
|
|
91
|
+
];
|
|
92
|
+
const invalidTerm = {
|
|
93
|
+
...basePaymentTerm,
|
|
94
|
+
id: "payment-term-invalid",
|
|
95
|
+
scheduleLines: encodeJson(invalidLines),
|
|
96
|
+
};
|
|
97
|
+
spies.select.mockReturnValueOnce(invalidTerm);
|
|
98
|
+
|
|
99
|
+
const result = await run(db, {
|
|
100
|
+
paymentTermId: invalidTerm.id,
|
|
101
|
+
invoiceDate,
|
|
102
|
+
invoiceAmount: 1000,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
expectErr(result as never, InvalidPaymentTermDefinitionError);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DB } from "../generated/kysely-tailordb";
|
|
2
|
+
import {
|
|
3
|
+
InvalidPaymentTermDefinitionError,
|
|
4
|
+
PaymentTermNotFoundError,
|
|
5
|
+
} from "../lib/errors.generated";
|
|
6
|
+
import { calculateDueSchedule, decodeJson, type PaymentTermScheduleLineInput } from "../lib/domain";
|
|
7
|
+
import { err, ok, type ReadonlyDB } from "@tailor-platform/erp-kit/module";
|
|
8
|
+
|
|
9
|
+
export interface CalculateInvoiceDueScheduleInput {
|
|
10
|
+
paymentTermId: string;
|
|
11
|
+
invoiceDate: Date;
|
|
12
|
+
invoiceAmount?: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function run(db: ReadonlyDB<DB>, input: CalculateInvoiceDueScheduleInput) {
|
|
16
|
+
const paymentTerm = await db
|
|
17
|
+
.selectFrom("SalesPaymentTerm")
|
|
18
|
+
.selectAll()
|
|
19
|
+
.where("id", "=", input.paymentTermId)
|
|
20
|
+
.executeTakeFirst();
|
|
21
|
+
if (!paymentTerm) {
|
|
22
|
+
return err(new PaymentTermNotFoundError(input.paymentTermId));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const dueSchedule = calculateDueSchedule(
|
|
26
|
+
decodeJson<PaymentTermScheduleLineInput[]>(paymentTerm.scheduleLines, []),
|
|
27
|
+
input.invoiceDate,
|
|
28
|
+
input.invoiceAmount ?? 0,
|
|
29
|
+
);
|
|
30
|
+
if (!dueSchedule) {
|
|
31
|
+
return err(new InvalidPaymentTermDefinitionError(input.paymentTermId));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return ok({ dueSchedule });
|
|
35
|
+
}
|