@tailor-platform/erp-kit 0.7.0 → 0.9.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.
Files changed (756) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +8 -4
  3. package/dist/cli.mjs +70 -70
  4. package/package.json +1 -1
  5. package/skills/erp-kit-app-1-requirements/SKILL.md +6 -0
  6. package/skills/erp-kit-app-2-requirements-review/SKILL.md +6 -0
  7. package/skills/erp-kit-app-3-plan/SKILL.md +6 -0
  8. package/skills/erp-kit-app-4-plan-review/SKILL.md +6 -0
  9. package/skills/erp-kit-app-5-impl-backend/SKILL.md +12 -5
  10. package/skills/erp-kit-app-5-impl-backend/references/app-config.md +1 -1
  11. package/skills/erp-kit-app-5-impl-backend/references/module-wiring.md +37 -12
  12. package/skills/erp-kit-app-6-impl-frontend/SKILL.md +9 -1
  13. package/skills/erp-kit-app-6-impl-frontend/references/component.md +90 -0
  14. package/skills/erp-kit-app-6-impl-frontend/references/detail-view.md +255 -0
  15. package/skills/erp-kit-app-6-impl-frontend/references/pages.md +1 -5
  16. package/skills/erp-kit-app-7-impl-review/SKILL.md +9 -2
  17. package/skills/erp-kit-app-7-impl-review/references/module-wiring-parity.md +14 -8
  18. package/skills/erp-kit-app-shared/SKILL.md +2 -0
  19. package/skills/erp-kit-mock-scenario/SKILL.md +6 -0
  20. package/skills/erp-kit-module-1-requirements/SKILL.md +6 -0
  21. package/skills/erp-kit-module-2-requirements-review/SKILL.md +6 -0
  22. package/skills/erp-kit-module-3-plan/SKILL.md +6 -0
  23. package/skills/erp-kit-module-3-update-plan/SKILL.md +6 -0
  24. package/skills/erp-kit-module-4-plan-review/SKILL.md +6 -0
  25. package/skills/erp-kit-module-5-impl/SKILL.md +6 -0
  26. package/skills/erp-kit-module-6-impl-review/SKILL.md +22 -19
  27. package/skills/erp-kit-module-shared/SKILL.md +2 -0
  28. package/skills/erp-kit-module-shared/references/commands.md +71 -1
  29. package/skills/erp-kit-update/SKILL.md +6 -0
  30. package/src/commands/index.ts +8 -2
  31. package/src/commands/init.test.ts +24 -8
  32. package/src/commands/init.ts +5 -12
  33. package/src/commands/lib/distribute.test.ts +1 -20
  34. package/src/commands/lib/distribute.ts +0 -14
  35. package/src/commands/update.test.ts +1 -1
  36. package/src/generator/scaffold.ts +25 -4
  37. package/src/module.ts +4 -1
  38. package/src/modules/accounting/README.md +63 -0
  39. package/src/modules/accounting/command/activateBudget.generated.ts +6 -0
  40. package/src/modules/accounting/command/activateBudget.test.ts +119 -0
  41. package/src/modules/accounting/command/activateBudget.ts +77 -0
  42. package/src/modules/accounting/command/activateCostElement.generated.ts +6 -0
  43. package/src/modules/accounting/command/activateCostElement.test.ts +59 -0
  44. package/src/modules/accounting/command/activateCostElement.ts +41 -0
  45. package/src/modules/accounting/command/activateProfitCenter.generated.ts +6 -0
  46. package/src/modules/accounting/command/activateProfitCenter.test.ts +60 -0
  47. package/src/modules/accounting/command/activateProfitCenter.ts +38 -0
  48. package/src/modules/accounting/command/approveBudget.generated.ts +6 -0
  49. package/src/modules/accounting/command/approveBudget.test.ts +69 -0
  50. package/src/modules/accounting/command/approveBudget.ts +47 -0
  51. package/src/modules/accounting/command/assignCostCenterToHierarchyNode.generated.ts +6 -0
  52. package/src/modules/accounting/command/assignCostCenterToHierarchyNode.test.ts +112 -0
  53. package/src/modules/accounting/command/assignCostCenterToHierarchyNode.ts +67 -0
  54. package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.generated.ts +6 -0
  55. package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.test.ts +123 -0
  56. package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.ts +71 -0
  57. package/src/modules/accounting/command/closeBudget.generated.ts +6 -0
  58. package/src/modules/accounting/command/closeBudget.test.ts +93 -0
  59. package/src/modules/accounting/command/closeBudget.ts +40 -0
  60. package/src/modules/accounting/command/closeInternalOrder.generated.ts +6 -0
  61. package/src/modules/accounting/command/closeInternalOrder.test.ts +74 -0
  62. package/src/modules/accounting/command/closeInternalOrder.ts +38 -0
  63. package/src/modules/accounting/command/consumeCommitment.generated.ts +6 -0
  64. package/src/modules/accounting/command/consumeCommitment.test.ts +123 -0
  65. package/src/modules/accounting/command/consumeCommitment.ts +62 -0
  66. package/src/modules/accounting/command/createAllocationCycle.generated.ts +6 -0
  67. package/src/modules/accounting/command/createAllocationCycle.test.ts +166 -0
  68. package/src/modules/accounting/command/createAllocationCycle.ts +68 -0
  69. package/src/modules/accounting/command/createAllocationRule.generated.ts +6 -0
  70. package/src/modules/accounting/command/createAllocationRule.test.ts +195 -0
  71. package/src/modules/accounting/command/createAllocationRule.ts +103 -0
  72. package/src/modules/accounting/command/createBudget.generated.ts +6 -0
  73. package/src/modules/accounting/command/createBudget.test.ts +159 -0
  74. package/src/modules/accounting/command/createBudget.ts +100 -0
  75. package/src/modules/accounting/command/createBudgetLineItem.generated.ts +6 -0
  76. package/src/modules/accounting/command/createBudgetLineItem.test.ts +178 -0
  77. package/src/modules/accounting/command/createBudgetLineItem.ts +104 -0
  78. package/src/modules/accounting/command/createCostCenter.generated.ts +6 -0
  79. package/src/modules/accounting/command/createCostCenter.test.ts +179 -0
  80. package/src/modules/accounting/command/createCostCenter.ts +112 -0
  81. package/src/modules/accounting/command/createCostCenterHierarchy.generated.ts +6 -0
  82. package/src/modules/accounting/command/createCostCenterHierarchy.test.ts +91 -0
  83. package/src/modules/accounting/command/createCostCenterHierarchy.ts +48 -0
  84. package/src/modules/accounting/command/createCostCenterHierarchyNode.generated.ts +6 -0
  85. package/src/modules/accounting/command/createCostCenterHierarchyNode.test.ts +171 -0
  86. package/src/modules/accounting/command/createCostCenterHierarchyNode.ts +117 -0
  87. package/src/modules/accounting/command/createCostElement.generated.ts +6 -0
  88. package/src/modules/accounting/command/createCostElement.test.ts +317 -0
  89. package/src/modules/accounting/command/createCostElement.ts +149 -0
  90. package/src/modules/accounting/command/createInternalOrder.generated.ts +6 -0
  91. package/src/modules/accounting/command/createInternalOrder.test.ts +206 -0
  92. package/src/modules/accounting/command/createInternalOrder.ts +104 -0
  93. package/src/modules/accounting/command/createPlanVersion.generated.ts +6 -0
  94. package/src/modules/accounting/command/createPlanVersion.test.ts +230 -0
  95. package/src/modules/accounting/command/createPlanVersion.ts +71 -0
  96. package/src/modules/accounting/command/createProfitCenter.generated.ts +6 -0
  97. package/src/modules/accounting/command/createProfitCenter.test.ts +227 -0
  98. package/src/modules/accounting/command/createProfitCenter.ts +81 -0
  99. package/src/modules/accounting/command/createProfitCenterHierarchy.generated.ts +6 -0
  100. package/src/modules/accounting/command/createProfitCenterHierarchy.test.ts +91 -0
  101. package/src/modules/accounting/command/createProfitCenterHierarchy.ts +46 -0
  102. package/src/modules/accounting/command/createProfitCenterHierarchyNode.generated.ts +6 -0
  103. package/src/modules/accounting/command/createProfitCenterHierarchyNode.test.ts +160 -0
  104. package/src/modules/accounting/command/createProfitCenterHierarchyNode.ts +109 -0
  105. package/src/modules/accounting/command/deactivateCostElement.generated.ts +6 -0
  106. package/src/modules/accounting/command/deactivateCostElement.test.ts +59 -0
  107. package/src/modules/accounting/command/deactivateCostElement.ts +41 -0
  108. package/src/modules/accounting/command/deactivateProfitCenter.generated.ts +6 -0
  109. package/src/modules/accounting/command/deactivateProfitCenter.test.ts +60 -0
  110. package/src/modules/accounting/command/deactivateProfitCenter.ts +42 -0
  111. package/src/modules/accounting/command/deleteAllocationCycle.generated.ts +6 -0
  112. package/src/modules/accounting/command/deleteAllocationCycle.test.ts +90 -0
  113. package/src/modules/accounting/command/deleteAllocationCycle.ts +39 -0
  114. package/src/modules/accounting/command/deleteAllocationRule.generated.ts +6 -0
  115. package/src/modules/accounting/command/deleteAllocationRule.test.ts +98 -0
  116. package/src/modules/accounting/command/deleteAllocationRule.ts +40 -0
  117. package/src/modules/accounting/command/deleteBudget.generated.ts +6 -0
  118. package/src/modules/accounting/command/deleteBudget.test.ts +90 -0
  119. package/src/modules/accounting/command/deleteBudget.ts +35 -0
  120. package/src/modules/accounting/command/deleteBudgetLineItem.generated.ts +6 -0
  121. package/src/modules/accounting/command/deleteBudgetLineItem.test.ts +85 -0
  122. package/src/modules/accounting/command/deleteBudgetLineItem.ts +50 -0
  123. package/src/modules/accounting/command/deleteCostCenter.generated.ts +6 -0
  124. package/src/modules/accounting/command/deleteCostCenter.test.ts +79 -0
  125. package/src/modules/accounting/command/deleteCostCenter.ts +67 -0
  126. package/src/modules/accounting/command/deleteCostCenterHierarchyNode.generated.ts +6 -0
  127. package/src/modules/accounting/command/deleteCostCenterHierarchyNode.test.ts +59 -0
  128. package/src/modules/accounting/command/deleteCostCenterHierarchyNode.ts +58 -0
  129. package/src/modules/accounting/command/deleteCostElement.generated.ts +6 -0
  130. package/src/modules/accounting/command/deleteCostElement.test.ts +58 -0
  131. package/src/modules/accounting/command/deleteCostElement.ts +33 -0
  132. package/src/modules/accounting/command/deleteInternalOrder.generated.ts +6 -0
  133. package/src/modules/accounting/command/deleteInternalOrder.test.ts +81 -0
  134. package/src/modules/accounting/command/deleteInternalOrder.ts +37 -0
  135. package/src/modules/accounting/command/deleteProfitCenter.generated.ts +6 -0
  136. package/src/modules/accounting/command/deleteProfitCenter.test.ts +68 -0
  137. package/src/modules/accounting/command/deleteProfitCenter.ts +39 -0
  138. package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.generated.ts +6 -0
  139. package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.test.ts +72 -0
  140. package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.ts +61 -0
  141. package/src/modules/accounting/command/executeAllocationCycle.generated.ts +6 -0
  142. package/src/modules/accounting/command/executeAllocationCycle.test.ts +167 -0
  143. package/src/modules/accounting/command/executeAllocationCycle.ts +94 -0
  144. package/src/modules/accounting/command/finalizeVarianceReport.generated.ts +6 -0
  145. package/src/modules/accounting/command/finalizeVarianceReport.test.ts +60 -0
  146. package/src/modules/accounting/command/finalizeVarianceReport.ts +45 -0
  147. package/src/modules/accounting/command/generateVarianceReport.generated.ts +6 -0
  148. package/src/modules/accounting/command/generateVarianceReport.test.ts +386 -0
  149. package/src/modules/accounting/command/generateVarianceReport.ts +219 -0
  150. package/src/modules/accounting/command/invalidateAllocationCycle.generated.ts +6 -0
  151. package/src/modules/accounting/command/invalidateAllocationCycle.test.ts +84 -0
  152. package/src/modules/accounting/command/invalidateAllocationCycle.ts +45 -0
  153. package/src/modules/accounting/command/moveCostCenterHierarchyNode.generated.ts +6 -0
  154. package/src/modules/accounting/command/moveCostCenterHierarchyNode.test.ts +135 -0
  155. package/src/modules/accounting/command/moveCostCenterHierarchyNode.ts +81 -0
  156. package/src/modules/accounting/command/postAllocationCycle.generated.ts +6 -0
  157. package/src/modules/accounting/command/postAllocationCycle.test.ts +98 -0
  158. package/src/modules/accounting/command/postAllocationCycle.ts +65 -0
  159. package/src/modules/accounting/command/reactivateCostElement.generated.ts +6 -0
  160. package/src/modules/accounting/command/reactivateCostElement.test.ts +59 -0
  161. package/src/modules/accounting/command/reactivateCostElement.ts +41 -0
  162. package/src/modules/accounting/command/reactivateProfitCenter.generated.ts +6 -0
  163. package/src/modules/accounting/command/reactivateProfitCenter.test.ts +60 -0
  164. package/src/modules/accounting/command/reactivateProfitCenter.ts +42 -0
  165. package/src/modules/accounting/command/recordCommitment.generated.ts +6 -0
  166. package/src/modules/accounting/command/recordCommitment.test.ts +157 -0
  167. package/src/modules/accounting/command/recordCommitment.ts +113 -0
  168. package/src/modules/accounting/command/rejectBudget.generated.ts +6 -0
  169. package/src/modules/accounting/command/rejectBudget.test.ts +105 -0
  170. package/src/modules/accounting/command/rejectBudget.ts +51 -0
  171. package/src/modules/accounting/command/releaseCommitment.generated.ts +6 -0
  172. package/src/modules/accounting/command/releaseCommitment.test.ts +94 -0
  173. package/src/modules/accounting/command/releaseCommitment.ts +51 -0
  174. package/src/modules/accounting/command/releaseInternalOrder.generated.ts +6 -0
  175. package/src/modules/accounting/command/releaseInternalOrder.test.ts +74 -0
  176. package/src/modules/accounting/command/releaseInternalOrder.ts +38 -0
  177. package/src/modules/accounting/command/reverseAllocationCycle.generated.ts +6 -0
  178. package/src/modules/accounting/command/reverseAllocationCycle.test.ts +124 -0
  179. package/src/modules/accounting/command/reverseAllocationCycle.ts +63 -0
  180. package/src/modules/accounting/command/submitBudget.generated.ts +6 -0
  181. package/src/modules/accounting/command/submitBudget.test.ts +60 -0
  182. package/src/modules/accounting/command/submitBudget.ts +51 -0
  183. package/src/modules/accounting/command/technicallyCompleteInternalOrder.generated.ts +6 -0
  184. package/src/modules/accounting/command/technicallyCompleteInternalOrder.test.ts +74 -0
  185. package/src/modules/accounting/command/technicallyCompleteInternalOrder.ts +42 -0
  186. package/src/modules/accounting/command/updateAllocationCycle.generated.ts +6 -0
  187. package/src/modules/accounting/command/updateAllocationCycle.test.ts +112 -0
  188. package/src/modules/accounting/command/updateAllocationCycle.ts +41 -0
  189. package/src/modules/accounting/command/updateBudget.generated.ts +6 -0
  190. package/src/modules/accounting/command/updateBudget.test.ts +112 -0
  191. package/src/modules/accounting/command/updateBudget.ts +44 -0
  192. package/src/modules/accounting/command/updateCostCenter.generated.ts +6 -0
  193. package/src/modules/accounting/command/updateCostCenter.test.ts +105 -0
  194. package/src/modules/accounting/command/updateCostCenter.ts +79 -0
  195. package/src/modules/accounting/command/updateCostElement.generated.ts +6 -0
  196. package/src/modules/accounting/command/updateCostElement.test.ts +265 -0
  197. package/src/modules/accounting/command/updateCostElement.ts +158 -0
  198. package/src/modules/accounting/command/updateInternalOrder.generated.ts +6 -0
  199. package/src/modules/accounting/command/updateInternalOrder.test.ts +209 -0
  200. package/src/modules/accounting/command/updateInternalOrder.ts +88 -0
  201. package/src/modules/accounting/command/updateProfitCenter.generated.ts +6 -0
  202. package/src/modules/accounting/command/updateProfitCenter.test.ts +162 -0
  203. package/src/modules/accounting/command/updateProfitCenter.ts +73 -0
  204. package/src/modules/accounting/command/validateAllocationCycle.generated.ts +6 -0
  205. package/src/modules/accounting/command/validateAllocationCycle.test.ts +141 -0
  206. package/src/modules/accounting/command/validateAllocationCycle.ts +80 -0
  207. package/src/modules/accounting/db/allocationCycle.ts +59 -0
  208. package/src/modules/accounting/db/allocationResult.ts +58 -0
  209. package/src/modules/accounting/db/allocationRule.ts +48 -0
  210. package/src/modules/accounting/db/budget.ts +84 -0
  211. package/src/modules/accounting/db/budgetLineItem.ts +64 -0
  212. package/src/modules/accounting/db/commitment.ts +60 -0
  213. package/src/modules/accounting/db/costCenter.ts +73 -0
  214. package/src/modules/accounting/db/costCenterHierarchy.ts +37 -0
  215. package/src/modules/accounting/db/costCenterHierarchyNode.ts +48 -0
  216. package/src/modules/accounting/db/costElement.ts +56 -0
  217. package/src/modules/accounting/db/internalOrder.ts +69 -0
  218. package/src/modules/accounting/db/planVersion.ts +47 -0
  219. package/src/modules/accounting/db/profitCenter.ts +52 -0
  220. package/src/modules/accounting/db/profitCenterHierarchy.ts +36 -0
  221. package/src/modules/accounting/db/profitCenterHierarchyAssignment.ts +62 -0
  222. package/src/modules/accounting/db/profitCenterHierarchyNode.ts +48 -0
  223. package/src/modules/accounting/db/varianceReport.ts +54 -0
  224. package/src/modules/accounting/db/varianceReportLine.ts +62 -0
  225. package/src/modules/accounting/docs/commands/ActivateBudget.md +54 -0
  226. package/src/modules/accounting/docs/commands/ActivateCostElement.md +43 -0
  227. package/src/modules/accounting/docs/commands/ActivateProfitCenter.md +43 -0
  228. package/src/modules/accounting/docs/commands/ApproveBudget.md +46 -0
  229. package/src/modules/accounting/docs/commands/AssignCostCenterToHierarchyNode.md +46 -0
  230. package/src/modules/accounting/docs/commands/AssignProfitCenterToHierarchyNode.md +47 -0
  231. package/src/modules/accounting/docs/commands/CloseBudget.md +47 -0
  232. package/src/modules/accounting/docs/commands/CloseInternalOrder.md +45 -0
  233. package/src/modules/accounting/docs/commands/ConsumeCommitment.md +53 -0
  234. package/src/modules/accounting/docs/commands/CreateAllocationCycle.md +55 -0
  235. package/src/modules/accounting/docs/commands/CreateAllocationRule.md +60 -0
  236. package/src/modules/accounting/docs/commands/CreateBudget.md +65 -0
  237. package/src/modules/accounting/docs/commands/CreateBudgetLineItem.md +66 -0
  238. package/src/modules/accounting/docs/commands/CreateCostCenter.md +64 -0
  239. package/src/modules/accounting/docs/commands/CreateCostCenterHierarchy.md +45 -0
  240. package/src/modules/accounting/docs/commands/CreateCostCenterHierarchyNode.md +61 -0
  241. package/src/modules/accounting/docs/commands/CreateCostElement.md +91 -0
  242. package/src/modules/accounting/docs/commands/CreateInternalOrder.md +72 -0
  243. package/src/modules/accounting/docs/commands/CreatePlanVersion.md +59 -0
  244. package/src/modules/accounting/docs/commands/CreateProfitCenter.md +63 -0
  245. package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchy.md +45 -0
  246. package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchyNode.md +60 -0
  247. package/src/modules/accounting/docs/commands/DeactivateCostElement.md +43 -0
  248. package/src/modules/accounting/docs/commands/DeactivateProfitCenter.md +44 -0
  249. package/src/modules/accounting/docs/commands/DeleteAllocationCycle.md +46 -0
  250. package/src/modules/accounting/docs/commands/DeleteAllocationRule.md +45 -0
  251. package/src/modules/accounting/docs/commands/DeleteBudget.md +46 -0
  252. package/src/modules/accounting/docs/commands/DeleteBudgetLineItem.md +45 -0
  253. package/src/modules/accounting/docs/commands/DeleteCostCenter.md +50 -0
  254. package/src/modules/accounting/docs/commands/DeleteCostCenterHierarchyNode.md +45 -0
  255. package/src/modules/accounting/docs/commands/DeleteCostElement.md +43 -0
  256. package/src/modules/accounting/docs/commands/DeleteInternalOrder.md +45 -0
  257. package/src/modules/accounting/docs/commands/DeleteProfitCenter.md +46 -0
  258. package/src/modules/accounting/docs/commands/DeleteProfitCenterHierarchyNode.md +46 -0
  259. package/src/modules/accounting/docs/commands/ExecuteAllocationCycle.md +54 -0
  260. package/src/modules/accounting/docs/commands/FinalizeVarianceReport.md +44 -0
  261. package/src/modules/accounting/docs/commands/GenerateVarianceReport.md +83 -0
  262. package/src/modules/accounting/docs/commands/InvalidateAllocationCycle.md +45 -0
  263. package/src/modules/accounting/docs/commands/MoveCostCenterHierarchyNode.md +51 -0
  264. package/src/modules/accounting/docs/commands/PostAllocationCycle.md +58 -0
  265. package/src/modules/accounting/docs/commands/ReactivateCostElement.md +43 -0
  266. package/src/modules/accounting/docs/commands/ReactivateProfitCenter.md +43 -0
  267. package/src/modules/accounting/docs/commands/RecordCommitment.md +60 -0
  268. package/src/modules/accounting/docs/commands/RejectBudget.md +49 -0
  269. package/src/modules/accounting/docs/commands/ReleaseCommitment.md +45 -0
  270. package/src/modules/accounting/docs/commands/ReleaseInternalOrder.md +44 -0
  271. package/src/modules/accounting/docs/commands/ReverseAllocationCycle.md +55 -0
  272. package/src/modules/accounting/docs/commands/SubmitBudget.md +47 -0
  273. package/src/modules/accounting/docs/commands/TechnicallyCompleteInternalOrder.md +44 -0
  274. package/src/modules/accounting/docs/commands/UpdateAllocationCycle.md +45 -0
  275. package/src/modules/accounting/docs/commands/UpdateBudget.md +47 -0
  276. package/src/modules/accounting/docs/commands/UpdateCostCenter.md +50 -0
  277. package/src/modules/accounting/docs/commands/UpdateCostElement.md +82 -0
  278. package/src/modules/accounting/docs/commands/UpdateInternalOrder.md +62 -0
  279. package/src/modules/accounting/docs/commands/UpdateProfitCenter.md +56 -0
  280. package/src/modules/accounting/docs/commands/ValidateAllocationCycle.md +57 -0
  281. package/src/modules/accounting/docs/features/budget-management.md +147 -0
  282. package/src/modules/accounting/docs/features/cost-allocation.md +129 -0
  283. package/src/modules/accounting/docs/features/cost-center-management.md +118 -0
  284. package/src/modules/accounting/docs/features/cost-element-management.md +114 -0
  285. package/src/modules/accounting/docs/features/internal-order-management.md +111 -0
  286. package/src/modules/accounting/docs/features/profit-center-management.md +120 -0
  287. package/src/modules/accounting/docs/features/variance-analysis.md +130 -0
  288. package/src/modules/accounting/docs/models/AllocationCycle.md +81 -0
  289. package/src/modules/accounting/docs/models/AllocationResult.md +37 -0
  290. package/src/modules/accounting/docs/models/AllocationRule.md +41 -0
  291. package/src/modules/accounting/docs/models/Budget.md +77 -0
  292. package/src/modules/accounting/docs/models/BudgetLineItem.md +40 -0
  293. package/src/modules/accounting/docs/models/Commitment.md +45 -0
  294. package/src/modules/accounting/docs/models/CostCenter.md +51 -0
  295. package/src/modules/accounting/docs/models/CostCenterHierarchy.md +38 -0
  296. package/src/modules/accounting/docs/models/CostCenterHierarchyNode.md +41 -0
  297. package/src/modules/accounting/docs/models/CostElement.md +66 -0
  298. package/src/modules/accounting/docs/models/InternalOrder.md +67 -0
  299. package/src/modules/accounting/docs/models/PlanVersion.md +36 -0
  300. package/src/modules/accounting/docs/models/ProfitCenter.md +66 -0
  301. package/src/modules/accounting/docs/models/ProfitCenterHierarchy.md +36 -0
  302. package/src/modules/accounting/docs/models/ProfitCenterHierarchyAssignment.md +36 -0
  303. package/src/modules/accounting/docs/models/ProfitCenterHierarchyNode.md +39 -0
  304. package/src/modules/accounting/docs/models/VarianceReport.md +58 -0
  305. package/src/modules/accounting/docs/models/VarianceReportLine.md +43 -0
  306. package/src/modules/accounting/docs/queries/CalculateBudgetAvailability.md +64 -0
  307. package/src/modules/accounting/docs/queries/GetAllocationCycle.md +43 -0
  308. package/src/modules/accounting/docs/queries/GetBudget.md +42 -0
  309. package/src/modules/accounting/docs/queries/GetCostCenter.md +38 -0
  310. package/src/modules/accounting/docs/queries/GetCostCenterHierarchy.md +45 -0
  311. package/src/modules/accounting/docs/queries/GetCostElement.md +39 -0
  312. package/src/modules/accounting/docs/queries/GetInternalOrder.md +42 -0
  313. package/src/modules/accounting/docs/queries/GetProfitCenter.md +38 -0
  314. package/src/modules/accounting/docs/queries/GetProfitCenterHierarchy.md +46 -0
  315. package/src/modules/accounting/docs/queries/GetVarianceReport.md +45 -0
  316. package/src/modules/accounting/docs/queries/ListAllocationCycles.md +63 -0
  317. package/src/modules/accounting/docs/queries/ListBudgets.md +70 -0
  318. package/src/modules/accounting/docs/queries/ListCostCenters.md +55 -0
  319. package/src/modules/accounting/docs/queries/ListCostElements.md +63 -0
  320. package/src/modules/accounting/docs/queries/ListInternalOrders.md +62 -0
  321. package/src/modules/accounting/docs/queries/ListProfitCenters.md +49 -0
  322. package/src/modules/accounting/generated/enums.ts +110 -0
  323. package/src/modules/accounting/generated/kysely-tailordb.ts +302 -0
  324. package/src/modules/accounting/index.ts +2 -0
  325. package/src/modules/accounting/lib/_db_deps.ts +70 -0
  326. package/src/modules/accounting/lib/actualAmounts.ts +93 -0
  327. package/src/modules/accounting/lib/allocationPosting.ts +152 -0
  328. package/src/modules/accounting/lib/errors.generated.ts +432 -0
  329. package/src/modules/accounting/lib/permissions.generated.ts +61 -0
  330. package/src/modules/accounting/lib/types.ts +114 -0
  331. package/src/modules/accounting/module.ts +429 -0
  332. package/src/modules/accounting/permissions.ts +3 -0
  333. package/src/modules/accounting/query/calculateBudgetAvailability.generated.ts +5 -0
  334. package/src/modules/accounting/query/calculateBudgetAvailability.test.ts +229 -0
  335. package/src/modules/accounting/query/calculateBudgetAvailability.ts +147 -0
  336. package/src/modules/accounting/query/getAllocationCycle.generated.ts +5 -0
  337. package/src/modules/accounting/query/getAllocationCycle.test.ts +94 -0
  338. package/src/modules/accounting/query/getAllocationCycle.ts +37 -0
  339. package/src/modules/accounting/query/getBudget.generated.ts +5 -0
  340. package/src/modules/accounting/query/getBudget.test.ts +80 -0
  341. package/src/modules/accounting/query/getBudget.ts +31 -0
  342. package/src/modules/accounting/query/getCostCenter.generated.ts +5 -0
  343. package/src/modules/accounting/query/getCostCenter.test.ts +50 -0
  344. package/src/modules/accounting/query/getCostCenter.ts +33 -0
  345. package/src/modules/accounting/query/getCostCenterHierarchy.generated.ts +5 -0
  346. package/src/modules/accounting/query/getCostCenterHierarchy.test.ts +100 -0
  347. package/src/modules/accounting/query/getCostCenterHierarchy.ts +80 -0
  348. package/src/modules/accounting/query/getCostElement.generated.ts +5 -0
  349. package/src/modules/accounting/query/getCostElement.test.ts +57 -0
  350. package/src/modules/accounting/query/getCostElement.ts +21 -0
  351. package/src/modules/accounting/query/getInternalOrder.generated.ts +5 -0
  352. package/src/modules/accounting/query/getInternalOrder.test.ts +73 -0
  353. package/src/modules/accounting/query/getInternalOrder.ts +21 -0
  354. package/src/modules/accounting/query/getProfitCenter.generated.ts +5 -0
  355. package/src/modules/accounting/query/getProfitCenter.test.ts +65 -0
  356. package/src/modules/accounting/query/getProfitCenter.ts +31 -0
  357. package/src/modules/accounting/query/getProfitCenterHierarchy.generated.ts +5 -0
  358. package/src/modules/accounting/query/getProfitCenterHierarchy.test.ts +97 -0
  359. package/src/modules/accounting/query/getProfitCenterHierarchy.ts +87 -0
  360. package/src/modules/accounting/query/getVarianceReport.generated.ts +5 -0
  361. package/src/modules/accounting/query/getVarianceReport.test.ts +108 -0
  362. package/src/modules/accounting/query/getVarianceReport.ts +31 -0
  363. package/src/modules/accounting/query/listAllocationCycles.generated.ts +5 -0
  364. package/src/modules/accounting/query/listAllocationCycles.test.ts +152 -0
  365. package/src/modules/accounting/query/listAllocationCycles.ts +96 -0
  366. package/src/modules/accounting/query/listBudgets.generated.ts +5 -0
  367. package/src/modules/accounting/query/listBudgets.test.ts +150 -0
  368. package/src/modules/accounting/query/listBudgets.ts +85 -0
  369. package/src/modules/accounting/query/listCostCenters.generated.ts +5 -0
  370. package/src/modules/accounting/query/listCostCenters.test.ts +111 -0
  371. package/src/modules/accounting/query/listCostCenters.ts +71 -0
  372. package/src/modules/accounting/query/listCostElements.generated.ts +5 -0
  373. package/src/modules/accounting/query/listCostElements.test.ts +138 -0
  374. package/src/modules/accounting/query/listCostElements.ts +105 -0
  375. package/src/modules/accounting/query/listInternalOrders.generated.ts +5 -0
  376. package/src/modules/accounting/query/listInternalOrders.test.ts +129 -0
  377. package/src/modules/accounting/query/listInternalOrders.ts +94 -0
  378. package/src/modules/accounting/query/listProfitCenters.generated.ts +5 -0
  379. package/src/modules/accounting/query/listProfitCenters.test.ts +94 -0
  380. package/src/modules/accounting/query/listProfitCenters.ts +56 -0
  381. package/src/modules/accounting/seed/index.ts +19 -0
  382. package/src/modules/accounting/tailor.config.ts +13 -0
  383. package/src/modules/accounting/testing/commandTestUtils.ts +35 -0
  384. package/src/modules/accounting/testing/fixtures.ts +502 -0
  385. package/src/modules/audit/command/logAuditEvent.ts +43 -38
  386. package/src/modules/audit/command/updateAuditPolicy.ts +2 -2
  387. package/src/modules/audit/docs/commands/UpdateAuditPolicy.md +1 -1
  388. package/src/modules/audit/module.ts +4 -0
  389. package/src/modules/business-partner/command/createPartnerBankAccount.test.ts +3 -3
  390. package/src/modules/business-partner/command/createPartnerBankAccount.ts +1 -1
  391. package/src/modules/business-partner/command/updateContactPerson.ts +3 -4
  392. package/src/modules/business-partner/command/updatePartner.ts +13 -6
  393. package/src/modules/business-partner/command/updatePartnerAddress.ts +13 -6
  394. package/src/modules/business-partner/command/updatePartnerBankAccount.ts +3 -4
  395. package/src/modules/business-partner/command/updatePartnerIdentification.ts +3 -4
  396. package/src/modules/business-partner/docs/commands/UpdateContactPerson.md +3 -3
  397. package/src/modules/business-partner/docs/commands/UpdatePartner.md +2 -2
  398. package/src/modules/business-partner/docs/commands/UpdatePartnerAddress.md +2 -2
  399. package/src/modules/business-partner/docs/commands/UpdatePartnerIdentification.md +2 -2
  400. package/src/modules/business-partner/module.ts +1 -0
  401. package/src/modules/coa-management/command/activateAccount.test.ts +0 -15
  402. package/src/modules/coa-management/command/activateAccount.ts +1 -42
  403. package/src/modules/coa-management/command/activateChartOfAccounts.test.ts +2 -31
  404. package/src/modules/coa-management/command/activateChartOfAccounts.ts +1 -37
  405. package/src/modules/coa-management/command/createAccount.test.ts +0 -28
  406. package/src/modules/coa-management/command/createAccount.ts +0 -43
  407. package/src/modules/coa-management/command/createAccountGroup.test.ts +2 -51
  408. package/src/modules/coa-management/command/createAccountGroup.ts +1 -56
  409. package/src/modules/coa-management/command/createChartOfAccounts.test.ts +1 -49
  410. package/src/modules/coa-management/command/createChartOfAccounts.ts +0 -51
  411. package/src/modules/coa-management/command/deactivateAccount.test.ts +0 -15
  412. package/src/modules/coa-management/command/deactivateAccount.ts +1 -53
  413. package/src/modules/coa-management/command/deactivateChartOfAccounts.test.ts +2 -29
  414. package/src/modules/coa-management/command/deactivateChartOfAccounts.ts +1 -37
  415. package/src/modules/coa-management/command/deleteAccount.test.ts +0 -13
  416. package/src/modules/coa-management/command/deleteAccount.ts +1 -42
  417. package/src/modules/coa-management/command/deleteAccountGroup.test.ts +0 -19
  418. package/src/modules/coa-management/command/deleteAccountGroup.ts +1 -42
  419. package/src/modules/coa-management/command/deleteChartOfAccounts.test.ts +2 -58
  420. package/src/modules/coa-management/command/deleteChartOfAccounts.ts +4 -88
  421. package/src/modules/coa-management/command/moveAccountGroup.test.ts +0 -27
  422. package/src/modules/coa-management/command/moveAccountGroup.ts +1 -48
  423. package/src/modules/coa-management/command/reactivateAccount.test.ts +0 -15
  424. package/src/modules/coa-management/command/reactivateAccount.ts +1 -53
  425. package/src/modules/coa-management/command/updateAccount.test.ts +0 -15
  426. package/src/modules/coa-management/command/updateAccount.ts +3 -95
  427. package/src/modules/coa-management/command/updateAccountGroup.test.ts +22 -20
  428. package/src/modules/coa-management/command/updateAccountGroup.ts +30 -78
  429. package/src/modules/coa-management/command/updateChartOfAccounts.test.ts +2 -31
  430. package/src/modules/coa-management/command/updateChartOfAccounts.ts +4 -54
  431. package/src/modules/coa-management/docs/commands/ActivateAccount.md +1 -4
  432. package/src/modules/coa-management/docs/commands/ActivateChartOfAccounts.md +1 -4
  433. package/src/modules/coa-management/docs/commands/CreateAccount.md +1 -4
  434. package/src/modules/coa-management/docs/commands/CreateAccountGroup.md +2 -5
  435. package/src/modules/coa-management/docs/commands/CreateChartOfAccounts.md +2 -6
  436. package/src/modules/coa-management/docs/commands/DeactivateAccount.md +1 -4
  437. package/src/modules/coa-management/docs/commands/DeactivateChartOfAccounts.md +1 -4
  438. package/src/modules/coa-management/docs/commands/DeleteAccount.md +1 -4
  439. package/src/modules/coa-management/docs/commands/DeleteAccountGroup.md +1 -4
  440. package/src/modules/coa-management/docs/commands/DeleteChartOfAccounts.md +1 -6
  441. package/src/modules/coa-management/docs/commands/MoveAccountGroup.md +1 -4
  442. package/src/modules/coa-management/docs/commands/ReactivateAccount.md +1 -4
  443. package/src/modules/coa-management/docs/commands/UpdateAccount.md +1 -4
  444. package/src/modules/coa-management/docs/commands/UpdateAccountGroup.md +6 -8
  445. package/src/modules/coa-management/docs/commands/UpdateChartOfAccounts.md +1 -4
  446. package/src/modules/coa-management/module.ts +16 -27
  447. package/src/modules/finance-ledger/command/updateFiscalYear.ts +2 -3
  448. package/src/modules/finance-ledger/command/updateJournalEntry.test.ts +0 -17
  449. package/src/modules/finance-ledger/command/updateJournalEntry.ts +2 -10
  450. package/src/modules/finance-ledger/command/updateJournalLine.ts +2 -3
  451. package/src/modules/finance-ledger/docs/commands/UpdateJournalEntry.md +1 -4
  452. package/src/modules/finance-ledger/module.ts +1 -0
  453. package/src/modules/inventory/command/approveInventoryAdjustment.test.ts +1 -1
  454. package/src/modules/inventory/command/approveInventoryAdjustment.ts +1 -1
  455. package/src/modules/inventory/command/cancelStockMovement.test.ts +2 -2
  456. package/src/modules/inventory/command/cancelStockMovement.ts +1 -1
  457. package/src/modules/inventory/command/confirmInventoryAdjustment.test.ts +4 -4
  458. package/src/modules/inventory/command/confirmInventoryAdjustment.ts +1 -1
  459. package/src/modules/inventory/command/confirmStockMovement.test.ts +1 -1
  460. package/src/modules/inventory/command/confirmStockMovement.ts +1 -1
  461. package/src/modules/inventory/command/createInventoryAdjustment.test.ts +6 -6
  462. package/src/modules/inventory/command/createInventoryAdjustment.ts +1 -1
  463. package/src/modules/inventory/command/createStockMovement.test.ts +3 -3
  464. package/src/modules/inventory/command/createStockMovement.ts +1 -1
  465. package/src/modules/inventory/command/executeStockMovement.test.ts +5 -5
  466. package/src/modules/inventory/command/executeStockMovement.ts +1 -1
  467. package/src/modules/inventory/command/rejectInventoryAdjustment.test.ts +1 -1
  468. package/src/modules/inventory/command/rejectInventoryAdjustment.ts +1 -1
  469. package/src/modules/inventory/command/reviseInventoryAdjustment.test.ts +2 -2
  470. package/src/modules/inventory/command/reviseInventoryAdjustment.ts +1 -1
  471. package/src/modules/inventory/command/submitInventoryAdjustment.test.ts +1 -1
  472. package/src/modules/inventory/command/submitInventoryAdjustment.ts +1 -1
  473. package/src/modules/inventory/command/updateLot.test.ts +1 -1
  474. package/src/modules/inventory/command/updateLot.ts +2 -3
  475. package/src/modules/inventory/command/updateStockMovement.test.ts +4 -4
  476. package/src/modules/inventory/command/updateStockMovement.ts +4 -5
  477. package/src/modules/inventory/command/updateStorageLocation.ts +12 -17
  478. package/src/modules/inventory/command/updateValuationPolicy.ts +2 -3
  479. package/src/modules/inventory/command/updateWarehouse.ts +2 -3
  480. package/src/modules/inventory/docs/commands/UpdateLot.md +3 -3
  481. package/src/modules/inventory/docs/commands/UpdateStorageLocation.md +6 -6
  482. package/src/modules/inventory/docs/commands/UpdateWarehouse.md +2 -2
  483. package/src/modules/inventory/module.ts +1 -0
  484. package/src/modules/item-management/command/createTaxonomyNode.test.ts +4 -4
  485. package/src/modules/item-management/command/createTaxonomyNode.ts +1 -1
  486. package/src/modules/item-management/command/moveTaxonomyNode.test.ts +2 -2
  487. package/src/modules/item-management/command/moveTaxonomyNode.ts +2 -2
  488. package/src/modules/item-management/command/updateItem.test.ts +16 -12
  489. package/src/modules/item-management/command/updateItem.ts +47 -31
  490. package/src/modules/item-management/command/updateTaxonomyNode.test.ts +16 -17
  491. package/src/modules/item-management/command/updateTaxonomyNode.ts +43 -30
  492. package/src/modules/item-management/docs/commands/UpdateItem.md +7 -11
  493. package/src/modules/item-management/docs/commands/UpdateTaxonomyNode.md +10 -14
  494. package/src/modules/item-management/module.ts +1 -0
  495. package/src/modules/manufacturing/command/createRouting.ts +1 -1
  496. package/src/modules/manufacturing/command/recordInventoryIssueOutcome.test.ts +1 -1
  497. package/src/modules/manufacturing/command/recordInventoryIssueOutcome.ts +1 -1
  498. package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.test.ts +1 -1
  499. package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.ts +1 -1
  500. package/src/modules/manufacturing/command/reviewManufacturingCostSummary.test.ts +1 -1
  501. package/src/modules/manufacturing/command/reviewManufacturingCostSummary.ts +1 -1
  502. package/src/modules/manufacturing/command/updateBillOfMaterial.ts +3 -4
  503. package/src/modules/manufacturing/command/updateProductionOrder.ts +3 -4
  504. package/src/modules/manufacturing/command/updateRouting.ts +4 -5
  505. package/src/modules/manufacturing/command/updateWorkCenter.test.ts +16 -7
  506. package/src/modules/manufacturing/command/updateWorkCenter.ts +41 -38
  507. package/src/modules/manufacturing/docs/commands/ActivateWorkCenter.md +2 -0
  508. package/src/modules/manufacturing/docs/commands/CompleteWorkOrder.md +2 -0
  509. package/src/modules/manufacturing/docs/commands/CreateBillOfMaterial.md +1 -0
  510. package/src/modules/manufacturing/docs/commands/ReviewManufacturingCostSummary.md +1 -0
  511. package/src/modules/manufacturing/docs/commands/UpdateWorkCenter.md +6 -5
  512. package/src/modules/manufacturing/docs/models/BillOfMaterialLine.md +42 -0
  513. package/src/modules/manufacturing/docs/models/CostVarianceLine.md +36 -0
  514. package/src/modules/manufacturing/docs/models/ManufacturingCostLine.md +37 -0
  515. package/src/modules/manufacturing/docs/models/ManufacturingCostSettlementRecord.md +34 -0
  516. package/src/modules/manufacturing/docs/models/ProductionOrderBomSnapshot.md +35 -0
  517. package/src/modules/manufacturing/docs/models/ProductionOrderCostBaseline.md +36 -0
  518. package/src/modules/manufacturing/docs/models/ProductionOrderMaterialRequirement.md +35 -0
  519. package/src/modules/manufacturing/docs/models/ProductionOrderRoutingSnapshot.md +34 -0
  520. package/src/modules/manufacturing/docs/models/RoutingOperation.md +40 -0
  521. package/src/modules/manufacturing/docs/models/WorkOrderExecutionEvent.md +38 -0
  522. package/src/modules/manufacturing/docs/queries/ExplodeBillOfMaterial.md +1 -0
  523. package/src/modules/manufacturing/docs/queries/ListWorkCentersBySite.md +1 -0
  524. package/src/modules/manufacturing/module.ts +1 -0
  525. package/src/modules/organization/command/updateCompany.test.ts +6 -6
  526. package/src/modules/organization/command/updateCompany.ts +3 -4
  527. package/src/modules/organization/command/updateDepartment.test.ts +7 -7
  528. package/src/modules/organization/command/updateDepartment.ts +13 -12
  529. package/src/modules/organization/command/updateSite.test.ts +10 -10
  530. package/src/modules/organization/command/updateSite.ts +3 -4
  531. package/src/modules/organization/docs/commands/UpdateCompany.md +6 -6
  532. package/src/modules/organization/docs/commands/UpdateDepartment.md +9 -10
  533. package/src/modules/organization/docs/commands/UpdateSite.md +12 -12
  534. package/src/modules/organization/module.ts +1 -0
  535. package/src/modules/primitives/module.ts +1 -0
  536. package/src/modules/product-management/command/assignProductToCategory.test.ts +2 -2
  537. package/src/modules/product-management/command/assignProductToCategory.ts +2 -2
  538. package/src/modules/product-management/command/createProductAttribute.test.ts +1 -1
  539. package/src/modules/product-management/command/createProductAttribute.ts +1 -1
  540. package/src/modules/product-management/command/createProductAttributeValue.test.ts +1 -1
  541. package/src/modules/product-management/command/createProductAttributeValue.ts +1 -1
  542. package/src/modules/product-management/command/createProductCategory.test.ts +2 -2
  543. package/src/modules/product-management/command/createProductCategory.ts +1 -1
  544. package/src/modules/product-management/command/setProductAttributeAssignment.test.ts +3 -3
  545. package/src/modules/product-management/command/setProductAttributeAssignment.ts +2 -2
  546. package/src/modules/product-management/command/updateProduct.test.ts +17 -11
  547. package/src/modules/product-management/command/updateProduct.ts +45 -28
  548. package/src/modules/product-management/command/updateProductAttribute.test.ts +16 -21
  549. package/src/modules/product-management/command/updateProductAttribute.ts +40 -26
  550. package/src/modules/product-management/command/updateProductAttributeValue.ts +2 -3
  551. package/src/modules/product-management/command/updateProductCategory.test.ts +14 -19
  552. package/src/modules/product-management/command/updateProductCategory.ts +42 -26
  553. package/src/modules/product-management/docs/commands/UpdateProduct.md +16 -20
  554. package/src/modules/product-management/docs/commands/UpdateProductAttribute.md +10 -14
  555. package/src/modules/product-management/docs/commands/UpdateProductCategory.md +10 -14
  556. package/src/modules/product-management/module.ts +1 -0
  557. package/src/modules/purchase/command/activatePurchasePaymentTerm.test.ts +4 -4
  558. package/src/modules/purchase/command/activatePurchasePaymentTerm.ts +2 -2
  559. package/src/modules/purchase/command/deactivatePurchasePaymentTerm.test.ts +4 -4
  560. package/src/modules/purchase/command/deactivatePurchasePaymentTerm.ts +2 -2
  561. package/src/modules/purchase/command/updateGoodsReceipt.ts +2 -3
  562. package/src/modules/purchase/command/updatePurchaseBill.ts +2 -3
  563. package/src/modules/purchase/command/updatePurchaseOrder.ts +2 -3
  564. package/src/modules/purchase/command/updatePurchasePaymentTerm.test.ts +2 -2
  565. package/src/modules/purchase/command/updatePurchasePaymentTerm.ts +3 -4
  566. package/src/modules/purchase/command/updatePurchasePriceList.ts +2 -3
  567. package/src/modules/purchase/command/updatePurchasePriceRule.ts +2 -3
  568. package/src/modules/purchase/module.ts +1 -0
  569. package/src/modules/sales/command/createSalesOrder.ts +1 -1
  570. package/src/modules/sales/command/updateChannel.test.ts +4 -4
  571. package/src/modules/sales/command/updateChannel.ts +2 -3
  572. package/src/modules/sales/command/updateListing.test.ts +2 -2
  573. package/src/modules/sales/command/updateListing.ts +2 -3
  574. package/src/modules/sales/command/updateSalesCreditNote.test.ts +2 -2
  575. package/src/modules/sales/command/updateSalesCreditNote.ts +2 -3
  576. package/src/modules/sales/command/updateSalesInvoice.test.ts +2 -2
  577. package/src/modules/sales/command/updateSalesInvoice.ts +2 -3
  578. package/src/modules/sales/command/updateSalesOrder.test.ts +3 -3
  579. package/src/modules/sales/command/updateSalesOrder.ts +2 -3
  580. package/src/modules/sales/command/updateSalesPaymentTerm.test.ts +2 -2
  581. package/src/modules/sales/command/updateSalesPaymentTerm.ts +2 -3
  582. package/src/modules/sales/command/updateSalesPriceList.test.ts +3 -3
  583. package/src/modules/sales/command/updateSalesPriceList.ts +2 -3
  584. package/src/modules/sales/command/updateSalesPriceRule.test.ts +3 -3
  585. package/src/modules/sales/command/updateSalesPriceRule.ts +2 -3
  586. package/src/modules/sales/command/updateShipment.test.ts +2 -2
  587. package/src/modules/sales/command/updateShipment.ts +2 -3
  588. package/src/modules/sales/docs/commands/UpdateChannel.md +4 -4
  589. package/src/modules/sales/docs/commands/UpdateListing.md +2 -2
  590. package/src/modules/sales/docs/commands/UpdateSalesCreditNote.md +2 -2
  591. package/src/modules/sales/docs/commands/UpdateSalesInvoice.md +2 -2
  592. package/src/modules/sales/docs/commands/UpdateSalesOrder.md +3 -3
  593. package/src/modules/sales/docs/commands/UpdateSalesPaymentTerm.md +2 -2
  594. package/src/modules/sales/docs/commands/UpdateSalesPriceList.md +3 -3
  595. package/src/modules/sales/docs/commands/UpdateSalesPriceRule.md +3 -3
  596. package/src/modules/sales/docs/commands/UpdateShipment.md +2 -2
  597. package/src/modules/sales/module.ts +1 -0
  598. package/src/modules/user-management/README.md +2 -1
  599. package/src/modules/user-management/command/updateOwnProfile.generated.ts +6 -0
  600. package/src/modules/user-management/command/updateOwnProfile.test.ts +191 -0
  601. package/src/modules/user-management/command/updateOwnProfile.ts +82 -0
  602. package/src/modules/user-management/command/updateUser.generated.ts +6 -0
  603. package/src/modules/user-management/command/updateUser.test.ts +195 -0
  604. package/src/modules/user-management/command/updateUser.ts +76 -0
  605. package/src/modules/user-management/docs/commands/UpdateOwnProfile.md +68 -0
  606. package/src/modules/user-management/docs/commands/UpdateUser.md +67 -0
  607. package/src/modules/user-management/docs/features/user-account-management.md +28 -3
  608. package/src/modules/user-management/docs/models/User.md +2 -0
  609. package/src/modules/user-management/lib/errors.generated.ts +5 -0
  610. package/src/modules/user-management/lib/permissions.generated.ts +2 -0
  611. package/src/modules/user-management/module.ts +5 -0
  612. package/src/modules/user-management/seed/index.ts +19 -0
  613. package/templates/scaffold/app/backend/eslint.config.js +17 -0
  614. package/templates/scaffold/app/backend/package.json +1 -0
  615. package/templates/scaffold/app/backend/seed/data/AuditEntry.schema.ts +20 -0
  616. package/templates/scaffold/app/backend/seed/data/AuditPolicy.jsonl +7 -0
  617. package/templates/scaffold/app/backend/seed/data/AuditPolicy.schema.ts +15 -0
  618. package/templates/scaffold/app/backend/seed/data/AuditableEntity.jsonl +4 -0
  619. package/templates/scaffold/app/backend/seed/data/AuditableEntity.schema.ts +20 -0
  620. package/templates/scaffold/app/backend/seed/data/ChangeDetail.schema.ts +20 -0
  621. package/templates/scaffold/app/backend/seed/data/Company.schema.ts +15 -0
  622. package/templates/scaffold/app/backend/seed/data/Permission.jsonl +13 -0
  623. package/templates/scaffold/app/backend/seed/data/Permission.schema.ts +1 -1
  624. package/templates/scaffold/app/backend/seed/data/PolicyFieldRule.schema.ts +20 -0
  625. package/templates/scaffold/app/backend/seed/data/Role.jsonl +1 -0
  626. package/templates/scaffold/app/backend/seed/data/Role.schema.ts +1 -1
  627. package/templates/scaffold/app/backend/seed/data/RolePermission.jsonl +13 -0
  628. package/templates/scaffold/app/backend/seed/data/RolePermission.schema.ts +1 -1
  629. package/templates/scaffold/app/backend/seed/data/User.jsonl +1 -1
  630. package/templates/scaffold/app/backend/seed/data/User.schema.ts +1 -1
  631. package/templates/scaffold/app/backend/seed/data/UserRole.jsonl +1 -0
  632. package/templates/scaffold/app/backend/seed/data/UserRole.schema.ts +1 -1
  633. package/templates/scaffold/app/backend/seed/data/_User.jsonl +1 -1
  634. package/templates/scaffold/app/backend/seed/exec.mjs +12 -0
  635. package/templates/scaffold/app/backend/src/executors/permissionCreated.ts +2 -2
  636. package/templates/scaffold/app/backend/src/executors/permissionDeleted.ts +2 -2
  637. package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +62 -0
  638. package/templates/scaffold/app/backend/src/modules-db.ts +13 -0
  639. package/templates/scaffold/app/backend/src/modules.ts +3 -5
  640. package/templates/scaffold/app/backend/src/resolvers/assignPermissionToRole.ts +70 -0
  641. package/templates/scaffold/app/backend/src/resolvers/assignRoleToUser.ts +72 -0
  642. package/templates/scaffold/app/backend/src/resolvers/createRole.ts +92 -0
  643. package/templates/scaffold/app/backend/src/resolvers/createUser.ts +113 -13
  644. package/templates/scaffold/app/backend/src/resolvers/deactivateUser.ts +67 -0
  645. package/templates/scaffold/app/backend/src/resolvers/reactivateUser.ts +63 -0
  646. package/templates/scaffold/app/backend/src/resolvers/revokePermissionFromRole.ts +72 -0
  647. package/templates/scaffold/app/backend/src/resolvers/revokeRoleFromUser.ts +72 -0
  648. package/templates/scaffold/app/backend/src/resolvers/updateOwnProfile.ts +107 -0
  649. package/templates/scaffold/app/backend/src/resolvers/updateUserProfile.ts +107 -0
  650. package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log-detail.test.ts +79 -0
  651. package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log.test.ts +86 -0
  652. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--assign-role-to-user.test.ts +103 -0
  653. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--create-role.test.ts +61 -0
  654. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--remove-role-from-user.test.ts +89 -0
  655. package/templates/scaffold/app/backend/src/tests/stories/role-management/user--update-role-permissions.test.ts +125 -0
  656. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--browse-user-list.test.ts +91 -0
  657. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--create-user-account.test.ts +97 -0
  658. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--toggle-user-status.test.ts +131 -0
  659. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-own-profile.test.ts +85 -0
  660. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-user-profile.test.ts +157 -0
  661. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-own-profile.test.ts +30 -0
  662. package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-user-detail.test.ts +98 -0
  663. package/templates/scaffold/app/backend/tailor.config.ts +21 -3
  664. package/templates/scaffold/app/backend/tsconfig.json +1 -1
  665. package/templates/scaffold/app/docs/actors/user.md +11 -0
  666. package/templates/scaffold/app/docs/business-flow/audit-log/README.md +31 -0
  667. package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log-detail.md +35 -0
  668. package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log.md +44 -0
  669. package/templates/scaffold/app/docs/business-flow/role-management/README.md +33 -0
  670. package/templates/scaffold/app/docs/business-flow/role-management/story/user--assign-role-to-user.md +35 -0
  671. package/templates/scaffold/app/docs/business-flow/role-management/story/user--create-role.md +41 -0
  672. package/templates/scaffold/app/docs/business-flow/role-management/story/user--remove-role-from-user.md +33 -0
  673. package/templates/scaffold/app/docs/business-flow/role-management/story/user--update-role-permissions.md +41 -0
  674. package/templates/scaffold/app/docs/business-flow/user-lifecycle/README.md +48 -0
  675. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--browse-user-list.md +38 -0
  676. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--create-user-account.md +45 -0
  677. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--toggle-user-status.md +38 -0
  678. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-own-profile.md +36 -0
  679. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-user-profile.md +41 -0
  680. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-own-profile.md +30 -0
  681. package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-user-detail.md +33 -0
  682. package/templates/scaffold/app/docs/resolver/assignPermissionToRole.md +16 -0
  683. package/templates/scaffold/app/docs/resolver/assignRoleToUser.md +17 -0
  684. package/templates/scaffold/app/docs/resolver/createRole.md +17 -0
  685. package/templates/scaffold/app/docs/resolver/createUser.md +23 -0
  686. package/templates/scaffold/app/docs/resolver/deactivateUser.md +17 -0
  687. package/templates/scaffold/app/docs/resolver/reactivateUser.md +16 -0
  688. package/templates/scaffold/app/docs/resolver/revokePermissionFromRole.md +17 -0
  689. package/templates/scaffold/app/docs/resolver/revokeRoleFromUser.md +17 -0
  690. package/templates/scaffold/app/docs/resolver/updateOwnProfile.md +20 -0
  691. package/templates/scaffold/app/docs/resolver/updateUserProfile.md +19 -0
  692. package/templates/scaffold/app/docs/screen/audit-entry-detail.md +30 -0
  693. package/templates/scaffold/app/docs/screen/audit-entry-list.md +25 -0
  694. package/templates/scaffold/app/docs/screen/my-profile-edit-form.md +22 -0
  695. package/templates/scaffold/app/docs/screen/my-profile.md +27 -0
  696. package/templates/scaffold/app/docs/screen/role-create-form.md +23 -0
  697. package/templates/scaffold/app/docs/screen/role-detail.md +27 -0
  698. package/templates/scaffold/app/docs/screen/role-edit-form.md +21 -0
  699. package/templates/scaffold/app/docs/screen/role-list.md +23 -0
  700. package/templates/scaffold/app/docs/screen/user-create-form.md +23 -0
  701. package/templates/scaffold/app/docs/screen/user-detail.md +33 -0
  702. package/templates/scaffold/app/docs/screen/user-edit-form.md +22 -0
  703. package/templates/scaffold/app/docs/screen/user-list.md +24 -0
  704. package/templates/scaffold/app/frontend/package.json +1 -1
  705. package/templates/scaffold/app/frontend/src/App.tsx +57 -12
  706. package/templates/scaffold/app/frontend/src/components/composed/error-fallback.tsx +1 -1
  707. package/templates/scaffold/app/frontend/src/graphql/generated/graphql-env.d.ts +59 -31
  708. package/templates/scaffold/app/frontend/src/graphql/generated/schema.graphql +1411 -688
  709. package/templates/scaffold/app/frontend/src/hooks/use-toast.ts +1 -1
  710. package/templates/scaffold/app/frontend/src/lib/permission-groups.ts +59 -0
  711. package/templates/scaffold/app/frontend/src/pages/audit/[id]/components/audit-entry-detail.tsx +102 -0
  712. package/templates/scaffold/app/frontend/src/pages/audit/[id]/page.tsx +65 -0
  713. package/templates/scaffold/app/frontend/src/pages/audit/components/audit-entries-table.tsx +90 -0
  714. package/templates/scaffold/app/frontend/src/pages/audit/page.tsx +52 -0
  715. package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/components/edit-profile-form.tsx +125 -0
  716. package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/page.tsx +19 -0
  717. package/templates/scaffold/app/frontend/src/pages/user-management/profile/page.tsx +41 -21
  718. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-actions.tsx +26 -0
  719. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-detail.tsx +69 -0
  720. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/components/edit-role-form.tsx +192 -0
  721. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/page.tsx +51 -0
  722. package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/page.tsx +56 -0
  723. package/templates/scaffold/app/frontend/src/pages/user-management/role/components/roles-table.tsx +85 -0
  724. package/templates/scaffold/app/frontend/src/pages/user-management/role/create/components/create-role-form.tsx +204 -0
  725. package/templates/scaffold/app/frontend/src/pages/user-management/role/create/page.tsx +19 -0
  726. package/templates/scaffold/app/frontend/src/pages/user-management/role/page.tsx +60 -0
  727. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-actions.tsx +216 -0
  728. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-detail.tsx +97 -33
  729. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/components/edit-user-form.tsx +115 -0
  730. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/page.tsx +51 -0
  731. package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/page.tsx +8 -2
  732. package/templates/scaffold/app/frontend/src/pages/user-management/user/components/users-table.tsx +43 -42
  733. package/templates/scaffold/app/frontend/src/pages/user-management/user/create/components/create-user-form.tsx +120 -45
  734. package/templates/scaffold/app/frontend/src/pages/user-management/user/page.tsx +3 -4
  735. package/templates/scaffold/app/frontend/src/providers/graphql-provider.tsx +8 -1
  736. package/templates/scaffold/module/eslint.config.js +32 -0
  737. package/templates/scaffold/module/module.ts +1 -0
  738. package/templates/scaffold/module/package.json +3 -1
  739. package/templates/scaffold/module/vitest.config.ts +11 -0
  740. package/templates/scaffold/project/__dot__gitignore +1 -0
  741. package/templates/scaffold/project/__pnpm-workspace.yaml +3 -0
  742. package/templates/scaffold/project/apps/.gitkeep +0 -0
  743. package/templates/scaffold/project/modules/.gitkeep +0 -0
  744. package/templates/scaffold/project/package.json +15 -0
  745. package/templates/workflows/erp-kit-check.yml +10 -4
  746. package/templates/scaffold/app/frontend/src/components/ui/badge.tsx +0 -39
  747. package/templates/scaffold/app/frontend/src/components/ui/button.tsx +0 -60
  748. package/templates/scaffold/app/frontend/src/components/ui/card.tsx +0 -75
  749. package/templates/scaffold/app/frontend/src/components/ui/input.tsx +0 -21
  750. package/templates/scaffold/app/frontend/src/components/ui/table.tsx +0 -90
  751. /package/src/modules/{supplier-portal → accounting/executor}/.gitkeep +0 -0
  752. /package/templates/scaffold/app/{docs/actors/.gitkeep → backend/seed/data/AuditEntry.jsonl} +0 -0
  753. /package/templates/scaffold/app/{docs/business-flow/.gitkeep → backend/seed/data/ChangeDetail.jsonl} +0 -0
  754. /package/templates/scaffold/app/{docs/resolver/.gitkeep → backend/seed/data/Company.jsonl} +0 -0
  755. /package/templates/scaffold/app/{docs/screen/.gitkeep → backend/seed/data/PolicyFieldRule.jsonl} +0 -0
  756. /package/templates/{config → scaffold/project}/license.config.json +0 -0
