@tomei/finance 0.2.14 → 0.2.15

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 (318) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc.js +72 -72
  3. package/.husky/commit-msg +4 -4
  4. package/.husky/pre-commit +4 -4
  5. package/.prettierrc +4 -4
  6. package/CONTRIBUTING.md +30 -30
  7. package/LICENSE +21 -21
  8. package/README.md +40 -40
  9. package/dist/account/account.d.ts +38 -38
  10. package/dist/account/account.js +116 -116
  11. package/dist/account/account.repository.d.ts +16 -16
  12. package/dist/account/account.repository.js +46 -46
  13. package/dist/account/entities/account.entity.d.ts +26 -26
  14. package/dist/account/entities/account.entity.js +198 -198
  15. package/dist/account/index.d.ts +6 -6
  16. package/dist/account/index.js +9 -9
  17. package/dist/account/interfaces/account-attr.interface.d.ts +21 -21
  18. package/dist/account/interfaces/account-attr.interface.js +2 -2
  19. package/dist/account/interfaces/account.repository.interface.d.ts +3 -3
  20. package/dist/account/interfaces/account.repository.interface.js +2 -2
  21. package/dist/account-system-entity/account-system-entity.d.ts +21 -21
  22. package/dist/account-system-entity/account-system-entity.js +75 -75
  23. package/dist/account-system-entity/index.d.ts +2 -2
  24. package/dist/account-system-entity/index.js +5 -5
  25. package/dist/account-system-entity/post-history.entity.d.ts +11 -11
  26. package/dist/account-system-entity/post-history.entity.js +64 -64
  27. package/dist/account-system-entity/post-history.repository.d.ts +5 -5
  28. package/dist/account-system-entity/post-history.repository.js +12 -12
  29. package/dist/base/account-system.interface.d.ts +7 -7
  30. package/dist/base/account-system.interface.js +2 -2
  31. package/dist/base/base.repository.abstract.d.ts +12 -12
  32. package/dist/base/base.repository.abstract.js +21 -21
  33. package/dist/base/base.repository.interface.d.ts +9 -9
  34. package/dist/base/base.repository.interface.js +2 -2
  35. package/dist/base/index.d.ts +6 -4
  36. package/dist/base/index.js +7 -9
  37. package/dist/base/index.js.map +1 -1
  38. package/dist/base/object/base.object.abstract.d.ts +5 -5
  39. package/dist/base/object/base.object.abstract.js +6 -6
  40. package/dist/base/object/object.interface.d.ts +4 -4
  41. package/dist/base/object/object.interface.js +2 -2
  42. package/dist/base/owner/base.owner.abstract.d.ts +20 -20
  43. package/dist/base/owner/base.owner.abstract.js +7 -7
  44. package/dist/base/owner/owner.interface.d.ts +19 -19
  45. package/dist/base/owner/owner.interface.js +2 -2
  46. package/dist/config.d.ts +34 -34
  47. package/dist/config.js +148 -148
  48. package/dist/customer/customer.d.ts +27 -27
  49. package/dist/customer/customer.js +52 -52
  50. package/dist/customer/entities/customer.entity.d.ts +13 -13
  51. package/dist/customer/entities/customer.entity.js +110 -110
  52. package/dist/customer/finance-customer.repository.d.ts +10 -10
  53. package/dist/customer/finance-customer.repository.js +37 -37
  54. package/dist/customer/index.d.ts +7 -7
  55. package/dist/customer/index.js +9 -9
  56. package/dist/customer/interfaces/customer.repository.interface.d.ts +3 -3
  57. package/dist/customer/interfaces/customer.repository.interface.js +2 -2
  58. package/dist/customer/interfaces/finance-customer-attr.interface.d.ts +10 -10
  59. package/dist/customer/interfaces/finance-customer-attr.interface.js +2 -2
  60. package/dist/customer/interfaces/finance-customer.repository.interface.d.ts +3 -3
  61. package/dist/customer/interfaces/finance-customer.repository.interface.js +2 -2
  62. package/dist/document/document-item.d.ts +22 -22
  63. package/dist/document/document-item.js +6 -6
  64. package/dist/document/document-item.repository.d.ts +17 -17
  65. package/dist/document/document-item.repository.js +50 -50
  66. package/dist/document/document.d.ts +44 -44
  67. package/dist/document/document.js +141 -141
  68. package/dist/document/document.repository.d.ts +16 -16
  69. package/dist/document/document.repository.js +46 -46
  70. package/dist/document/entities/document-item.entity.d.ts +27 -27
  71. package/dist/document/entities/document-item.entity.js +173 -173
  72. package/dist/document/entities/document.entity.d.ts +22 -22
  73. package/dist/document/entities/document.entity.js +138 -138
  74. package/dist/document/index.d.ts +11 -11
  75. package/dist/document/index.js +19 -19
  76. package/dist/document/interfaces/document-attr.interface.d.ts +19 -19
  77. package/dist/document/interfaces/document-attr.interface.js +6 -6
  78. package/dist/document/interfaces/document-item-attr.interface.d.ts +22 -22
  79. package/dist/document/interfaces/document-item-attr.interface.js +6 -6
  80. package/dist/document/interfaces/document-item.repository.interface.d.ts +3 -3
  81. package/dist/document/interfaces/document-item.repository.interface.js +2 -2
  82. package/dist/document/interfaces/document.repository.interface.d.ts +3 -3
  83. package/dist/document/interfaces/document.repository.interface.js +2 -2
  84. package/dist/enum/doc-type.enum.d.ts +7 -7
  85. package/dist/enum/doc-type.enum.js +11 -11
  86. package/dist/enum/document-status.enum.d.ts +4 -4
  87. package/dist/enum/document-status.enum.js +8 -8
  88. package/dist/enum/index.d.ts +7 -7
  89. package/dist/enum/index.js +15 -15
  90. package/dist/enum/payment-method.enum.d.ts +3 -3
  91. package/dist/enum/payment-method.enum.js +7 -7
  92. package/dist/enum/payment-type.enum.d.ts +4 -4
  93. package/dist/enum/payment-type.enum.js +8 -8
  94. package/dist/enum/quick-book-client-scopes.enum.d.ts +13 -13
  95. package/dist/enum/quick-book-client-scopes.enum.js +18 -18
  96. package/dist/enum/transaction-type.enum.d.ts +4 -4
  97. package/dist/enum/transaction-type.enum.js +8 -8
  98. package/dist/finance-company/finance-company.d.ts +36 -36
  99. package/dist/finance-company/finance-company.entity.d.ts +13 -13
  100. package/dist/finance-company/finance-company.entity.js +65 -65
  101. package/dist/finance-company/finance-company.js +210 -210
  102. package/dist/finance-company/finance-company.repository.d.ts +5 -5
  103. package/dist/finance-company/finance-company.repository.js +12 -12
  104. package/dist/finance-company/index.d.ts +3 -3
  105. package/dist/finance-company/index.js +7 -7
  106. package/dist/index.d.ts +9 -9
  107. package/dist/index.js +27 -27
  108. package/dist/interfaces/account-system-entity.interface.d.ts +7 -7
  109. package/dist/interfaces/account-system-entity.interface.js +2 -2
  110. package/dist/interfaces/account-system.interface.d.ts +13 -13
  111. package/dist/interfaces/account-system.interface.js +2 -2
  112. package/dist/interfaces/index.d.ts +2 -2
  113. package/dist/interfaces/index.js +2 -2
  114. package/dist/journal-entry/entities/journal-entry.entity.d.ts +16 -16
  115. package/dist/journal-entry/entities/journal-entry.entity.js +128 -128
  116. package/dist/journal-entry/index.d.ts +6 -6
  117. package/dist/journal-entry/index.js +9 -9
  118. package/dist/journal-entry/interfaces/journal-entry-attr.interface.d.ts +11 -11
  119. package/dist/journal-entry/interfaces/journal-entry-attr.interface.js +2 -2
  120. package/dist/journal-entry/interfaces/journal-entry.repository.interface.d.ts +10 -10
  121. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js +2 -2
  122. package/dist/journal-entry/journal-entry.d.ts +45 -45
  123. package/dist/journal-entry/journal-entry.js +137 -137
  124. package/dist/journal-entry/journal-entry.repository.d.ts +15 -15
  125. package/dist/journal-entry/journal-entry.repository.js +44 -44
  126. package/dist/ledger-transaction/entities/ledger-transaction.entity.d.ts +19 -19
  127. package/dist/ledger-transaction/entities/ledger-transaction.entity.js +156 -156
  128. package/dist/ledger-transaction/index.d.ts +6 -6
  129. package/dist/ledger-transaction/index.js +9 -9
  130. package/dist/ledger-transaction/interfaces/ledger-transaction-attr.interface.d.ts +18 -18
  131. package/dist/ledger-transaction/interfaces/ledger-transaction-attr.interface.js +2 -2
  132. package/dist/ledger-transaction/interfaces/ledger-transaction.repository.interface.d.ts +5 -5
  133. package/dist/ledger-transaction/interfaces/ledger-transaction.repository.interface.js +2 -2
  134. package/dist/ledger-transaction/ledger-transaction.d.ts +35 -35
  135. package/dist/ledger-transaction/ledger-transaction.js +70 -70
  136. package/dist/ledger-transaction/ledger-transaction.repository.d.ts +10 -10
  137. package/dist/ledger-transaction/ledger-transaction.repository.js +38 -38
  138. package/dist/payment/entities/payment-item.entity.d.ts +10 -10
  139. package/dist/payment/entities/payment-item.entity.js +61 -61
  140. package/dist/payment/entities/payment.entity.d.ts +25 -25
  141. package/dist/payment/entities/payment.entity.js +151 -151
  142. package/dist/payment/index.d.ts +10 -10
  143. package/dist/payment/index.js +17 -17
  144. package/dist/payment/interfaces/payment-attr.interface.d.ts +20 -20
  145. package/dist/payment/interfaces/payment-attr.interface.js +6 -6
  146. package/dist/payment/interfaces/payment-item-attr.interface.d.ts +7 -7
  147. package/dist/payment/interfaces/payment-item-attr.interface.js +6 -6
  148. package/dist/payment/interfaces/payment-item.repository.interface.d.ts +3 -3
  149. package/dist/payment/interfaces/payment-item.repository.interface.js +2 -2
  150. package/dist/payment/interfaces/payment-params.interface.d.ts +7 -7
  151. package/dist/payment/interfaces/payment-params.interface.js +2 -2
  152. package/dist/payment/interfaces/payment.repository.interface.d.ts +3 -3
  153. package/dist/payment/interfaces/payment.repository.interface.js +2 -2
  154. package/dist/payment/payment-item.repository.d.ts +17 -17
  155. package/dist/payment/payment-item.repository.js +50 -50
  156. package/dist/payment/payment.d.ts +52 -52
  157. package/dist/payment/payment.js +138 -138
  158. package/dist/payment/payment.repository.d.ts +16 -16
  159. package/dist/payment/payment.repository.js +46 -46
  160. package/dist/quickbook-client/client.d.ts +26 -39
  161. package/dist/quickbook-client/client.js +90 -204
  162. package/dist/quickbook-client/client.js.map +1 -1
  163. package/dist/quickbook-client/constant.d.ts +1 -1
  164. package/dist/quickbook-client/constant.js +4 -4
  165. package/dist/quickbook-client/index.d.ts +5 -5
  166. package/dist/quickbook-client/index.js +9 -5
  167. package/dist/quickbook-client/index.js.map +1 -1
  168. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.d.ts +6 -6
  169. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js +2 -2
  170. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.d.ts +8 -8
  171. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js +2 -2
  172. package/dist/quickbook-client/quickbook-client.module-definition.d.ts +2 -2
  173. package/dist/quickbook-client/quickbook-client.module-definition.js +8 -8
  174. package/dist/quickbook-client/quickbook-client.module.d.ts +6 -6
  175. package/dist/quickbook-client/quickbook-client.module.js +33 -33
  176. package/dist/test.d.ts +1 -1
  177. package/dist/test.js +7 -7
  178. package/dist/tsconfig.tsbuildinfo +1 -1
  179. package/invoice-template/assets/css/style.css.map +12 -12
  180. package/invoice-template/assets/css/style.min.css +1 -1
  181. package/invoice-template/assets/img/arrow_bg.svg +11 -11
  182. package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
  183. package/invoice-template/assets/img/logo_accent.svg +3 -3
  184. package/invoice-template/assets/img/logo_white.svg +4 -4
  185. package/invoice-template/assets/img/sign.svg +12 -12
  186. package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
  187. package/invoice-template/assets/js/jquery.min.js +1 -1
  188. package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
  189. package/invoice-template/assets/sass/common/_typography.scss +178 -178
  190. package/invoice-template/assets/sass/style.scss +12 -12
  191. package/migrations/finance-account-migration.js +83 -83
  192. package/migrations/finance-company-migration.js +43 -43
  193. package/migrations/finance-customer-migration.js +51 -51
  194. package/migrations/finance-document-item-migration.js +111 -111
  195. package/migrations/finance-document-migration.js +77 -77
  196. package/migrations/finance-payment-item-migration.js +39 -39
  197. package/migrations/finance-payment-migration.js +89 -89
  198. package/migrations/finance-post-history-migration.js +45 -45
  199. package/nest-cli.json +19 -19
  200. package/package.json +76 -76
  201. package/src/account/account.repository.ts +44 -44
  202. package/src/account/account.ts +157 -157
  203. package/src/account/entities/account.entity.ts +171 -171
  204. package/src/account/interfaces/account-attr.interface.ts +23 -23
  205. package/src/account/interfaces/account.repository.interface.ts +4 -4
  206. package/src/account-system-entity/account-system-entity.ts +102 -102
  207. package/src/account-system-entity/index.ts +3 -3
  208. package/src/account-system-entity/post-history.entity.ts +41 -41
  209. package/src/account-system-entity/post-history.repository.ts +12 -12
  210. package/src/config.ts +178 -178
  211. package/src/customer/customer.ts +92 -92
  212. package/src/customer/entities/customer.entity.ts +93 -93
  213. package/src/customer/finance-customer.repository.ts +30 -30
  214. package/src/customer/index.ts +15 -15
  215. package/src/customer/interfaces/customer.repository.interface.ts +3 -3
  216. package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
  217. package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
  218. package/src/document/document-item.repository.ts +49 -49
  219. package/src/document/document.repository.ts +41 -41
  220. package/src/document/entities/document-item.entity.ts +143 -143
  221. package/src/document/entities/document.entity.ts +106 -106
  222. package/src/document/index.ts +23 -23
  223. package/src/document/interfaces/document-attr.interface.ts +20 -20
  224. package/src/document/interfaces/document-item-attr.interface.ts +22 -22
  225. package/src/document/interfaces/document-item.repository.interface.ts +4 -4
  226. package/src/document/interfaces/document.repository.interface.ts +4 -4
  227. package/src/enum/doc-type.enum.ts +6 -6
  228. package/src/enum/index.ts +15 -15
  229. package/src/enum/payment-method.enum.ts +3 -3
  230. package/src/enum/payment-type.enum.ts +4 -4
  231. package/src/finance-company/finance-company.entity.ts +41 -41
  232. package/src/finance-company/finance-company.repository.ts +12 -12
  233. package/src/index.ts +9 -9
  234. package/src/interfaces/account-system.interface.ts +14 -14
  235. package/src/interfaces/index.ts +3 -3
  236. package/src/payment/entities/payment-item.entity.ts +47 -47
  237. package/src/payment/entities/payment.entity.ts +125 -125
  238. package/src/payment/index.ts +21 -21
  239. package/src/payment/interfaces/payment-attr.interface.ts +21 -21
  240. package/src/payment/interfaces/payment-item-attr.interface.ts +7 -7
  241. package/src/payment/interfaces/payment-item.repository.interface.ts +4 -4
  242. package/src/payment/interfaces/payment-params.interface.ts +8 -8
  243. package/src/payment/interfaces/payment.repository.interface.ts +4 -4
  244. package/src/payment/payment-item.repository.ts +49 -49
  245. package/src/payment/payment.repository.ts +41 -41
  246. package/src/payment/payment.ts +203 -203
  247. package/tsconfig.build.json +4 -4
  248. package/tsconfig.json +30 -30
  249. package/tslint.json +18 -18
  250. package/dist/account/entities/fee-associated-object.entity.d.ts +0 -6
  251. package/dist/account/entities/fee-associated-object.entity.js +0 -52
  252. package/dist/account/entities/fee-associated-object.entity.js.map +0 -1
  253. package/dist/base/address.base.abstract.d.ts +0 -4
  254. package/dist/base/address.base.abstract.js +0 -10
  255. package/dist/base/address.base.abstract.js.map +0 -1
  256. package/dist/base/base.address.d.ts +0 -8
  257. package/dist/base/base.address.js +0 -15
  258. package/dist/base/base.address.js.map +0 -1
  259. package/dist/base/base.object.d.ts +0 -7
  260. package/dist/base/base.object.js +0 -14
  261. package/dist/base/base.object.js.map +0 -1
  262. package/dist/base/base.owner.d.ts +0 -23
  263. package/dist/base/base.owner.js +0 -34
  264. package/dist/base/base.owner.js.map +0 -1
  265. package/dist/base/object/base.object.d.ts +0 -7
  266. package/dist/base/object/base.object.js +0 -14
  267. package/dist/base/object/base.object.js.map +0 -1
  268. package/dist/base/object.base.abstract.d.ts +0 -5
  269. package/dist/base/object.base.abstract.js +0 -11
  270. package/dist/base/object.base.abstract.js.map +0 -1
  271. package/dist/base/owner/base.owner.d.ts +0 -22
  272. package/dist/base/owner/base.owner.js +0 -31
  273. package/dist/base/owner/base.owner.js.map +0 -1
  274. package/dist/base/person.base.abstract.d.ts +0 -21
  275. package/dist/base/person.base.abstract.js +0 -17
  276. package/dist/base/person.base.abstract.js.map +0 -1
  277. package/dist/base/repository/base.repository.abstract.d.ts +0 -12
  278. package/dist/base/repository/base.repository.abstract.js +0 -22
  279. package/dist/base/repository/base.repository.abstract.js.map +0 -1
  280. package/dist/base/repository/base.repository.interface.d.ts +0 -9
  281. package/dist/base/repository/base.repository.interface.js +0 -3
  282. package/dist/base/repository/base.repository.interface.js.map +0 -1
  283. package/dist/customer/customer.repository.d.ts +0 -0
  284. package/dist/customer/customer.repository.js +0 -1
  285. package/dist/customer/customer.repository.js.map +0 -1
  286. package/dist/enum/document-type.enum.d.ts +0 -7
  287. package/dist/enum/document-type.enum.js +0 -12
  288. package/dist/enum/document-type.enum.js.map +0 -1
  289. package/dist/enum/intuit-client.enum.d.ts +0 -13
  290. package/dist/enum/intuit-client.enum.js +0 -19
  291. package/dist/enum/intuit-client.enum.js.map +0 -1
  292. package/dist/finance-company/entities/finance-company.entity.d.ts +0 -13
  293. package/dist/finance-company/entities/finance-company.entity.js +0 -113
  294. package/dist/finance-company/entities/finance-company.entity.js.map +0 -1
  295. package/dist/finance-company/interfaces/finance-company-attr.interface.d.ts +0 -10
  296. package/dist/finance-company/interfaces/finance-company-attr.interface.js +0 -3
  297. package/dist/finance-company/interfaces/finance-company-attr.interface.js.map +0 -1
  298. package/dist/finance-company/interfaces/finance-company.repository.interface.d.ts +0 -3
  299. package/dist/finance-company/interfaces/finance-company.repository.interface.js +0 -3
  300. package/dist/finance-company/interfaces/finance-company.repository.interface.js.map +0 -1
  301. package/dist/interfaces/customer.repository.interface.d.ts +0 -3
  302. package/dist/interfaces/customer.repository.interface.js +0 -3
  303. package/dist/interfaces/customer.repository.interface.js.map +0 -1
  304. package/dist/interfaces/finance-customer.repository.interface.d.ts +0 -3
  305. package/dist/interfaces/finance-customer.repository.interface.js +0 -3
  306. package/dist/interfaces/finance-customer.repository.interface.js.map +0 -1
  307. package/dist/interfaces/systemConfig.interface.d.ts +0 -0
  308. package/dist/interfaces/systemConfig.interface.js +0 -1
  309. package/dist/interfaces/systemConfig.interface.js.map +0 -1
  310. package/dist/intuit-client/client.d.ts +0 -14
  311. package/dist/intuit-client/client.js +0 -44
  312. package/dist/intuit-client/client.js.map +0 -1
  313. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.d.ts +0 -9
  314. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js +0 -3
  315. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js.map +0 -1
  316. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.d.ts +0 -7
  317. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js +0 -3
  318. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { PaymentMethod, PaymentType } from '../../enum';
