@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,139 +1,139 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Payment = void 0;
4
- const payment_entity_1 = require("./entities/payment.entity");
5
- const axios_1 = require("axios");
6
- const account_system_entity_1 = require("../account-system-entity");
7
- class Payment extends account_system_entity_1.AccountSystemEntity {
8
- constructor(AccountingSystem, PaymentRepository, PaymentItemRepository, Customer, ReceivableAccount, DepositAccount, PaymentItems, Params, sequelize) {
9
- super();
10
- this.AccountingSystem = AccountingSystem;
11
- this.PaymentRepository = PaymentRepository;
12
- this.PaymentItemRepository = PaymentItemRepository;
13
- this.Customer = Customer;
14
- this.ReceivableAccount = ReceivableAccount;
15
- this.DepositAccount = DepositAccount;
16
- this.PaymentItems = PaymentItems;
17
- if (Params) {
18
- this.init(Params);
19
- }
20
- if (sequelize) {
21
- this.sequelize = sequelize;
22
- }
23
- }
24
- init(Params) {
25
- if (Params.Currency)
26
- this.Currency = Params.Currency;
27
- if (Params.Method)
28
- this.Method = Params.Method;
29
- if (Params.MethodParty)
30
- this.MethodParty = Params.MethodParty;
31
- if (Params.PaymentType)
32
- this.PaymentType = Params.PaymentType;
33
- }
34
- getAmount() {
35
- if (!this.Amount) {
36
- if (this.PaymentItems.length === 0) {
37
- throw new Error('Payment must have at least one payment item');
38
- }
39
- this.PaymentItems.forEach((paymentItem) => {
40
- this.Amount += paymentItem.Amount;
41
- });
42
- }
43
- return this.Amount;
44
- }
45
- getCurrency() {
46
- if (!this.Currency) {
47
- throw new Error('Currency is missing.');
48
- }
49
- return this.Currency;
50
- }
51
- setSequelize(sequelize) {
52
- this.sequelize = sequelize;
53
- }
54
- async getDepositAccountNo() {
55
- if (!this.DepositAccountNo) {
56
- this.DepositAccountNo = await this.DepositAccount.getAccountNo();
57
- }
58
- return this.DepositAccountNo;
59
- }
60
- async getReceivableAccountNo() {
61
- if (!this.ReceivableAccountNo) {
62
- this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
63
- }
64
- return this.ReceivableAccountNo;
65
- }
66
- getPaymentItems() {
67
- return this.PaymentItems;
68
- }
69
- async create() {
70
- const transaction = await this.sequelize.transaction();
71
- try {
72
- if (!this.sequelize) {
73
- throw new Error('sequelize instance used for transaction is required.');
74
- }
75
- if (!this.PaymentType) {
76
- throw new Error('Payment Type is required.');
77
- }
78
- if (!this.Method) {
79
- throw new Error('Method is required.');
80
- }
81
- if (this.PaymentItems.length === 0) {
82
- throw new Error('Payment must have at least one payment item');
83
- }
84
- this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
85
- this.DepositAccountNo = await this.DepositAccount.getAccountNo();
86
- this.ObjectId = await this.AccountingSystem.makePayment(this.Customer, this);
87
- this.Status = 'Successfull';
88
- const paymentAttribute = {
89
- PaymentId: this.ObjectId,
90
- AccountNo: this.DepositAccountNo,
91
- PaymentType: this.PaymentType,
92
- PaymentDate: new Date(),
93
- Currency: this.Currency,
94
- Amount: this.Amount,
95
- Status: this.Status,
96
- Method: this.Method,
97
- MethodParty: this.MethodParty,
98
- ReceivedBy: this.ReceivableAccountNo,
99
- UpdatedAt: new Date(),
100
- UpdatedBy: 'System',
101
- };
102
- const payment = await this.PaymentRepository.create(paymentAttribute, {
103
- transaction,
104
- });
105
- const paymentItemsData = [];
106
- this.PaymentItems.forEach(async (paymentItem) => {
107
- paymentItemsData.push({
108
- PaymentId: this.ObjectId,
109
- PayForObjectId: paymentItem.ObjectId,
110
- PayForObjectType: paymentItem.Type,
111
- Amount: paymentItem.Amount,
112
- Currency: paymentItem.Currency,
113
- });
114
- });
115
- await this.PaymentItemRepository.bulkCreate(paymentItemsData, {
116
- transaction,
117
- });
118
- const payload = {
119
- Action: 'Create',
120
- Activity: 'Payment Created',
121
- Description: `Account (ID: ${this.ObjectId}) has been created`,
122
- EntityType: typeof payment_entity_1.PaymentModel,
123
- EntityValueBefore: JSON.stringify({}),
124
- EntityValueAfter: JSON.stringify(payment),
125
- PerformedById: payment.UpdatedBy,
126
- PerformedAt: payment.UpdatedAt,
127
- EntityId: this.ObjectId,
128
- };
129
- await axios_1.default.post(`${process.env.COMMON_API_URL}/activity-histories`, payload);
130
- await transaction.commit();
131
- }
132
- catch (error) {
133
- await transaction.rollback();
134
- throw error;
135
- }
136
- }
137
- }
138
- exports.Payment = Payment;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Payment = void 0;
4
+ const payment_entity_1 = require("./entities/payment.entity");
5
+ const axios_1 = require("axios");
6
+ const account_system_entity_1 = require("../account-system-entity");
7
+ class Payment extends account_system_entity_1.AccountSystemEntity {
8
+ constructor(AccountingSystem, PaymentRepository, PaymentItemRepository, Customer, ReceivableAccount, DepositAccount, PaymentItems, Params, sequelize) {
9
+ super();
10
+ this.AccountingSystem = AccountingSystem;
11
+ this.PaymentRepository = PaymentRepository;
12
+ this.PaymentItemRepository = PaymentItemRepository;
13
+ this.Customer = Customer;
14
+ this.ReceivableAccount = ReceivableAccount;
15
+ this.DepositAccount = DepositAccount;
16
+ this.PaymentItems = PaymentItems;
17
+ if (Params) {
18
+ this.init(Params);
19
+ }
20
+ if (sequelize) {
21
+ this.sequelize = sequelize;
22
+ }
23
+ }
24
+ init(Params) {
25
+ if (Params.Currency)
26
+ this.Currency = Params.Currency;
27
+ if (Params.Method)
28
+ this.Method = Params.Method;
29
+ if (Params.MethodParty)
30
+ this.MethodParty = Params.MethodParty;
31
+ if (Params.PaymentType)
32
+ this.PaymentType = Params.PaymentType;
33
+ }
34
+ getAmount() {
35
+ if (!this.Amount) {
36
+ if (this.PaymentItems.length === 0) {
37
+ throw new Error('Payment must have at least one payment item');
38
+ }
39
+ this.PaymentItems.forEach((paymentItem) => {
40
+ this.Amount += paymentItem.Amount;
41
+ });
42
+ }
43
+ return this.Amount;
44
+ }
45
+ getCurrency() {
46
+ if (!this.Currency) {
47
+ throw new Error('Currency is missing.');
48
+ }
49
+ return this.Currency;
50
+ }
51
+ setSequelize(sequelize) {
52
+ this.sequelize = sequelize;
53
+ }
54
+ async getDepositAccountNo() {
55
+ if (!this.DepositAccountNo) {
56
+ this.DepositAccountNo = await this.DepositAccount.getAccountNo();
57
+ }
58
+ return this.DepositAccountNo;
59
+ }
60
+ async getReceivableAccountNo() {
61
+ if (!this.ReceivableAccountNo) {
62
+ this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
63
+ }
64
+ return this.ReceivableAccountNo;
65
+ }
66
+ getPaymentItems() {
67
+ return this.PaymentItems;
68
+ }
69
+ async create() {
70
+ const transaction = await this.sequelize.transaction();
71
+ try {
72
+ if (!this.sequelize) {
73
+ throw new Error('sequelize instance used for transaction is required.');
74
+ }
75
+ if (!this.PaymentType) {
76
+ throw new Error('Payment Type is required.');
77
+ }
78
+ if (!this.Method) {
79
+ throw new Error('Method is required.');
80
+ }
81
+ if (this.PaymentItems.length === 0) {
82
+ throw new Error('Payment must have at least one payment item');
83
+ }
84
+ this.ReceivableAccountNo = await this.ReceivableAccount.getAccountNo();
85
+ this.DepositAccountNo = await this.DepositAccount.getAccountNo();
86
+ this.ObjectId = await this.AccountingSystem.makePayment(this.Customer, this);
87
+ this.Status = 'Successfull';
88
+ const paymentAttribute = {
89
+ PaymentId: this.ObjectId,
90
+ AccountNo: this.DepositAccountNo,
91
+ PaymentType: this.PaymentType,
92
+ PaymentDate: new Date(),
93
+ Currency: this.Currency,
94
+ Amount: this.Amount,
95
+ Status: this.Status,
96
+ Method: this.Method,
97
+ MethodParty: this.MethodParty,
98
+ ReceivedBy: this.ReceivableAccountNo,
99
+ UpdatedAt: new Date(),
100
+ UpdatedBy: 'System',
101
+ };
102
+ const payment = await this.PaymentRepository.create(paymentAttribute, {
103
+ transaction,
104
+ });
105
+ const paymentItemsData = [];
106
+ this.PaymentItems.forEach(async (paymentItem) => {
107
+ paymentItemsData.push({
108
+ PaymentId: this.ObjectId,
109
+ PayForObjectId: paymentItem.ObjectId,
110
+ PayForObjectType: paymentItem.Type,
111
+ Amount: paymentItem.Amount,
112
+ Currency: paymentItem.Currency,
113
+ });
114
+ });
115
+ await this.PaymentItemRepository.bulkCreate(paymentItemsData, {
116
+ transaction,
117
+ });
118
+ const payload = {
119
+ Action: 'Create',
120
+ Activity: 'Payment Created',
121
+ Description: `Account (ID: ${this.ObjectId}) has been created`,
122
+ EntityType: typeof payment_entity_1.PaymentModel,
123
+ EntityValueBefore: JSON.stringify({}),
124
+ EntityValueAfter: JSON.stringify(payment),
125
+ PerformedById: payment.UpdatedBy,
126
+ PerformedAt: payment.UpdatedAt,
127
+ EntityId: this.ObjectId,
128
+ };
129
+ await axios_1.default.post(`${process.env.COMMON_API_URL}/activity-histories`, payload);
130
+ await transaction.commit();
131
+ }
132
+ catch (error) {
133
+ await transaction.rollback();
134
+ throw error;
135
+ }
136
+ }
137
+ }
138
+ exports.Payment = Payment;
139
139
  //# sourceMappingURL=payment.js.map