@@ -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
@@ -0,0 +1,46 @@
1
+ # DeleteProfitCenterHierarchyNode
2
+
3
+ ## Overview
4
+
5
+ deleteProfitCenterHierarchyNode removes a node from a profit center hierarchy. A node can only be deleted if it has no child nodes and no profit 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 profit centers assigned to it; nodes with assigned profit 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 profit centers?}
24
+ F -->|Yes| G[Return error: NODE_HAS_ASSIGNED_PROFIT_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_PROFIT_CENTERS**: Node has profit centers assigned that must be reassigned first
39
+
40
+ ## Test Cases
41
+
42
+ - deletes a leaf node with no children and no assigned profit centers
43
+ - returns error when node does not exist
44
+ - returns error when node has child nodes
45
+ - returns error when node has assigned profit centers
46
+ - emits audit event recording the deletion and acting user
@@ -0,0 +1,54 @@
1
+ # ExecuteAllocationCycle
2
+
3
+ ## Overview
4
+
5
+ executeAllocationCycle runs the allocation calculations for a VALIDATED cycle. In ACTUAL mode, it transitions the cycle from VALIDATED to EXECUTED and creates immutable AllocationResult records for each sender-receiver-amount combination. In TEST_RUN mode, it generates preview results without changing the cycle status, allowing controllers to review projected allocations before committing.
6
+
7
+ ## Business Rules
8
+
9
+ - Allocation cycle must exist
10
+ - Allocation cycle must be in VALIDATED status to be executed
11
+ - Supports two execution modes: ACTUAL and TEST_RUN
12
+ - ACTUAL mode transitions status from VALIDATED to EXECUTED
13
+ - ACTUAL mode creates immutable AllocationResult records for each sender-receiver-amount combination
14
+ - AllocationResult records cannot be modified or deleted after creation
15
+ - Each AllocationResult references the allocation cycle, sender, receiver, allocated amount, and cost element
16
+ - TEST_RUN mode generates preview results without changing cycle status
17
+ - Emits an audit event recording the execution and acting user (ACTUAL mode only)
18
+
19
+ ## Process Flow
20
+
21
+ ```mermaid
22
+ flowchart TD
23
+ A[Receive execute allocation cycle request] --> B{Allocation cycle exists?}
24
+ B -->|No| C[Return error: ALLOCATION_CYCLE_NOT_FOUND]
25
+ B -->|Yes| D{Status is VALIDATED?}
26
+ D -->|No| E[Return error: INVALID_STATE]
27
+ D -->|Yes| F{Execution mode?}
28
+ F -->|TEST_RUN| G[Calculate allocation amounts]
29
+ G --> H[Return preview results without status change]
30
+ F -->|ACTUAL| I[Calculate allocation amounts]
31
+ I --> J[Create immutable AllocationResult records]
32
+ J --> K[Transition status from VALIDATED to EXECUTED]
33
+ K --> L[Emit audit event]
34
+ L --> M[Return execution results]
35
+ ```
36
+
37
+ ## External Dependencies
38
+
39
+ - None
40
+
41
+ ## Error Scenarios
42
+
43
+ - **ALLOCATION_CYCLE_NOT_FOUND**: Allocation cycle with the specified ID does not exist
44
+ - **INVALID_STATE**: Allocation cycle is not in VALIDATED status
45
+
46
+ ## Test Cases
47
+
48
+ - executes a VALIDATED allocation cycle in ACTUAL mode transitioning it to EXECUTED status
49
+ - creates AllocationResult records in ACTUAL mode
50
+ - executes in TEST_RUN mode returning preview results without status change
51
+ - returns error when allocation cycle does not exist
52
+ - returns error when allocation cycle is not in VALIDATED status
53
+ - each AllocationResult references cycle, sender, receiver, amount, and cost element
54
+ - emits audit event recording the execution and acting user
@@ -0,0 +1,44 @@
1
+ # FinalizeVarianceReport
2
+
3
+ ## Overview
4
+
5
+ finalizeVarianceReport transitions a variance report from DRAFT status to FINAL status. Once finalized, the report cannot be modified or transitioned back to DRAFT. This locks the variance analysis results for distribution to management.
6
+
7
+ ## Business Rules
8
+
9
+ - Variance report must exist
10
+ - Variance report must be in DRAFT status to be finalized
11
+ - Finalizing an already FINAL report is rejected as an invalid state transition
12
+ - Once finalized, no modifications are permitted
13
+ - A FINAL report cannot be transitioned back to DRAFT
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 finalize variance report request] --> B{Variance report exists?}
21
+ B -->|No| C[Return error: VARIANCE_REPORT_NOT_FOUND]
22
+ B -->|Yes| D{Status is DRAFT?}
23
+ D -->|No| E[Return error: INVALID_STATE]
24
+ D -->|Yes| F[Transition status from DRAFT to FINAL]
25
+ F --> G[Emit audit event]
26
+ G --> H[Return finalized variance report]
27
+ ```
28
+
29
+ ## External Dependencies
30
+
31
+ - None
32
+
33
+ ## Error Scenarios
34
+
35
+ - **VARIANCE_REPORT_NOT_FOUND**: Variance report with the specified ID does not exist
36
+ - **INVALID_STATE**: Variance report is not in DRAFT status (e.g., already FINAL)
37
+
38
+ ## Test Cases
39
+
40
+ - finalizes a DRAFT variance report transitioning it to FINAL status
41
+ - returns error when variance report does not exist
42
+ - returns error when variance report is already FINAL
43
+ - finalized report cannot be transitioned back to DRAFT
44
+ - emits audit event recording the status transition and acting user