@things-factory/accounting 10.1.134 → 10.1.136

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 (240) hide show
  1. package/dist-client/route.d.ts +1 -1
  2. package/dist-client/route.js +0 -12
  3. package/dist-client/route.js.map +1 -1
  4. package/dist-client/tsconfig.tsbuildinfo +1 -1
  5. package/dist-server/index.d.ts +0 -1
  6. package/dist-server/index.js +0 -1
  7. package/dist-server/index.js.map +1 -1
  8. package/dist-server/service/account/account-history.d.ts +13 -6
  9. package/dist-server/service/account/account-history.js +44 -17
  10. package/dist-server/service/account/account-history.js.map +1 -1
  11. package/dist-server/service/account/account-mutation.js +2 -2
  12. package/dist-server/service/account/account-mutation.js.map +1 -1
  13. package/dist-server/service/account/account-query.d.ts +2 -0
  14. package/dist-server/service/account/account-query.js +12 -1
  15. package/dist-server/service/account/account-query.js.map +1 -1
  16. package/dist-server/service/account/account-type.d.ts +16 -0
  17. package/dist-server/service/account/account-type.js +71 -13
  18. package/dist-server/service/account/account-type.js.map +1 -1
  19. package/dist-server/service/account/account.d.ts +9 -3
  20. package/dist-server/service/account/account.js +34 -8
  21. package/dist-server/service/account/account.js.map +1 -1
  22. package/dist-server/service/accounting-category/accounting-category-mutation.js +2 -2
  23. package/dist-server/service/accounting-category/accounting-category-mutation.js.map +1 -1
  24. package/dist-server/service/accounting-category/accounting-category-query.d.ts +1 -0
  25. package/dist-server/service/accounting-category/accounting-category-query.js +10 -0
  26. package/dist-server/service/accounting-category/accounting-category-query.js.map +1 -1
  27. package/dist-server/service/accounting-document/accounting-document-mutation.js +12 -3
  28. package/dist-server/service/accounting-document/accounting-document-mutation.js.map +1 -1
  29. package/dist-server/service/accounting-document/accounting-document-query.js +2 -0
  30. package/dist-server/service/accounting-document/accounting-document-query.js.map +1 -1
  31. package/dist-server/service/bank-account/bank-account-history.d.ts +11 -14
  32. package/dist-server/service/bank-account/bank-account-history.js +46 -59
  33. package/dist-server/service/bank-account/bank-account-history.js.map +1 -1
  34. package/dist-server/service/bank-account/bank-account-mutation.d.ts +1 -2
  35. package/dist-server/service/bank-account/bank-account-mutation.js +25 -69
  36. package/dist-server/service/bank-account/bank-account-mutation.js.map +1 -1
  37. package/dist-server/service/bank-account/bank-account-query.js +3 -1
  38. package/dist-server/service/bank-account/bank-account-query.js.map +1 -1
  39. package/dist-server/service/bank-account/bank-account-service.d.ts +5 -0
  40. package/dist-server/service/bank-account/bank-account-service.js +21 -0
  41. package/dist-server/service/bank-account/bank-account-service.js.map +1 -0
  42. package/dist-server/service/bank-account/bank-account-type.d.ts +13 -19
  43. package/dist-server/service/bank-account/bank-account-type.js +45 -69
  44. package/dist-server/service/bank-account/bank-account-type.js.map +1 -1
  45. package/dist-server/service/bank-account/bank-account.d.ts +14 -17
  46. package/dist-server/service/bank-account/bank-account.js +45 -57
  47. package/dist-server/service/bank-account/bank-account.js.map +1 -1
  48. package/dist-server/service/bank-statement/bank-statement-query.d.ts +14 -0
  49. package/dist-server/service/bank-statement/bank-statement-query.js +92 -0
  50. package/dist-server/service/bank-statement/bank-statement-query.js.map +1 -0
  51. package/dist-server/service/bank-statement/bank-statement.d.ts +26 -0
  52. package/dist-server/service/bank-statement/bank-statement.js +109 -0
  53. package/dist-server/service/bank-statement/bank-statement.js.map +1 -0
  54. package/dist-server/service/bank-statement/index.d.ts +5 -0
  55. package/dist-server/service/bank-statement/index.js +9 -0
  56. package/dist-server/service/bank-statement/index.js.map +1 -0
  57. package/dist-server/service/cash-flow-type.d.ts +5 -0
  58. package/dist-server/service/cash-flow-type.js +15 -0
  59. package/dist-server/service/cash-flow-type.js.map +1 -0
  60. package/dist-server/service/financial-institution/financial-institution-mutation.js +10 -1
  61. package/dist-server/service/financial-institution/financial-institution-mutation.js.map +1 -1
  62. package/dist-server/service/financial-institution/financial-institution-query.js +14 -6
  63. package/dist-server/service/financial-institution/financial-institution-query.js.map +1 -1
  64. package/dist-server/service/financial-institution/index.d.ts +1 -1
  65. package/dist-server/service/financial-statement/financial-statement-history.d.ts +11 -9
  66. package/dist-server/service/financial-statement/financial-statement-history.js +47 -36
  67. package/dist-server/service/financial-statement/financial-statement-history.js.map +1 -1
  68. package/dist-server/service/financial-statement/financial-statement-line.d.ts +24 -0
  69. package/dist-server/service/financial-statement/financial-statement-line.js +108 -0
  70. package/dist-server/service/financial-statement/financial-statement-line.js.map +1 -0
  71. package/dist-server/service/financial-statement/financial-statement-mutation.d.ts +1 -8
  72. package/dist-server/service/financial-statement/financial-statement-mutation.js +10 -135
  73. package/dist-server/service/financial-statement/financial-statement-mutation.js.map +1 -1
  74. package/dist-server/service/financial-statement/financial-statement-query.d.ts +14 -7
  75. package/dist-server/service/financial-statement/financial-statement-query.js +87 -31
  76. package/dist-server/service/financial-statement/financial-statement-query.js.map +1 -1
  77. package/dist-server/service/financial-statement/financial-statement-service.d.ts +33 -0
  78. package/dist-server/service/financial-statement/financial-statement-service.js +44 -0
  79. package/dist-server/service/financial-statement/financial-statement-service.js.map +1 -0
  80. package/dist-server/service/financial-statement/financial-statement.d.ts +19 -11
  81. package/dist-server/service/financial-statement/financial-statement.js +73 -65
  82. package/dist-server/service/financial-statement/financial-statement.js.map +1 -1
  83. package/dist-server/service/financial-statement/index.d.ts +5 -4
  84. package/dist-server/service/financial-statement/index.js +3 -3
  85. package/dist-server/service/financial-statement/index.js.map +1 -1
  86. package/dist-server/service/index.d.ts +15 -3
  87. package/dist-server/service/index.js +30 -13
  88. package/dist-server/service/index.js.map +1 -1
  89. package/dist-server/service/payment/index.d.ts +1 -0
  90. package/dist-server/service/payment/index.js +1 -0
  91. package/dist-server/service/payment/index.js.map +1 -1
  92. package/dist-server/service/payment/payment-history.d.ts +9 -16
  93. package/dist-server/service/payment/payment-history.js +36 -70
  94. package/dist-server/service/payment/payment-history.js.map +1 -1
  95. package/dist-server/service/payment/payment-mutation.d.ts +0 -1
  96. package/dist-server/service/payment/payment-mutation.js +14 -79
  97. package/dist-server/service/payment/payment-mutation.js.map +1 -1
  98. package/dist-server/service/payment/payment-query.d.ts +3 -0
  99. package/dist-server/service/payment/payment-query.js +30 -1
  100. package/dist-server/service/payment/payment-query.js.map +1 -1
  101. package/dist-server/service/payment/payment-service.d.ts +16 -0
  102. package/dist-server/service/payment/payment-service.js +140 -0
  103. package/dist-server/service/payment/payment-service.js.map +1 -0
  104. package/dist-server/service/payment/payment-targets.d.ts +31 -0
  105. package/dist-server/service/payment/payment-targets.js +19 -0
  106. package/dist-server/service/payment/payment-targets.js.map +1 -0
  107. package/dist-server/service/payment/payment-type.d.ts +13 -17
  108. package/dist-server/service/payment/payment-type.js +35 -51
  109. package/dist-server/service/payment/payment-type.js.map +1 -1
  110. package/dist-server/service/payment/payment.d.ts +23 -22
  111. package/dist-server/service/payment/payment.js +66 -94
  112. package/dist-server/service/payment/payment.js.map +1 -1
  113. package/dist-server/service/payment/transfer-target.d.ts +1 -0
  114. package/dist-server/service/payment/transfer-target.js +43 -0
  115. package/dist-server/service/payment/transfer-target.js.map +1 -0
  116. package/dist-server/service/recurring-cash-item/index.d.ts +6 -0
  117. package/dist-server/service/recurring-cash-item/index.js +10 -0
  118. package/dist-server/service/recurring-cash-item/index.js.map +1 -0
  119. package/dist-server/service/recurring-cash-item/recurring-cash-item-mutation.d.ts +7 -0
  120. package/dist-server/service/recurring-cash-item/recurring-cash-item-mutation.js +63 -0
  121. package/dist-server/service/recurring-cash-item/recurring-cash-item-mutation.js.map +1 -0
  122. package/dist-server/service/recurring-cash-item/recurring-cash-item-query.d.ts +15 -0
  123. package/dist-server/service/recurring-cash-item/recurring-cash-item-query.js +101 -0
  124. package/dist-server/service/recurring-cash-item/recurring-cash-item-query.js.map +1 -0
  125. package/dist-server/service/recurring-cash-item/recurring-cash-item-service.d.ts +23 -0
  126. package/dist-server/service/recurring-cash-item/recurring-cash-item-service.js +91 -0
  127. package/dist-server/service/recurring-cash-item/recurring-cash-item-service.js.map +1 -0
  128. package/dist-server/service/recurring-cash-item/recurring-cash-item-type.d.ts +23 -0
  129. package/dist-server/service/recurring-cash-item/recurring-cash-item-type.js +85 -0
  130. package/dist-server/service/recurring-cash-item/recurring-cash-item-type.js.map +1 -0
  131. package/dist-server/service/recurring-cash-item/recurring-cash-item.d.ts +35 -0
  132. package/dist-server/service/recurring-cash-item/recurring-cash-item.js +142 -0
  133. package/dist-server/service/recurring-cash-item/recurring-cash-item.js.map +1 -0
  134. package/dist-server/service/recurring-cash-item/recurring-schedule.d.ts +36 -0
  135. package/dist-server/service/recurring-cash-item/recurring-schedule.js +41 -0
  136. package/dist-server/service/recurring-cash-item/recurring-schedule.js.map +1 -0
  137. package/dist-server/service/transaction/transaction-history.d.ts +42 -15
  138. package/dist-server/service/transaction/transaction-history.js +160 -54
  139. package/dist-server/service/transaction/transaction-history.js.map +1 -1
  140. package/dist-server/service/transaction/transaction-mutation.d.ts +0 -1
  141. package/dist-server/service/transaction/transaction-mutation.js +13 -78
  142. package/dist-server/service/transaction/transaction-mutation.js.map +1 -1
  143. package/dist-server/service/transaction/transaction-period.d.ts +16 -0
  144. package/dist-server/service/transaction/transaction-period.js +49 -0
  145. package/dist-server/service/transaction/transaction-period.js.map +1 -0
  146. package/dist-server/service/transaction/transaction-query.d.ts +12 -0
  147. package/dist-server/service/transaction/transaction-query.js +84 -2
  148. package/dist-server/service/transaction/transaction-query.js.map +1 -1
  149. package/dist-server/service/transaction/transaction-service.d.ts +30 -0
  150. package/dist-server/service/transaction/transaction-service.js +130 -0
  151. package/dist-server/service/transaction/transaction-service.js.map +1 -0
  152. package/dist-server/service/transaction/transaction-type.d.ts +39 -7
  153. package/dist-server/service/transaction/transaction-type.js +145 -23
  154. package/dist-server/service/transaction/transaction-type.js.map +1 -1
  155. package/dist-server/service/transaction/transaction.d.ts +58 -31
  156. package/dist-server/service/transaction/transaction.js +216 -102
  157. package/dist-server/service/transaction/transaction.js.map +1 -1
  158. package/dist-server/tsconfig.tsbuildinfo +1 -1
  159. package/package.json +5 -3
  160. package/things-factory.config.js +0 -4
  161. package/translations/en.json +34 -2
  162. package/translations/ja.json +0 -1
  163. package/translations/ko.json +34 -2
  164. package/translations/ms.json +0 -1
  165. package/translations/zh.json +0 -1
  166. package/dist-client/pages/account/account-importer.d.ts +0 -22
  167. package/dist-client/pages/account/account-importer.js +0 -99
  168. package/dist-client/pages/account/account-importer.js.map +0 -1
  169. package/dist-client/pages/account/account-list-page.d.ts +0 -57
  170. package/dist-client/pages/account/account-list-page.js +0 -306
  171. package/dist-client/pages/account/account-list-page.js.map +0 -1
  172. package/dist-client/pages/bank-account/bank-account-importer.d.ts +0 -23
  173. package/dist-client/pages/bank-account/bank-account-importer.js +0 -92
  174. package/dist-client/pages/bank-account/bank-account-importer.js.map +0 -1
  175. package/dist-client/pages/bank-account/bank-account-list-page.d.ts +0 -60
  176. package/dist-client/pages/bank-account/bank-account-list-page.js +0 -317
  177. package/dist-client/pages/bank-account/bank-account-list-page.js.map +0 -1
  178. package/dist-client/pages/financial-statement/financial-statement-importer.d.ts +0 -22
  179. package/dist-client/pages/financial-statement/financial-statement-importer.js +0 -99
  180. package/dist-client/pages/financial-statement/financial-statement-importer.js.map +0 -1
  181. package/dist-client/pages/financial-statement/financial-statement-list-page.d.ts +0 -57
  182. package/dist-client/pages/financial-statement/financial-statement-list-page.js +0 -280
  183. package/dist-client/pages/financial-statement/financial-statement-list-page.js.map +0 -1
  184. package/dist-client/pages/income-statement/income-statement-importer.d.ts +0 -22
  185. package/dist-client/pages/income-statement/income-statement-importer.js +0 -99
  186. package/dist-client/pages/income-statement/income-statement-importer.js.map +0 -1
  187. package/dist-client/pages/income-statement/income-statement-list-page.d.ts +0 -57
  188. package/dist-client/pages/income-statement/income-statement-list-page.js +0 -280
  189. package/dist-client/pages/income-statement/income-statement-list-page.js.map +0 -1
  190. package/dist-client/pages/payment/payment-importer.d.ts +0 -23
  191. package/dist-client/pages/payment/payment-importer.js +0 -92
  192. package/dist-client/pages/payment/payment-importer.js.map +0 -1
  193. package/dist-client/pages/payment/payment-list-page.d.ts +0 -60
  194. package/dist-client/pages/payment/payment-list-page.js +0 -317
  195. package/dist-client/pages/payment/payment-list-page.js.map +0 -1
  196. package/dist-client/pages/transaction/transaction-importer.d.ts +0 -22
  197. package/dist-client/pages/transaction/transaction-importer.js +0 -99
  198. package/dist-client/pages/transaction/transaction-importer.js.map +0 -1
  199. package/dist-client/pages/transaction/transaction-list-page.d.ts +0 -57
  200. package/dist-client/pages/transaction/transaction-list-page.js +0 -280
  201. package/dist-client/pages/transaction/transaction-list-page.js.map +0 -1
  202. package/dist-server/controllers/index.d.ts +0 -1
  203. package/dist-server/controllers/index.js +0 -5
  204. package/dist-server/controllers/index.js.map +0 -1
  205. package/dist-server/controllers/summary-statements.d.ts +0 -4
  206. package/dist-server/controllers/summary-statements.js +0 -149
  207. package/dist-server/controllers/summary-statements.js.map +0 -1
  208. package/dist-server/migrations/1725201567284-seed-country-codes.d.ts +0 -5
  209. package/dist-server/migrations/1725201567284-seed-country-codes.js +0 -255
  210. package/dist-server/migrations/1725201567284-seed-country-codes.js.map +0 -1
  211. package/dist-server/service/financial-statement/financial-statement-line-item.d.ts +0 -19
  212. package/dist-server/service/financial-statement/financial-statement-line-item.js +0 -95
  213. package/dist-server/service/financial-statement/financial-statement-line-item.js.map +0 -1
  214. package/dist-server/service/financial-statement/financial-statement-type.d.ts +0 -20
  215. package/dist-server/service/financial-statement/financial-statement-type.js +0 -77
  216. package/dist-server/service/financial-statement/financial-statement-type.js.map +0 -1
  217. package/dist-server/service/income-statement/event-subscriber.d.ts +0 -7
  218. package/dist-server/service/income-statement/event-subscriber.js +0 -21
  219. package/dist-server/service/income-statement/event-subscriber.js.map +0 -1
  220. package/dist-server/service/income-statement/income-statement-history.d.ts +0 -28
  221. package/dist-server/service/income-statement/income-statement-history.js +0 -146
  222. package/dist-server/service/income-statement/income-statement-history.js.map +0 -1
  223. package/dist-server/service/income-statement/income-statement-line-item.d.ts +0 -19
  224. package/dist-server/service/income-statement/income-statement-line-item.js +0 -97
  225. package/dist-server/service/income-statement/income-statement-line-item.js.map +0 -1
  226. package/dist-server/service/income-statement/income-statement-mutation.d.ts +0 -10
  227. package/dist-server/service/income-statement/income-statement-mutation.js +0 -159
  228. package/dist-server/service/income-statement/income-statement-mutation.js.map +0 -1
  229. package/dist-server/service/income-statement/income-statement-query.d.ts +0 -11
  230. package/dist-server/service/income-statement/income-statement-query.js +0 -81
  231. package/dist-server/service/income-statement/income-statement-query.js.map +0 -1
  232. package/dist-server/service/income-statement/income-statement-type.d.ts +0 -20
  233. package/dist-server/service/income-statement/income-statement-type.js +0 -77
  234. package/dist-server/service/income-statement/income-statement-type.js.map +0 -1
  235. package/dist-server/service/income-statement/income-statement.d.ts +0 -28
  236. package/dist-server/service/income-statement/income-statement.js +0 -137
  237. package/dist-server/service/income-statement/income-statement.js.map +0 -1
  238. package/dist-server/service/income-statement/index.d.ts +0 -8
  239. package/dist-server/service/income-statement/index.js +0 -13
  240. package/dist-server/service/income-statement/index.js.map +0 -1
