@tomei/finance 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) 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 +13 -13
  9. package/configs/config.js +336 -336
  10. package/dist/account/account.d.ts +35 -35
  11. package/dist/account/account.js +233 -233
  12. package/dist/account/account.js.map +1 -1
  13. package/dist/account/account.repository.d.ts +5 -5
  14. package/dist/account/account.repository.js +11 -11
  15. package/dist/account/entities/account.entity.d.ts +26 -0
  16. package/dist/account/entities/account.entity.js +199 -0
  17. package/dist/account/entities/account.entity.js.map +1 -0
  18. package/dist/account/entities/fee-associated-object.entity.d.ts +6 -0
  19. package/dist/account/entities/fee-associated-object.entity.js +52 -0
  20. package/dist/account/entities/fee-associated-object.entity.js.map +1 -0
  21. package/dist/account/index.d.ts +6 -0
  22. package/dist/account/index.js +10 -0
  23. package/dist/account/index.js.map +1 -0
  24. package/dist/account/interfaces/account-attr.interface.d.ts +29 -29
  25. package/dist/account/interfaces/account-attr.interface.js +2 -2
  26. package/dist/account/interfaces/account.repository.interface.d.ts +3 -3
  27. package/dist/account/interfaces/account.repository.interface.js +2 -2
  28. package/dist/account-system-entity/account-system-entity.d.ts +11 -11
  29. package/dist/account-system-entity/account-system-entity.js +66 -66
  30. package/dist/account-system-entity/index.d.ts +2 -0
  31. package/dist/account-system-entity/index.js +6 -0
  32. package/dist/account-system-entity/index.js.map +1 -0
  33. package/dist/account-system-entity/post-history.entity.d.ts +11 -0
  34. package/dist/account-system-entity/post-history.entity.js +65 -0
  35. package/dist/account-system-entity/post-history.entity.js.map +1 -0
  36. package/dist/account-system-entity/post-history.repository.d.ts +5 -5
  37. package/dist/account-system-entity/post-history.repository.js +11 -11
  38. package/dist/base/account-system.interface.d.ts +7 -0
  39. package/dist/base/account-system.interface.js +3 -0
  40. package/dist/base/account-system.interface.js.map +1 -0
  41. package/dist/base/address.base.abstract.d.ts +4 -0
  42. package/dist/base/address.base.abstract.js +10 -0
  43. package/dist/base/address.base.abstract.js.map +1 -0
  44. package/dist/base/base.address.d.ts +8 -0
  45. package/dist/base/base.address.js +15 -0
  46. package/dist/base/base.address.js.map +1 -0
  47. package/dist/base/base.object.d.ts +7 -0
  48. package/dist/base/base.object.js +14 -0
  49. package/dist/base/base.object.js.map +1 -0
  50. package/dist/base/base.owner.d.ts +23 -0
  51. package/dist/base/base.owner.js +34 -0
  52. package/dist/base/base.owner.js.map +1 -0
  53. package/dist/base/base.repository.abstract.d.ts +12 -0
  54. package/dist/base/base.repository.abstract.js +22 -0
  55. package/dist/base/base.repository.abstract.js.map +1 -0
  56. package/dist/base/base.repository.interface.d.ts +9 -0
  57. package/dist/base/base.repository.interface.js +3 -0
  58. package/dist/base/base.repository.interface.js.map +1 -0
  59. package/dist/base/index.d.ts +4 -0
  60. package/dist/base/index.js +10 -0
  61. package/dist/base/index.js.map +1 -0
  62. package/dist/base/object/base.object.abstract.d.ts +5 -0
  63. package/dist/base/object/base.object.abstract.js +7 -0
  64. package/dist/base/object/base.object.abstract.js.map +1 -0
  65. package/dist/base/object/base.object.d.ts +7 -0
  66. package/dist/base/object/base.object.js +14 -0
  67. package/dist/base/object/base.object.js.map +1 -0
  68. package/dist/base/object/object.interface.d.ts +4 -0
  69. package/dist/base/object/object.interface.js +3 -0
  70. package/dist/base/object/object.interface.js.map +1 -0
  71. package/dist/base/object.base.abstract.d.ts +5 -0
  72. package/dist/base/object.base.abstract.js +11 -0
  73. package/dist/base/object.base.abstract.js.map +1 -0
  74. package/dist/base/owner/base.owner.abstract.d.ts +20 -0
  75. package/dist/base/owner/base.owner.abstract.js +8 -0
  76. package/dist/base/owner/base.owner.abstract.js.map +1 -0
  77. package/dist/base/owner/base.owner.d.ts +22 -0
  78. package/dist/base/owner/base.owner.js +31 -0
  79. package/dist/base/owner/base.owner.js.map +1 -0
  80. package/dist/base/owner/owner.interface.d.ts +19 -0
  81. package/dist/base/owner/owner.interface.js +3 -0
  82. package/dist/base/owner/owner.interface.js.map +1 -0
  83. package/dist/base/person.base.abstract.d.ts +21 -0
  84. package/dist/base/person.base.abstract.js +17 -0
  85. package/dist/base/person.base.abstract.js.map +1 -0
  86. package/dist/base/repository/base.repository.abstract.d.ts +12 -0
  87. package/dist/base/repository/base.repository.abstract.js +22 -0
  88. package/dist/base/repository/base.repository.abstract.js.map +1 -0
  89. package/dist/base/repository/base.repository.interface.d.ts +9 -0
  90. package/dist/base/repository/base.repository.interface.js +3 -0
  91. package/dist/base/repository/base.repository.interface.js.map +1 -0
  92. package/dist/config.d.ts +1888 -1888
  93. package/dist/config.js +331 -331
  94. package/dist/customer/customer.d.ts +43 -43
  95. package/dist/customer/customer.js +234 -237
  96. package/dist/customer/customer.js.map +1 -1
  97. package/dist/customer/customer.repository.d.ts +0 -0
  98. package/dist/customer/customer.repository.js +1 -0
  99. package/dist/customer/customer.repository.js.map +1 -0
  100. package/dist/customer/entities/customer.entity.d.ts +13 -0
  101. package/dist/customer/entities/customer.entity.js +111 -0
  102. package/dist/customer/entities/customer.entity.js.map +1 -0
  103. package/dist/customer/finance-customer.repository.d.ts +5 -5
  104. package/dist/customer/finance-customer.repository.js +25 -25
  105. package/dist/customer/index.d.ts +7 -0
  106. package/dist/customer/index.js +10 -0
  107. package/dist/customer/index.js.map +1 -0
  108. package/dist/customer/interfaces/customer.repository.interface.d.ts +3 -3
  109. package/dist/customer/interfaces/customer.repository.interface.js +2 -2
  110. package/dist/customer/interfaces/finance-customer-attr.interface.d.ts +10 -10
  111. package/dist/customer/interfaces/finance-customer-attr.interface.js +2 -2
  112. package/dist/customer/interfaces/finance-customer.repository.interface.d.ts +3 -3
  113. package/dist/customer/interfaces/finance-customer.repository.interface.js +2 -2
  114. package/dist/database.d.ts +4 -4
  115. package/dist/database.js +14 -14
  116. package/dist/document/document-item.d.ts +38 -38
  117. package/dist/document/document-item.js +83 -83
  118. package/dist/document/document-item.repository.d.ts +5 -5
  119. package/dist/document/document-item.repository.js +11 -11
  120. package/dist/document/document.d.ts +76 -76
  121. package/dist/document/document.js +566 -566
  122. package/dist/document/document.js.map +1 -1
  123. package/dist/document/document.repository.d.ts +5 -5
  124. package/dist/document/document.repository.js +11 -11
  125. package/dist/document/entities/document-item.entity.d.ts +27 -0
  126. package/dist/document/entities/document-item.entity.js +174 -0
  127. package/dist/document/entities/document-item.entity.js.map +1 -0
  128. package/dist/document/entities/document.entity.d.ts +22 -0
  129. package/dist/document/entities/document.entity.js +139 -0
  130. package/dist/document/entities/document.entity.js.map +1 -0
  131. package/dist/document/index.d.ts +11 -0
  132. package/dist/document/index.js +20 -0
  133. package/dist/document/index.js.map +1 -0
  134. package/dist/document/interfaces/document-attr.interface.d.ts +27 -27
  135. package/dist/document/interfaces/document-attr.interface.js +6 -6
  136. package/dist/document/interfaces/document-item-attr.interface.d.ts +22 -22
  137. package/dist/document/interfaces/document-item-attr.interface.js +6 -6
  138. package/dist/document/interfaces/document-item.repository.interface.d.ts +3 -3
  139. package/dist/document/interfaces/document-item.repository.interface.js +2 -2
  140. package/dist/document/interfaces/document.repository.interface.d.ts +3 -3
  141. package/dist/document/interfaces/document.repository.interface.js +2 -2
  142. package/dist/enum/doc-type.enum.d.ts +8 -8
  143. package/dist/enum/doc-type.enum.js +12 -12
  144. package/dist/enum/document-status.enum.d.ts +6 -6
  145. package/dist/enum/document-status.enum.js +10 -10
  146. package/dist/enum/document-type.enum.d.ts +7 -0
  147. package/dist/enum/document-type.enum.js +12 -0
  148. package/dist/enum/document-type.enum.js.map +1 -0
  149. package/dist/enum/index.d.ts +8 -8
  150. package/dist/enum/index.js +17 -17
  151. package/dist/enum/intuit-client.enum.d.ts +13 -0
  152. package/dist/enum/intuit-client.enum.js +19 -0
  153. package/dist/enum/intuit-client.enum.js.map +1 -0
  154. package/dist/enum/payment-method.enum.d.ts +3 -3
  155. package/dist/enum/payment-method.enum.js +7 -7
  156. package/dist/enum/payment-status.enum.d.ts +4 -4
  157. package/dist/enum/payment-status.enum.js +8 -8
  158. package/dist/enum/payment-type.enum.d.ts +4 -4
  159. package/dist/enum/payment-type.enum.js +8 -8
  160. package/dist/enum/quick-book-client-scopes.enum.d.ts +13 -13
  161. package/dist/enum/quick-book-client-scopes.enum.js +18 -18
  162. package/dist/enum/transaction-type.enum.d.ts +4 -4
  163. package/dist/enum/transaction-type.enum.js +8 -8
  164. package/dist/finance-company/entities/finance-company.entity.d.ts +13 -0
  165. package/dist/finance-company/entities/finance-company.entity.js +113 -0
  166. package/dist/finance-company/entities/finance-company.entity.js.map +1 -0
  167. package/dist/finance-company/finance-company.d.ts +58 -57
  168. package/dist/finance-company/finance-company.entity.d.ts +13 -0
  169. package/dist/finance-company/finance-company.entity.js +66 -0
  170. package/dist/finance-company/finance-company.entity.js.map +1 -0
  171. package/dist/finance-company/finance-company.js +1192 -1191
  172. package/dist/finance-company/finance-company.js.map +1 -1
  173. package/dist/finance-company/finance-company.repository.d.ts +5 -5
  174. package/dist/finance-company/finance-company.repository.js +11 -11
  175. package/dist/finance-company/index.d.ts +3 -0
  176. package/dist/finance-company/index.js +8 -0
  177. package/dist/finance-company/index.js.map +1 -0
  178. package/dist/finance-company/interfaces/finance-company-attr.interface.d.ts +10 -0
  179. package/dist/finance-company/interfaces/finance-company-attr.interface.js +3 -0
  180. package/dist/finance-company/interfaces/finance-company-attr.interface.js.map +1 -0
  181. package/dist/finance-company/interfaces/finance-company.repository.interface.d.ts +3 -0
  182. package/dist/finance-company/interfaces/finance-company.repository.interface.js +3 -0
  183. package/dist/finance-company/interfaces/finance-company.repository.interface.js.map +1 -0
  184. package/dist/helpers/typeof.d.ts +1 -1
  185. package/dist/helpers/typeof.js +26 -26
  186. package/dist/index.d.ts +17 -17
  187. package/dist/index.js +32 -32
  188. package/dist/interfaces/account-system-entity.interface.d.ts +7 -0
  189. package/dist/interfaces/account-system-entity.interface.js +3 -0
  190. package/dist/interfaces/account-system-entity.interface.js.map +1 -0
  191. package/dist/interfaces/account-system.interface.d.ts +13 -13
  192. package/dist/interfaces/account-system.interface.js +2 -2
  193. package/dist/interfaces/customer.repository.interface.d.ts +3 -0
  194. package/dist/interfaces/customer.repository.interface.js +3 -0
  195. package/dist/interfaces/customer.repository.interface.js.map +1 -0
  196. package/dist/interfaces/finance-customer.repository.interface.d.ts +3 -0
  197. package/dist/interfaces/finance-customer.repository.interface.js +3 -0
  198. package/dist/interfaces/finance-customer.repository.interface.js.map +1 -0
  199. package/dist/interfaces/index.d.ts +2 -2
  200. package/dist/interfaces/index.js +2 -2
  201. package/dist/interfaces/systemConfig.interface.d.ts +0 -0
  202. package/dist/interfaces/systemConfig.interface.js +1 -0
  203. package/dist/interfaces/systemConfig.interface.js.map +1 -0
  204. package/dist/intuit-client/client.d.ts +14 -0
  205. package/dist/intuit-client/client.js +44 -0
  206. package/dist/intuit-client/client.js.map +1 -0
  207. package/dist/journal-entry/entities/journal-entry.entity.d.ts +16 -0
  208. package/dist/journal-entry/entities/journal-entry.entity.js +129 -0
  209. package/dist/journal-entry/entities/journal-entry.entity.js.map +1 -0
  210. package/dist/journal-entry/index.d.ts +6 -0
  211. package/dist/journal-entry/index.js +10 -0
  212. package/dist/journal-entry/index.js.map +1 -0
  213. package/dist/journal-entry/interfaces/journal-entry-attr.interface.d.ts +11 -11
  214. package/dist/journal-entry/interfaces/journal-entry-attr.interface.js +2 -2
  215. package/dist/journal-entry/interfaces/journal-entry.repository.interface.d.ts +10 -10
  216. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js +2 -2
  217. package/dist/journal-entry/journal-entry.d.ts +39 -39
  218. package/dist/journal-entry/journal-entry.js +215 -215
  219. package/dist/journal-entry/journal-entry.js.map +1 -1
  220. package/dist/journal-entry/journal-entry.repository.d.ts +5 -5
  221. package/dist/journal-entry/journal-entry.repository.js +11 -11
  222. package/dist/ledger-transaction/entities/ledger-transaction.entity.d.ts +19 -0
  223. package/dist/ledger-transaction/entities/ledger-transaction.entity.js +157 -0
  224. package/dist/ledger-transaction/entities/ledger-transaction.entity.js.map +1 -0
  225. package/dist/ledger-transaction/index.d.ts +6 -0
  226. package/dist/ledger-transaction/index.js +10 -0
  227. package/dist/ledger-transaction/index.js.map +1 -0
  228. package/dist/ledger-transaction/interfaces/ledger-transaction-attr.interface.d.ts +17 -17
  229. package/dist/ledger-transaction/interfaces/ledger-transaction-attr.interface.js +2 -2
  230. package/dist/ledger-transaction/interfaces/ledger-transaction.repository.interface.d.ts +5 -5
  231. package/dist/ledger-transaction/interfaces/ledger-transaction.repository.interface.js +2 -2
  232. package/dist/ledger-transaction/ledger-transaction.d.ts +48 -48
  233. package/dist/ledger-transaction/ledger-transaction.js +155 -155
  234. package/dist/ledger-transaction/ledger-transaction.repository.d.ts +5 -5
  235. package/dist/ledger-transaction/ledger-transaction.repository.js +11 -11
  236. package/dist/models/account.entity.d.ts +30 -30
  237. package/dist/models/account.entity.js +232 -232
  238. package/dist/models/customer.entity.d.ts +13 -13
  239. package/dist/models/customer.entity.js +109 -109
  240. package/dist/models/document-item.entity.d.ts +27 -27
  241. package/dist/models/document-item.entity.js +172 -172
  242. package/dist/models/document.entity.d.ts +36 -36
  243. package/dist/models/document.entity.js +242 -242
  244. package/dist/models/finance-company.entity.d.ts +9 -9
  245. package/dist/models/finance-company.entity.js +44 -44
  246. package/dist/models/journal-entry.entity.d.ts +16 -16
  247. package/dist/models/journal-entry.entity.js +127 -127
  248. package/dist/models/ledger-transaction.entity.d.ts +24 -24
  249. package/dist/models/ledger-transaction.entity.js +172 -172
  250. package/dist/models/payment-item.entity.d.ts +12 -12
  251. package/dist/models/payment-item.entity.js +75 -75
  252. package/dist/models/payment-method-type.entity.d.ts +13 -13
  253. package/dist/models/payment-method-type.entity.js +85 -85
  254. package/dist/models/payment-method.entity.d.ts +10 -10
  255. package/dist/models/payment-method.entity.js +62 -62
  256. package/dist/models/payment-paid-with.entity.d.ts +24 -24
  257. package/dist/models/payment-paid-with.entity.js +158 -158
  258. package/dist/models/payment.entity.d.ts +27 -27
  259. package/dist/models/payment.entity.js +188 -188
  260. package/dist/models/post-history.entity.d.ts +11 -11
  261. package/dist/models/post-history.entity.js +63 -63
  262. package/dist/payment/entities/payment-item.entity.d.ts +10 -0
  263. package/dist/payment/entities/payment-item.entity.js +62 -0
  264. package/dist/payment/entities/payment-item.entity.js.map +1 -0
  265. package/dist/payment/entities/payment.entity.d.ts +25 -0
  266. package/dist/payment/entities/payment.entity.js +152 -0
  267. package/dist/payment/entities/payment.entity.js.map +1 -0
  268. package/dist/payment/index.d.ts +10 -0
  269. package/dist/payment/index.js +18 -0
  270. package/dist/payment/index.js.map +1 -0
  271. package/dist/payment/interfaces/payment-attr.interface.d.ts +22 -22
  272. package/dist/payment/interfaces/payment-attr.interface.js +6 -6
  273. package/dist/payment/interfaces/payment-item-attr.interface.d.ts +8 -7
  274. package/dist/payment/interfaces/payment-item-attr.interface.js +6 -6
  275. package/dist/payment/interfaces/payment-item-attr.interface.js.map +1 -1
  276. package/dist/payment/interfaces/payment-item.repository.interface.d.ts +3 -3
  277. package/dist/payment/interfaces/payment-item.repository.interface.js +2 -2
  278. package/dist/payment/interfaces/payment-params.interface.d.ts +7 -7
  279. package/dist/payment/interfaces/payment-params.interface.js +2 -2
  280. package/dist/payment/interfaces/payment.repository.interface.d.ts +3 -3
  281. package/dist/payment/interfaces/payment.repository.interface.js +2 -2
  282. package/dist/payment/payment-item.repository.d.ts +5 -17
  283. package/dist/payment/payment-item.repository.js +11 -50
  284. package/dist/payment/payment-item.repository.js.map +1 -1
  285. package/dist/payment/payment.d.ts +51 -51
  286. package/dist/payment/payment.js +179 -179
  287. package/dist/payment/payment.js.map +1 -1
  288. package/dist/payment/payment.repository.d.ts +5 -5
  289. package/dist/payment/payment.repository.js +11 -11
  290. package/dist/payment-item/interfaces/payment-item-attr.interface.d.ts +10 -10
  291. package/dist/payment-item/interfaces/payment-item-attr.interface.js +6 -6
  292. package/dist/payment-item/interfaces/payment-item.repository.interface.d.ts +3 -0
  293. package/dist/payment-item/interfaces/payment-item.repository.interface.js +3 -0
  294. package/dist/payment-item/interfaces/payment-item.repository.interface.js.map +1 -0
  295. package/dist/payment-item/payment-item.d.ts +23 -23
  296. package/dist/payment-item/payment-item.js +119 -119
  297. package/dist/payment-item/payment-item.repository.d.ts +5 -5
  298. package/dist/payment-item/payment-item.repository.js +11 -11
  299. package/dist/payment-method/interfaces/payment-method-attr.interface.d.ts +5 -5
  300. package/dist/payment-method/interfaces/payment-method-attr.interface.js +2 -2
  301. package/dist/payment-method/payment-method.d.ts +18 -18
  302. package/dist/payment-method/payment-method.js +99 -98
  303. package/dist/payment-method/payment-method.js.map +1 -1
  304. package/dist/payment-method/payment-method.repository.d.ts +5 -5
  305. package/dist/payment-method/payment-method.repository.js +11 -11
  306. package/dist/payment-method-type/interfaces/payment-method-type-attr.interface.d.ts +8 -8
  307. package/dist/payment-method-type/interfaces/payment-method-type-attr.interface.js +2 -2
  308. package/dist/payment-method-type/payment-method-type.d.ts +16 -16
  309. package/dist/payment-method-type/payment-method-type.js +71 -70
  310. package/dist/payment-method-type/payment-method-type.js.map +1 -1
  311. package/dist/payment-method-type/payment-method-type.repository.d.ts +5 -5
  312. package/dist/payment-method-type/payment-method-type.repository.js +11 -11
  313. package/dist/payment-paid-with/interfaces/payment-paid-with.interface.d.ts +19 -19
  314. package/dist/payment-paid-with/interfaces/payment-paid-with.interface.js +6 -6
  315. package/dist/payment-paid-with/payment-paid-with.d.ts +31 -31
  316. package/dist/payment-paid-with/payment-paid-with.js +52 -52
  317. package/dist/payment-paid-with/payment-paid-with.repository.d.ts +5 -5
  318. package/dist/payment-paid-with/payment-paid-with.repository.js +11 -11
  319. package/dist/quickbook-client/client.d.ts +39 -0
  320. package/dist/quickbook-client/client.js +205 -0
  321. package/dist/quickbook-client/client.js.map +1 -0
  322. package/dist/quickbook-client/constant.d.ts +1 -0
  323. package/dist/quickbook-client/constant.js +5 -0
  324. package/dist/quickbook-client/constant.js.map +1 -0
  325. package/dist/quickbook-client/index.d.ts +5 -0
  326. package/dist/quickbook-client/index.js +6 -0
  327. package/dist/quickbook-client/index.js.map +1 -0
  328. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.d.ts +6 -0
  329. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js +3 -0
  330. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js.map +1 -0
  331. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.d.ts +9 -0
  332. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js +3 -0
  333. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js.map +1 -0
  334. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.d.ts +7 -0
  335. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js +3 -0
  336. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js.map +1 -0
  337. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.d.ts +8 -0
  338. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js +3 -0
  339. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js.map +1 -0
  340. package/dist/quickbook-client/quickbook-client.module-definition.d.ts +2 -0
  341. package/dist/quickbook-client/quickbook-client.module-definition.js +9 -0
  342. package/dist/quickbook-client/quickbook-client.module-definition.js.map +1 -0
  343. package/dist/quickbook-client/quickbook-client.module.d.ts +6 -0
  344. package/dist/quickbook-client/quickbook-client.module.js +34 -0
  345. package/dist/quickbook-client/quickbook-client.module.js.map +1 -0
  346. package/dist/test-document.d.ts +3 -3
  347. package/dist/test-document.js +18 -18
  348. package/dist/test.d.ts +1 -1
  349. package/dist/test.js +7 -7
  350. package/dist/tsconfig.tsbuildinfo +1 -1
  351. package/invoice-template/assets/css/style.css.map +12 -12
  352. package/invoice-template/assets/css/style.min.css +1 -1
  353. package/invoice-template/assets/img/arrow_bg.svg +11 -11
  354. package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
  355. package/invoice-template/assets/img/logo_accent.svg +3 -3
  356. package/invoice-template/assets/img/logo_white.svg +4 -4
  357. package/invoice-template/assets/img/sign.svg +12 -12
  358. package/invoice-template/assets/img/tomei-logo.svg +9 -9
  359. package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
  360. package/invoice-template/assets/js/jquery.min.js +1 -1
  361. package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
  362. package/invoice-template/assets/sass/common/_typography.scss +178 -178
  363. package/invoice-template/assets/sass/style.scss +12 -12
  364. package/migrations/finance-account-migration.js +97 -97
  365. package/migrations/finance-company-migration.js +29 -29
  366. package/migrations/finance-customer-migration.js +51 -51
  367. package/migrations/finance-document-item-migration.js +111 -111
  368. package/migrations/finance-document-migration.js +116 -116
  369. package/migrations/finance-payment-item-migration.js +52 -52
  370. package/migrations/finance-payment-method-migration.js +31 -31
  371. package/migrations/finance-payment-method-type-migration.js +55 -55
  372. package/migrations/finance-payment-migration.js +96 -96
  373. package/migrations/finance-post-history-migration.js +45 -45
  374. package/nest-cli.json +19 -19
  375. package/package.json +83 -79
  376. package/src/account/account.repository.ts +11 -11
  377. package/src/account/account.ts +271 -265
  378. package/src/account/interfaces/account-attr.interface.ts +31 -31
  379. package/src/account-system-entity/account-system-entity.ts +65 -65
  380. package/src/account-system-entity/post-history.repository.ts +11 -11
  381. package/src/config.ts +382 -382
  382. package/src/customer/customer.ts +313 -318
  383. package/src/customer/finance-customer.repository.ts +13 -13
  384. package/src/customer/interfaces/customer.repository.interface.ts +3 -3
  385. package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
  386. package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
  387. package/src/database.ts +15 -15
  388. package/src/document/document-item.repository.ts +11 -11
  389. package/src/document/document.repository.ts +11 -11
  390. package/src/document/document.ts +9 -3
  391. package/src/document/interfaces/document-attr.interface.ts +28 -28
  392. package/src/document/interfaces/document-item-attr.interface.ts +22 -22
  393. package/src/document/interfaces/document-item.repository.interface.ts +4 -4
  394. package/src/enum/doc-type.enum.ts +8 -8
  395. package/src/enum/index.ts +17 -17
  396. package/src/enum/payment-method.enum.ts +3 -3
  397. package/src/enum/payment-type.enum.ts +4 -4
  398. package/src/finance-company/finance-company.repository.ts +11 -11
  399. package/src/finance-company/finance-company.ts +1752 -1753
  400. package/src/helpers/typeof.ts +29 -29
  401. package/src/index.ts +32 -32
  402. package/src/interfaces/account-system.interface.ts +20 -20
  403. package/src/interfaces/index.ts +3 -3
  404. package/src/journal-entry/journal-entry.ts +5 -2
  405. package/src/models/account.entity.ts +206 -206
  406. package/src/models/customer.entity.ts +93 -93
  407. package/src/models/document-item.entity.ts +143 -143
  408. package/src/models/document.entity.ts +211 -211
  409. package/src/models/finance-company.entity.ts +25 -25
  410. package/src/models/journal-entry.entity.ts +110 -110
  411. package/src/models/ledger-transaction.entity.ts +148 -148
  412. package/src/models/payment-item.entity.ts +60 -60
  413. package/src/models/payment-method-type.entity.ts +70 -70
  414. package/src/models/payment-method.entity.ts +51 -51
  415. package/src/models/payment.entity.ts +161 -161
  416. package/src/models/post-history.entity.ts +41 -41
  417. package/src/payment/interfaces/payment-attr.interface.ts +23 -23
  418. package/src/payment/interfaces/payment-params.interface.ts +8 -8
  419. package/src/payment/payment.repository.ts +11 -11
  420. package/src/payment/payment.ts +217 -213
  421. package/src/payment-item/interfaces/payment-item-attr.interface.ts +10 -10
  422. package/src/payment-item/payment-item.repository.ts +11 -11
  423. package/src/payment-item/payment-item.ts +125 -125
  424. package/src/payment-method/payment-method.repository.ts +11 -11
  425. package/src/payment-method/payment-method.ts +6 -2
  426. package/src/payment-method-type/payment-method-type.repository.ts +11 -11
  427. package/src/payment-method-type/payment-method-type.ts +6 -2
  428. package/src/test-document.ts +25 -25
  429. package/tsconfig.build.json +4 -4
  430. package/tsconfig.json +22 -22
  431. package/tslint.json +18 -18
