@tailor-platform/erp-kit 0.7.0 → 0.8.0
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 +25 -0
- package/README.md +8 -4
- package/dist/cli.mjs +70 -70
- package/package.json +1 -1
- package/skills/erp-kit-app-5-impl-backend/SKILL.md +5 -5
- package/skills/erp-kit-app-5-impl-backend/references/app-config.md +1 -1
- package/skills/erp-kit-app-5-impl-backend/references/module-wiring.md +37 -12
- package/skills/erp-kit-app-6-impl-frontend/SKILL.md +3 -1
- package/skills/erp-kit-app-6-impl-frontend/references/component.md +90 -0
- package/skills/erp-kit-app-6-impl-frontend/references/detail-view.md +255 -0
- package/skills/erp-kit-app-6-impl-frontend/references/pages.md +1 -5
- package/skills/erp-kit-app-7-impl-review/SKILL.md +3 -2
- package/skills/erp-kit-app-7-impl-review/references/module-wiring-parity.md +14 -8
- package/skills/erp-kit-module-6-impl-review/SKILL.md +16 -19
- package/skills/erp-kit-module-shared/references/commands.md +68 -1
- package/src/commands/index.ts +8 -2
- package/src/commands/init.test.ts +24 -8
- package/src/commands/init.ts +5 -12
- package/src/commands/lib/distribute.test.ts +1 -20
- package/src/commands/lib/distribute.ts +0 -14
- package/src/commands/update.test.ts +1 -1
- package/src/generator/scaffold.ts +25 -4
- package/src/module.ts +4 -1
- package/src/modules/accounting/README.md +63 -0
- package/src/modules/accounting/command/activateBudget.generated.ts +6 -0
- package/src/modules/accounting/command/activateBudget.test.ts +119 -0
- package/src/modules/accounting/command/activateBudget.ts +77 -0
- package/src/modules/accounting/command/activateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/activateCostElement.test.ts +59 -0
- package/src/modules/accounting/command/activateCostElement.ts +41 -0
- package/src/modules/accounting/command/activateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/activateProfitCenter.test.ts +60 -0
- package/src/modules/accounting/command/activateProfitCenter.ts +38 -0
- package/src/modules/accounting/command/approveBudget.generated.ts +6 -0
- package/src/modules/accounting/command/approveBudget.test.ts +69 -0
- package/src/modules/accounting/command/approveBudget.ts +47 -0
- package/src/modules/accounting/command/assignCostCenterToHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/assignCostCenterToHierarchyNode.test.ts +112 -0
- package/src/modules/accounting/command/assignCostCenterToHierarchyNode.ts +67 -0
- package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.test.ts +123 -0
- package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.ts +71 -0
- package/src/modules/accounting/command/closeBudget.generated.ts +6 -0
- package/src/modules/accounting/command/closeBudget.test.ts +93 -0
- package/src/modules/accounting/command/closeBudget.ts +40 -0
- package/src/modules/accounting/command/closeInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/closeInternalOrder.test.ts +74 -0
- package/src/modules/accounting/command/closeInternalOrder.ts +38 -0
- package/src/modules/accounting/command/consumeCommitment.generated.ts +6 -0
- package/src/modules/accounting/command/consumeCommitment.test.ts +123 -0
- package/src/modules/accounting/command/consumeCommitment.ts +62 -0
- package/src/modules/accounting/command/createAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/createAllocationCycle.test.ts +166 -0
- package/src/modules/accounting/command/createAllocationCycle.ts +68 -0
- package/src/modules/accounting/command/createAllocationRule.generated.ts +6 -0
- package/src/modules/accounting/command/createAllocationRule.test.ts +195 -0
- package/src/modules/accounting/command/createAllocationRule.ts +103 -0
- package/src/modules/accounting/command/createBudget.generated.ts +6 -0
- package/src/modules/accounting/command/createBudget.test.ts +159 -0
- package/src/modules/accounting/command/createBudget.ts +100 -0
- package/src/modules/accounting/command/createBudgetLineItem.generated.ts +6 -0
- package/src/modules/accounting/command/createBudgetLineItem.test.ts +178 -0
- package/src/modules/accounting/command/createBudgetLineItem.ts +104 -0
- package/src/modules/accounting/command/createCostCenter.generated.ts +6 -0
- package/src/modules/accounting/command/createCostCenter.test.ts +179 -0
- package/src/modules/accounting/command/createCostCenter.ts +112 -0
- package/src/modules/accounting/command/createCostCenterHierarchy.generated.ts +6 -0
- package/src/modules/accounting/command/createCostCenterHierarchy.test.ts +91 -0
- package/src/modules/accounting/command/createCostCenterHierarchy.ts +48 -0
- package/src/modules/accounting/command/createCostCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/createCostCenterHierarchyNode.test.ts +171 -0
- package/src/modules/accounting/command/createCostCenterHierarchyNode.ts +117 -0
- package/src/modules/accounting/command/createCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/createCostElement.test.ts +317 -0
- package/src/modules/accounting/command/createCostElement.ts +149 -0
- package/src/modules/accounting/command/createInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/createInternalOrder.test.ts +206 -0
- package/src/modules/accounting/command/createInternalOrder.ts +104 -0
- package/src/modules/accounting/command/createPlanVersion.generated.ts +6 -0
- package/src/modules/accounting/command/createPlanVersion.test.ts +230 -0
- package/src/modules/accounting/command/createPlanVersion.ts +71 -0
- package/src/modules/accounting/command/createProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/createProfitCenter.test.ts +227 -0
- package/src/modules/accounting/command/createProfitCenter.ts +81 -0
- package/src/modules/accounting/command/createProfitCenterHierarchy.generated.ts +6 -0
- package/src/modules/accounting/command/createProfitCenterHierarchy.test.ts +91 -0
- package/src/modules/accounting/command/createProfitCenterHierarchy.ts +46 -0
- package/src/modules/accounting/command/createProfitCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/createProfitCenterHierarchyNode.test.ts +160 -0
- package/src/modules/accounting/command/createProfitCenterHierarchyNode.ts +109 -0
- package/src/modules/accounting/command/deactivateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/deactivateCostElement.test.ts +59 -0
- package/src/modules/accounting/command/deactivateCostElement.ts +41 -0
- package/src/modules/accounting/command/deactivateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/deactivateProfitCenter.test.ts +60 -0
- package/src/modules/accounting/command/deactivateProfitCenter.ts +42 -0
- package/src/modules/accounting/command/deleteAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/deleteAllocationCycle.test.ts +90 -0
- package/src/modules/accounting/command/deleteAllocationCycle.ts +39 -0
- package/src/modules/accounting/command/deleteAllocationRule.generated.ts +6 -0
- package/src/modules/accounting/command/deleteAllocationRule.test.ts +98 -0
- package/src/modules/accounting/command/deleteAllocationRule.ts +40 -0
- package/src/modules/accounting/command/deleteBudget.generated.ts +6 -0
- package/src/modules/accounting/command/deleteBudget.test.ts +90 -0
- package/src/modules/accounting/command/deleteBudget.ts +35 -0
- package/src/modules/accounting/command/deleteBudgetLineItem.generated.ts +6 -0
- package/src/modules/accounting/command/deleteBudgetLineItem.test.ts +85 -0
- package/src/modules/accounting/command/deleteBudgetLineItem.ts +50 -0
- package/src/modules/accounting/command/deleteCostCenter.generated.ts +6 -0
- package/src/modules/accounting/command/deleteCostCenter.test.ts +79 -0
- package/src/modules/accounting/command/deleteCostCenter.ts +67 -0
- package/src/modules/accounting/command/deleteCostCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/deleteCostCenterHierarchyNode.test.ts +59 -0
- package/src/modules/accounting/command/deleteCostCenterHierarchyNode.ts +58 -0
- package/src/modules/accounting/command/deleteCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/deleteCostElement.test.ts +58 -0
- package/src/modules/accounting/command/deleteCostElement.ts +33 -0
- package/src/modules/accounting/command/deleteInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/deleteInternalOrder.test.ts +81 -0
- package/src/modules/accounting/command/deleteInternalOrder.ts +37 -0
- package/src/modules/accounting/command/deleteProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/deleteProfitCenter.test.ts +68 -0
- package/src/modules/accounting/command/deleteProfitCenter.ts +39 -0
- package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.test.ts +72 -0
- package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.ts +61 -0
- package/src/modules/accounting/command/executeAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/executeAllocationCycle.test.ts +167 -0
- package/src/modules/accounting/command/executeAllocationCycle.ts +94 -0
- package/src/modules/accounting/command/finalizeVarianceReport.generated.ts +6 -0
- package/src/modules/accounting/command/finalizeVarianceReport.test.ts +60 -0
- package/src/modules/accounting/command/finalizeVarianceReport.ts +45 -0
- package/src/modules/accounting/command/generateVarianceReport.generated.ts +6 -0
- package/src/modules/accounting/command/generateVarianceReport.test.ts +386 -0
- package/src/modules/accounting/command/generateVarianceReport.ts +219 -0
- package/src/modules/accounting/command/invalidateAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/invalidateAllocationCycle.test.ts +84 -0
- package/src/modules/accounting/command/invalidateAllocationCycle.ts +45 -0
- package/src/modules/accounting/command/moveCostCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/moveCostCenterHierarchyNode.test.ts +135 -0
- package/src/modules/accounting/command/moveCostCenterHierarchyNode.ts +81 -0
- package/src/modules/accounting/command/postAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/postAllocationCycle.test.ts +98 -0
- package/src/modules/accounting/command/postAllocationCycle.ts +65 -0
- package/src/modules/accounting/command/reactivateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/reactivateCostElement.test.ts +59 -0
- package/src/modules/accounting/command/reactivateCostElement.ts +41 -0
- package/src/modules/accounting/command/reactivateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/reactivateProfitCenter.test.ts +60 -0
- package/src/modules/accounting/command/reactivateProfitCenter.ts +42 -0
- package/src/modules/accounting/command/recordCommitment.generated.ts +6 -0
- package/src/modules/accounting/command/recordCommitment.test.ts +157 -0
- package/src/modules/accounting/command/recordCommitment.ts +113 -0
- package/src/modules/accounting/command/rejectBudget.generated.ts +6 -0
- package/src/modules/accounting/command/rejectBudget.test.ts +105 -0
- package/src/modules/accounting/command/rejectBudget.ts +51 -0
- package/src/modules/accounting/command/releaseCommitment.generated.ts +6 -0
- package/src/modules/accounting/command/releaseCommitment.test.ts +94 -0
- package/src/modules/accounting/command/releaseCommitment.ts +51 -0
- package/src/modules/accounting/command/releaseInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/releaseInternalOrder.test.ts +74 -0
- package/src/modules/accounting/command/releaseInternalOrder.ts +38 -0
- package/src/modules/accounting/command/reverseAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/reverseAllocationCycle.test.ts +124 -0
- package/src/modules/accounting/command/reverseAllocationCycle.ts +63 -0
- package/src/modules/accounting/command/submitBudget.generated.ts +6 -0
- package/src/modules/accounting/command/submitBudget.test.ts +60 -0
- package/src/modules/accounting/command/submitBudget.ts +51 -0
- package/src/modules/accounting/command/technicallyCompleteInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/technicallyCompleteInternalOrder.test.ts +74 -0
- package/src/modules/accounting/command/technicallyCompleteInternalOrder.ts +42 -0
- package/src/modules/accounting/command/updateAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/updateAllocationCycle.test.ts +112 -0
- package/src/modules/accounting/command/updateAllocationCycle.ts +41 -0
- package/src/modules/accounting/command/updateBudget.generated.ts +6 -0
- package/src/modules/accounting/command/updateBudget.test.ts +112 -0
- package/src/modules/accounting/command/updateBudget.ts +44 -0
- package/src/modules/accounting/command/updateCostCenter.generated.ts +6 -0
- package/src/modules/accounting/command/updateCostCenter.test.ts +105 -0
- package/src/modules/accounting/command/updateCostCenter.ts +79 -0
- package/src/modules/accounting/command/updateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/updateCostElement.test.ts +265 -0
- package/src/modules/accounting/command/updateCostElement.ts +158 -0
- package/src/modules/accounting/command/updateInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/updateInternalOrder.test.ts +209 -0
- package/src/modules/accounting/command/updateInternalOrder.ts +88 -0
- package/src/modules/accounting/command/updateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/updateProfitCenter.test.ts +162 -0
- package/src/modules/accounting/command/updateProfitCenter.ts +73 -0
- package/src/modules/accounting/command/validateAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/validateAllocationCycle.test.ts +141 -0
- package/src/modules/accounting/command/validateAllocationCycle.ts +80 -0
- package/src/modules/accounting/db/allocationCycle.ts +59 -0
- package/src/modules/accounting/db/allocationResult.ts +58 -0
- package/src/modules/accounting/db/allocationRule.ts +48 -0
- package/src/modules/accounting/db/budget.ts +84 -0
- package/src/modules/accounting/db/budgetLineItem.ts +64 -0
- package/src/modules/accounting/db/commitment.ts +60 -0
- package/src/modules/accounting/db/costCenter.ts +73 -0
- package/src/modules/accounting/db/costCenterHierarchy.ts +37 -0
- package/src/modules/accounting/db/costCenterHierarchyNode.ts +48 -0
- package/src/modules/accounting/db/costElement.ts +56 -0
- package/src/modules/accounting/db/internalOrder.ts +69 -0
- package/src/modules/accounting/db/planVersion.ts +47 -0
- package/src/modules/accounting/db/profitCenter.ts +52 -0
- package/src/modules/accounting/db/profitCenterHierarchy.ts +36 -0
- package/src/modules/accounting/db/profitCenterHierarchyAssignment.ts +62 -0
- package/src/modules/accounting/db/profitCenterHierarchyNode.ts +48 -0
- package/src/modules/accounting/db/varianceReport.ts +54 -0
- package/src/modules/accounting/db/varianceReportLine.ts +62 -0
- package/src/modules/accounting/docs/commands/ActivateBudget.md +54 -0
- package/src/modules/accounting/docs/commands/ActivateCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/ActivateProfitCenter.md +43 -0
- package/src/modules/accounting/docs/commands/ApproveBudget.md +46 -0
- package/src/modules/accounting/docs/commands/AssignCostCenterToHierarchyNode.md +46 -0
- package/src/modules/accounting/docs/commands/AssignProfitCenterToHierarchyNode.md +47 -0
- package/src/modules/accounting/docs/commands/CloseBudget.md +47 -0
- package/src/modules/accounting/docs/commands/CloseInternalOrder.md +45 -0
- package/src/modules/accounting/docs/commands/ConsumeCommitment.md +53 -0
- package/src/modules/accounting/docs/commands/CreateAllocationCycle.md +55 -0
- package/src/modules/accounting/docs/commands/CreateAllocationRule.md +60 -0
- package/src/modules/accounting/docs/commands/CreateBudget.md +65 -0
- package/src/modules/accounting/docs/commands/CreateBudgetLineItem.md +66 -0
- package/src/modules/accounting/docs/commands/CreateCostCenter.md +64 -0
- package/src/modules/accounting/docs/commands/CreateCostCenterHierarchy.md +45 -0
- package/src/modules/accounting/docs/commands/CreateCostCenterHierarchyNode.md +61 -0
- package/src/modules/accounting/docs/commands/CreateCostElement.md +91 -0
- package/src/modules/accounting/docs/commands/CreateInternalOrder.md +72 -0
- package/src/modules/accounting/docs/commands/CreatePlanVersion.md +59 -0
- package/src/modules/accounting/docs/commands/CreateProfitCenter.md +63 -0
- package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchy.md +45 -0
- package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchyNode.md +60 -0
- package/src/modules/accounting/docs/commands/DeactivateCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/DeactivateProfitCenter.md +44 -0
- package/src/modules/accounting/docs/commands/DeleteAllocationCycle.md +46 -0
- package/src/modules/accounting/docs/commands/DeleteAllocationRule.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteBudget.md +46 -0
- package/src/modules/accounting/docs/commands/DeleteBudgetLineItem.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteCostCenter.md +50 -0
- package/src/modules/accounting/docs/commands/DeleteCostCenterHierarchyNode.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/DeleteInternalOrder.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteProfitCenter.md +46 -0
- package/src/modules/accounting/docs/commands/DeleteProfitCenterHierarchyNode.md +46 -0
- package/src/modules/accounting/docs/commands/ExecuteAllocationCycle.md +54 -0
- package/src/modules/accounting/docs/commands/FinalizeVarianceReport.md +44 -0
- package/src/modules/accounting/docs/commands/GenerateVarianceReport.md +83 -0
- package/src/modules/accounting/docs/commands/InvalidateAllocationCycle.md +45 -0
- package/src/modules/accounting/docs/commands/MoveCostCenterHierarchyNode.md +51 -0
- package/src/modules/accounting/docs/commands/PostAllocationCycle.md +58 -0
- package/src/modules/accounting/docs/commands/ReactivateCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/ReactivateProfitCenter.md +43 -0
- package/src/modules/accounting/docs/commands/RecordCommitment.md +60 -0
- package/src/modules/accounting/docs/commands/RejectBudget.md +49 -0
- package/src/modules/accounting/docs/commands/ReleaseCommitment.md +45 -0
- package/src/modules/accounting/docs/commands/ReleaseInternalOrder.md +44 -0
- package/src/modules/accounting/docs/commands/ReverseAllocationCycle.md +55 -0
- package/src/modules/accounting/docs/commands/SubmitBudget.md +47 -0
- package/src/modules/accounting/docs/commands/TechnicallyCompleteInternalOrder.md +44 -0
- package/src/modules/accounting/docs/commands/UpdateAllocationCycle.md +45 -0
- package/src/modules/accounting/docs/commands/UpdateBudget.md +47 -0
- package/src/modules/accounting/docs/commands/UpdateCostCenter.md +50 -0
- package/src/modules/accounting/docs/commands/UpdateCostElement.md +82 -0
- package/src/modules/accounting/docs/commands/UpdateInternalOrder.md +62 -0
- package/src/modules/accounting/docs/commands/UpdateProfitCenter.md +56 -0
- package/src/modules/accounting/docs/commands/ValidateAllocationCycle.md +57 -0
- package/src/modules/accounting/docs/features/budget-management.md +147 -0
- package/src/modules/accounting/docs/features/cost-allocation.md +129 -0
- package/src/modules/accounting/docs/features/cost-center-management.md +118 -0
- package/src/modules/accounting/docs/features/cost-element-management.md +114 -0
- package/src/modules/accounting/docs/features/internal-order-management.md +111 -0
- package/src/modules/accounting/docs/features/profit-center-management.md +120 -0
- package/src/modules/accounting/docs/features/variance-analysis.md +130 -0
- package/src/modules/accounting/docs/models/AllocationCycle.md +81 -0
- package/src/modules/accounting/docs/models/AllocationResult.md +37 -0
- package/src/modules/accounting/docs/models/AllocationRule.md +41 -0
- package/src/modules/accounting/docs/models/Budget.md +77 -0
- package/src/modules/accounting/docs/models/BudgetLineItem.md +40 -0
- package/src/modules/accounting/docs/models/Commitment.md +45 -0
- package/src/modules/accounting/docs/models/CostCenter.md +51 -0
- package/src/modules/accounting/docs/models/CostCenterHierarchy.md +38 -0
- package/src/modules/accounting/docs/models/CostCenterHierarchyNode.md +41 -0
- package/src/modules/accounting/docs/models/CostElement.md +66 -0
- package/src/modules/accounting/docs/models/InternalOrder.md +67 -0
- package/src/modules/accounting/docs/models/PlanVersion.md +36 -0
- package/src/modules/accounting/docs/models/ProfitCenter.md +66 -0
- package/src/modules/accounting/docs/models/ProfitCenterHierarchy.md +36 -0
- package/src/modules/accounting/docs/models/ProfitCenterHierarchyAssignment.md +36 -0
- package/src/modules/accounting/docs/models/ProfitCenterHierarchyNode.md +39 -0
- package/src/modules/accounting/docs/models/VarianceReport.md +58 -0
- package/src/modules/accounting/docs/models/VarianceReportLine.md +43 -0
- package/src/modules/accounting/docs/queries/CalculateBudgetAvailability.md +64 -0
- package/src/modules/accounting/docs/queries/GetAllocationCycle.md +43 -0
- package/src/modules/accounting/docs/queries/GetBudget.md +42 -0
- package/src/modules/accounting/docs/queries/GetCostCenter.md +38 -0
- package/src/modules/accounting/docs/queries/GetCostCenterHierarchy.md +45 -0
- package/src/modules/accounting/docs/queries/GetCostElement.md +39 -0
- package/src/modules/accounting/docs/queries/GetInternalOrder.md +42 -0
- package/src/modules/accounting/docs/queries/GetProfitCenter.md +38 -0
- package/src/modules/accounting/docs/queries/GetProfitCenterHierarchy.md +46 -0
- package/src/modules/accounting/docs/queries/GetVarianceReport.md +45 -0
- package/src/modules/accounting/docs/queries/ListAllocationCycles.md +63 -0
- package/src/modules/accounting/docs/queries/ListBudgets.md +70 -0
- package/src/modules/accounting/docs/queries/ListCostCenters.md +55 -0
- package/src/modules/accounting/docs/queries/ListCostElements.md +63 -0
- package/src/modules/accounting/docs/queries/ListInternalOrders.md +62 -0
- package/src/modules/accounting/docs/queries/ListProfitCenters.md +49 -0
- package/src/modules/accounting/generated/enums.ts +110 -0
- package/src/modules/accounting/generated/kysely-tailordb.ts +302 -0
- package/src/modules/accounting/index.ts +2 -0
- package/src/modules/accounting/lib/_db_deps.ts +70 -0
- package/src/modules/accounting/lib/actualAmounts.ts +93 -0
- package/src/modules/accounting/lib/allocationPosting.ts +152 -0
- package/src/modules/accounting/lib/errors.generated.ts +432 -0
- package/src/modules/accounting/lib/permissions.generated.ts +61 -0
- package/src/modules/accounting/lib/types.ts +114 -0
- package/src/modules/accounting/module.ts +428 -0
- package/src/modules/accounting/permissions.ts +3 -0
- package/src/modules/accounting/query/calculateBudgetAvailability.generated.ts +5 -0
- package/src/modules/accounting/query/calculateBudgetAvailability.test.ts +229 -0
- package/src/modules/accounting/query/calculateBudgetAvailability.ts +147 -0
- package/src/modules/accounting/query/getAllocationCycle.generated.ts +5 -0
- package/src/modules/accounting/query/getAllocationCycle.test.ts +94 -0
- package/src/modules/accounting/query/getAllocationCycle.ts +37 -0
- package/src/modules/accounting/query/getBudget.generated.ts +5 -0
- package/src/modules/accounting/query/getBudget.test.ts +80 -0
- package/src/modules/accounting/query/getBudget.ts +31 -0
- package/src/modules/accounting/query/getCostCenter.generated.ts +5 -0
- package/src/modules/accounting/query/getCostCenter.test.ts +50 -0
- package/src/modules/accounting/query/getCostCenter.ts +33 -0
- package/src/modules/accounting/query/getCostCenterHierarchy.generated.ts +5 -0
- package/src/modules/accounting/query/getCostCenterHierarchy.test.ts +100 -0
- package/src/modules/accounting/query/getCostCenterHierarchy.ts +80 -0
- package/src/modules/accounting/query/getCostElement.generated.ts +5 -0
- package/src/modules/accounting/query/getCostElement.test.ts +57 -0
- package/src/modules/accounting/query/getCostElement.ts +21 -0
- package/src/modules/accounting/query/getInternalOrder.generated.ts +5 -0
- package/src/modules/accounting/query/getInternalOrder.test.ts +73 -0
- package/src/modules/accounting/query/getInternalOrder.ts +21 -0
- package/src/modules/accounting/query/getProfitCenter.generated.ts +5 -0
- package/src/modules/accounting/query/getProfitCenter.test.ts +65 -0
- package/src/modules/accounting/query/getProfitCenter.ts +31 -0
- package/src/modules/accounting/query/getProfitCenterHierarchy.generated.ts +5 -0
- package/src/modules/accounting/query/getProfitCenterHierarchy.test.ts +97 -0
- package/src/modules/accounting/query/getProfitCenterHierarchy.ts +87 -0
- package/src/modules/accounting/query/getVarianceReport.generated.ts +5 -0
- package/src/modules/accounting/query/getVarianceReport.test.ts +108 -0
- package/src/modules/accounting/query/getVarianceReport.ts +31 -0
- package/src/modules/accounting/query/listAllocationCycles.generated.ts +5 -0
- package/src/modules/accounting/query/listAllocationCycles.test.ts +152 -0
- package/src/modules/accounting/query/listAllocationCycles.ts +96 -0
- package/src/modules/accounting/query/listBudgets.generated.ts +5 -0
- package/src/modules/accounting/query/listBudgets.test.ts +150 -0
- package/src/modules/accounting/query/listBudgets.ts +85 -0
- package/src/modules/accounting/query/listCostCenters.generated.ts +5 -0
- package/src/modules/accounting/query/listCostCenters.test.ts +111 -0
- package/src/modules/accounting/query/listCostCenters.ts +71 -0
- package/src/modules/accounting/query/listCostElements.generated.ts +5 -0
- package/src/modules/accounting/query/listCostElements.test.ts +138 -0
- package/src/modules/accounting/query/listCostElements.ts +105 -0
- package/src/modules/accounting/query/listInternalOrders.generated.ts +5 -0
- package/src/modules/accounting/query/listInternalOrders.test.ts +129 -0
- package/src/modules/accounting/query/listInternalOrders.ts +94 -0
- package/src/modules/accounting/query/listProfitCenters.generated.ts +5 -0
- package/src/modules/accounting/query/listProfitCenters.test.ts +94 -0
- package/src/modules/accounting/query/listProfitCenters.ts +56 -0
- package/src/modules/accounting/seed/index.ts +19 -0
- package/src/modules/accounting/tailor.config.ts +13 -0
- package/src/modules/accounting/testing/commandTestUtils.ts +35 -0
- package/src/modules/accounting/testing/fixtures.ts +502 -0
- package/src/modules/audit/command/logAuditEvent.ts +43 -38
- package/src/modules/audit/command/updateAuditPolicy.ts +2 -2
- package/src/modules/audit/docs/commands/UpdateAuditPolicy.md +1 -1
- package/src/modules/audit/module.ts +4 -0
- package/src/modules/business-partner/command/updateContactPerson.ts +3 -4
- package/src/modules/business-partner/command/updatePartner.ts +13 -6
- package/src/modules/business-partner/command/updatePartnerAddress.ts +13 -6
- package/src/modules/business-partner/command/updatePartnerBankAccount.ts +3 -4
- package/src/modules/business-partner/command/updatePartnerIdentification.ts +3 -4
- package/src/modules/business-partner/docs/commands/UpdateContactPerson.md +3 -3
- package/src/modules/business-partner/docs/commands/UpdatePartner.md +2 -2
- package/src/modules/business-partner/docs/commands/UpdatePartnerAddress.md +2 -2
- package/src/modules/business-partner/docs/commands/UpdatePartnerIdentification.md +2 -2
- package/src/modules/coa-management/command/updateAccount.ts +3 -3
- package/src/modules/coa-management/command/updateAccountGroup.test.ts +22 -0
- package/src/modules/coa-management/command/updateAccountGroup.ts +30 -18
- package/src/modules/coa-management/command/updateChartOfAccounts.ts +3 -4
- package/src/modules/coa-management/docs/commands/UpdateAccountGroup.md +4 -3
- package/src/modules/finance-ledger/command/updateFiscalYear.ts +2 -3
- package/src/modules/finance-ledger/command/updateJournalEntry.test.ts +0 -17
- package/src/modules/finance-ledger/command/updateJournalEntry.ts +2 -10
- package/src/modules/finance-ledger/command/updateJournalLine.ts +2 -3
- package/src/modules/finance-ledger/docs/commands/UpdateJournalEntry.md +1 -4
- package/src/modules/inventory/command/updateLot.test.ts +1 -1
- package/src/modules/inventory/command/updateLot.ts +2 -3
- package/src/modules/inventory/command/updateStockMovement.ts +2 -3
- package/src/modules/inventory/command/updateStorageLocation.ts +12 -17
- package/src/modules/inventory/command/updateValuationPolicy.ts +2 -3
- package/src/modules/inventory/command/updateWarehouse.ts +2 -3
- package/src/modules/inventory/docs/commands/UpdateLot.md +3 -3
- package/src/modules/inventory/docs/commands/UpdateStorageLocation.md +6 -6
- package/src/modules/inventory/docs/commands/UpdateWarehouse.md +2 -2
- package/src/modules/item-management/command/updateItem.test.ts +16 -12
- package/src/modules/item-management/command/updateItem.ts +47 -31
- package/src/modules/item-management/command/updateTaxonomyNode.test.ts +15 -16
- package/src/modules/item-management/command/updateTaxonomyNode.ts +42 -29
- package/src/modules/item-management/docs/commands/UpdateItem.md +7 -11
- package/src/modules/item-management/docs/commands/UpdateTaxonomyNode.md +10 -14
- package/src/modules/manufacturing/command/updateBillOfMaterial.ts +3 -4
- package/src/modules/manufacturing/command/updateProductionOrder.ts +3 -4
- package/src/modules/manufacturing/command/updateRouting.ts +3 -4
- package/src/modules/manufacturing/command/updateWorkCenter.test.ts +16 -7
- package/src/modules/manufacturing/command/updateWorkCenter.ts +41 -38
- package/src/modules/manufacturing/docs/commands/ActivateWorkCenter.md +2 -0
- package/src/modules/manufacturing/docs/commands/CompleteWorkOrder.md +2 -0
- package/src/modules/manufacturing/docs/commands/CreateBillOfMaterial.md +1 -0
- package/src/modules/manufacturing/docs/commands/ReviewManufacturingCostSummary.md +1 -0
- package/src/modules/manufacturing/docs/commands/UpdateWorkCenter.md +6 -5
- package/src/modules/manufacturing/docs/models/BillOfMaterialLine.md +42 -0
- package/src/modules/manufacturing/docs/models/CostVarianceLine.md +36 -0
- package/src/modules/manufacturing/docs/models/ManufacturingCostLine.md +37 -0
- package/src/modules/manufacturing/docs/models/ManufacturingCostSettlementRecord.md +34 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderBomSnapshot.md +35 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderCostBaseline.md +36 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderMaterialRequirement.md +35 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderRoutingSnapshot.md +34 -0
- package/src/modules/manufacturing/docs/models/RoutingOperation.md +40 -0
- package/src/modules/manufacturing/docs/models/WorkOrderExecutionEvent.md +38 -0
- package/src/modules/manufacturing/docs/queries/ExplodeBillOfMaterial.md +1 -0
- package/src/modules/manufacturing/docs/queries/ListWorkCentersBySite.md +1 -0
- package/src/modules/organization/command/updateCompany.test.ts +6 -6
- package/src/modules/organization/command/updateCompany.ts +3 -4
- package/src/modules/organization/command/updateDepartment.test.ts +7 -7
- package/src/modules/organization/command/updateDepartment.ts +13 -12
- package/src/modules/organization/command/updateSite.test.ts +10 -10
- package/src/modules/organization/command/updateSite.ts +3 -4
- package/src/modules/organization/docs/commands/UpdateCompany.md +6 -6
- package/src/modules/organization/docs/commands/UpdateDepartment.md +9 -10
- package/src/modules/organization/docs/commands/UpdateSite.md +12 -12
- package/src/modules/product-management/command/updateProduct.test.ts +17 -11
- package/src/modules/product-management/command/updateProduct.ts +45 -28
- package/src/modules/product-management/command/updateProductAttribute.test.ts +16 -21
- package/src/modules/product-management/command/updateProductAttribute.ts +40 -26
- package/src/modules/product-management/command/updateProductAttributeValue.ts +2 -3
- package/src/modules/product-management/command/updateProductCategory.test.ts +14 -19
- package/src/modules/product-management/command/updateProductCategory.ts +42 -26
- package/src/modules/product-management/docs/commands/UpdateProduct.md +16 -20
- package/src/modules/product-management/docs/commands/UpdateProductAttribute.md +10 -14
- package/src/modules/product-management/docs/commands/UpdateProductCategory.md +10 -14
- package/src/modules/purchase/command/updateGoodsReceipt.ts +2 -3
- package/src/modules/purchase/command/updatePurchaseBill.ts +2 -3
- package/src/modules/purchase/command/updatePurchaseOrder.ts +2 -3
- package/src/modules/purchase/command/updatePurchasePaymentTerm.ts +2 -3
- package/src/modules/purchase/command/updatePurchasePriceList.ts +2 -3
- package/src/modules/purchase/command/updatePurchasePriceRule.ts +2 -3
- package/src/modules/sales/command/updateChannel.test.ts +4 -4
- package/src/modules/sales/command/updateChannel.ts +2 -3
- package/src/modules/sales/command/updateListing.test.ts +2 -2
- package/src/modules/sales/command/updateListing.ts +2 -3
- package/src/modules/sales/command/updateSalesCreditNote.test.ts +2 -2
- package/src/modules/sales/command/updateSalesCreditNote.ts +2 -3
- package/src/modules/sales/command/updateSalesInvoice.test.ts +2 -2
- package/src/modules/sales/command/updateSalesInvoice.ts +2 -3
- package/src/modules/sales/command/updateSalesOrder.test.ts +3 -3
- package/src/modules/sales/command/updateSalesOrder.ts +2 -3
- package/src/modules/sales/command/updateSalesPaymentTerm.test.ts +2 -2
- package/src/modules/sales/command/updateSalesPaymentTerm.ts +2 -3
- package/src/modules/sales/command/updateSalesPriceList.test.ts +3 -3
- package/src/modules/sales/command/updateSalesPriceList.ts +2 -3
- package/src/modules/sales/command/updateSalesPriceRule.test.ts +3 -3
- package/src/modules/sales/command/updateSalesPriceRule.ts +2 -3
- package/src/modules/sales/command/updateShipment.test.ts +2 -2
- package/src/modules/sales/command/updateShipment.ts +2 -3
- package/src/modules/sales/docs/commands/UpdateChannel.md +4 -4
- package/src/modules/sales/docs/commands/UpdateListing.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesCreditNote.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesInvoice.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesOrder.md +3 -3
- package/src/modules/sales/docs/commands/UpdateSalesPaymentTerm.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesPriceList.md +3 -3
- package/src/modules/sales/docs/commands/UpdateSalesPriceRule.md +3 -3
- package/src/modules/sales/docs/commands/UpdateShipment.md +2 -2
- package/src/modules/user-management/README.md +2 -1
- package/src/modules/user-management/command/updateOwnProfile.generated.ts +6 -0
- package/src/modules/user-management/command/updateOwnProfile.test.ts +191 -0
- package/src/modules/user-management/command/updateOwnProfile.ts +82 -0
- package/src/modules/user-management/command/updateUser.generated.ts +6 -0
- package/src/modules/user-management/command/updateUser.test.ts +195 -0
- package/src/modules/user-management/command/updateUser.ts +76 -0
- package/src/modules/user-management/docs/commands/UpdateOwnProfile.md +68 -0
- package/src/modules/user-management/docs/commands/UpdateUser.md +67 -0
- package/src/modules/user-management/docs/features/user-account-management.md +28 -3
- package/src/modules/user-management/docs/models/User.md +2 -0
- package/src/modules/user-management/lib/errors.generated.ts +5 -0
- package/src/modules/user-management/lib/permissions.generated.ts +2 -0
- package/src/modules/user-management/module.ts +5 -0
- package/src/modules/user-management/seed/index.ts +19 -0
- package/templates/scaffold/app/backend/seed/data/AuditEntry.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/AuditPolicy.jsonl +7 -0
- package/templates/scaffold/app/backend/seed/data/AuditPolicy.schema.ts +15 -0
- package/templates/scaffold/app/backend/seed/data/AuditableEntity.jsonl +4 -0
- package/templates/scaffold/app/backend/seed/data/AuditableEntity.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/ChangeDetail.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/Company.schema.ts +15 -0
- package/templates/scaffold/app/backend/seed/data/Permission.jsonl +13 -0
- package/templates/scaffold/app/backend/seed/data/Permission.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/PolicyFieldRule.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/Role.jsonl +1 -0
- package/templates/scaffold/app/backend/seed/data/Role.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/RolePermission.jsonl +13 -0
- package/templates/scaffold/app/backend/seed/data/RolePermission.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/User.jsonl +1 -1
- package/templates/scaffold/app/backend/seed/data/User.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/UserRole.jsonl +1 -0
- package/templates/scaffold/app/backend/seed/data/UserRole.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/_User.jsonl +1 -1
- package/templates/scaffold/app/backend/seed/exec.mjs +12 -0
- package/templates/scaffold/app/backend/src/executors/permissionCreated.ts +2 -2
- package/templates/scaffold/app/backend/src/executors/permissionDeleted.ts +2 -2
- package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +62 -0
- package/templates/scaffold/app/backend/src/modules-db.ts +13 -0
- package/templates/scaffold/app/backend/src/modules.ts +3 -5
- package/templates/scaffold/app/backend/src/resolvers/assignPermissionToRole.ts +70 -0
- package/templates/scaffold/app/backend/src/resolvers/assignRoleToUser.ts +72 -0
- package/templates/scaffold/app/backend/src/resolvers/createRole.ts +92 -0
- package/templates/scaffold/app/backend/src/resolvers/createUser.ts +113 -13
- package/templates/scaffold/app/backend/src/resolvers/deactivateUser.ts +67 -0
- package/templates/scaffold/app/backend/src/resolvers/reactivateUser.ts +63 -0
- package/templates/scaffold/app/backend/src/resolvers/revokePermissionFromRole.ts +72 -0
- package/templates/scaffold/app/backend/src/resolvers/revokeRoleFromUser.ts +72 -0
- package/templates/scaffold/app/backend/src/resolvers/updateOwnProfile.ts +107 -0
- package/templates/scaffold/app/backend/src/resolvers/updateUserProfile.ts +107 -0
- package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log-detail.test.ts +79 -0
- package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log.test.ts +86 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--assign-role-to-user.test.ts +103 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--create-role.test.ts +61 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--remove-role-from-user.test.ts +89 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--update-role-permissions.test.ts +125 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--browse-user-list.test.ts +91 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--create-user-account.test.ts +97 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--toggle-user-status.test.ts +131 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-own-profile.test.ts +85 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-user-profile.test.ts +158 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-own-profile.test.ts +30 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-user-detail.test.ts +98 -0
- package/templates/scaffold/app/backend/tailor.config.ts +6 -2
- package/templates/scaffold/app/docs/actors/user.md +11 -0
- package/templates/scaffold/app/docs/business-flow/audit-log/README.md +31 -0
- package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log-detail.md +35 -0
- package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log.md +44 -0
- package/templates/scaffold/app/docs/business-flow/role-management/README.md +33 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--assign-role-to-user.md +35 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--create-role.md +41 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--remove-role-from-user.md +33 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--update-role-permissions.md +41 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/README.md +48 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--browse-user-list.md +38 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--create-user-account.md +45 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--toggle-user-status.md +38 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-own-profile.md +36 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-user-profile.md +41 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-own-profile.md +30 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-user-detail.md +33 -0
- package/templates/scaffold/app/docs/resolver/assignPermissionToRole.md +16 -0
- package/templates/scaffold/app/docs/resolver/assignRoleToUser.md +17 -0
- package/templates/scaffold/app/docs/resolver/createRole.md +17 -0
- package/templates/scaffold/app/docs/resolver/createUser.md +23 -0
- package/templates/scaffold/app/docs/resolver/deactivateUser.md +17 -0
- package/templates/scaffold/app/docs/resolver/reactivateUser.md +16 -0
- package/templates/scaffold/app/docs/resolver/revokePermissionFromRole.md +17 -0
- package/templates/scaffold/app/docs/resolver/revokeRoleFromUser.md +17 -0
- package/templates/scaffold/app/docs/resolver/updateOwnProfile.md +20 -0
- package/templates/scaffold/app/docs/resolver/updateUserProfile.md +19 -0
- package/templates/scaffold/app/docs/screen/audit-entry-detail.md +30 -0
- package/templates/scaffold/app/docs/screen/audit-entry-list.md +25 -0
- package/templates/scaffold/app/docs/screen/my-profile-edit-form.md +22 -0
- package/templates/scaffold/app/docs/screen/my-profile.md +27 -0
- package/templates/scaffold/app/docs/screen/role-create-form.md +23 -0
- package/templates/scaffold/app/docs/screen/role-detail.md +27 -0
- package/templates/scaffold/app/docs/screen/role-edit-form.md +21 -0
- package/templates/scaffold/app/docs/screen/role-list.md +23 -0
- package/templates/scaffold/app/docs/screen/user-create-form.md +23 -0
- package/templates/scaffold/app/docs/screen/user-detail.md +33 -0
- package/templates/scaffold/app/docs/screen/user-edit-form.md +22 -0
- package/templates/scaffold/app/docs/screen/user-list.md +24 -0
- package/templates/scaffold/app/frontend/package.json +1 -1
- package/templates/scaffold/app/frontend/src/App.tsx +4 -0
- package/templates/scaffold/app/frontend/src/components/composed/error-fallback.tsx +1 -1
- package/templates/scaffold/app/frontend/src/graphql/generated/graphql-env.d.ts +59 -31
- package/templates/scaffold/app/frontend/src/graphql/generated/schema.graphql +1411 -688
- package/templates/scaffold/app/frontend/src/hooks/use-toast.ts +1 -1
- package/templates/scaffold/app/frontend/src/lib/permission-groups.ts +59 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/audit/[id]/components/audit-entry-detail.tsx +102 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/audit/[id]/page.tsx +65 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/audit/components/audit-entries-table.tsx +90 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/audit/page.tsx +52 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/components/edit-profile-form.tsx +125 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/page.tsx +19 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/profile/page.tsx +41 -21
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-actions.tsx +26 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-detail.tsx +69 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/components/edit-role-form.tsx +192 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/page.tsx +51 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/page.tsx +56 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/components/roles-table.tsx +85 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/create/components/create-role-form.tsx +204 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/create/page.tsx +19 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/page.tsx +60 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-actions.tsx +216 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-detail.tsx +97 -33
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/components/edit-user-form.tsx +115 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/page.tsx +51 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/page.tsx +8 -2
- package/templates/scaffold/app/frontend/src/pages/user-management/user/components/users-table.tsx +43 -42
- package/templates/scaffold/app/frontend/src/pages/user-management/user/create/components/create-user-form.tsx +120 -45
- package/templates/scaffold/app/frontend/src/pages/user-management/user/page.tsx +3 -4
- package/templates/scaffold/app/frontend/src/providers/graphql-provider.tsx +8 -1
- package/templates/scaffold/module/eslint.config.js +8 -0
- package/templates/scaffold/project/__dot__gitignore +1 -0
- package/templates/scaffold/project/__pnpm-workspace.yaml +3 -0
- package/templates/scaffold/project/apps/.gitkeep +0 -0
- package/templates/scaffold/project/modules/.gitkeep +0 -0
- package/templates/scaffold/project/package.json +15 -0
- package/templates/workflows/erp-kit-check.yml +10 -4
- package/templates/scaffold/app/frontend/src/components/ui/badge.tsx +0 -39
- package/templates/scaffold/app/frontend/src/components/ui/button.tsx +0 -60
- package/templates/scaffold/app/frontend/src/components/ui/card.tsx +0 -75
- package/templates/scaffold/app/frontend/src/components/ui/input.tsx +0 -21
- package/templates/scaffold/app/frontend/src/components/ui/table.tsx +0 -90
- /package/src/modules/{supplier-portal → accounting/executor}/.gitkeep +0 -0
- /package/templates/scaffold/app/{docs/actors/.gitkeep → backend/seed/data/AuditEntry.jsonl} +0 -0
- /package/templates/scaffold/app/{docs/business-flow/.gitkeep → backend/seed/data/ChangeDetail.jsonl} +0 -0
- /package/templates/scaffold/app/{docs/resolver/.gitkeep → backend/seed/data/Company.jsonl} +0 -0
- /package/templates/scaffold/app/{docs/screen/.gitkeep → backend/seed/data/PolicyFieldRule.jsonl} +0 -0
- /package/templates/{config → scaffold/project}/license.config.json +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# CreateProfitCenter
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
createProfitCenter establishes a new profit center in DRAFT status within the management accounting module. A profit center represents a discrete business segment for which profitability can be independently evaluated. It carries a company reference, a unique code within the company scope, a name, a required valid-from date, an optional valid-to date, an optional description, and an optional responsible person reference.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Profit center is always created in DRAFT status
|
|
10
|
+
- Requires a valid `companyId` referencing an ACTIVE company from the organization module
|
|
11
|
+
- Requires a `code` that is unique within the company scope
|
|
12
|
+
- Requires a `name`
|
|
13
|
+
- Requires a `validFrom` date
|
|
14
|
+
- `validTo` is optional; when provided, it must be on or after the `validFrom` date
|
|
15
|
+
- `description` is optional and can be set on creation
|
|
16
|
+
- `responsiblePersonId` is optional and can be set on creation
|
|
17
|
+
- Profit centers are scoped to a company; profit centers from different companies are fully isolated
|
|
18
|
+
- Emits an audit event recording the acting user, timestamp, and initial field values
|
|
19
|
+
|
|
20
|
+
## Process Flow
|
|
21
|
+
|
|
22
|
+
```mermaid
|
|
23
|
+
flowchart TD
|
|
24
|
+
A[Receive create profit center request] --> B{Company exists and is ACTIVE?}
|
|
25
|
+
B -->|No| C[Return error: COMPANY_NOT_FOUND]
|
|
26
|
+
B -->|Yes| D{Code unique within company?}
|
|
27
|
+
D -->|No| E[Return error: DUPLICATE_PROFIT_CENTER_CODE]
|
|
28
|
+
D -->|Yes| F{Name provided?}
|
|
29
|
+
F -->|No| G[Return error: INVALID_NAME]
|
|
30
|
+
F -->|Yes| H{validFrom provided?}
|
|
31
|
+
H -->|No| I[Return error: VALID_FROM_REQUIRED]
|
|
32
|
+
H -->|Yes| J{validTo >= validFrom when both set?}
|
|
33
|
+
J -->|No| K[Return error: INVALID_VALIDITY_PERIOD]
|
|
34
|
+
J -->|Yes| L[Create profit center in DRAFT status]
|
|
35
|
+
L --> M[Emit audit event]
|
|
36
|
+
M --> N[Return created profit center]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## External Dependencies
|
|
40
|
+
|
|
41
|
+
- [organization::getCompany](../../../organization/docs/queries/GetCompany.md) — Validates that the referenced company exists and is ACTIVE
|
|
42
|
+
|
|
43
|
+
## Error Scenarios
|
|
44
|
+
|
|
45
|
+
- **COMPANY_NOT_FOUND**: Referenced company does not exist or is not in ACTIVE status
|
|
46
|
+
- **DUPLICATE_PROFIT_CENTER_CODE**: A profit center with the same code already exists within the company
|
|
47
|
+
- **INVALID_NAME**: Name is missing or empty
|
|
48
|
+
- **VALID_FROM_REQUIRED**: validFrom date is required but not provided
|
|
49
|
+
- **INVALID_VALIDITY_PERIOD**: validTo is before validFrom
|
|
50
|
+
|
|
51
|
+
## Test Cases
|
|
52
|
+
|
|
53
|
+
- creates profit center in DRAFT status with required fields
|
|
54
|
+
- returns error when company does not exist
|
|
55
|
+
- returns error when company is not ACTIVE
|
|
56
|
+
- returns error when code already exists within the company
|
|
57
|
+
- returns error when name is missing
|
|
58
|
+
- returns error when validFrom is not provided
|
|
59
|
+
- returns error when validTo is before validFrom
|
|
60
|
+
- creates profit center with optional description
|
|
61
|
+
- creates profit center without validTo
|
|
62
|
+
- profit centers from different companies are isolated
|
|
63
|
+
- emits audit event recording acting user, timestamp, and initial field values
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# CreateProfitCenterHierarchy
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
createProfitCenterHierarchy establishes a new profit center hierarchy within a company. The hierarchy provides the tree structure required for organizing profit centers into grouping nodes for hierarchical roll-up profitability reporting. A hierarchy carries a name and company reference. Hierarchies are scoped to a company.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Requires a valid `companyId` referencing an ACTIVE company from the organization module
|
|
10
|
+
- Requires a `name` for the hierarchy
|
|
11
|
+
- Hierarchy is scoped to a company; hierarchies from different companies are fully isolated
|
|
12
|
+
- A company can have multiple profit center hierarchies
|
|
13
|
+
- Emits an audit event recording the acting user, timestamp, and initial field values
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive create profit center hierarchy request] --> B{Company exists and is ACTIVE?}
|
|
20
|
+
B -->|No| C[Return error: COMPANY_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Name provided?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_NAME]
|
|
23
|
+
D -->|Yes| F[Create profit center hierarchy]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return created hierarchy]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- [organization::getCompany](../../../organization/docs/queries/GetCompany.md) — Validates that the referenced company exists and is ACTIVE
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **COMPANY_NOT_FOUND**: Referenced company does not exist or is not in ACTIVE status
|
|
35
|
+
- **INVALID_NAME**: Hierarchy name is missing or empty
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- creates a profit center hierarchy with name and company reference
|
|
40
|
+
- returns error when company does not exist
|
|
41
|
+
- returns error when company is not ACTIVE
|
|
42
|
+
- returns error when name is missing
|
|
43
|
+
- hierarchies from different companies are isolated
|
|
44
|
+
- a company can have multiple profit center hierarchies
|
|
45
|
+
- emits audit event recording acting user, timestamp, and initial field values
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# CreateProfitCenterHierarchyNode
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
createProfitCenterHierarchyNode adds a new node to an existing profit center hierarchy. Nodes form a tree structure with parent-child relationships, supporting hierarchical roll-up profitability reporting. A root node must be created before child nodes can be added. The same structural rules as cost center hierarchy nodes apply.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Hierarchy must exist
|
|
10
|
+
- Parent node must exist when creating a child node (except for root node creation)
|
|
11
|
+
- A root node must be established before child nodes can be added
|
|
12
|
+
- A node cannot reference itself as its parent (no self-referencing)
|
|
13
|
+
- Creating a node must not introduce a circular reference in the hierarchy
|
|
14
|
+
- Node carries a name, sort order, and level attribute
|
|
15
|
+
- Emits an audit event recording the acting user, timestamp, and initial field values
|
|
16
|
+
|
|
17
|
+
## Process Flow
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart TD
|
|
21
|
+
A[Receive create hierarchy node request] --> B{Hierarchy exists?}
|
|
22
|
+
B -->|No| C[Return error: HIERARCHY_NOT_FOUND]
|
|
23
|
+
B -->|Yes| D{Is root node creation?}
|
|
24
|
+
D -->|Yes| E{Root node already exists?}
|
|
25
|
+
E -->|Yes| F[Return error: DUPLICATE_ROOT_NODE]
|
|
26
|
+
E -->|No| G[Create root node]
|
|
27
|
+
D -->|No| H{Parent node exists?}
|
|
28
|
+
H -->|No| I[Return error: PARENT_NODE_NOT_FOUND]
|
|
29
|
+
H -->|Yes| J{Self-referencing?}
|
|
30
|
+
J -->|Yes| K[Return error: SELF_REFERENCE]
|
|
31
|
+
J -->|No| L{Circular reference?}
|
|
32
|
+
L -->|Yes| M[Return error: CIRCULAR_REFERENCE]
|
|
33
|
+
L -->|No| N[Create child node under parent]
|
|
34
|
+
G --> O[Emit audit event]
|
|
35
|
+
N --> O
|
|
36
|
+
O --> P[Return created node]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## External Dependencies
|
|
40
|
+
|
|
41
|
+
- None
|
|
42
|
+
|
|
43
|
+
## Error Scenarios
|
|
44
|
+
|
|
45
|
+
- **HIERARCHY_NOT_FOUND**: Referenced hierarchy does not exist
|
|
46
|
+
- **PARENT_NODE_NOT_FOUND**: Referenced parent node does not exist within the hierarchy
|
|
47
|
+
- **DUPLICATE_ROOT_NODE**: A root node already exists in this hierarchy
|
|
48
|
+
- **SELF_REFERENCE**: Node cannot reference itself as its parent
|
|
49
|
+
- **CIRCULAR_REFERENCE**: Creating this node would introduce a circular reference in the hierarchy
|
|
50
|
+
|
|
51
|
+
## Test Cases
|
|
52
|
+
|
|
53
|
+
- creates a root node in an existing hierarchy
|
|
54
|
+
- creates a child node under an existing parent node
|
|
55
|
+
- returns error when hierarchy does not exist
|
|
56
|
+
- returns error when parent node does not exist
|
|
57
|
+
- returns error when attempting to create a second root node
|
|
58
|
+
- returns error when node references itself as parent
|
|
59
|
+
- returns error when node would create a circular reference
|
|
60
|
+
- emits audit event recording acting user, timestamp, and initial field values
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# DeactivateCostElement
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deactivateCostElement transitions a cost element from ACTIVE status to INACTIVE status. Once inactive, the cost element can no longer be used for new cost postings or allocations. Historical postings referencing this element remain intact.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Cost element must exist
|
|
10
|
+
- Cost element must be in ACTIVE status to be deactivated
|
|
11
|
+
- Deactivating a DRAFT or already INACTIVE cost element is rejected as an invalid state transition
|
|
12
|
+
- Existing historical postings referencing this cost element are not affected
|
|
13
|
+
- Emits an audit event recording the status transition and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive deactivate cost element request] --> B{Cost element exists?}
|
|
20
|
+
B -->|No| C[Return error: COST_ELEMENT_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Status is ACTIVE?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Transition status from ACTIVE to INACTIVE]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return deactivated cost element]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **COST_ELEMENT_NOT_FOUND**: Cost element with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Cost element is not in ACTIVE status (e.g., DRAFT or already INACTIVE)
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deactivates an ACTIVE cost element transitioning it to INACTIVE status
|
|
40
|
+
- returns error when cost element does not exist
|
|
41
|
+
- returns error when cost element is in DRAFT status
|
|
42
|
+
- returns error when cost element is already INACTIVE
|
|
43
|
+
- emits audit event recording the status transition and acting user
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# DeactivateProfitCenter
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deactivateProfitCenter transitions a profit center from ACTIVE status to INACTIVE status. Once inactive, the profit center can no longer receive new transaction assignments. Historical transactions referencing this profit center remain intact. Only ACTIVE profit centers can be deactivated; deactivating a DRAFT profit center is not permitted.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Profit center must exist
|
|
10
|
+
- Profit center must be in ACTIVE status to be deactivated
|
|
11
|
+
- Deactivating a DRAFT profit center is rejected as an invalid state transition
|
|
12
|
+
- Deactivating an already INACTIVE profit center is rejected as an invalid state transition
|
|
13
|
+
- Existing historical transactions referencing this profit center are not affected
|
|
14
|
+
- Emits an audit event recording the status transition and acting user
|
|
15
|
+
|
|
16
|
+
## Process Flow
|
|
17
|
+
|
|
18
|
+
```mermaid
|
|
19
|
+
flowchart TD
|
|
20
|
+
A[Receive deactivate profit center request] --> B{Profit center exists?}
|
|
21
|
+
B -->|No| C[Return error: PROFIT_CENTER_NOT_FOUND]
|
|
22
|
+
B -->|Yes| D{Status is ACTIVE?}
|
|
23
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
24
|
+
D -->|Yes| F[Transition status from ACTIVE to INACTIVE]
|
|
25
|
+
F --> G[Emit audit event]
|
|
26
|
+
G --> H[Return deactivated profit center]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## External Dependencies
|
|
30
|
+
|
|
31
|
+
- None
|
|
32
|
+
|
|
33
|
+
## Error Scenarios
|
|
34
|
+
|
|
35
|
+
- **PROFIT_CENTER_NOT_FOUND**: Profit center with the specified ID does not exist
|
|
36
|
+
- **INVALID_STATE**: Profit center is not in ACTIVE status (e.g., DRAFT or already INACTIVE)
|
|
37
|
+
|
|
38
|
+
## Test Cases
|
|
39
|
+
|
|
40
|
+
- deactivates an ACTIVE profit center transitioning it to INACTIVE status
|
|
41
|
+
- returns error when profit center does not exist
|
|
42
|
+
- returns error when profit center is in DRAFT status
|
|
43
|
+
- returns error when profit center is already INACTIVE
|
|
44
|
+
- emits audit event recording the status transition and acting user
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DeleteAllocationCycle
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteAllocationCycle permanently removes an allocation cycle that is in DRAFT status. Cycles in VALIDATED, EXECUTED, POSTED, or REVERSED status cannot be deleted.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Allocation cycle must exist
|
|
10
|
+
- Only DRAFT allocation cycles can be deleted
|
|
11
|
+
- Cycles in VALIDATED, EXECUTED, POSTED, or REVERSED status cannot be deleted
|
|
12
|
+
- Deletion removes the cycle and all associated allocation rules
|
|
13
|
+
- Emits an audit event recording the deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete allocation cycle request] --> B{Allocation cycle exists?}
|
|
20
|
+
B -->|No| C[Return error: ALLOCATION_CYCLE_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Status is DRAFT?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Delete allocation cycle and associated rules]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return success]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **ALLOCATION_CYCLE_NOT_FOUND**: Allocation cycle with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Allocation cycle is not in DRAFT status
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deletes a DRAFT allocation cycle successfully
|
|
40
|
+
- deletes a DRAFT allocation cycle and removes associated rules
|
|
41
|
+
- returns error when allocation cycle does not exist
|
|
42
|
+
- returns error when allocation cycle is in VALIDATED status
|
|
43
|
+
- returns error when allocation cycle is in EXECUTED status
|
|
44
|
+
- returns error when allocation cycle is in POSTED status
|
|
45
|
+
- returns error when allocation cycle is in REVERSED status
|
|
46
|
+
- emits audit event recording the deletion and acting user
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# DeleteAllocationRule
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteAllocationRule removes an allocation rule from an allocation cycle. Rules can only be removed when the cycle is in DRAFT status.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Allocation rule must exist
|
|
10
|
+
- Parent allocation cycle must be in DRAFT status
|
|
11
|
+
- Rules cannot be removed from cycles in VALIDATED, EXECUTED, POSTED, or REVERSED status
|
|
12
|
+
- Deletion permanently removes the rule from the cycle
|
|
13
|
+
- Emits an audit event recording the rule deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete allocation rule request] --> B{Allocation rule exists?}
|
|
20
|
+
B -->|No| C[Return error: ALLOCATION_RULE_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Parent cycle status is DRAFT?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Delete allocation rule]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return success]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **ALLOCATION_RULE_NOT_FOUND**: Allocation rule with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Parent allocation cycle is not in DRAFT status
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deletes an allocation rule from a DRAFT allocation cycle
|
|
40
|
+
- returns error when allocation rule does not exist
|
|
41
|
+
- returns error when parent cycle is in VALIDATED status
|
|
42
|
+
- returns error when parent cycle is in EXECUTED status
|
|
43
|
+
- returns error when parent cycle is in POSTED status
|
|
44
|
+
- returns error when parent cycle is in REVERSED status
|
|
45
|
+
- emits audit event recording the rule deletion and acting user
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DeleteBudget
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteBudget permanently removes a budget that is in DRAFT status. Deletion also removes all associated line items. Budgets in SUBMITTED, APPROVED, ACTIVE, or CLOSED status cannot be deleted.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Budget must exist
|
|
10
|
+
- Only DRAFT budgets can be deleted
|
|
11
|
+
- Budgets in SUBMITTED, APPROVED, ACTIVE, or CLOSED status cannot be deleted
|
|
12
|
+
- Deletion removes the budget and all associated line items
|
|
13
|
+
- Emits an audit event recording the deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete budget request] --> B{Budget exists?}
|
|
20
|
+
B -->|No| C[Return error: BUDGET_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Status is DRAFT?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Delete budget and all associated line items]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return success]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **BUDGET_NOT_FOUND**: Budget with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Budget is not in DRAFT status
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deletes a DRAFT budget successfully
|
|
40
|
+
- deletes a DRAFT budget and removes all associated line items
|
|
41
|
+
- returns error when budget does not exist
|
|
42
|
+
- returns error when budget is in SUBMITTED status
|
|
43
|
+
- returns error when budget is in APPROVED status
|
|
44
|
+
- returns error when budget is in ACTIVE status
|
|
45
|
+
- returns error when budget is in CLOSED status
|
|
46
|
+
- emits audit event recording the deletion and acting user
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# DeleteBudgetLineItem
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteBudgetLineItem removes a line item from a budget. Line items can only be removed when the parent budget is in DRAFT status.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Budget line item must exist
|
|
10
|
+
- Parent budget must be in DRAFT status
|
|
11
|
+
- Line items cannot be removed from budgets in SUBMITTED, APPROVED, ACTIVE, or CLOSED status
|
|
12
|
+
- Deletion permanently removes the line item from the budget
|
|
13
|
+
- Emits an audit event recording the line item deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete budget line item request] --> B{Budget line item exists?}
|
|
20
|
+
B -->|No| C[Return error: BUDGET_LINE_ITEM_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Parent budget status is DRAFT?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Delete budget line item]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return success]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **BUDGET_LINE_ITEM_NOT_FOUND**: Budget line item with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Parent budget is not in DRAFT status
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deletes a line item from a DRAFT budget
|
|
40
|
+
- returns error when budget line item does not exist
|
|
41
|
+
- returns error when parent budget is in SUBMITTED status
|
|
42
|
+
- returns error when parent budget is in APPROVED status
|
|
43
|
+
- returns error when parent budget is in ACTIVE status
|
|
44
|
+
- returns error when parent budget is in CLOSED status
|
|
45
|
+
- emits audit event recording the line item deletion and acting user
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# DeleteCostCenter
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteCostCenter permanently removes a cost center. A cost center can only be deleted if it has no associated cost postings, budget line items, or allocation rules referencing it. This prevents orphaning of financial records and ensures data integrity.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Cost center must exist
|
|
10
|
+
- Cost center must have no associated cost postings
|
|
11
|
+
- Cost center must have no associated budget line items
|
|
12
|
+
- Cost center must have no associated allocation rules referencing it
|
|
13
|
+
- Deletion permanently removes the cost center record
|
|
14
|
+
- Emits an audit event recording the deletion and acting user
|
|
15
|
+
|
|
16
|
+
## Process Flow
|
|
17
|
+
|
|
18
|
+
```mermaid
|
|
19
|
+
flowchart TD
|
|
20
|
+
A[Receive delete cost center request] --> B{Cost center exists?}
|
|
21
|
+
B -->|No| C[Return error: COST_CENTER_NOT_FOUND]
|
|
22
|
+
B -->|Yes| D{Has associated cost postings?}
|
|
23
|
+
D -->|Yes| E[Return error: COST_CENTER_HAS_POSTINGS]
|
|
24
|
+
D -->|No| F{Has associated budget line items?}
|
|
25
|
+
F -->|Yes| G[Return error: COST_CENTER_HAS_BUDGET_ITEMS]
|
|
26
|
+
F -->|No| H{Has associated allocation rules?}
|
|
27
|
+
H -->|Yes| I[Return error: COST_CENTER_HAS_ALLOCATION_RULES]
|
|
28
|
+
H -->|No| J[Delete cost center]
|
|
29
|
+
J --> K[Emit audit event]
|
|
30
|
+
K --> L[Return success]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## External Dependencies
|
|
34
|
+
|
|
35
|
+
- None
|
|
36
|
+
|
|
37
|
+
## Error Scenarios
|
|
38
|
+
|
|
39
|
+
- **COST_CENTER_NOT_FOUND**: Cost center with the specified ID does not exist
|
|
40
|
+
- **COST_CENTER_HAS_POSTINGS**: Cost center has associated cost postings and cannot be deleted
|
|
41
|
+
- **COST_CENTER_HAS_BUDGET_ITEMS**: Cost center has associated budget line items and cannot be deleted
|
|
42
|
+
- **COST_CENTER_HAS_ALLOCATION_RULES**: Cost center is referenced by allocation rules and cannot be deleted
|
|
43
|
+
|
|
44
|
+
## Test Cases
|
|
45
|
+
|
|
46
|
+
- returns error when cost center does not exist
|
|
47
|
+
- returns error when cost center has postings
|
|
48
|
+
- returns error when cost center has budget items
|
|
49
|
+
- returns error when cost center has allocation rules
|
|
50
|
+
- deletes cost center when no dependencies exist
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# DeleteCostCenterHierarchyNode
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteCostCenterHierarchyNode removes a node from a cost center hierarchy. A node can only be deleted if it has no child nodes and no cost centers assigned to it. This prevents orphaning of child structures and ensures data integrity.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Hierarchy node must exist
|
|
10
|
+
- Node must have no child nodes; nodes with children cannot be deleted
|
|
11
|
+
- Node must have no cost centers assigned to it; nodes with assigned cost centers cannot be deleted
|
|
12
|
+
- Deletion permanently removes the node from the hierarchy
|
|
13
|
+
- Emits an audit event recording the deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete hierarchy node request] --> B{Node exists?}
|
|
20
|
+
B -->|No| C[Return error: NODE_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Node has child nodes?}
|
|
22
|
+
D -->|Yes| E[Return error: NODE_HAS_CHILDREN]
|
|
23
|
+
D -->|No| F{Node has assigned cost centers?}
|
|
24
|
+
F -->|Yes| G[Return error: NODE_HAS_ASSIGNED_COST_CENTERS]
|
|
25
|
+
F -->|No| H[Delete hierarchy node]
|
|
26
|
+
H --> I[Emit audit event]
|
|
27
|
+
I --> J[Return success]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## External Dependencies
|
|
31
|
+
|
|
32
|
+
- None
|
|
33
|
+
|
|
34
|
+
## Error Scenarios
|
|
35
|
+
|
|
36
|
+
- **NODE_NOT_FOUND**: Hierarchy node with the specified ID does not exist
|
|
37
|
+
- **NODE_HAS_CHILDREN**: Node has child nodes that must be reassigned or removed first
|
|
38
|
+
- **NODE_HAS_ASSIGNED_COST_CENTERS**: Node has cost centers assigned that must be reassigned first
|
|
39
|
+
|
|
40
|
+
## Test Cases
|
|
41
|
+
|
|
42
|
+
- returns error when node does not exist
|
|
43
|
+
- returns error when node has children
|
|
44
|
+
- returns error when node has assigned cost centers
|
|
45
|
+
- deletes node when it has no children and no assigned cost centers
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# DeleteCostElement
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteCostElement permanently removes a cost element that is in DRAFT status. Cost elements in ACTIVE or INACTIVE status cannot be deleted because they may be referenced by existing cost postings, allocations, or budget line items.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Cost element must exist
|
|
10
|
+
- Only DRAFT cost elements can be deleted
|
|
11
|
+
- ACTIVE and INACTIVE cost elements cannot be deleted
|
|
12
|
+
- Deletion permanently removes the cost element record
|
|
13
|
+
- Emits an audit event recording the deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete cost element request] --> B{Cost element exists?}
|
|
20
|
+
B -->|No| C[Return error: COST_ELEMENT_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Status is DRAFT?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Delete cost element]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return success]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **COST_ELEMENT_NOT_FOUND**: Cost element with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Cost element is not in DRAFT status (ACTIVE or INACTIVE elements cannot be deleted)
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deletes a DRAFT cost element successfully
|
|
40
|
+
- returns error when cost element does not exist
|
|
41
|
+
- returns error when cost element is in ACTIVE status
|
|
42
|
+
- returns error when cost element is in INACTIVE status
|
|
43
|
+
- emits audit event recording the deletion and acting user
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# DeleteInternalOrder
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteInternalOrder permanently removes an internal order that is in CREATED status. Orders in RELEASED, TECHNICALLY_COMPLETED, or CLOSED status cannot be deleted because they may have associated cost postings or budget assignments.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Internal order must exist
|
|
10
|
+
- Only CREATED orders can be deleted
|
|
11
|
+
- RELEASED, TECHNICALLY_COMPLETED, and CLOSED orders cannot be deleted
|
|
12
|
+
- Deletion removes the order and any associated budget assignment
|
|
13
|
+
- Emits an audit event recording the deletion and acting user
|
|
14
|
+
|
|
15
|
+
## Process Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
A[Receive delete internal order request] --> B{Internal order exists?}
|
|
20
|
+
B -->|No| C[Return error: INTERNAL_ORDER_NOT_FOUND]
|
|
21
|
+
B -->|Yes| D{Status is CREATED?}
|
|
22
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
23
|
+
D -->|Yes| F[Delete internal order and associated budget assignment]
|
|
24
|
+
F --> G[Emit audit event]
|
|
25
|
+
G --> H[Return success]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## External Dependencies
|
|
29
|
+
|
|
30
|
+
- None
|
|
31
|
+
|
|
32
|
+
## Error Scenarios
|
|
33
|
+
|
|
34
|
+
- **INTERNAL_ORDER_NOT_FOUND**: Internal order with the specified ID does not exist
|
|
35
|
+
- **INVALID_STATE**: Internal order is not in CREATED status (RELEASED, TECHNICALLY_COMPLETED, or CLOSED orders cannot be deleted)
|
|
36
|
+
|
|
37
|
+
## Test Cases
|
|
38
|
+
|
|
39
|
+
- deletes a CREATED internal order successfully
|
|
40
|
+
- deletes a CREATED internal order and removes associated budget assignment
|
|
41
|
+
- returns error when internal order does not exist
|
|
42
|
+
- returns error when internal order is in RELEASED status
|
|
43
|
+
- returns error when internal order is in TECHNICALLY_COMPLETED status
|
|
44
|
+
- returns error when internal order is in CLOSED status
|
|
45
|
+
- emits audit event recording the deletion and acting user
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DeleteProfitCenter
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
deleteProfitCenter permanently removes a profit center that is in DRAFT status. ACTIVE and INACTIVE profit centers cannot be deleted. Deletion also removes any hierarchy assignment associated with the profit center.
|
|
6
|
+
|
|
7
|
+
## Business Rules
|
|
8
|
+
|
|
9
|
+
- Profit center must exist
|
|
10
|
+
- Only DRAFT profit centers can be deleted
|
|
11
|
+
- ACTIVE profit centers cannot be deleted; they must be deactivated first
|
|
12
|
+
- INACTIVE profit centers cannot be deleted
|
|
13
|
+
- Deletion removes the profit center and its hierarchy assignment
|
|
14
|
+
- Emits an audit event recording the deletion and acting user
|
|
15
|
+
|
|
16
|
+
## Process Flow
|
|
17
|
+
|
|
18
|
+
```mermaid
|
|
19
|
+
flowchart TD
|
|
20
|
+
A[Receive delete profit center request] --> B{Profit center exists?}
|
|
21
|
+
B -->|No| C[Return error: PROFIT_CENTER_NOT_FOUND]
|
|
22
|
+
B -->|Yes| D{Status is DRAFT?}
|
|
23
|
+
D -->|No| E[Return error: INVALID_STATE]
|
|
24
|
+
D -->|Yes| F[Remove hierarchy assignment]
|
|
25
|
+
F --> G[Delete profit center]
|
|
26
|
+
G --> H[Emit audit event]
|
|
27
|
+
H --> I[Return success]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## External Dependencies
|
|
31
|
+
|
|
32
|
+
- None
|
|
33
|
+
|
|
34
|
+
## Error Scenarios
|
|
35
|
+
|
|
36
|
+
- **PROFIT_CENTER_NOT_FOUND**: Profit center with the specified ID does not exist
|
|
37
|
+
- **INVALID_STATE**: Profit center is not in DRAFT status (ACTIVE or INACTIVE profit centers cannot be deleted)
|
|
38
|
+
|
|
39
|
+
## Test Cases
|
|
40
|
+
|
|
41
|
+
- deletes a DRAFT profit center successfully
|
|
42
|
+
- deletes a DRAFT profit center and removes its hierarchy assignment
|
|
43
|
+
- returns error when profit center does not exist
|
|
44
|
+
- returns error when profit center is in ACTIVE status
|
|
45
|
+
- returns error when profit center is in INACTIVE status
|
|
46
|
+
- emits audit event recording the deletion and acting user
|