@@ -11,6 +11,7 @@ const shell_1 = require("@things-factory/shell");
11
11
  const bank_account_1 = require("./bank-account");
12
12
  const ORMCONFIG = env_1.config.get('ormconfig', {});
13
13
  const DATABASE_TYPE = ORMCONFIG.type;
14
+ /** Each version of a bank account, written when it changes. */
14
15
  let BankAccountHistory = class BankAccountHistory {
15
16
  constructor() {
16
17
  this.version = 1;
@@ -19,130 +20,111 @@ let BankAccountHistory = class BankAccountHistory {
19
20
  exports.BankAccountHistory = BankAccountHistory;
20
21
  tslib_1.__decorate([
21
22
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
22
- (0, type_graphql_1.Field)(type => type_graphql_1.ID),
23
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { description: 'Unique identifier of the version' }),
23
24
  tslib_1.__metadata("design:type", String)
24
25
  ], BankAccountHistory.prototype, "id", void 0);
25
26
  tslib_1.__decorate([
26
27
  (0, typeorm_1.Column)({ nullable: true, default: 1 }),
27
- (0, type_graphql_1.Field)({ nullable: true }),
28
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Version number' }),
28
29
  tslib_1.__metadata("design:type", Number)
29
30
  ], BankAccountHistory.prototype, "version", void 0);
30
31
  tslib_1.__decorate([
31
32
  (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
32
- (0, type_graphql_1.Field)({ nullable: true }),
33
+ (0, type_graphql_1.Field)(type => shell_1.Domain, { nullable: true, description: 'The domain' }),
33
34
  tslib_1.__metadata("design:type", shell_1.Domain)
34
35
  ], BankAccountHistory.prototype, "domain", void 0);
35
36
  tslib_1.__decorate([
36
- (0, typeorm_1.RelationId)((bankAccount) => bankAccount.domain),
37
+ (0, typeorm_1.RelationId)((bankAccountHistory) => bankAccountHistory.domain),
37
38
  tslib_1.__metadata("design:type", String)
38
39
  ], BankAccountHistory.prototype, "domainId", void 0);
39
40
  tslib_1.__decorate([
40
- (0, typeorm_1.Column)(),
41
- (0, type_graphql_1.Field)(),
41
+ (0, typeorm_1.Column)({ nullable: true }),
42
+ (0, type_graphql_1.Field)({ nullable: true, description: 'name at this version' }),
42
43
  tslib_1.__metadata("design:type", String)
43
44
  ], BankAccountHistory.prototype, "name", void 0);
44
45
  tslib_1.__decorate([
45
- (0, typeorm_1.Column)({ nullable: true }),
46
- (0, type_graphql_1.Field)({ nullable: true }),
46
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
47
+ (0, type_graphql_1.Field)({ nullable: true, description: 'description at this version' }),
47
48
  tslib_1.__metadata("design:type", String)
48
49
  ], BankAccountHistory.prototype, "description", void 0);
49
50
  tslib_1.__decorate([
50
51
  (0, typeorm_1.Column)({ nullable: true }),
51
- (0, type_graphql_1.Field)({ nullable: true, description: 'Name of the account holder' }),
52
+ (0, type_graphql_1.Field)({ nullable: true, description: 'bankName at this version' }),
52
53
  tslib_1.__metadata("design:type", String)
53
- ], BankAccountHistory.prototype, "accountHolderName", void 0);
54
+ ], BankAccountHistory.prototype, "bankName", void 0);
54
55
  tslib_1.__decorate([
55
- (0, typeorm_1.Column)(),
56
- (0, type_graphql_1.Field)({ nullable: true, description: 'Bank account number' }),
56
+ (0, typeorm_1.Column)({ nullable: true }),
57
+ (0, type_graphql_1.Field)({ nullable: true, description: 'accountNumber at this version' }),
57
58
  tslib_1.__metadata("design:type", String)
58
59
  ], BankAccountHistory.prototype, "accountNumber", void 0);
59
60
  tslib_1.__decorate([
60
- (0, typeorm_1.Column)(),
61
- (0, type_graphql_1.Field)({ nullable: true, description: 'Bank name' }),
62
- tslib_1.__metadata("design:type", String)
63
- ], BankAccountHistory.prototype, "bankName", void 0);
64
- tslib_1.__decorate([
65
- (0, typeorm_1.Column)({ nullable: false }),
66
- (0, type_graphql_1.Field)(type => bank_account_1.AccountType, { description: 'Type of the account (Bank or Card)' }),
61
+ (0, typeorm_1.Column)({ nullable: true }),
62
+ (0, type_graphql_1.Field)(type => bank_account_1.AccountType, { nullable: true, description: 'accountType at this version' }),
67
63
  tslib_1.__metadata("design:type", String)
68
64
  ], BankAccountHistory.prototype, "accountType", void 0);
69
65
  tslib_1.__decorate([
70
66
  (0, typeorm_1.Column)({ nullable: true }),
71
- (0, type_graphql_1.Field)({ nullable: true, description: 'Currency of the account' }),
67
+ (0, type_graphql_1.Field)({ nullable: true, description: 'currency at this version' }),
72
68
  tslib_1.__metadata("design:type", String)
73
69
  ], BankAccountHistory.prototype, "currency", void 0);
74
- tslib_1.__decorate([
75
- (0, typeorm_1.Column)({ nullable: false, default: false }),
76
- (0, type_graphql_1.Field)({ nullable: true }),
77
- tslib_1.__metadata("design:type", Boolean)
78
- ], BankAccountHistory.prototype, "active", void 0);
79
- tslib_1.__decorate([
80
- (0, typeorm_1.Column)({ nullable: false }),
81
- (0, type_graphql_1.Field)(type => bank_account_1.OwnerType, { description: 'Type of the owner of the bank account' }),
82
- tslib_1.__metadata("design:type", String)
83
- ], BankAccountHistory.prototype, "ownerType", void 0);
84
- tslib_1.__decorate([
85
- (0, typeorm_1.Column)(),
86
- (0, type_graphql_1.Field)({ description: 'ID of the owner of the bank account' }),
87
- tslib_1.__metadata("design:type", String)
88
- ], BankAccountHistory.prototype, "ownerId", void 0);
89
70
  tslib_1.__decorate([
90
71
  (0, typeorm_1.Column)({ nullable: true }),
91
- (0, type_graphql_1.Field)({ nullable: true, description: 'IBAN of the bank account' }),
72
+ (0, type_graphql_1.Field)({ nullable: true, description: 'timezone at this version' }),
92
73
  tslib_1.__metadata("design:type", String)
93
- ], BankAccountHistory.prototype, "iban", void 0);
74
+ ], BankAccountHistory.prototype, "timezone", void 0);
94
75
  tslib_1.__decorate([
95
76
  (0, typeorm_1.Column)({ nullable: true }),
96
- (0, type_graphql_1.Field)({ nullable: true, description: 'BIC of the bank account' }),
77
+ (0, type_graphql_1.Field)(type => bank_account_1.BankAccountPurpose, { nullable: true, description: 'purpose at this version' }),
97
78
  tslib_1.__metadata("design:type", String)
98
- ], BankAccountHistory.prototype, "bic", void 0);
79
+ ], BankAccountHistory.prototype, "purpose", void 0);
80
+ tslib_1.__decorate([
81
+ (0, typeorm_1.Column)((0, shell_1.moneyColumn)({ nullable: true })),
82
+ (0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'statedBalance at this version' }),
83
+ tslib_1.__metadata("design:type", Number)
84
+ ], BankAccountHistory.prototype, "statedBalance", void 0);
99
85
  tslib_1.__decorate([
100
86
  (0, typeorm_1.Column)({ nullable: true }),
101
- (0, type_graphql_1.Field)({ nullable: true, description: 'Country of the bank account' }),
87
+ (0, type_graphql_1.Field)({ nullable: true, description: 'statedBalanceDate at this version' }),
102
88
  tslib_1.__metadata("design:type", String)
103
- ], BankAccountHistory.prototype, "country", void 0);
89
+ ], BankAccountHistory.prototype, "statedBalanceDate", void 0);
104
90
  tslib_1.__decorate([
105
91
  (0, typeorm_1.Column)({ nullable: true }),
106
- (0, type_graphql_1.Field)({ nullable: true, description: 'Cover image of the bank account' }),
107
- tslib_1.__metadata("design:type", String)
108
- ], BankAccountHistory.prototype, "image", void 0);
92
+ (0, type_graphql_1.Field)({ nullable: true, description: 'active at this version' }),
93
+ tslib_1.__metadata("design:type", Boolean)
94
+ ], BankAccountHistory.prototype, "active", void 0);
109
95
  tslib_1.__decorate([
110
96
  (0, typeorm_1.Column)({ nullable: true }),
111
- (0, type_graphql_1.Field)({ nullable: true }),
97
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When it was created' }),
112
98
  tslib_1.__metadata("design:type", Date)
113
99
  ], BankAccountHistory.prototype, "createdAt", void 0);
