@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
@@ -1,4 +1,4 @@
1
- import { describe, expect, it, vi } from "vitest";
1
+ import { describe, expect, it } from "vitest";
2
2
  import { createMockDb } from "../../../testing/index";
3
3
  import type { Transaction } from "../generated/kysely-tailordb";
4
4
  import {
@@ -7,7 +7,7 @@ import {
7
7
  NameRequiredError,
8
8
  } from "../lib/errors.generated";
9
9
  import { baseDraftCoa, baseActiveCoa, baseArchivedCoa } from "../testing/fixtures";
10
- import { run, type AuditCommands } from "./updateChartOfAccounts";
10
+ import { run } from "./updateChartOfAccounts";
11
11
  import type { CommandContext } from "@tailor-platform/erp-kit/module";
12
12
 
13
13
  const ctx: CommandContext = {
@@ -112,35 +112,6 @@ describe("updateChartOfAccounts", () => {
112
112
  const setData = spies.set.mock.calls[0][0] as Record<string, unknown>;
113
113
  expect(setData.customField).toBe("custom-value");
114
114
  });
115
- it("emits audit event recording previous and new field values", async () => {
116
- const { db, spies } = createMockDb<Transaction>();
117
- const updatedCoa = { ...baseDraftCoa, name: "Updated Name" };
118
- spies.select.mockReturnValueOnce(baseDraftCoa);
119
- spies.update.mockReturnValue(updatedCoa);
120
-
121
- const mockLogAuditEvent = vi.fn().mockResolvedValue({ ok: true, value: {} });
122
- const auditCommands: AuditCommands = { logAuditEvent: mockLogAuditEvent };
123
-
124
- const result = await run(db, { id: baseDraftCoa.id, name: "Updated Name" }, ctx, auditCommands);
125
-
126
- expect(result.ok).toBe(true);
127
- expect(mockLogAuditEvent).toHaveBeenCalledWith(
128
- db,
129
- expect.objectContaining({
130
- entityType: "ChartOfAccounts",
131
- entityId: baseDraftCoa.id,
132
- operationType: "UPDATE",
133
- companyId: baseDraftCoa.companyId,
134
- actorType: "USER",
135
- actorId: ctx.actorId,
136
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
137
- changes: expect.arrayContaining([
138
- { fieldName: "name", oldValue: baseDraftCoa.name, newValue: "Updated Name" },
139
- ]),
140
- }),
141
- ctx,
142
- );
143
- });
144
115
  });
145
116
 
146
117
  // Helper type for custom fields test
@@ -1,4 +1,3 @@
1
- import { randomUUID } from "node:crypto";
2
1
  import type { Transaction } from "../generated/kysely-tailordb";