@@ -1,318 +1,313 @@
1
- import {
2
- IAddress,
3
- IRepositoryBase,
4
- IPerson,
5
- LoginUserBase,
6
- RecordNotFoundError,
7
- } from '@tomei/general';
8
- import FinanceCustomerModel from '../models/customer.entity';
9
- import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
10
- import { FinanceCustomerRepository } from './finance-customer.repository';
11
- import * as cuid from 'cuid';
12
- import Account from '../account/account';
13
- import { AccountRepository } from '../account/account.repository';
14
- import { type } from '../helpers/typeof';
15
- import * as FinanceDb from '../database';
16
- import { LedgerTransactionRepository } from '../ledger-transaction/ledger-transaction.repository';
17
-
18
- // const AccountSystemEntity = import('../account-system-entity').then(({AccountSystemEntity}) => AccountSystemEntity);
19
- export default abstract class FinanceCustomerBase
20
- extends AccountSystemEntity
21
- implements IPerson
22
- {
23
- CustomerId = 'New';
24
- CustSystemCode = '';
25
- CustSystemRefId = '';
26
-
27
- protected abstract ParentARAccountNo: string;
28
- protected abstract ParentAPAccountNo: string;
29
- protected abstract ARAccountNo: string;
30
- protected abstract APAccountNo: string;
31
-
32
- abstract FullName: string;
33
- abstract IDNo: string;
34
- abstract IDType: string;
35
- abstract ContactNo: string;
36
- abstract Email: string;
37
- abstract DefaultAddress: IAddress;
38
-
39
- private _AccountReceivable: Account;
40
- private _AccountPayable: Account;
41
-
42
- protected _DbTransaction: any;
43
-
44
- private static _AccountRepository = new AccountRepository();
45
- private static _LedgerTransactionRepository =
46
- new LedgerTransactionRepository();
47
-
48
- // note: getDetails from spec is void type. Meaning that this probably needed a fix soon
49
- async getDetails(): Promise<{
50
- FullName: string;
51
- IDNo: string;
52
- IDType: string;
53
- Email: string;
54
- ContactNo: string;
55
- }> {
56
- return {
57
- FullName: this.FullName,
58
- IDNo: this.IDNo,
59
- IDType: this.IDType,
60
- Email: this.Email,
61
- ContactNo: this.ContactNo,
62
- };
63
- }
64
-
65
- protected static _FinanceCustomerRepository = new FinanceCustomerRepository();
66
- RepositoryBase: IRepositoryBase<any>;
67
-
68
- constructor(
69
- custSystemRefId?: string,
70
- custSystemCode?: string,
71
- sFinanceCompanyId?: string,
72
- ) {
73
- super();
74
- if (custSystemRefId && custSystemCode && sFinanceCompanyId) {
75
- const financeCustomerData =
76
- FinanceCustomerBase._FinanceCustomerRepository.findOne({
77
- where: {
78
- CompanyId: sFinanceCompanyId,
79
- CustSystemCode: custSystemCode,
80
- CustSystemRefId: custSystemRefId,
81
- },
82
- });
83
- if (financeCustomerData) {
84
- this.CompanyId = sFinanceCompanyId;
85
- this.CustSystemCode = custSystemCode;
86
- this.CustSystemRefId = custSystemRefId;
87
- } else {
88
- const notFoundError = new RecordNotFoundError('No Record Found');
89
- throw notFoundError;
90
- }
91
- }
92
- }
93
-
94
- public static async initCustomer<C extends FinanceCustomerBase>(
95
- this: new () => C,
96
- custSystemRefId: string,
97
- custSystemCode: string,
98
- sFinanceCompanyId: string,
99
- dbTransaction?: any,
100
- ): Promise<C> {
101
- if (!dbTransaction) {
102
- dbTransaction = await FinanceDb.getConnection().transaction();
103
- }
104
-
105
- const financeCustomerData =
106
- await FinanceCustomerBase._FinanceCustomerRepository.findOne({
107
- where: {
108
- CompanyId: sFinanceCompanyId,
109
- CustSystemCode: custSystemCode,
110
- CustSystemRefId: custSystemRefId,
111
- },
112
- transaction: dbTransaction,
113
- });
114
- if (financeCustomerData) {
115
- const self = new this();
116
- self._DbTransaction = dbTransaction;
117
- self.CustomerId = financeCustomerData.CustomerId;
118
- self.CompanyId = sFinanceCompanyId;
119
- self.CustSystemCode = custSystemCode;
120
- self.CustSystemRefId = custSystemRefId;
121
- self.AccSystemRefId = financeCustomerData.AccSystemRefId;
122
- self.PostedToAccSystemYN = financeCustomerData.PostedToAccSystemYN;
123
- self.PostedById = financeCustomerData.PostedById;
124
- self.PostedDateTime = financeCustomerData.PostedDateTime;
125
- return self;
126
- } else {
127
- const notFoundError = new RecordNotFoundError('No Record Found');
128
- throw notFoundError;
129
- }
130
- }
131
-
132
- get AccountReceivable(): Promise<Account> {
133
- return new Promise((resolve, reject) => {
134
- let transaction = this._DbTransaction;
135
- if (this._AccountReceivable) {
136
- resolve(this._AccountReceivable);
137
- } else {
138
- return (
139
- FinanceCustomerBase._AccountRepository
140
- .findOne({
141
- where: {
142
- AccountType: 'Account Receivable',
143
- OwnerId: this.CustomerId,
144
- OwnerType: type(this),
145
- },
146
- transaction,
147
- })
148
- // })
149
- .then((accountData) => {
150
- this._AccountReceivable = new Account(transaction);
151
- if (accountData) {
152
- this._AccountReceivable.AccountNo = accountData.AccountNo;
153
- this._AccountReceivable.ParentAccountNo =
154
- accountData.ParentAccountNo;
155
- this._AccountReceivable.AccountType = accountData.AccountType;
156
- this._AccountReceivable.OwnerId = accountData.OwnerId;
157
- this._AccountReceivable.OwnerType = accountData.OwnerType;
158
- } else {
159
- // this._AccountReceivable.AccountNo = `${this.CustSystemCode}-AR-123456789`;
160
- // this._AccountReceivable.ParentAccountNo = `${this.CustSystemCode}-AR`;
161
- this._AccountReceivable.AccountNo = this.ARAccountNo; //SystemInfo.SYSTEM_CODE + '-AR-' + '8 digit running no'
162
- this._AccountReceivable.ParentAccountNo =
163
- this.ParentARAccountNo; //SystemInfo.SYSTEM_CODE + '-AR'
164
- this._AccountReceivable.AccountType = 'Account Receivable';
165
- this._AccountReceivable.OwnerId = this.CustomerId;
166
- this._AccountReceivable.OwnerType = type(this);
167
- }
168
- resolve(this._AccountReceivable);
169
- })
170
- .catch((err) => {
171
- reject(err);
172
- })
173
- );
174
- }
175
- });
176
- }
177
-
178
- get AccountPayable(): Promise<Account> {
179
- return new Promise((resolve, reject) => {
180
- let transaction = this._DbTransaction;
181
- if (this._AccountPayable) {
182
- resolve(this._AccountPayable);
183
- } else {
184
- return (
185
- FinanceCustomerBase._AccountRepository
186
- .findOne({
187
- where: {
188
- AccountType: 'Account Payable',
189
- OwnerId: this.CustomerId,
190
- OwnerType: type(this),
191
- },
192
- transaction,
193
- })
194
- // })
195
- .then((accountData) => {
196
- this._AccountPayable = new Account(transaction);
197
- if (accountData) {
198
- this._AccountPayable.AccountNo = accountData.AccountNo;
199
- this._AccountPayable.ParentAccountNo =
200
- accountData.ParentAccountNo;
201
- this._AccountPayable.AccountType = accountData.AccountType;
202
- this._AccountPayable.OwnerId = accountData.OwnerId;
203
- this._AccountPayable.OwnerType = accountData.OwnerType;
204
- } else {
205
- // this._AccountPayable.AccountNo = `${this.CustSystemCode}-AP-123456789`;
206
- // this._AccountPayable.ParentAccountNo = `${this.CustSystemCode}-AP`;
207
- this._AccountPayable.AccountNo = this.APAccountNo; //SystemInfo.SYSTEM_CODE + '-AP-' + '8 digit running no'
208
- this._AccountPayable.ParentAccountNo = this.ParentAPAccountNo; //SystemInfo.SYSTEM_CODE + '-AP'
209
- this._AccountPayable.AccountType = 'Account Payable';
210
- this._AccountPayable.OwnerId = this.CustomerId;
211
- this._AccountPayable.OwnerType = type(this);
212
- }
213
- resolve(this._AccountPayable);
214
- })
215
- .catch((err) => {
216
- reject(err);
217
- })
218
- );
219
- }
220
- });
221
- }
222
-
223
- /*
224
- * Get the billing address for a person.
225
- **/
226
- abstract getBillingAddress(params: any): Promise<IAddress>;
227
-
228
- init(person: LoginUserBase) {
229
- this.FullName = person.FullName;
230
- this.IDNo = person.IDNo;
231
- this.IDType = person.IDType;
232
- this.Email = person.Email;
233
- this.ContactNo = person.ContactNo;
234
- this.DefaultAddress = person.DefaultAddress;
235
- }
236
-
237
- async save(
238
- accSystemRefId: string,
239
- custSystemCode: string,
240
- custSystemRefId: string,
241
- dbTransaction?: any,
242
- ): Promise<FinanceCustomerModel> {
243
- this.CustSystemCode = custSystemCode;
244
- this.CustSystemRefId = custSystemRefId;
245
- this.AccSystemRefId = accSystemRefId;
246
- this.PostedToAccSystemYN = 'Y';
247
- const data = await FinanceCustomerBase._FinanceCustomerRepository.create(
248
- {
249
- CompanyId: this.CompanyId,
250
- CustomerId: cuid(),
251
- CustSystemCode: this.CustSystemCode,
252
- CustSystemRefId: this.CustSystemRefId,
253
- AccSystemRefId: this.AccSystemRefId,
254
- PostedToAccSystemYN: this.PostedToAccSystemYN,
255
- },
256
- { transaction: dbTransaction },
257
- );
258
- return data;
259
- }
260
-
261
- static async isFinanceCustomerExist(
262
- custSystemRefId: string,
263
- custSystemCode: string,
264
- sFinanceCompanyId: string,
265
- ): Promise<boolean> {
266
- const data = await FinanceCustomerBase._FinanceCustomerRepository.findAll({
267
- where: {
268
- CustSystemRefId: custSystemRefId,
269
- CustSystemCode: custSystemCode,
270
- CompanyId: sFinanceCompanyId,
271
- },
272
- });
273
-
274
- if (data.length > 0) {
275
- return true;
276
- }
277
- return false;
278
- }
279
-
280
- /**
281
- * Method to calculate and return the outstanding balance for customer receivable account
282
- *
283
- * @param dbTransaction
284
- * @returns {number}
285
- */
286
- async getOutstandingBalance(dbTransaction: any): Promise<number> {
287
- if (!dbTransaction) {
288
- dbTransaction = await FinanceDb.getConnection().transaction();
289
- }
290
-
291
- const AR = await this.AccountReceivable;
292
-
293
- const ledgerTransactions =
294
- await FinanceCustomerBase._LedgerTransactionRepository.findAll({
295
- where: {
296
- AccountNo: AR.AccountNo,
297
- },
298
- transaction: dbTransaction,
299
- });
300
-
301
- const totalDebitAmount = ledgerTransactions.reduce(
302
- (accumulator, currentValue) => accumulator + +currentValue.DebitAmount,
303
- 0,
304
- );
305
-
306
- const totalCreditAmount = ledgerTransactions.reduce(
307
- (accumulator, currentValue) => accumulator + +currentValue.CreditAmount,
308
- 0,
309
- );
310
-
311
- if (totalCreditAmount > totalDebitAmount) {
312
- return 0;
313
- }
314
-
315
- const balance = totalDebitAmount - totalCreditAmount;
316
- return balance;
317
- }
318
- }
1
+ import {
2
+ IAddress,
3
+ IRepositoryBase,
4
+ IPerson,
5
+ LoginUserBase,
6
+ } from '@tomei/general';
7
+ import { RecordNotFoundError } from '@tomei/general/dist/class/exceptions/record-not-found.error';
8
+ import FinanceCustomerModel from '../models/customer.entity';
9
+ import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
10
+ import { FinanceCustomerRepository } from './finance-customer.repository';
11
+ import * as cuid from 'cuid';
12
+ import Account from '../account/account';
13
+ import { AccountRepository } from '../account/account.repository';
14
+ import { type } from '../helpers/typeof';
15
+ import * as FinanceDb from '../database';
16
+ import { LedgerTransactionRepository } from '../ledger-transaction/ledger-transaction.repository';
17
+
18
+ // const AccountSystemEntity = import('../account-system-entity').then(({AccountSystemEntity}) => AccountSystemEntity);
19
+ export default abstract class FinanceCustomerBase
20
+ extends AccountSystemEntity
21
+ implements IPerson
22
+ {
23
+ CustomerId = 'New';
24
+ CustSystemCode = '';
25
+ CustSystemRefId = '';
26
+
27
+ protected abstract ParentARAccountNo: string;
28
+ protected abstract ParentAPAccountNo: string;
29
+ protected abstract ARAccountNo: string;
30
+ protected abstract APAccountNo: string;
31
+
32
+ abstract FullName: string;
33
+ abstract IDNo: string;
34
+ abstract IDType: string;
35
+ abstract ContactNo: string;
36
+ abstract Email: string;
37
+ abstract DefaultAddress: IAddress;
38
+
39
+ private _AccountReceivable: Account;
40
+ private _AccountPayable: Account;
41
+
42
+ protected _DbTransaction: any;
43
+
44
+ private static _AccountRepository = new AccountRepository();
45
+ private static _LedgerTransactionRepository =
46
+ new LedgerTransactionRepository();
47
+
48
+ // note: getDetails from spec is void type. Meaning that this probably needed a fix soon
49
+ async getDetails(): Promise<{
50
+ FullName: string;
51
+ IDNo: string;
52
+ IDType: string;
53
+ Email: string;
54
+ ContactNo: string;
55
+ }> {
56
+ return {
57
+ FullName: this.FullName,
58
+ IDNo: this.IDNo,
59
+ IDType: this.IDType,
60
+ Email: this.Email,
61
+ ContactNo: this.ContactNo,
62
+ };
63
+ }
64
+
65
+ protected static _FinanceCustomerRepository = new FinanceCustomerRepository();
66
+ RepositoryBase: IRepositoryBase<any>;
67
+
68
+ constructor(
69
+ custSystemRefId?: string,
70
+ custSystemCode?: string,
71
+ sFinanceCompanyId?: string,
72
+ ) {
73
+ super();
74
+ if (custSystemRefId && custSystemCode && sFinanceCompanyId) {
75
+ const financeCustomerData =
76
+ FinanceCustomerBase._FinanceCustomerRepository.findOne({
77
+ where: {
78
+ CompanyId: sFinanceCompanyId,
79
+ CustSystemCode: custSystemCode,
80
+ CustSystemRefId: custSystemRefId,
81
+ },
82
+ });
83
+ if (financeCustomerData) {
84
+ this.CompanyId = sFinanceCompanyId;
85
+ this.CustSystemCode = custSystemCode;
86
+ this.CustSystemRefId = custSystemRefId;
87
+ } else {
88
+ const notFoundError = new RecordNotFoundError(
89
+ 'FinanceCustomerErrMsg',
90
+ 'No Record Found',
91
+ );
92
+ throw notFoundError;
93
+ }
94
+ }
95
+ }
96
+
97
+ public static async initCustomer<C extends FinanceCustomerBase>(
98
+ this: new () => C,
99
+ custSystemRefId: string,
100
+ custSystemCode: string,
101
+ sFinanceCompanyId: string,
102
+ dbTransaction?: any,
103
+ ): Promise<C> {
104
+ if (!dbTransaction) {
105
+ dbTransaction = await FinanceDb.getConnection().transaction();
106
+ }
107
+
108
+ const financeCustomerData =
109
+ await FinanceCustomerBase._FinanceCustomerRepository.findOne({
110
+ where: {
111
+ CompanyId: sFinanceCompanyId,
112
+ CustSystemCode: custSystemCode,
113
+ CustSystemRefId: custSystemRefId,
114
+ },
115
+ transaction: dbTransaction,
116
+ });
117
+ if (financeCustomerData) {
118
+ const self = new this();
119
+ self._DbTransaction = dbTransaction;
120
+ self.CustomerId = financeCustomerData.CustomerId;
121
+ self.CompanyId = sFinanceCompanyId;
122
+ self.CustSystemCode = custSystemCode;
123
+ self.CustSystemRefId = custSystemRefId;
124
+ self.AccSystemRefId = financeCustomerData.AccSystemRefId;
125
+ self.PostedToAccSystemYN = financeCustomerData.PostedToAccSystemYN;
126
+ self.PostedById = financeCustomerData.PostedById;
127
+ self.PostedDateTime = financeCustomerData.PostedDateTime;
128
+ return self;
129
+ } else {
130
+ const notFoundError = new RecordNotFoundError(
131
+ 'FinanceCustomerErrMsg',
132
+ 'No Record Found',
133
+ );
134
+ throw notFoundError;
135
+ }
136
+ }
137
+
138
+ async getAccountReceivable(): Promise<Account> {
139
+ try {
140
+ const transaction = this._DbTransaction;
141
+ if (this._AccountReceivable) {
142
+ return this._AccountReceivable;
143
+ } else {
144
+ const accountData =
145
+ await FinanceCustomerBase._AccountRepository.findOne({
146
+ where: {
147
+ AccountNo: this.ARAccountNo,
148
+ AccountType: 'Account Receivable',
149
+ OwnerId: this.CustomerId,
150
+ OwnerType: type(this),
151
+ },
152
+ transaction,
153
+ });
154
+ this._AccountReceivable = new Account(transaction);
155
+ if (accountData) {
156
+ this._AccountReceivable.AccountNo = accountData.AccountNo;
157
+ this._AccountReceivable.ParentAccountNo = accountData.ParentAccountNo;
158
+ this._AccountReceivable.AccountType = accountData.AccountType;
159
+ this._AccountReceivable.OwnerId = accountData.OwnerId;
160
+ this._AccountReceivable.OwnerType = accountData.OwnerType;
161
+ } else {
162
+ // this._AccountReceivable.AccountNo = `${this.CustSystemCode}-AR-123456789`;
163
+ // this._AccountReceivable.ParentAccountNo = `${this.CustSystemCode}-AR`;
164
+ this._AccountReceivable.AccountNo = this.ARAccountNo; //SystemInfo.SYSTEM_CODE + '-AR-' + '8 digit running no'
165
+ this._AccountReceivable.ParentAccountNo = this.ParentARAccountNo; //SystemInfo.SYSTEM_CODE + '-AR'
166
+ this._AccountReceivable.AccountType = 'Account Receivable';
167
+ this._AccountReceivable.OwnerId = this.CustomerId;
168
+ this._AccountReceivable.OwnerType = type(this);
169
+ }
170
+ return this._AccountReceivable;
171
+ }
172
+ } catch (error) {
173
+ throw error;
174
+ }
175
+ }
176
+
177
+ async getAccountPayable(): Promise<Account> {
178
+ try {
179
+ const transaction = this._DbTransaction;
180
+ if (this._AccountPayable) {
181
+ return this._AccountPayable;
182
+ } else {
183
+ const accountData =
184
+ await FinanceCustomerBase._AccountRepository.findOne({
185
+ where: {
186
+ AccountNo: this.APAccountNo,
187
+ AccountType: 'Account Payable',
188
+ OwnerId: this.CustomerId,
189
+ OwnerType: type(this),
190
+ },
191
+ transaction,
192
+ });
193
+
194
+ this._AccountPayable = new Account(transaction);
195
+ if (accountData) {
196
+ this._AccountPayable.AccountNo = accountData.AccountNo;
197
+ this._AccountPayable.ParentAccountNo = accountData.ParentAccountNo;
198
+ this._AccountPayable.AccountType = accountData.AccountType;
199
+ this._AccountPayable.OwnerId = accountData.OwnerId;
200
+ this._AccountPayable.OwnerType = accountData.OwnerType;
201
+ } else {
202
+ // this._AccountPayable.AccountNo = `${this.CustSystemCode}-AP-123456789`;
203
+ // this._AccountPayable.ParentAccountNo = `${this.CustSystemCode}-AP`;
204
+ this._AccountPayable.AccountNo = this.APAccountNo; //SystemInfo.SYSTEM_CODE + '-AP-' + '8 digit running no'
205
+ this._AccountPayable.ParentAccountNo = this.ParentAPAccountNo; //SystemInfo.SYSTEM_CODE + '-AP'
206
+ this._AccountPayable.AccountType = 'Account Payable';
207
+ this._AccountPayable.OwnerId = this.CustomerId;
208
+ this._AccountPayable.OwnerType = type(this);
209
+ }
210
+
211
+ return this._AccountPayable;
212
+ }
213
+ } catch (error) {
214
+ throw error;
215
+ }
216
+ }
217
+
218
+ /*
219
+ * Get the billing address for a person.
220
+ **/
221
+ abstract getBillingAddress(params: any): Promise<IAddress>;
222
+
223
+ init(person: LoginUserBase) {
224
+ this.FullName = person.FullName;
225
+ this.IDNo = person.IDNo;
226
+ this.IDType = person.IDType;
227
+ this.Email = person.Email;
228
+ this.ContactNo = person.ContactNo;
229
+ this.DefaultAddress = person.DefaultAddress;
230
+ }
231
+
232
+ async save(
233
+ accSystemRefId: string,
234
+ custSystemCode: string,
235
+ custSystemRefId: string,
236
+ dbTransaction?: any,
237
+ ): Promise<FinanceCustomerModel> {
238
+ this.CustSystemCode = custSystemCode;
239
+ this.CustSystemRefId = custSystemRefId;
240
+ this.AccSystemRefId = accSystemRefId;
241
+ this.PostedToAccSystemYN = 'Y';
242
+ const data = await FinanceCustomerBase._FinanceCustomerRepository.create(
243
+ {
244
+ CompanyId: this.CompanyId,
245
+ CustomerId: cuid(),
246
+ CustSystemCode: this.CustSystemCode,
247
+ CustSystemRefId: this.CustSystemRefId,
248
+ AccSystemRefId: this.AccSystemRefId,
249
+ PostedToAccSystemYN: this.PostedToAccSystemYN,
250
+ },
251
+ { transaction: dbTransaction },
252
+ );
253
+ return data;
254
+ }
255
+
256
+ static async isFinanceCustomerExist(
257
+ custSystemRefId: string,
258
+ custSystemCode: string,
259
+ sFinanceCompanyId: string,
260
+ ): Promise<boolean> {
261
+ const data = await FinanceCustomerBase._FinanceCustomerRepository.findAll({
262
+ where: {
263
+ CustSystemRefId: custSystemRefId,
264
+ CustSystemCode: custSystemCode,
265
+ CompanyId: sFinanceCompanyId,
266
+ },
267
+ });
268
+
269
+ if (data.length > 0) {
270
+ return true;
271
+ }
272
+ return false;
273
+ }
274
+
275
+ /**
276
+ * Method to calculate and return the outstanding balance for customer receivable account
277
+ *
278
+ * @param dbTransaction
279
+ * @returns {number}
280
+ */
281
+ async getOutstandingBalance(dbTransaction: any): Promise<number> {
282
+ if (!dbTransaction) {
283
+ dbTransaction = await FinanceDb.getConnection().transaction();
284
+ }
285
+
286
+ const AR = await this.getAccountReceivable();
287
+
288
+ const ledgerTransactions =
289
+ await FinanceCustomerBase._LedgerTransactionRepository.findAll({
290
+ where: {
291
+ AccountNo: AR.AccountNo,
292
+ },
293
+ transaction: dbTransaction,
294
+ });
295
+
296
+ const totalDebitAmount = ledgerTransactions.reduce(
297
+ (accumulator, currentValue) => accumulator + +currentValue.DebitAmount,
298
+ 0,
299
+ );
300
+
301
+ const totalCreditAmount = ledgerTransactions.reduce(
302
+ (accumulator, currentValue) => accumulator + +currentValue.CreditAmount,
303
+ 0,
304
+ );
305
+
306
+ if (totalCreditAmount > totalDebitAmount) {
307
+ return 0;
308
+ }
309
+
310
+ const balance = totalDebitAmount - totalCreditAmount;
311
+ return balance;
312
+ }
313
+ }