114
100
  tslib_1.__decorate([
115
101
  (0, typeorm_1.Column)({ nullable: true }),
116
- (0, type_graphql_1.Field)({ nullable: true }),
102
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When this version was written' }),
117
103
  tslib_1.__metadata("design:type", Date)
118
104
  ], BankAccountHistory.prototype, "updatedAt", void 0);
119
105
  tslib_1.__decorate([
120
106
  (0, typeorm_1.Column)({ nullable: true }),
121
- (0, type_graphql_1.Field)({ nullable: true }),
107
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When it was deleted' }),
122
108
  tslib_1.__metadata("design:type", Date)
123
109
  ], BankAccountHistory.prototype, "deletedAt", void 0);
124
110
  tslib_1.__decorate([
125
111
  (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
126
- (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
112
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: 'Who created it' }),
127
113
  tslib_1.__metadata("design:type", auth_base_1.User)
128
114
  ], BankAccountHistory.prototype, "creator", void 0);
129
115
  tslib_1.__decorate([
130
- (0, typeorm_1.RelationId)((bankAccount) => bankAccount.creator),
116
+ (0, typeorm_1.RelationId)((bankAccountHistory) => bankAccountHistory.creator),
131
117
  tslib_1.__metadata("design:type", String)
132
118
  ], BankAccountHistory.prototype, "creatorId", void 0);