2
-
3
- export interface IPaymentParams {
4
- Currency?: string;
5
- Method?: PaymentMethod;
6
- MethodParty?: string;
7
- PaymentType?: PaymentType;
8
- }
1
+ import { PaymentMethod, PaymentType } from '../../enum';
2
+
3
+ export interface IPaymentParams {
4
+ Currency?: string;
5
+ Method?: PaymentMethod;
6
+ MethodParty?: string;
7
+ PaymentType?: PaymentType;
8
+ }
@@ -1,4 +1,4 @@
1
- import { IBaseRepository } from '@tomei/general';
2
- import { PaymentModel } from '../entities/payment.entity';
3
-
4
- export type IPaymentRepository = IBaseRepository<PaymentModel>;
1
+ import { IBaseRepository } from '@tomei/general';
2
+ import { PaymentModel } from '../entities/payment.entity';
3
+
4
+ export type IPaymentRepository = IBaseRepository<PaymentModel>;
@@ -1,49 +1,49 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/sequelize';
3
- import { BaseRepository } from '@tomei/general';
4
- import { PaymentItemModel } from './entities/payment-item.entity';
5
- import { IPaymentItemAttr } from './interfaces/payment-item-attr.interface';
6
- import { IPaymentItemRepository } from './interfaces/payment-item.repository.interface';
7
-
8
- @Injectable()
9
- export class PaymentItemRepository
10
- extends BaseRepository<PaymentItemModel>
11
- implements IPaymentItemRepository
12
- {
13
- constructor(
14
- @InjectModel(PaymentItemModel)
15
- private readonly paymentItemModel: typeof PaymentItemModel,
16
- ) {
17
- super(paymentItemModel);
18
- }
19
-
20
- create(
21
- data: IPaymentItemAttr,
22
- options?: any,
23
- ): Promise<PaymentItemModel> | any {
24
- return this.paymentItemModel.create({ ...data }, options);
25
- }
26
-
27
- bulkCreate(data: IPaymentItemAttr[], options?: any): any {
28
- const payload: any = [...data];
29
- return this.paymentItemModel.bulkCreate(payload, options);
30
- }
31
-
32
- findAll(options: any): Promise<PaymentItemModel[]> {
33
- return this.paymentItemModel.findAll(options);
34
- }
35
-
36
- findAllWithPagination(
37
- options: any,
38
- ): Promise<{ count: number; rows: PaymentItemModel[] }> {
39
- return this.paymentItemModel.findAndCountAll(options);
40
- }
41
-
42
- findOne(options: any): Promise<PaymentItemModel> {
43
- return this.paymentItemModel.findOne(options);
44
- }
45
-
46
- update(data: IPaymentItemAttr, options?: any): any {
47
- return this.paymentItemModel.update({ ...data }, options);
48
- }
49
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/sequelize';
3
+ import { BaseRepository } from '@tomei/general';
4
+ import { PaymentItemModel } from './entities/payment-item.entity';
5
+ import { IPaymentItemAttr } from './interfaces/payment-item-attr.interface';
6
+ import { IPaymentItemRepository } from './interfaces/payment-item.repository.interface';
7
+
8
+ @Injectable()
9
+ export class PaymentItemRepository
10
+ extends BaseRepository<PaymentItemModel>
11
+ implements IPaymentItemRepository
12
+ {
13
+ constructor(
14
+ @InjectModel(PaymentItemModel)
15
+ private readonly paymentItemModel: typeof PaymentItemModel,
16
+ ) {
17
+ super(paymentItemModel);
18
+ }
19
+
20
+ create(
21
+ data: IPaymentItemAttr,
22
+ options?: any,
23
+ ): Promise<PaymentItemModel> | any {
24
+ return this.paymentItemModel.create({ ...data }, options);
25
+ }
26
+
27
+ bulkCreate(data: IPaymentItemAttr[], options?: any): any {
28
+ const payload: any = [...data];
29
+ return this.paymentItemModel.bulkCreate(payload, options);
30
+ }
31
+
32
+ findAll(options: any): Promise<PaymentItemModel[]> {
33
+ return this.paymentItemModel.findAll(options);
34
+ }
35
+
36
+ findAllWithPagination(
37
+ options: any,
38
+ ): Promise<{ count: number; rows: PaymentItemModel[] }> {
39
+ return this.paymentItemModel.findAndCountAll(options);
40
+ }
41
+
42
+ findOne(options: any): Promise<PaymentItemModel> {
43
+ return this.paymentItemModel.findOne(options);
44
+ }
45
+
46
+ update(data: IPaymentItemAttr, options?: any): any {
47
+ return this.paymentItemModel.update({ ...data }, options);
48
+ }
49
+ }
@@ -1,41 +1,41 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/sequelize';
3
- import { BaseRepository } from '@tomei/general';
4
- import { PaymentModel } from './entities/payment.entity';
5
- import { IPaymentAttr } from './interfaces/payment-attr.interface';
6
- import { IPaymentRepository } from './interfaces/payment.repository.interface';
7
-
8
- @Injectable()
9
- export class PaymentRepository
10
- extends BaseRepository<PaymentModel>
11
- implements IPaymentRepository
12
- {
13
- constructor(
14
- @InjectModel(PaymentModel)
15
- private readonly paymentModel: typeof PaymentModel,
16
- ) {
17
- super(paymentModel);
18
- }
19
-
20
- create(data: IPaymentAttr, options?: any): Promise<PaymentModel> | any {
21
- return this.paymentModel.create({ ...data }, options);
22
- }
23
-
24
- findAll(options: any): Promise<PaymentModel[]> {
25
- return this.paymentModel.findAll(options);
26
- }
27
-
28
- findAllWithPagination(
29
- options: any,
30
- ): Promise<{ count: number; rows: PaymentModel[] }> {
31
- return this.paymentModel.findAndCountAll(options);
32
- }
33
-
34
- findOne(options: any): Promise<PaymentModel> {
35
- return this.paymentModel.findOne(options);
36
- }
37
-
38
- update(data: IPaymentAttr, options?: any): any {
39
- return this.paymentModel.update({ ...data }, options);
40
- }
41
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/sequelize';
3
+ import { BaseRepository } from '@tomei/general';
4
+ import { PaymentModel } from './entities/payment.entity';
5
+ import { IPaymentAttr } from './interfaces/payment-attr.interface';
6
+ import { IPaymentRepository } from './interfaces/payment.repository.interface';
7
+
8
+ @Injectable()
9
+ export class PaymentRepository
10
+ extends BaseRepository<PaymentModel>
11
+ implements IPaymentRepository
12
+ {
13
+ constructor(
14
+ @InjectModel(PaymentModel)
15
+ private readonly paymentModel: typeof PaymentModel,
16
+ ) {
17
+ super(paymentModel);
18
+ }
19
+
20
+ create(data: IPaymentAttr, options?: any): Promise<PaymentModel> | any {
21
+ return this.paymentModel.create({ ...data }, options);
22
+ }
23
+
24
+ findAll(options: any): Promise<PaymentModel[]> {
25
+ return this.paymentModel.findAll(options);
26
+ }
27
+
28
+ findAllWithPagination(
29
+ options: any,
30
+ ): Promise<{ count: number; rows: PaymentModel[] }> {
31
+ return this.paymentModel.findAndCountAll(options);
32
+ }
33
+
34
+ findOne(options: any): Promise<PaymentModel> {
35
+ return this.paymentModel.findOne(options);
36
+ }
37
+
38
+ update(data: IPaymentAttr, options?: any): any {
39
+ return this.paymentModel.update({ ...data }, options);
40
+ }
41
+ }
@@ -1,203 +1,203 @@
1
- import { IBaseRepository, PaymentItemBase } from '@tomei/general';
2
- import { PaymentMethod, PaymentType } from '../enum';
3
- import { Account } from '../account';
4
- import { Customer } from '../customer';
5
- import { IAccountSystem } from '../interfaces';
6
- import { IPaymentRepository } from './interfaces/payment.repository.interface';
7
- import { IPaymentItemRepository } from './interfaces/payment-item.repository.interface';
8
- import { Sequelize } from 'sequelize-typescript';
9
- import { IPaymentAttr } from './interfaces/payment-attr.interface';
10
- import { PaymentModel } from './entities/payment.entity';
11
- import axios from 'axios';
12
- import { IPaymentParams } from './interfaces/payment-params.interface';
13
- import { AccountSystemEntity } from '../account-system-entity';
14
- export class Payment extends AccountSystemEntity {
15
- protected BaseRepository: IBaseRepository;
16
- TableName: string;
17
- ObjectId: string;
18
- ObjectName: string;
19
- private Amount: number;
20
- private Currency: string;
21
- private Method: PaymentMethod;
22
- private MethodParty: string;
23
- private Status: string;
24
- private PaymentType: PaymentType;
25
- private PaymentDate: Date;
26
- private AccountNo: string;
27
- private SystemCode: string;
28
- private OwnerId: string;
29
- private OwnerType: string;
30
- private RelatedObjectId: string;
31
- private RelatedObjectType: string;
32
- private CreatedAt: Date;
33
- private CreatedById: string;
34
- private UpdatedAt: Date;
35
- private UpdatedById: string;
36
- private Customer: Customer;
37
- private ReceivableAccount: Account;
38
- private DepositAccount: Account;
39
- private ReceivableAccountNo: string;
40
- private DepositAccountNo: string;
41
- private PaymentItems: PaymentItemBase[];
42
- private AccountingSystem: IAccountSystem;
43
- private PaymentRepository: IPaymentRepository;
44
- private PaymentItemRepository: IPaymentItemRepository;
45
- private sequelize: Sequelize;
46
- AccSystemCode: string;
47
-
48
- constructor(
49
- AccountingSystem: IAccountSystem,
50
- PaymentRepository: IPaymentRepository,
51
- PaymentItemRepository: IPaymentItemRepository,
52
- Customer: Customer,
53
- ReceivableAccount: Account,
54
- DepositAccount: Account,
55
- PaymentItems: PaymentItemBase[],
56
- Params?: IPaymentParams,
57
- sequelize?: Sequelize,
58
- ) {
59
- super();
60
- this.AccountingSystem = AccountingSystem;
61
- this.PaymentRepository = PaymentRepository;
62
- this.PaymentItemRepository = PaymentItemRepository;
63
- this.Customer = Customer;
64
- this.ReceivableAccount = ReceivableAccount;
65
- this.DepositAccount = DepositAccount;
66
- this.PaymentItems = PaymentItems;
67
- if (Params) {
68
- this.init(Params);
69
- }
70
- if (sequelize) {
71
- this.sequelize = sequelize;
72
- }
73
- }
74
-
75
- init(Params: IPaymentParams): void {
76
- if (Params.Currency) this.Currency = Params.Currency;
77
- if (Params.Method) this.Method = Params.Method;
78
- if (Params.MethodParty) this.MethodParty = Params.MethodParty;
79
- if (Params.PaymentType) this.PaymentType = Params.PaymentType;
80
- }
81
-
82
- getAmount(): number {
83
- if (!this.Amount) {
84
- if (this.PaymentItems.length === 0) {
85
- throw new Error('Payment must have at least one payment item');
86
- }
87
- this.PaymentItems.forEach((paymentItem) => {
88
- this.Amount += paymentItem.Amount;
89
- });
90
- }
91
- return this.Amount;
92
- }
93
-
94
- getCurrency(): string {
95
- if (!this.Currency) {
96
- throw new Error('Currency is missing.');
97
- }
98
- return this.Currency;
99
- }
100
-
101
- setSequelize(sequelize: Sequelize): void {
102
- this.sequelize = sequelize;
103
- }
104
-
105
- async getDepositAccountNo(): Promise<string> {
106
- if (!this.DepositAccountNo) {
107
- this.DepositAccountNo = await this.DepositAccount.getAccountNo();
108
- }
109
- return this.DepositAccountNo;
110
- }
111
-
112
- async getReceivableAccountNo(): Promise<string> {
113
- if (!this.ReceivableAccountNo) {
114
- this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
115
- }
116
- return this.ReceivableAccountNo;
117
- }
118
-
119
- getPaymentItems(): PaymentItemBase[] {
120
- return this.PaymentItems;
121
- }
122
-
123
- async create() {
124
- const transaction = await this.sequelize.transaction();
125
- try {
126
- if (!this.sequelize) {
127
- throw new Error('sequelize instance used for transaction is required.');
128
- }
129
- if (!this.PaymentType) {
130
- throw new Error('Payment Type is required.');
131
- }
132
- if (!this.Method) {
133
- throw new Error('Method is required.');
134
- }
135
- if (this.PaymentItems.length === 0) {
136
- throw new Error('Payment must have at least one payment item');
137
- }
138
-
139
- this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
140
- this.DepositAccountNo = await this.DepositAccount.getAccountNo();
141
-
142
- this.ObjectId = await this.AccountingSystem.makePayment(
143
- this.Customer,
144
- this,
145
- );
146
-
147
- this.Status = 'Successfull';
148
- const paymentAttribute: IPaymentAttr = {
149
- PaymentId: this.ObjectId,
150
- AccountNo: this.DepositAccountNo,
151
- PaymentType: this.PaymentType,
152
- PaymentDate: new Date(),
153
- Currency: this.Currency,
154
- Amount: this.Amount,
155
- Status: this.Status,
156
- Method: this.Method,
157
- MethodParty: this.MethodParty,
158
- ReceivedBy: this.ReceivableAccountNo,
159
- UpdatedAt: new Date(),
160
- UpdatedBy: 'System', //still ambigous
161
- };
162
- const payment = await this.PaymentRepository.create(paymentAttribute, {
163
- transaction,
164
- });
165
- const paymentItemsData = [];
166
- this.PaymentItems.forEach(async (paymentItem) => {
167
- paymentItemsData.push({
168
- PaymentId: this.ObjectId,
169
- PayForObjectId: paymentItem.ObjectId,
170
- PayForObjectType: paymentItem.Type,
171
- Amount: paymentItem.Amount,
172
- Currency: paymentItem.Currency,
173
- });
174
- });
175
-
176
- await this.PaymentItemRepository.bulkCreate(paymentItemsData, {
177
- transaction,
178
- });
179
-
180
- const payload = {
181
- Action: 'Create',
182
- Activity: 'Payment Created',
183
- Description: `Account (ID: ${this.ObjectId}) has been created`,
184
- EntityType: typeof PaymentModel,
185
- EntityValueBefore: JSON.stringify({}),
186
- EntityValueAfter: JSON.stringify(payment),
187
- PerformedById: payment.UpdatedBy,
188
- PerformedAt: payment.UpdatedAt,
189
- EntityId: this.ObjectId,
190
- };
191
-
192
- await axios.post(
193
- `${process.env.COMMON_API_URL}/activity-histories`,
194
- payload,
195
- );
196
-
197
- await transaction.commit();
198
- } catch (error) {
199
- await transaction.rollback();
200
- throw error;
201
- }
202
- }
203
- }
1
+ import { IBaseRepository, PaymentItemBase } from '@tomei/general';
2
+ import { PaymentMethod, PaymentType } from '../enum';
3
+ import { Account } from '../account';
4
+ import { Customer } from '../customer';
5
+ import { IAccountSystem } from '../interfaces';
6
+ import { IPaymentRepository } from './interfaces/payment.repository.interface';
7
+ import { IPaymentItemRepository } from './interfaces/payment-item.repository.interface';
8
+ import { Sequelize } from 'sequelize-typescript';
9
+ import { IPaymentAttr } from './interfaces/payment-attr.interface';
10
+ import { PaymentModel } from './entities/payment.entity';
11
+ import axios from 'axios';
12
+ import { IPaymentParams } from './interfaces/payment-params.interface';
13
+ import { AccountSystemEntity } from '../account-system-entity';
14
+ export class Payment extends AccountSystemEntity {
15
+ protected BaseRepository: IBaseRepository;
16
+ TableName: string;
17
+ ObjectId: string;
18
+ ObjectName: string;
19
+ private Amount: number;
20
+ private Currency: string;
21
+ private Method: PaymentMethod;
22
+ private MethodParty: string;
23
+ private Status: string;
24
+ private PaymentType: PaymentType;
25
+ private PaymentDate: Date;
26
+ private AccountNo: string;
27
+ private SystemCode: string;
28
+ private OwnerId: string;
29
+ private OwnerType: string;
30
+ private RelatedObjectId: string;
31
+ private RelatedObjectType: string;
32
+ private CreatedAt: Date;
33
+ private CreatedById: string;
34
+ private UpdatedAt: Date;
35
+ private UpdatedById: string;
36
+ private Customer: Customer;
37
+ private ReceivableAccount: Account;
38
+ private DepositAccount: Account;
39
+ private ReceivableAccountNo: string;
40
+ private DepositAccountNo: string;
41
+ private PaymentItems: PaymentItemBase[];
42
+ private AccountingSystem: IAccountSystem;
43
+ private PaymentRepository: IPaymentRepository;
44
+ private PaymentItemRepository: IPaymentItemRepository;
45
+ private sequelize: Sequelize;
46
+ AccSystemCode: string;
47
+
48
+ constructor(
49
+ AccountingSystem: IAccountSystem,
50
+ PaymentRepository: IPaymentRepository,
51
+ PaymentItemRepository: IPaymentItemRepository,
52
+ Customer: Customer,
53
+ ReceivableAccount: Account,
54
+ DepositAccount: Account,
55
+ PaymentItems: PaymentItemBase[],
56
+ Params?: IPaymentParams,
57
+ sequelize?: Sequelize,
58
+ ) {
59
+ super();
60
+ this.AccountingSystem = AccountingSystem;
61
+ this.PaymentRepository = PaymentRepository;
62
+ this.PaymentItemRepository = PaymentItemRepository;
63
+ this.Customer = Customer;
64
+ this.ReceivableAccount = ReceivableAccount;
65
+ this.DepositAccount = DepositAccount;
66
+ this.PaymentItems = PaymentItems;
67
+ if (Params) {
68
+ this.init(Params);
69
+ }
70
+ if (sequelize) {
71
+ this.sequelize = sequelize;
72
+ }
73
+ }
74
+
75
+ init(Params: IPaymentParams): void {
76
+ if (Params.Currency) this.Currency = Params.Currency;
77
+ if (Params.Method) this.Method = Params.Method;
78
+ if (Params.MethodParty) this.MethodParty = Params.MethodParty;
79
+ if (Params.PaymentType) this.PaymentType = Params.PaymentType;
80
+ }
81
+
82
+ getAmount(): number {
83
+ if (!this.Amount) {
84
+ if (this.PaymentItems.length === 0) {
85
+ throw new Error('Payment must have at least one payment item');
86
+ }
87
+ this.PaymentItems.forEach((paymentItem) => {
88
+ this.Amount += paymentItem.Amount;
89
+ });
90
+ }
91
+ return this.Amount;
92
+ }
93
+
94
+ getCurrency(): string {
95
+ if (!this.Currency) {
96
+ throw new Error('Currency is missing.');
97
+ }
98
+ return this.Currency;
99
+ }
100
+
101
+ setSequelize(sequelize: Sequelize): void {
102
+ this.sequelize = sequelize;
103
+ }
104
+
105
+ async getDepositAccountNo(): Promise<string> {
106
+ if (!this.DepositAccountNo) {
107
+ this.DepositAccountNo = await this.DepositAccount.getAccountNo();
108
+ }
109
+ return this.DepositAccountNo;
110
+ }
111
+
112
+ async getReceivableAccountNo(): Promise<string> {
113
+ if (!this.ReceivableAccountNo) {
114
+ this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
115
+ }
116
+ return this.ReceivableAccountNo;
117
+ }
118
+
119
+ getPaymentItems(): PaymentItemBase[] {
120
+ return this.PaymentItems;
121
+ }
122
+
123
+ async create() {
124
+ const transaction = await this.sequelize.transaction();
125
+ try {
126
+ if (!this.sequelize) {
127
+ throw new Error('sequelize instance used for transaction is required.');
128
+ }
129
+ if (!this.PaymentType) {
130
+ throw new Error('Payment Type is required.');
131
+ }
132
+ if (!this.Method) {
133
+ throw new Error('Method is required.');
134
+ }
135
+ if (this.PaymentItems.length === 0) {
136
+ throw new Error('Payment must have at least one payment item');
137
+ }
138
+
139
+ this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
140
+ this.DepositAccountNo = await this.DepositAccount.getAccountNo();
141
+
142
+ this.ObjectId = await this.AccountingSystem.makePayment(
143
+ this.Customer,
144
+ this,
145
+ );
146
+
147
+ this.Status = 'Successfull';
148
+ const paymentAttribute: IPaymentAttr = {
149
+ PaymentId: this.ObjectId,
150
+ AccountNo: this.DepositAccountNo,
151
+ PaymentType: this.PaymentType,
152
+ PaymentDate: new Date(),
153
+ Currency: this.Currency,
154
+ Amount: this.Amount,
155
+ Status: this.Status,
156
+ Method: this.Method,
157
+ MethodParty: this.MethodParty,
158
+ ReceivedBy: this.ReceivableAccountNo,
159
+ UpdatedAt: new Date(),
160
+ UpdatedBy: 'System', //still ambigous
161
+ };
162
+ const payment = await this.PaymentRepository.create(paymentAttribute, {
163
+ transaction,
164
+ });
165
+ const paymentItemsData = [];
166
+ this.PaymentItems.forEach(async (paymentItem) => {
167
+ paymentItemsData.push({
168
+ PaymentId: this.ObjectId,
169
+ PayForObjectId: paymentItem.ObjectId,
170
+ PayForObjectType: paymentItem.Type,
171
+ Amount: paymentItem.Amount,
172
+ Currency: paymentItem.Currency,
173
+ });
174
+ });
175
+
176
+ await this.PaymentItemRepository.bulkCreate(paymentItemsData, {
177
+ transaction,
178
+ });
179
+
180
+ const payload = {
181
+ Action: 'Create',
182
+ Activity: 'Payment Created',
183
+ Description: `Account (ID: ${this.ObjectId}) has been created`,
184
+ EntityType: typeof PaymentModel,
185
+ EntityValueBefore: JSON.stringify({}),
186
+ EntityValueAfter: JSON.stringify(payment),
187
+ PerformedById: payment.UpdatedBy,
188
+ PerformedAt: payment.UpdatedAt,
189
+ EntityId: this.ObjectId,
190
+ };
191
+
192
+ await axios.post(
193
+ `${process.env.COMMON_API_URL}/activity-histories`,
194
+ payload,
195
+ );
196
+
197
+ await transaction.commit();
198
+ } catch (error) {
199
+ await transaction.rollback();
200
+ throw error;
201
+ }
202
+ }
203
+ }
@@ -1,4 +1,4 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4
+ }