3
2
  import {
4
3
  ChartOfAccountsNotFoundError,
@@ -7,28 +6,11 @@ import {
7
6
  } from "../lib/errors.generated";
8
7
  import { ok, err, type CommandContext } from "@tailor-platform/erp-kit/module";
9
8
 
10
- export interface UpdateChartOfAccountsInput {
9
+ export type UpdateChartOfAccountsInput = {
11
10
  id: string;
12
11
  name?: string;
13
12
  description?: string | null;
14
- }
15
-
16
- export interface AuditCommands {
17
- logAuditEvent: (
18
- db: Transaction,
19
- input: {
20
- eventId: string;
21
- actorType: string;
22
- actorId: string;
23
- entityType: string;
24
- entityId: string;
25
- operationType: string;
26
- companyId?: string;
27
- changes: { fieldName: string; oldValue?: unknown; newValue?: unknown }[];
28
- },
29
- ctx: CommandContext,
30
- ) => Promise<{ ok: true; value: unknown }>;
31
- }
13
+ };
32
14
 
33
15
  /**
34
16
  * Function: updateChartOfAccounts
@@ -38,9 +20,8 @@ export interface AuditCommands {
38
20
  */
39
21
  export async function run<CF extends Record<string, unknown>>(
40
22
  db: Transaction,
41
- input: UpdateChartOfAccountsInput & CF,
42
- ctx: CommandContext,
43
- auditCommands?: AuditCommands,
23
+ input: UpdateChartOfAccountsInput & Omit<Partial<CF>, "status">,
24
+ _ctx: CommandContext,
44
25
  ) {
45
26
  const { id, name, description, ...customFields } = input;
46
27
 
@@ -98,36 +79,5 @@ export async function run<CF extends Record<string, unknown>>(
98
79
  .returningAll()
99
80
  .executeTakeFirst();
100
81
 
101
- if (auditCommands) {
102
- const changes: { fieldName: string; oldValue?: unknown; newValue?: unknown }[] = [];
103
- if (name !== undefined && name !== existing.name) {
104
- changes.push({ fieldName: "name", oldValue: existing.name, newValue: name });
105
- }
106
- if (description !== undefined && description !== existing.description) {
107
- changes.push({
108
- fieldName: "description",
109
- oldValue: existing.description,
110
- newValue: description,
111
- });
112
- }
113
-
114
- if (changes.length > 0) {
115
- await auditCommands.logAuditEvent(
116
- db,
117
- {
118
- eventId: randomUUID(),
119
- actorType: "USER",
120
- actorId: ctx.actorId,
121
- entityType: "ChartOfAccounts",
122
- entityId: id,
123
- operationType: "UPDATE",
124
- companyId: existing.companyId,
125
- changes,
126
- },
127
- ctx,
128
- );
129
- }
130
- }
131
-
132
82
  return ok({ chartOfAccounts: chartOfAccounts! });
133
83
  }
@@ -11,7 +11,6 @@ activateAccount transitions a GL account from DRAFT to ACTIVE status, making it
11
11
  - Target account must be in DRAFT status
12
12
  - Activating an already ACTIVE account fails with an invalid state transition error
13
13
  - Activating an INACTIVE account fails (use reactivateAccount instead)
14
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, account code, and status transition from DRAFT to ACTIVE
15
14
 
16
15
  ## Process Flow
17
16
 
@@ -24,8 +23,7 @@ flowchart TD
24
23
  B2 -->|Yes| D{Status is DRAFT?}
25
24
  D -->|No| E[Return error: invalid state transition]
26
25
  D -->|Yes| F[Update status to ACTIVE]
27
- F --> G[Emit audit event]
28
- G --> H[Return activated account]
26
+ F --> G[Return activated account]
29
27
  ```
30
28
 
31
29
  ## External Dependencies
@@ -46,4 +44,3 @@ flowchart TD
46
44
  - returns error when account is already ACTIVE
47
45
  - returns error when account is INACTIVE
48
46
  - activates a DRAFT account
49
- - emits audit event recording status transition from DRAFT to ACTIVE
@@ -10,7 +10,6 @@ activateChartOfAccounts transitions a Chart of Accounts from DRAFT to ACTIVE sta
10
10
  - Target CoA must be in DRAFT status
11
11
  - Activating an already ACTIVE or ARCHIVED CoA fails with an invalid state transition error
12
12
  - Only one CoA per company can be in ACTIVE status; activating a second CoA for the same company fails with a uniqueness constraint error
13
- - Emits an audit event via the audit module recording the acting user, timestamp, and status transition from DRAFT to ACTIVE
14
13
 
15
14
  ## Process Flow
16
15
 
@@ -23,8 +22,7 @@ flowchart TD
23
22
  D -->|Yes| F{Another ACTIVE CoA for same company?}
24
23
  F -->|Yes| G[Return error: duplicate active CoA]
25
24
  F -->|No| H[Update status to ACTIVE]
26
- H --> I[Emit audit event]
27
- I --> J[Return activated CoA]
25
+ H --> I[Return activated CoA]
28
26
  ```
29
27
 
30
28
  ## External Dependencies
@@ -44,4 +42,3 @@ flowchart TD
44
42
  - returns error when CoA is ARCHIVED
45
43
  - returns error when another ACTIVE CoA exists for the same company
46
44
  - activates a DRAFT CoA
47
- - emits audit event recording status transition from DRAFT to ACTIVE
@@ -20,7 +20,6 @@ createAccount establishes a new GL account in DRAFT status within a Chart of Acc
20
20
  - Account group, when provided, must belong to the same CoA and account code must fall within the group's number range (if defined)
21
21
  - Parent CoA must exist and be in DRAFT or ACTIVE status
22
22
  - Account is always created in DRAFT status
23
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, account code, classification, and initial field values
24
23
 
25
24
  ## Process Flow
26
25
 
@@ -41,8 +40,7 @@ flowchart TD
41
40
  L -->|Yes| N{Reconciliation valid for classification?}
42
41
  N -->|No| Q[Return error: reconciliation required]
43
42
  N -->|Yes| O[Create account in DRAFT]
44
- O --> P[Emit audit event]
45
- P --> Q[Return created account]
43
+ O --> P[Return created account]
46
44
  ```
47
45
 
48
46
  ## External Dependencies
@@ -90,5 +88,4 @@ flowchart TD
90
88
  - returns error when reconciliation explicitly set to false for RECEIVABLE classification
91
89
  - returns error when reconciliation explicitly set to false for PAYABLE classification
92
90
  - returns error when reconciliation explicitly set to false for BANK_CASH classification
93
- - emits audit event recording acting user, timestamp, CoA reference, account code, and classification
94
91
  - passes custom fields through to insert
@@ -12,7 +12,6 @@ createAccountGroup establishes a new account group within a Chart of Accounts. G
12
12
  - Parent group, when provided, must exist within the same CoA
13
13
  - Account number range, when defined, requires both start and end to be provided together, must be a valid interval (start < end), and must not overlap with other groups' ranges within the CoA
14
14
  - Sort order controls display sequence among sibling groups
15
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, group code, and initial field values
16
15
 
17
16
  ## Process Flow
18
17
 
@@ -31,13 +30,12 @@ flowchart TD
31
30
  F -->|Yes| H{Number range valid and non-overlapping?}
32
31
  H -->|No| I[Return error: invalid or overlapping range]
33
32
  H -->|Yes| J[Create account group]
34
- J --> K[Emit audit event]
35
- K --> L[Return created group]
33
+ J --> K[Return created group]
36
34
  ```
37
35
 
38
36
  ## External Dependencies
39
37
 
40
- - [audit](../../../audit/README.md) — Receives audit events emitted by this command
38
+ - None
41
39
 
42
40
  ## Error Scenarios
43
41
 
@@ -66,5 +64,4 @@ flowchart TD
66
64
  - creates a child group with valid parent
67
65
  - creates a group with account number range
68
66
  - creates a group with sort order
69
- - emits audit event recording acting user, timestamp, CoA reference, group code, and initial field values
70
67
  - passes custom fields through to insert
@@ -17,7 +17,6 @@ createChartOfAccounts establishes a new Chart of Accounts container in DRAFT sta
17
17
  - When `templateId` is provided, the command delegates template resolution to the template provider (external dependency). The provider must return the template's account groups and accounts. If no template provider is configured, templateId is rejected with TEMPLATE_PROVIDER_NOT_CONFIGURED
18
18
  - When a valid template is resolved, the command copies the template's account groups (with numbering ranges) and GL accounts into the new CoA in DRAFT status
19
19
  - Template-based creation is a convenience shortcut — all copied entities are fully mutable in DRAFT and can be modified before activation
20
- - Emits an audit event via the audit module recording the acting user, timestamp, initial field values, and whether the CoA was created from a template or blank
21
20
 
22
21
  ## Process Flow
23
22
 
@@ -35,9 +34,8 @@ flowchart TD
35
34
  H -->|No| I[Return error: template not found]
36
35
  H -->|Yes| J[Create CoA in DRAFT with template contents]
37
36
  G -->|No| K[Create blank CoA in DRAFT]
38
- J --> L[Emit audit event]
39
- K --> L
40
- L --> M[Return created CoA]
37
+ J --> K2[Return created CoA]
38
+ K --> K2
41
39
  ```
42
40
 
43
41
  ## External Dependencies
@@ -68,5 +66,3 @@ flowchart TD
68
66
  - returns error when organizationQueries reports company not found
69
67
  - creates blank CoA in DRAFT status with inherited base currency when no templateId is provided
70
68
  - template-copied entities are mutable and can be modified before activation
71
- - emits audit event recording acting user, timestamp, and initial field values
72
- - audit event includes whether CoA was created from template or blank
@@ -14,7 +14,6 @@ deactivateAccount transitions a GL account from ACTIVE to INACTIVE status, preve
14
14
  - Deactivation exposes a pre-deactivation hook for the GL module to block the transition when open balances exist
15
15
  - Without a GL module integrated, deactivation proceeds without balance checks
16
16
  - Successor account mapping is optional
17
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, account code, status transition from ACTIVE to INACTIVE, and successor mapping if provided
18
17
 
19
18
  ## Process Flow
20
19
 
@@ -35,8 +34,7 @@ flowchart TD
35
34
  J -->|No| K[Return error: successor not active]
36
35
  J -->|Yes| L[Map successor and set INACTIVE]
37
36
  I -->|No| L[Set status to INACTIVE]
38
- L --> M[Emit audit event]
39
- M --> N[Return deactivated account]
37
+ L --> M[Return deactivated account]
40
38
  ```
41
39
 
42
40
  ## External Dependencies
@@ -62,4 +60,3 @@ flowchart TD
62
60
  - deactivates an ACTIVE account with successor mapping
63
61
  - deactivates without balance check when GL hook is not registered
64
62
  - returns error when GL hook reports open balances
65
- - emits audit event recording status transition from ACTIVE to INACTIVE and successor mapping
@@ -11,7 +11,6 @@ deactivateChartOfAccounts transitions a Chart of Accounts from ACTIVE to ARCHIVE
11
11
  - Deactivating a DRAFT or already ARCHIVED CoA fails with an invalid state transition error
12
12
  - Archived CoA records and their accounts remain queryable for reporting and audit
13
13
  - This is a one-way transition; reactivation from ARCHIVED is not permitted
14
- - Emits an audit event via the audit module recording the acting user, timestamp, and status transition from ACTIVE to ARCHIVED
15
14
 
16
15
  ## Process Flow
17
16
 
@@ -22,8 +21,7 @@ flowchart TD
22
21
  B -->|Yes| D{Status is ACTIVE?}
23
22
  D -->|No| E[Return error: invalid state transition]
24
23
  D -->|Yes| F[Update status to ARCHIVED]
25
- F --> G[Emit audit event]
26
- G --> H[Return archived CoA]
24
+ F --> G[Return archived CoA]
27
25
  ```
28
26
 
29
27
  ## External Dependencies
@@ -41,4 +39,3 @@ flowchart TD
41
39
  - returns error when CoA is DRAFT
42
40
  - returns error when CoA is already ARCHIVED
43
41
  - archives an ACTIVE CoA
44
- - emits audit event recording status transition from ACTIVE to ARCHIVED
@@ -11,7 +11,6 @@ deleteAccount permanently removes a GL account that is in DRAFT status and has n
11
11
  - Target account must be in DRAFT status
12
12
  - Target account must have no posted transactions
13
13
  - Deleting ACTIVE or INACTIVE accounts is rejected
14
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, account code, and deletion
15
14
 
16
15
  ## Process Flow
17
16
 
@@ -26,8 +25,7 @@ flowchart TD
26
25
  D -->|Yes| F{Has posted transactions?}
27
26
  F -->|Yes| G[Return error: has posted transactions]
28
27
  F -->|No| H[Delete account record]
29
- H --> I[Emit audit event]
30
- I --> J[Return success]
28
+ H --> I[Return success]
31
29
  ```
32
30
 
33
31
  ## External Dependencies
@@ -49,4 +47,3 @@ flowchart TD
49
47
  - returns error when account is INACTIVE
50
48
  - returns error when DRAFT account has posted transactions
51
49
  - deletes a DRAFT account with no posted transactions
52
- - emits audit event recording deletion, acting user, and account code
@@ -10,7 +10,6 @@ deleteAccountGroup permanently removes an account group that has no child groups
10
10
  - Parent CoA must be in DRAFT or ACTIVE status; deleting a group under an ARCHIVED CoA is rejected
11
11
  - Group must have no child groups
12
12
  - Group must have no accounts assigned to it
13
- - Emits an audit event via the audit module recording the acting user, timestamp, and deletion of the group
14
13
 
15
14
  ## Process Flow
16
15
 
@@ -25,8 +24,7 @@ flowchart TD
25
24
  D -->|No| F{Has assigned accounts?}
26
25
  F -->|Yes| G[Return error: has assigned accounts]
27
26
  F -->|No| H[Delete group]
28
- H --> I[Emit audit event]
29
- I --> J[Return success]
27
+ H --> I[Return success]
30
28
  ```
31
29
 
32
30
  ## External Dependencies
@@ -47,4 +45,3 @@ flowchart TD
47
45
  - returns error when group has child groups
48
46
  - returns error when group has assigned accounts
49
47
  - deletes a leaf group with no assigned accounts
50
- - emits audit event recording deletion and acting user
@@ -9,8 +9,6 @@ deleteChartOfAccounts permanently removes a Chart of Accounts that is still in D
9
9
  - Target CoA must exist
10
10
  - Target CoA must be in DRAFT status; deleting ACTIVE or ARCHIVED CoA is rejected
11
11
  - Deletion cascade-deletes all child Account and AccountGroup records belonging to the CoA. Because only DRAFT CoA records can be deleted, and accounts can only be created under a DRAFT or ACTIVE CoA, all child accounts are guaranteed to be in DRAFT status with no posted transactions at this point — making cascade deletion safe and consistent with the account deletion invariant
12
- - Each cascade-deleted child record (Account and AccountGroup) emits its own audit event, followed by the CoA deletion audit event
13
- - Emits an audit event via the audit module recording the acting user, timestamp, and deletion of the CoA
14
12
 
15
13
  ## Process Flow
16
14
 
@@ -23,8 +21,7 @@ flowchart TD
23
21
  D -->|Yes| F[Cascade-delete all child Accounts]
24
22
  F --> G[Cascade-delete all child AccountGroups]
25
23
  G --> H[Delete CoA record]
26
- H --> I[Emit audit events for each deleted child and the CoA]
27
- I --> J[Return success]
24
+ H --> I[Return success]
28
25
  ```
29
26
 
30
27
  ## External Dependencies
@@ -44,5 +41,3 @@ flowchart TD
44
41
  - deletes a DRAFT CoA with no child records
45
42
  - deletes a DRAFT CoA and cascade-deletes all child Accounts
46
43
  - deletes a DRAFT CoA and cascade-deletes all child AccountGroups
47
- - emits audit events for each cascade-deleted Account and AccountGroup
48
- - emits audit event recording CoA deletion and acting user
@@ -12,7 +12,6 @@ moveAccountGroup reparents an account group by changing its parent reference wit
12
12
  - A group cannot be moved under itself or any of its descendants (circular reference prevention)
13
13
  - All child groups and their account assignments are preserved during the move
14
14
  - Group code and account assignments are unchanged by the move
15
- - Emits an audit event via the audit module recording the acting user, timestamp, previous parent reference, and new parent reference
16
15
 
17
16
  ## Process Flow
18
17
 
@@ -29,8 +28,7 @@ flowchart TD
29
28
  G -->|Yes| H[Return error: circular reference]
30
29
  G -->|No| I[Update parent reference]
31
30
  D -->|No/null| I[Promote to root]
32
- I --> J[Emit audit event]
33
- J --> K[Return moved group]
31
+ I --> J[Return moved group]
34
32
  ```
35
33
 
36
34
  ## External Dependencies
@@ -54,4 +52,3 @@ flowchart TD
54
52
  - returns error when moving group under its descendant
55
53
  - moves group to different parent
56
54
  - promotes group to root by setting parent to null
57
- - emits audit event recording previous and new parent references
@@ -11,7 +11,6 @@ reactivateAccount transitions a GL account from INACTIVE back to ACTIVE status,
11
11
  - Target account must be in INACTIVE status
12
12
  - Reactivating a DRAFT or ACTIVE account fails with an invalid state transition error
13
13
  - Reactivation clears any previously mapped successor account
14
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, account code, and status transition from INACTIVE to ACTIVE
15
14
 
16
15
  ## Process Flow
17
16
 
@@ -25,8 +24,7 @@ flowchart TD
25
24
  D -->|No| E[Return error: invalid state transition]
26
25
  D -->|Yes| F[Clear successor mapping]
27
26
  F --> G[Update status to ACTIVE]
28
- G --> H[Emit audit event]
29
- H --> I[Return reactivated account]
27
+ G --> H[Return reactivated account]
30
28
  ```
31
29
 
32
30
  ## External Dependencies
@@ -47,4 +45,3 @@ flowchart TD
47
45
  - returns error when account is already ACTIVE
48
46
  - reactivates an INACTIVE account
49
47
  - clears successor mapping on reactivation
50
- - emits audit event recording status transition from INACTIVE to ACTIVE
@@ -19,7 +19,6 @@ updateAccount modifies attributes of an existing GL account. Structural fields (
19
19
  - Currency restriction changes must reference a valid currency from the primitives module. An account with currency restriction only accepts postings in that currency (enforced by downstream posting modules)
20
20
  - Account group changes must reference a group in the same CoA, and the account code must fall within the group's number range (if defined)
21
21
  - When the account code is changed and the account belongs to an account group (whether the group assignment is also changing or staying the same), the new code must fall within the target group's number range (if defined). This applies to both cases: changing only the code while keeping the current group, and changing both the code and the group simultaneously
22
- - Emits an audit event via the audit module recording the acting user, timestamp, CoA reference, account code, and previous and new field values for all changed attributes
23
22
 
24
23
  ## Process Flow
25
24
 
@@ -44,8 +43,7 @@ flowchart TD
44
43
  H --> H2{Reconciliation invariant violated?}
45
44
  H2 -->|Yes| H3[Return error: reconciliation required]
46
45
  H2 -->|No| I[Update account fields]
47
- I --> J[Emit audit event]
48
- J --> K[Return updated account]
46
+ I --> J[Return updated account]
49
47
  ```
50
48
 
51
49
  ## External Dependencies
@@ -98,5 +96,4 @@ flowchart TD
98
96
  - returns error when changing code to a value outside the current group's number range
99
97
  - returns error when changing classification from RECEIVABLE after posted transactions
100
98
  - returns error when changing classification from PAYABLE after posted transactions
101
- - emits audit event recording previous and new field values for all changed attributes
102
99
  - passes custom fields through to update
@@ -2,17 +2,16 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- updateAccountGroup modifies the mutable fields (name, sort order, number range) of an existing account group. Code is immutable after creation. Number range changes must not conflict with existing account assignments or overlap with other groups' ranges.
5
+ updateAccountGroup modifies the mutable fields (name, sort order, number range) of an existing account group. The target group can be looked up by `id` or by `chartOfAccountsId` + `code`. Group code is fixed by the existing record and is used only as a lookup key when paired with `chartOfAccountsId`. Number range changes must not conflict with existing account assignments or overlap with other groups' ranges.
6
6
 
7
7
  ## Business Rules
8
8
 
9
- - Target group must exist
9
+ - Target group must exist (looked up by `id` or `chartOfAccountsId` + `code`)
10
10
  - Parent CoA must be in DRAFT or ACTIVE status; updating a group under an ARCHIVED CoA is rejected
11
11
  - Name, when provided, must be non-empty
12
- - Group code is immutable
12
+ - Group code is not part of the update input
13
13
  - Number range changes, when provided, require both start and end to be provided together, must remain a valid non-overlapping interval within the CoA
14
14
  - Changing a number range must not invalidate existing accounts already assigned to the group (their codes must still fall within the new range)
15
- - Emits an audit event via the audit module recording the acting user, timestamp, and previous and new field values for all changed attributes
16
15
 
17
16
  ## Process Flow
18
17
 
@@ -29,13 +28,12 @@ flowchart TD
29
28
  F -->|Yes| H{Existing accounts within new range?}
30
29
  H -->|No| I[Return error: accounts out of range]
31
30
  H -->|Yes| J[Update group fields]
32
- J --> K[Emit audit event]
33
- K --> L[Return updated group]
31
+ J --> K[Return updated group]
34
32
  ```
35
33
 
36
34
  ## External Dependencies
37
35
 
38
- - [audit](../../../audit/README.md) — Receives audit events emitted by this command
36
+ - None
39
37
 
40
38
  ## Error Scenarios
41
39
 
@@ -48,6 +46,7 @@ flowchart TD
48
46
  ## Test Cases
49
47
 
50
48
  - returns error when group does not exist
49
+ - looks up group by chartOfAccountsId and code and updates name
51
50
  - returns error when parent CoA is ARCHIVED
52
51
  - returns error when name is empty
53
52
  - returns error when new number range is invalid
@@ -58,5 +57,4 @@ flowchart TD
58
57
  - updates group name
59
58
  - updates sort order
60
59
  - updates number range
61
- - emits audit event recording previous and new field values
62
60
  - passes custom fields through to update
@@ -10,7 +10,6 @@ updateChartOfAccounts modifies the mutable fields (name, description) of an exis
10
10
  - Target CoA must be in DRAFT or ACTIVE status; updating an ARCHIVED CoA is rejected
11
11
  - Name, when provided, must be non-empty
12
12
  - Description is optional and can be cleared
13
- - Emits an audit event via the audit module recording the acting user, timestamp, and previous and new field values for all changed attributes
14
13
 
15
14
  ## Process Flow
16
15
 
@@ -23,8 +22,7 @@ flowchart TD
23
22
  D -->|Yes| F{Name valid if provided?}
24
23
  F -->|No| G[Return error: name required]
25
24
  F -->|Yes| H[Update CoA fields]
26
- H --> I[Emit audit event]
27
- I --> J[Return updated CoA]
25
+ H --> I[Return updated CoA]
28
26
  ```
29
27
 
30
28
  ## External Dependencies
@@ -45,5 +43,4 @@ flowchart TD
45
43
  - updates name of a DRAFT CoA
46
44
  - updates description of an ACTIVE CoA
47
45
  - clears description by setting to null
48
- - emits audit event recording previous and new field values
49
46
  - passes custom fields through to update
@@ -1,7 +1,7 @@
1
1
  import { type TailorAnyDBField } from "@tailor-platform/sdk";
2
2
  import type { defineModule as defineOrganizationModule } from "../organization";
3
3
  import type { defineModule as definePrimitivesModule } from "../primitives";
4
- import type { TemplateProvider, AuditCommands } from "./command/createChartOfAccounts";
4
+ import type { TemplateProvider } from "./command/createChartOfAccounts";
5
5
  // Commands
6
6
  import { createChartOfAccounts } from "./command/createChartOfAccounts.generated";
7
7
  import { updateChartOfAccounts } from "./command/updateChartOfAccounts.generated";
@@ -60,11 +60,9 @@ export interface DefineModuleParams<
60
60
  queries: Pick<PrimitivesQueries, "getCurrency">;
61
61
  };
62
62
  templateProvider?: TemplateProvider;
63
- audit?: {
64
- commands: AuditCommands;
65
- };
66
63
  }
67
64
 
65
+ /* @__NO_SIDE_EFFECTS__ */
68
66
  export const defineModule = <
69
67
  const COAF extends Record<string, TailorAnyDBField> = EmptyFields,
70
68
  const AGF extends Record<string, TailorAnyDBField> = EmptyFields,
@@ -88,8 +86,6 @@ export const defineModule = <
88
86
  currencyType: params.primitives.db.currency,
89
87
  });
90
88
 
91
- const auditCommands = params.audit?.commands;
92
-
93
89
  return {
94
90
  db: {
95
91
  chartOfAccounts: chartOfAccountsDb,
@@ -100,28 +96,21 @@ export const defineModule = <
100
96
  createChartOfAccounts: createChartOfAccounts<FieldsToInsertable<COAF>>(
101
97
  params.organization.queries,
102
98
  params.templateProvider,
103
- auditCommands,
104
- ),
105
- updateChartOfAccounts: updateChartOfAccounts<FieldsToInsertable<COAF>>(auditCommands),
106
- activateChartOfAccounts: activateChartOfAccounts(auditCommands),
107
- deactivateChartOfAccounts: deactivateChartOfAccounts(auditCommands),
108
- deleteChartOfAccounts: deleteChartOfAccounts(auditCommands),
109
- createAccountGroup: createAccountGroup<FieldsToInsertable<AGF>>(auditCommands),
110
- updateAccountGroup: updateAccountGroup<FieldsToInsertable<AGF>>(auditCommands),
111
- moveAccountGroup: moveAccountGroup(auditCommands),
112
- deleteAccountGroup: deleteAccountGroup(auditCommands),
113
- createAccount: createAccount<FieldsToInsertable<AF>>(
114
- params.primitives.queries,
115
- auditCommands,
116
- ),
117
- updateAccount: updateAccount<FieldsToInsertable<AF>>(
118
- params.primitives.queries,
119
- auditCommands,
120
99
  ),
121
- activateAccount: activateAccount(auditCommands),
122
- deactivateAccount: deactivateAccount(auditCommands),
123
- reactivateAccount: reactivateAccount(auditCommands),
124
- deleteAccount: deleteAccount(auditCommands),
100
+ updateChartOfAccounts: updateChartOfAccounts<FieldsToInsertable<COAF>>(),
101
+ activateChartOfAccounts: activateChartOfAccounts(),
102
+ deactivateChartOfAccounts: deactivateChartOfAccounts(),
103
+ deleteChartOfAccounts: deleteChartOfAccounts(),
104
+ createAccountGroup: createAccountGroup<FieldsToInsertable<AGF>>(),
105
+ updateAccountGroup: updateAccountGroup<FieldsToInsertable<AGF>>(),
106
+ moveAccountGroup: moveAccountGroup(),
107
+ deleteAccountGroup: deleteAccountGroup(),
108
+ createAccount: createAccount<FieldsToInsertable<AF>>(params.primitives.queries),
109
+ updateAccount: updateAccount<FieldsToInsertable<AF>>(params.primitives.queries),
110
+ activateAccount: activateAccount(),
111
+ deactivateAccount: deactivateAccount(),
112
+ reactivateAccount: reactivateAccount(),
113
+ deleteAccount: deleteAccount(),
125
114
  },
126
115
  queries: {
127
116
  getChartOfAccounts,
@@ -8,13 +8,12 @@ import {
8
8
  OverlappingFiscalYearError,
9
9
  } from "../lib/errors.generated";
10
10
 
11
- export interface UpdateFiscalYearInput {
11
+ export type UpdateFiscalYearInput = {
12
12
  id: string;
13
13
  yearName?: string;
14
14
  startDate?: Date;
15
15
  endDate?: Date;
16
- }
17
-
16
+ };
18
17
  export async function run(db: Transaction, input: UpdateFiscalYearInput, ctx: CommandContext) {
19
18
  const existing = await db
20
19
  .selectFrom("FiscalYear")
@@ -5,7 +5,6 @@ import {
5
5
  JournalEntryNotFoundError,
6
6
  InvalidStatusForUpdateError,
7
7
  DuplicateReferenceNumberError,
8
- JournalTypeImmutableError,
9
8
  } from "../lib/errors.generated";
10
9
  import { baseJournalEntry, postedJournalEntry, reversedJournalEntry } from "../testing/fixtures";
11
10
  import { commandCtx, expectErr, expectOk } from "../testing/commandTestUtils";
@@ -60,22 +59,6 @@ describe("updateJournalEntry", () => {
60
59
  expectErr(result, InvalidStatusForUpdateError);
61
60
  });
62
61
 
63
- it("returns error when attempting to change journal type", async () => {
64
- const { db, spies } = createMockDb<Transaction>();
65
- spies.select.mockReturnValueOnce(baseJournalEntry);
66
-
67
- const result = await run(
68
- db,
69
- {
70
- journalEntryId: baseJournalEntry.id,
71
- journalType: "SALES",
72
- },
73
- commandCtx,
74
- );
75
-
76
- expectErr(result, JournalTypeImmutableError);
77
- });
78
-
79
62
  it("updates description on a DRAFT journal entry", async () => {
80
63
  const updatedEntry = { ...baseJournalEntry, description: "New description" };
81
64
  const { db, spies } = createMockDb<Transaction>();