133
119
  tslib_1.__decorate([
134
120
  (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
135
- (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
121
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: 'Who wrote this version' }),
136
122
  tslib_1.__metadata("design:type", auth_base_1.User)
137
123
  ], BankAccountHistory.prototype, "updater", void 0);
138
124
  tslib_1.__decorate([
139
- (0, typeorm_1.RelationId)((bankAccount) => bankAccount.updater),
125
+ (0, typeorm_1.RelationId)((bankAccountHistory) => bankAccountHistory.updater),
140
126
  tslib_1.__metadata("design:type", String)
141
127
  ], BankAccountHistory.prototype, "updaterId", void 0);
142
- tslib_1.__decorate([
143
- (0, type_graphql_1.Field)(type => String, { nullable: true }),
144
- tslib_1.__metadata("design:type", String)
145
- ], BankAccountHistory.prototype, "thumbnail", void 0);
146
128
  tslib_1.__decorate([
147
129
  (0, typeorm_history_1.HistoryOriginalIdColumn)(),
148
130
  tslib_1.__metadata("design:type", String)
@@ -154,15 +136,20 @@ tslib_1.__decorate([
154
136
  ? 'enum'
155
137
  : DATABASE_TYPE == 'oracle'
156
138
  ? 'varchar2'
157
- : 'smallint',
158
- enum: typeorm_history_1.HistoryActionType
139
+ : DATABASE_TYPE == 'mssql'
140
+ ? 'nvarchar'
141
+ : 'varchar',
142
+ enum: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
143
+ ? typeorm_history_1.HistoryActionType
144
+ : undefined,
145
+ length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10
159
146
  }),
160
147
  tslib_1.__metadata("design:type", String)
161
148
  ], BankAccountHistory.prototype, "action", void 0);