@@ -1,16 +1,16 @@
1
- import { BaseRepository } from '@tomei/general';
2
- import { PaymentModel } from './entities/payment.entity';
3
- import { IPaymentAttr } from './interfaces/payment-attr.interface';
4
- import { IPaymentRepository } from './interfaces/payment.repository.interface';
5
- export declare class PaymentRepository extends BaseRepository<PaymentModel> implements IPaymentRepository {
6
- private readonly paymentModel;
7
- constructor(paymentModel: typeof PaymentModel);
8
- create(data: IPaymentAttr, options?: any): Promise<PaymentModel> | any;
9
- findAll(options: any): Promise<PaymentModel[]>;
10
- findAllWithPagination(options: any): Promise<{
11
- count: number;
12
- rows: PaymentModel[];
13
- }>;
14
- findOne(options: any): Promise<PaymentModel>;
15
- update(data: IPaymentAttr, options?: any): any;
16
- }
1
+ import { BaseRepository } from '@tomei/general';
2
+ import { PaymentModel } from './entities/payment.entity';
3
+ import { IPaymentAttr } from './interfaces/payment-attr.interface';
4
+ import { IPaymentRepository } from './interfaces/payment.repository.interface';
5
+ export declare class PaymentRepository extends BaseRepository<PaymentModel> implements IPaymentRepository {
6
+ private readonly paymentModel;
7
+ constructor(paymentModel: typeof PaymentModel);
8
+ create(data: IPaymentAttr, options?: any): Promise<PaymentModel> | any;
9
+ findAll(options: any): Promise<PaymentModel[]>;
10
+ findAllWithPagination(options: any): Promise<{
11
+ count: number;
12
+ rows: PaymentModel[];
13
+ }>;
14
+ findOne(options: any): Promise<PaymentModel>;
15
+ update(data: IPaymentAttr, options?: any): any;
16
+ }
@@ -1,47 +1,47 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PaymentRepository = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const sequelize_1 = require("@nestjs/sequelize");
18
- const general_1 = require("@tomei/general");
19
- const payment_entity_1 = require("./entities/payment.entity");
20
- let PaymentRepository = class PaymentRepository extends general_1.BaseRepository {
21
- constructor(paymentModel) {
22
- super(paymentModel);
23
- this.paymentModel = paymentModel;
24
- }
25
- create(data, options) {
26
- return this.paymentModel.create(Object.assign({}, data), options);
27
- }
28
- findAll(options) {
29
- return this.paymentModel.findAll(options);
30
- }
31
- findAllWithPagination(options) {
32
- return this.paymentModel.findAndCountAll(options);
33
- }
34
- findOne(options) {
35
- return this.paymentModel.findOne(options);
36
- }
37
- update(data, options) {
38
- return this.paymentModel.update(Object.assign({}, data), options);
39
- }
40
- };
41
- PaymentRepository = __decorate([
42
- (0, common_1.Injectable)(),
43
- __param(0, (0, sequelize_1.InjectModel)(payment_entity_1.PaymentModel)),
44
- __metadata("design:paramtypes", [Object])
45
- ], PaymentRepository);
46
- exports.PaymentRepository = PaymentRepository;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PaymentRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const sequelize_1 = require("@nestjs/sequelize");
18
+ const general_1 = require("@tomei/general");
19
+ const payment_entity_1 = require("./entities/payment.entity");
20
+ let PaymentRepository = class PaymentRepository extends general_1.BaseRepository {
21
+ constructor(paymentModel) {
22
+ super(paymentModel);
23
+ this.paymentModel = paymentModel;
24
+ }
25
+ create(data, options) {
26
+ return this.paymentModel.create(Object.assign({}, data), options);
27
+ }
28
+ findAll(options) {
29
+ return this.paymentModel.findAll(options);
30
+ }
31
+ findAllWithPagination(options) {
32
+ return this.paymentModel.findAndCountAll(options);
33
+ }
34
+ findOne(options) {
35
+ return this.paymentModel.findOne(options);
36
+ }
37
+ update(data, options) {
38
+ return this.paymentModel.update(Object.assign({}, data), options);
39
+ }
40
+ };
41
+ PaymentRepository = __decorate([
42
+ (0, common_1.Injectable)(),
43
+ __param(0, (0, sequelize_1.InjectModel)(payment_entity_1.PaymentModel)),
44
+ __metadata("design:paramtypes", [Object])
45
+ ], PaymentRepository);
46
+ exports.PaymentRepository = PaymentRepository;
47
47
  //# sourceMappingURL=payment.repository.js.map