162
149
  exports.BankAccountHistory = BankAccountHistory = tslib_1.__decorate([
163
150
  (0, typeorm_1.Entity)(),
164
- (0, typeorm_1.Index)('ix_bank-account_history_0', (bankAccountHistory) => [bankAccountHistory.originalId, bankAccountHistory.version], { unique: true }),
165
- (0, typeorm_1.Index)('ix_bank-account_history_1', (bankAccountHistory) => [
151
+ (0, typeorm_1.Index)('ix_bank_account_history_0', (bankAccountHistory) => [bankAccountHistory.originalId, bankAccountHistory.version], { unique: true }),
152
+ (0, typeorm_1.Index)('ix_bank_account_history_1', (bankAccountHistory) => [
166
153
  bankAccountHistory.domain,
167
154
  bankAccountHistory.originalId,
168
155
  bankAccountHistory.version
@@ -1 +1 @@
1
- {"version":3,"file":"bank-account-history.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport {\n HistoryActionColumn,\n HistoryActionType,\n HistoryEntityInterface,\n HistoryOriginalIdColumn\n} from '@operato/typeorm-history'\nimport { Role, User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Domain } from '@things-factory/shell'\n\nimport { AccountType, BankAccount, OwnerType } from './bank-account'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index(\n 'ix_bank-account_history_0',\n (bankAccountHistory: BankAccountHistory) => [bankAccountHistory.originalId, bankAccountHistory.version],\n { unique: true }\n)\n@Index(\n 'ix_bank-account_history_1',\n (bankAccountHistory: BankAccountHistory) => [\n bankAccountHistory.domain,\n bankAccountHistory.originalId,\n bankAccountHistory.version\n ],\n { unique: true }\n)\n@ObjectType({ description: 'History Entity of BankAccount' })\nexport class BankAccountHistory implements HistoryEntityInterface<BankAccount> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, default: 1 })\n @Field({ nullable: true })\n version?: number = 1\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((bankAccount: BankAccount) => bankAccount.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Name of the account holder' })\n accountHolderName?: string // 계좌 소유자의 이름\n\n @Column()\n @Field({ nullable: true, description: 'Bank account number' })\n accountNumber?: string\n\n @Column()\n @Field({ nullable: true, description: 'Bank name' })\n bankName?: string\n\n @Column({ nullable: false })\n @Field(type => AccountType, { description: 'Type of the account (Bank or Card)' })\n accountType: AccountType\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Currency of the account' })\n currency?: string\n\n @Column({ nullable: false, default: false })\n @Field({ nullable: true })\n active?: boolean\n\n @Column({ nullable: false })\n @Field(type => OwnerType, { description: 'Type of the owner of the bank account' })\n ownerType: OwnerType\n\n @Column()\n @Field({ description: 'ID of the owner of the bank account' })\n ownerId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'IBAN of the bank account' })\n iban?: string // 은행 계좌의 IBAN\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'BIC of the bank account' })\n bic?: string // 은행 계좌의 BIC\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Country of the bank account' })\n country?: string // 은행 계좌의 국적\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Cover image of the bank account' })\n image?: string // 은행 계좌의 커버이미지\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n updatedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((bankAccount: BankAccount) => bankAccount.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((bankAccount: BankAccount) => bankAccount.updater)\n updaterId?: string\n\n @Field(type => String, { nullable: true })\n thumbnail?: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : 'smallint',\n enum: HistoryActionType\n })\n public action!: HistoryActionType\n}\n"]}
1
+ {"version":3,"file":"bank-account-history.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, Float, ID, Int, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport {\n HistoryActionColumn,\n HistoryActionType,\n HistoryEntityInterface,\n HistoryOriginalIdColumn\n} from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Domain, moneyColumn } from '@things-factory/shell'\n\nimport { AccountType, BankAccount, BankAccountPurpose } from './bank-account'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n/** Each version of a bank account, written when it changes. */\n@Entity()\n@Index(\n 'ix_bank_account_history_0',\n (bankAccountHistory: BankAccountHistory) => [bankAccountHistory.originalId, bankAccountHistory.version],\n { unique: true }\n)\n@Index(\n 'ix_bank_account_history_1',\n (bankAccountHistory: BankAccountHistory) => [\n bankAccountHistory.domain,\n bankAccountHistory.originalId,\n bankAccountHistory.version\n ],\n { unique: true }\n)\n@ObjectType({ description: 'History Entity of BankAccount' })\nexport class BankAccountHistory implements HistoryEntityInterface<BankAccount> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Unique identifier of the version' })\n readonly id: string\n\n @Column({ nullable: true, default: 1 })\n @Field({ nullable: true, description: 'Version number' })\n version?: number = 1\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain' })\n domain?: Domain\n\n @RelationId((bankAccountHistory: BankAccountHistory) => bankAccountHistory.domain)\n domainId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'name at this version' })\n name: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'description at this version' })\n description: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'bankName at this version' })\n bankName: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'accountNumber at this version' })\n accountNumber: string\n\n @Column({ nullable: true })\n @Field(type => AccountType, { nullable: true, description: 'accountType at this version' })\n accountType: AccountType\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'currency at this version' })\n currency: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'timezone at this version' })\n timezone: string\n\n @Column({ nullable: true })\n @Field(type => BankAccountPurpose, { nullable: true, description: 'purpose at this version' })\n purpose: BankAccountPurpose\n\n @Column(moneyColumn({ nullable: true }))\n @Field(type => Float, { nullable: true, description: 'statedBalance at this version' })\n statedBalance: number\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'statedBalanceDate at this version' })\n statedBalanceDate: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'active at this version' })\n active: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When it was created' })\n createdAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When this version was written' })\n updatedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When it was deleted' })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who created it' })\n creator?: User\n\n @RelationId((bankAccountHistory: BankAccountHistory) => bankAccountHistory.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote this version' })\n updater?: User\n\n @RelationId((bankAccountHistory: BankAccountHistory) => bankAccountHistory.updater)\n updaterId?: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n enum:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? HistoryActionType\n : undefined,\n length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10\n })\n public action!: HistoryActionType\n}\n"]}
@@ -1,10 +1,9 @@
1
1
  import { BankAccount } from './bank-account';
2
- import { NewBankAccount, BankAccountPatch } from './bank-account-type';
2
+ import { BankAccountPatch, NewBankAccount } from './bank-account-type';
3
3
  export declare class BankAccountMutation {
4
4
  createBankAccount(bankAccount: NewBankAccount, context: ResolverContext): Promise<BankAccount>;
5
5
  updateBankAccount(id: string, patch: BankAccountPatch, context: ResolverContext): Promise<BankAccount>;
6
6
  updateMultipleBankAccount(patches: BankAccountPatch[], context: ResolverContext): Promise<BankAccount[]>;
7
7
  deleteBankAccount(id: string, context: ResolverContext): Promise<boolean>;
8
8
  deleteBankAccounts(ids: string[], context: ResolverContext): Promise<boolean>;
9
- importBankAccounts(bankAccounts: BankAccountPatch[], context: ResolverContext): Promise<boolean>;
10
9
  }
@@ -3,95 +3,55 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BankAccountMutation = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
- const typeorm_1 = require("typeorm");
7
6
  const shell_1 = require("@things-factory/shell");
8
7
  const bank_account_1 = require("./bank-account");
8
+ const bank_account_service_1 = require("./bank-account-service");
9
9
  const bank_account_type_1 = require("./bank-account-type");
10
10
  let BankAccountMutation = class BankAccountMutation {
11
11
  async createBankAccount(bankAccount, context) {
12
12
  const { domain, user, tx } = context.state;
13
- const result = await (0, shell_1.getRepository)(bank_account_1.BankAccount, tx).save({
14
- ...bankAccount,
15
- domain,
16
- creator: user,
17
- updater: user
18
- });
19
- return result;
13
+ return await (0, shell_1.getRepository)(bank_account_1.BankAccount, tx).save({ ...bankAccount, domain, creator: user, updater: user });
20
14
  }
21
15
  async updateBankAccount(id, patch, context) {
22
16
  const { domain, user, tx } = context.state;
23
17
  const repository = (0, shell_1.getRepository)(bank_account_1.BankAccount, tx);
24
- const bankAccount = await repository.findOne({
25
- where: { domain: { id: domain.id }, id }
26
- });
27
- const result = await repository.save({
28
- ...bankAccount,
29
- ...patch,
30
- updater: user
31
- });
32
- return result;
18
+ const bankAccount = await repository.findOne({ where: { domain: { id: domain.id }, id } });
19
+ if (!bankAccount)
20
+ throw new shell_1.Refusal('bank-account-not-found', {}, 'a bank account was not found - reload and try again');
21
+ return await repository.save({ ...bankAccount, ...patch, updater: user });
33
22
  }
34
23
  async updateMultipleBankAccount(patches, context) {
35
24
  const { domain, user, tx } = context.state;
36
- let results = [];
37
- const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
38
- const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
39
- const bankAccountRepo = (0, shell_1.getRepository)(bank_account_1.BankAccount, tx);
40
- if (_createRecords.length > 0) {
41
- for (let i = 0; i < _createRecords.length; i++) {
42
- const newRecord = _createRecords[i];
43
- const result = await bankAccountRepo.save({
44
- ...newRecord,
45
- domain,
46
- creator: user,
47
- updater: user
48
- });
49
- results.push({ ...result, cuFlag: '+' });
25
+ const repository = (0, shell_1.getRepository)(bank_account_1.BankAccount, tx);
26
+ const results = [];
27
+ for (const { cuFlag, ...patch } of patches) {
28
+ if (cuFlag?.toUpperCase() === '+') {
29
+ results.push({ ...(await repository.save({ ...patch, domain, creator: user, updater: user })), cuFlag: '+' });
50
30
  }
51
- }
52
- if (_updateRecords.length > 0) {
53
- for (let i = 0; i < _updateRecords.length; i++) {
54
- const updateRecord = _updateRecords[i];
55
- const bankAccount = await bankAccountRepo.findOne({
56
- where: { domain: { id: domain.id }, id: updateRecord.id }
57
- });
58
- if (!bankAccount) {
59
- throw new Error(`failed to find bankAccount to update: ${updateRecord.id}`);
60
- }
61
- const result = await bankAccountRepo.save({
62
- ...bankAccount,
63
- ...updateRecord,
64
- updater: user
65
- });
66
- results.push({ ...result, cuFlag: 'M' });
31
+ else if (cuFlag?.toUpperCase() === 'M') {
32
+ const bankAccount = await repository.findOne({ where: { domain: { id: domain.id }, id: patch.id } });
33
+ if (!bankAccount)
34
+ throw new shell_1.Refusal('bank-account-not-found', {}, 'a bank account was not found - reload and try again');
35
+ results.push({ ...(await repository.save({ ...bankAccount, ...patch, updater: user })), cuFlag: 'M' });
67
36
  }
68
37
  }
69
38
  return results;
70
39
  }
71
40
  async deleteBankAccount(id, context) {
72
41
  const { domain, tx } = context.state;
73
- await (0, shell_1.getRepository)(bank_account_1.BankAccount, tx).delete({ domain: { id: domain.id }, id });
42
+ await (0, bank_account_service_1.deleteBankAccounts)(tx, domain, [id]);
74
43
  return true;
75
44
  }
76
45
  async deleteBankAccounts(ids, context) {
77
46
  const { domain, tx } = context.state;
78
- await (0, shell_1.getRepository)(bank_account_1.BankAccount, tx).delete({
79
- domain: { id: domain.id },
80
- id: (0, typeorm_1.In)(ids)
81
- });
82
- return true;
83
- }
84
- async importBankAccounts(bankAccounts, context) {
85
- const { domain, tx } = context.state;
86
- await Promise.all(bankAccounts.map(async (bankAccount) => {
87
- const createdBankAccount = await (0, shell_1.getRepository)(bank_account_1.BankAccount, tx).save({ domain, ...bankAccount });
88
- }));
47
+ await (0, bank_account_service_1.deleteBankAccounts)(tx, domain, ids);
89
48
  return true;
90
49
  }
91
50
  };
92
51
  exports.BankAccountMutation = BankAccountMutation;
93
52
  tslib_1.__decorate([
94
53
  (0, type_graphql_1.Directive)('@transaction'),
54
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "mutation", domainOwnerGranted: true)'),
95
55
  (0, type_graphql_1.Mutation)(returns => bank_account_1.BankAccount, { description: 'To create new BankAccount' }),
96
56
  tslib_1.__param(0, (0, type_graphql_1.Arg)('bankAccount')),
97
57
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -101,6 +61,7 @@ tslib_1.__decorate([
101
61
  ], BankAccountMutation.prototype, "createBankAccount", null);
102
62
  tslib_1.__decorate([
103
63
  (0, type_graphql_1.Directive)('@transaction'),
64
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "mutation", domainOwnerGranted: true)'),
104
65
  (0, type_graphql_1.Mutation)(returns => bank_account_1.BankAccount, { description: 'To modify BankAccount information' }),
105
66
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
106
67
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
@@ -111,6 +72,7 @@ tslib_1.__decorate([
111
72
  ], BankAccountMutation.prototype, "updateBankAccount", null);
112
73
  tslib_1.__decorate([
113
74
  (0, type_graphql_1.Directive)('@transaction'),
75
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "mutation", domainOwnerGranted: true)'),
114
76
  (0, type_graphql_1.Mutation)(returns => [bank_account_1.BankAccount], { description: "To modify multiple BankAccounts' information" }),
115
77
  tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [bank_account_type_1.BankAccountPatch])),
116
78
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -120,6 +82,7 @@ tslib_1.__decorate([
120
82
  ], BankAccountMutation.prototype, "updateMultipleBankAccount", null);
121
83
  tslib_1.__decorate([
122
84
  (0, type_graphql_1.Directive)('@transaction'),
85
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "mutation", domainOwnerGranted: true)'),
123
86
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete BankAccount' }),
124
87
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
125
88
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -129,6 +92,7 @@ tslib_1.__decorate([
129
92
  ], BankAccountMutation.prototype, "deleteBankAccount", null);
130
93
  tslib_1.__decorate([
131
94
  (0, type_graphql_1.Directive)('@transaction'),
95
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "mutation", domainOwnerGranted: true)'),
132
96
  (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple BankAccounts' }),
133
97
  tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
134
98
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -136,16 +100,8 @@ tslib_1.__decorate([
136
100
  tslib_1.__metadata("design:paramtypes", [Array, Object]),
137
101
  tslib_1.__metadata("design:returntype", Promise)
138
102
  ], BankAccountMutation.prototype, "deleteBankAccounts", null);
139
- tslib_1.__decorate([
140
- (0, type_graphql_1.Directive)('@transaction'),
141
- (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple BankAccounts' }),
142
- tslib_1.__param(0, (0, type_graphql_1.Arg)('bankAccounts', type => [bank_account_type_1.BankAccountPatch])),
143
- tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
144
- tslib_1.__metadata("design:type", Function),
145
- tslib_1.__metadata("design:paramtypes", [Array, Object]),
146
- tslib_1.__metadata("design:returntype", Promise)
147
- ], BankAccountMutation.prototype, "importBankAccounts", null);
148
103
  exports.BankAccountMutation = BankAccountMutation = tslib_1.__decorate([
149
- (0, type_graphql_1.Resolver)(bank_account_1.BankAccount)
104
+ (0, type_graphql_1.Resolver)(bank_account_1.BankAccount),
105
+ (0, type_graphql_1.UseMiddleware)(shell_1.SpeakRefusals)
150
106
  ], BankAccountMutation);
151
107
  //# sourceMappingURL=bank-account-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bank-account-mutation.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { getRepository } from '@things-factory/shell'\n\nimport { BankAccount } from './bank-account'\nimport { NewBankAccount, BankAccountPatch } from './bank-account-type'\n\n@Resolver(BankAccount)\nexport class BankAccountMutation {\n @Directive('@transaction')\n @Mutation(returns => BankAccount, { description: 'To create new BankAccount' })\n async createBankAccount(@Arg('bankAccount') bankAccount: NewBankAccount, @Ctx() context: ResolverContext): Promise<BankAccount> {\n const { domain, user, tx } = context.state\n\n const result = await getRepository(BankAccount, tx).save({\n ...bankAccount,\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => BankAccount, { description: 'To modify BankAccount information' })\n async updateBankAccount(\n @Arg('id') id: string,\n @Arg('patch') patch: BankAccountPatch,\n @Ctx() context: ResolverContext\n ): Promise<BankAccount> {\n const { domain, user, tx } = context.state\n\n const repository = getRepository(BankAccount, tx)\n const bankAccount = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...bankAccount,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => [BankAccount], { description: \"To modify multiple BankAccounts' information\" })\n async updateMultipleBankAccount(\n @Arg('patches', type => [BankAccountPatch]) patches: BankAccountPatch[],\n @Ctx() context: ResolverContext\n ): Promise<BankAccount[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const bankAccountRepo = getRepository(BankAccount, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await bankAccountRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const bankAccount = await bankAccountRepo.findOne({\n where: { domain: { id: domain.id }, id: updateRecord.id }\n })\n\n if (!bankAccount) {\n throw new Error(`failed to find bankAccount to update: ${updateRecord.id}`)\n }\n\n const result = await bankAccountRepo.save({\n ...bankAccount,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete BankAccount' })\n async deleteBankAccount(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(BankAccount, tx).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple BankAccounts' })\n async deleteBankAccounts(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(BankAccount, tx).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple BankAccounts' })\n async importBankAccounts(\n @Arg('bankAccounts', type => [BankAccountPatch]) bankAccounts: BankAccountPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n bankAccounts.map(async (bankAccount: BankAccountPatch) => {\n const createdBankAccount: BankAccount = await getRepository(BankAccount, tx).save({ domain, ...bankAccount })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"bank-account-mutation.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive, UseMiddleware } from 'type-graphql'\n\nimport { getRepository, Refusal, SpeakRefusals } from '@things-factory/shell'\n\nimport { BankAccount } from './bank-account'\nimport { deleteBankAccounts } from './bank-account-service'\nimport { BankAccountPatch, NewBankAccount } from './bank-account-type'\n\n@Resolver(BankAccount)\n@UseMiddleware(SpeakRefusals)\nexport class BankAccountMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"accounting\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BankAccount, { description: 'To create new BankAccount' })\n async createBankAccount(\n @Arg('bankAccount') bankAccount: NewBankAccount,\n @Ctx() context: ResolverContext\n ): Promise<BankAccount> {\n const { domain, user, tx } = context.state\n\n return await getRepository(BankAccount, tx).save({ ...bankAccount, domain, creator: user, updater: user })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"accounting\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => BankAccount, { description: 'To modify BankAccount information' })\n async updateBankAccount(\n @Arg('id') id: string,\n @Arg('patch') patch: BankAccountPatch,\n @Ctx() context: ResolverContext\n ): Promise<BankAccount> {\n const { domain, user, tx } = context.state\n const repository = getRepository(BankAccount, tx)\n const bankAccount = await repository.findOne({ where: { domain: { id: domain.id }, id } })\n if (!bankAccount)\n throw new Refusal('bank-account-not-found', {}, 'a bank account was not found - reload and try again')\n\n return await repository.save({ ...bankAccount, ...patch, updater: user })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"accounting\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [BankAccount], { description: \"To modify multiple BankAccounts' information\" })\n async updateMultipleBankAccount(\n @Arg('patches', type => [BankAccountPatch]) patches: BankAccountPatch[],\n @Ctx() context: ResolverContext\n ): Promise<BankAccount[]> {\n const { domain, user, tx } = context.state\n const repository = getRepository(BankAccount, tx)\n const results = []\n\n for (const { cuFlag, ...patch } of patches) {\n if (cuFlag?.toUpperCase() === '+') {\n results.push({ ...(await repository.save({ ...patch, domain, creator: user, updater: user })), cuFlag: '+' })\n } else if (cuFlag?.toUpperCase() === 'M') {\n const bankAccount = await repository.findOne({ where: { domain: { id: domain.id }, id: patch.id } })\n if (!bankAccount)\n throw new Refusal('bank-account-not-found', {}, 'a bank account was not found - reload and try again')\n results.push({ ...(await repository.save({ ...bankAccount, ...patch, updater: user })), cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"accounting\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete BankAccount' })\n async deleteBankAccount(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n await deleteBankAccounts(tx, domain, [id])\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"accounting\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple BankAccounts' })\n async deleteBankAccounts(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n await deleteBankAccounts(tx, domain, ids)\n\n return true\n }\n}\n"]}
@@ -20,7 +20,7 @@ let BankAccountQuery = class BankAccountQuery {
20
20
  domain,
21
21
  params,
22
22
  repository: await (0, shell_1.getRepository)(bank_account_1.BankAccount),
23
- searchables: ['name', 'description']
23
+ searchables: ['name', 'bankName', 'accountNumber', 'description']
24
24
  });
25
25
  const [items, total] = await queryBuilder.getManyAndCount();
26
26
  return { items, total };
@@ -37,6 +37,7 @@ let BankAccountQuery = class BankAccountQuery {
37
37
  };
38
38
  exports.BankAccountQuery = BankAccountQuery;
39
39
  tslib_1.__decorate([
40
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "query", domainOwnerGranted: true)'),
40
41
  (0, type_graphql_1.Query)(returns => bank_account_1.BankAccount, { nullable: true, description: 'To fetch a BankAccount' }),
41
42
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
42
43
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -45,6 +46,7 @@ tslib_1.__decorate([
45
46
  tslib_1.__metadata("design:returntype", Promise)
46
47
  ], BankAccountQuery.prototype, "bankAccount", null);
47
48
  tslib_1.__decorate([
49
+ (0, type_graphql_1.Directive)('@privilege(category: "accounting", privilege: "query", domainOwnerGranted: true)'),
48
50
  (0, type_graphql_1.Query)(returns => bank_account_type_1.BankAccountList, { description: 'To fetch multiple BankAccounts' }),
49
51
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
50
52
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"bank-account-query.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BankAccount } from './bank-account'\nimport { BankAccountList } from './bank-account-type'\n\n@Resolver(BankAccount)\nexport class BankAccountQuery {\n @Query(returns => BankAccount!, { nullable: true, description: 'To fetch a BankAccount' })\n async bankAccount(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BankAccount> {\n const { domain } = context.state\n\n return await getRepository(BankAccount).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => BankAccountList, { description: 'To fetch multiple BankAccounts' })\n async bankAccounts(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<BankAccountList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(BankAccount),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() bankAccount: BankAccount): Promise<Domain> {\n return bankAccount.domainId && (await getRepository(Domain).findOneBy({ id: bankAccount.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() bankAccount: BankAccount): Promise<User> {\n return bankAccount.updaterId && (await getRepository(User).findOneBy({ id: bankAccount.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() bankAccount: BankAccount): Promise<User> {\n return bankAccount.creatorId && (await getRepository(User).findOneBy({ id: bankAccount.creatorId }))\n }\n}\n"]}
1
+ {"version":3,"file":"bank-account-query.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BankAccount } from './bank-account'\nimport { BankAccountList } from './bank-account-type'\n\n@Resolver(BankAccount)\nexport class BankAccountQuery {\n @Directive('@privilege(category: \"accounting\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BankAccount!, { nullable: true, description: 'To fetch a BankAccount' })\n async bankAccount(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BankAccount> {\n const { domain } = context.state\n\n return await getRepository(BankAccount).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"accounting\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => BankAccountList, { description: 'To fetch multiple BankAccounts' })\n async bankAccounts(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<BankAccountList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(BankAccount),\n searchables: ['name', 'bankName', 'accountNumber', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() bankAccount: BankAccount): Promise<Domain> {\n return bankAccount.domainId && (await getRepository(Domain).findOneBy({ id: bankAccount.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() bankAccount: BankAccount): Promise<User> {\n return bankAccount.updaterId && (await getRepository(User).findOneBy({ id: bankAccount.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() bankAccount: BankAccount): Promise<User> {\n return bankAccount.creatorId && (await getRepository(User).findOneBy({ id: bankAccount.creatorId }))\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { EntityManager } from 'typeorm';
2
+ /** An account that lines were written on is made inactive, not deleted - the lines keep pointing at it. */
3
+ export declare function deleteBankAccounts(tx: EntityManager, domain: {
4
+ id: string;
5
+ }, ids: string[]): Promise<void>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteBankAccounts = deleteBankAccounts;
4
+ const typeorm_1 = require("typeorm");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const transaction_1 = require("../transaction/transaction");
7
+ const bank_account_1 = require("./bank-account");
8
+ /** An account that lines were written on is made inactive, not deleted - the lines keep pointing at it. */
9
+ async function deleteBankAccounts(tx, domain, ids) {
10
+ const repo = tx.getRepository(bank_account_1.BankAccount);
11
+ const found = await repo.find({ where: { domain: { id: domain.id }, id: (0, typeorm_1.In)(ids) } });
12
+ if (found.length !== new Set(ids).size)
13
+ throw new shell_1.Refusal('bank-account-not-found', {}, 'a bank account was not found - reload and try again');
14
+ const used = await tx
15
+ .getRepository(transaction_1.Transaction)
16
+ .count({ where: { domain: { id: domain.id }, bankAccount: { id: (0, typeorm_1.In)(ids) } }, withDeleted: true });
17
+ if (used)
18
+ throw new shell_1.Refusal('bank-account-has-transactions', {}, 'transactions were written on the account - make it inactive instead');
19
+ await repo.softRemove(found);
20
+ }
21
+ //# sourceMappingURL=bank-account-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bank-account-service.js","sourceRoot":"","sources":["../../../server/service/bank-account/bank-account-service.ts"],"names":[],"mappings":";;AAQA,gDAeC;AAvBD,qCAA2C;AAE3C,iDAA+C;AAE/C,4DAAwD;AACxD,iDAA4C;AAE5C,2GAA2G;AACpG,KAAK,UAAU,kBAAkB,CAAC,EAAiB,EAAE,MAAsB,EAAE,GAAa;IAC/F,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACpF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;QACpC,MAAM,IAAI,eAAO,CAAC,wBAAwB,EAAE,EAAE,EAAE,qDAAqD,CAAC,CAAA;IACxG,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,aAAa,CAAC,yBAAW,CAAC;SAC1B,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IACnG,IAAI,IAAI;QACN,MAAM,IAAI,eAAO,CACf,+BAA+B,EAC/B,EAAE,EACF,qEAAqE,CACtE,CAAA;IACH,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC","sourcesContent":["import { EntityManager, In } from 'typeorm'\n\nimport { Refusal } from '@things-factory/shell'\n\nimport { Transaction } from '../transaction/transaction'\nimport { BankAccount } from './bank-account'\n\n/** An account that lines were written on is made inactive, not deleted - the lines keep pointing at it. */\nexport async function deleteBankAccounts(tx: EntityManager, domain: { id: string }, ids: string[]): Promise<void> {\n const repo = tx.getRepository(BankAccount)\n const found = await repo.find({ where: { domain: { id: domain.id }, id: In(ids) } })\n if (found.length !== new Set(ids).size)\n throw new Refusal('bank-account-not-found', {}, 'a bank account was not found - reload and try again')\n const used = await tx\n .getRepository(Transaction)\n .count({ where: { domain: { id: domain.id }, bankAccount: { id: In(ids) } }, withDeleted: true })\n if (used)\n throw new Refusal(\n 'bank-account-has-transactions',\n {},\n 'transactions were written on the account - make it inactive instead'\n )\n await repo.softRemove(found)\n}\n"]}