@@ -1,39 +1,26 @@
1
- import * as OAuthClient from 'intuit-oauth';
2
- import { Customer } from '../customer';
3
- import { Payment } from '../payment';
4
- import { ClientScopes } from '../enum/quick-book-client-scopes.enum';
5
- import { IAccountSystem } from '../interfaces';
6
- import { IQuickBookAPICallOptions } from './interfaces/quickbook-client-call-options.interface';
7
- import { IQuickBookCreateAccountOptions } from './interfaces/quickbook-client-create-account-options.interface';
8
- import { IQuickBookCreateCustomerOptions } from './interfaces/quickbook-client-create-customer-options.interface';
9
- export declare class QuickBookClient implements IAccountSystem {
10
- client: OAuthClient;
11
- apiUrl: string;
12
- authUrl: string;
13
- constructor(SysCode: string, scopes: ClientScopes[]);
14
- createAccount(payload: IQuickBookCreateAccountOptions): Promise<any>;
15
- createCustomer(payload: IQuickBookCreateCustomerOptions): Promise<any>;
16
- makePayment(customer: Customer, paymentInfo: Payment): Promise<any>;
17
- collectPayments(customer: Customer, paymentInfo: Payment): Promise<any>;
18
- createInvoice(): Promise<void>;
19
- createDebitNote(): Promise<void>;
20
- createCreditNote(): Promise<void>;
21
- postTransaction(): Promise<void>;
22
- connect(scopes: ClientScopes[]): string;
23
- authCallback(url: string): Promise<void>;
24
- isTokenValid(): boolean;
25
- refreshAccessToken(): Promise<void>;
26
- logout(): Promise<void>;
27
- get token(): {
28
- token_type: string;
29
- access_token: string;
30
- refresh_token: string;
31
- expires_in: number;
32
- x_refresh_token_expires_in: number;
33
- id_token: string;
34
- createdAt: number;
35
- };
36
- getCompanyId(): string;
37
- validateAndRefreshToken(): Promise<void>;
38
- callApi(options: IQuickBookAPICallOptions): Promise<any>;
39
- }
1
+ import * as OAuthClient from 'intuit-oauth';
2
+ import { ClientScopes } from 'src/enum/quick-book-client-scopes.enum';
3
+ import { IQuickBookAPICallOptions } from './interfaces/quickbook-client-call-options.interface';
4
+ import { IQuickBookClientModuleOptions } from './interfaces/quickbook-client-options.interface';
5
+ export declare class QuickBookClient {
6
+ client: OAuthClient;
7
+ apiUrl: string;
8
+ constructor(options: IQuickBookClientModuleOptions);
9
+ connect(scopes: ClientScopes[]): string;
10
+ authCallback(url: string): Promise<void>;
11
+ isTokenValid(): boolean;
12
+ refreshAccessToken(): Promise<void>;
13
+ logout(): Promise<void>;
14
+ get token(): {
15
+ token_type: string;
16
+ access_token: string;
17
+ refresh_token: string;
18
+ expires_in: number;
19
+ x_refresh_token_expires_in: number;
20
+ id_token: string;
21
+ createdAt: number;
22
+ };
23
+ getCompanyId(): string;
24
+ validateAndRefreshToken(): Promise<void>;
25
+ callApi(options: IQuickBookAPICallOptions): Promise<any>;
26
+ }