@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
package/package.json CHANGED
@@ -1,76 +1,76 @@
1
- {
2
- "name": "@tomei/finance",
3
- "version": "0.2.14",
4
- "description": "NestJS package for finance module",
5
- "main": "dist/index.js",
6
- "scripts": {
7
- "start:dev": "tsc -w",
8
- "build": "tsc",
9
- "prepare": "npm run build",
10
- "format": "prettier --write \"src/**/*.ts\"",
11
- "lint": "tslint -p tsconfig.json -c tslint.json",
12
- "test": "jest",
13
- "test:watch": "jest --watch",
14
- "test:cov": "jest --coverage",
15
- "test:e2e": "jest --config ./test/jest-e2e.json"
16
- },
17
- "keywords": [
18
- "nestjs",
19
- "tomei",
20
- "finance"
21
- ],
22
- "author": "Fadhil Muhammad <fadhil@tomei.com.my>",
23
- "license": "ISC",
24
- "repository": {
25
- "type": "git",
26
- "url": "https://gitlab.com/tomei-package/finance.git"
27
- },
28
- "publishConfig": {
29
- "access": "public"
30
- },
31
- "peerDependencies": {
32
- "@nestjs/common": "^9.0.5",
33
- "@nestjs/config": "^2.2.0",
34
- "@nestjs/core": "^9.0.8",
35
- "@nestjs/platform-express": "^9.0.8",
36
- "@nestjs/sequelize": "^9.0.0",
37
- "@tomei/general": "^0.0.24",
38
- "@tomei/media": "^0.4.0",
39
- "axios": "^1.1.3",
40
- "class-transformer": "^0.5.1",
41
- "class-validator": "^0.13.2",
42
- "cuid": "^2.1.8",
43
- "dotenv": "^16.0.3",
44
- "intuit-oauth": "^4.0.0",
45
- "sequelize-typescript": "^2.1.3",
46
- "uniqid": "^5.4.0"
47
- },
48
- "devDependencies": {
49
- "@nestjs/swagger": "^6.0.4",
50
- "@types/multer": "^1.4.7",
51
- "@types/node": "^18.0.6",
52
- "@types/sequelize": "^4.28.14",
53
- "@types/uniqid": "^5.3.2",
54
- "@typescript-eslint/eslint-plugin": "^5.33.0",
55
- "eslint": "^8.21.0",
56
- "eslint-config-prettier": "^8.5.0",
57
- "eslint-plugin-prettier": "^4.2.1",
58
- "husky": "^7.0.2",
59
- "lint-staged": "^11.1.2",
60
- "prettier": "^2.7.1",
61
- "ts-node": "^10.9.1",
62
- "tsc-watch": "^5.0.3",
63
- "tsconfig-paths": "^4.0.0",
64
- "tslint": "^6.1.3",
65
- "typescript": "^4.7.4"
66
- },
67
- "lint-staged": {
68
- "*/**/*.{js,ts,tsx}": [
69
- "npm run lint",
70
- "npm run eslint",
71
- "npm run format",
72
- "npm run build",
73
- "git add ."
74
- ]
75
- }
76
- }
1
+ {
2
+ "name": "@tomei/finance",
3
+ "version": "0.2.15",
4
+ "description": "NestJS package for finance module",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "start:dev": "tsc -w",
8
+ "build": "tsc",
9
+ "prepare": "npm run build",
10
+ "format": "prettier --write \"src/**/*.ts\"",
11
+ "lint": "tslint -p tsconfig.json -c tslint.json",
12
+ "test": "jest",
13
+ "test:watch": "jest --watch",
14
+ "test:cov": "jest --coverage",
15
+ "test:e2e": "jest --config ./test/jest-e2e.json"
16
+ },
17
+ "keywords": [
18
+ "nestjs",
19
+ "tomei",
20
+ "finance"
21
+ ],
22
+ "author": "Fadhil Muhammad <fadhil@tomei.com.my>",
23
+ "license": "ISC",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://gitlab.com/tomei-package/finance.git"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "peerDependencies": {
32
+ "@nestjs/common": "^9.0.5",
33
+ "@nestjs/config": "^2.2.0",
34
+ "@nestjs/core": "^9.0.8",
35
+ "@nestjs/platform-express": "^9.0.8",
36
+ "@nestjs/sequelize": "^9.0.0",
37
+ "@nestjs/swagger": "^6.1.4",
38
+ "@tomei/general": "^0.0.24",
39
+ "@tomei/media": "^0.4.0",
40
+ "axios": "^1.1.3",
41
+ "class-transformer": "^0.5.1",
42
+ "class-validator": "^0.13.2",
43
+ "cuid": "^2.1.8",
44
+ "dotenv": "^16.0.3",
45
+ "intuit-oauth": "^4.0.0",
46
+ "sequelize-typescript": "^2.1.3",
47
+ "uniqid": "^5.4.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/multer": "^1.4.7",
51
+ "@types/node": "^18.0.6",
52
+ "@types/sequelize": "^4.28.14",
53
+ "@types/uniqid": "^5.3.2",
54
+ "@typescript-eslint/eslint-plugin": "^5.33.0",
55
+ "eslint": "^8.21.0",
56
+ "eslint-config-prettier": "^8.5.0",
57
+ "eslint-plugin-prettier": "^4.2.1",
58
+ "husky": "^7.0.2",
59
+ "lint-staged": "^11.1.2",
60
+ "prettier": "^2.7.1",
61
+ "ts-node": "^10.9.1",
62
+ "tsc-watch": "^5.0.3",
63
+ "tsconfig-paths": "^4.0.0",
64
+ "tslint": "^6.1.3",
65
+ "typescript": "^4.7.4"
66
+ },
67
+ "lint-staged": {
68
+ "*/**/*.{js,ts,tsx}": [
69
+ "npm run lint",
70
+ "npm run eslint",
71
+ "npm run format",
72
+ "npm run build",
73
+ "git add ."
74
+ ]
75
+ }
76
+ }
@@ -1,44 +1,44 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/sequelize';
3
- import { AccountModel } from './entities/account.entity';
4
- import { BaseRepository } from '@tomei/general';
5
- import {
6
- IAccountAttr,
7
- ICreateAccountAttr,
8
- } from './interfaces/account-attr.interface';
9
- import { IAccountRepository } from './interfaces/account.repository.interface';
10
-
11
- @Injectable()
12
- export class AccountRepository
13
- extends BaseRepository<AccountModel>
14
- implements IAccountRepository
15
- {
16
- constructor(
17
- @InjectModel(AccountModel)
18
- private readonly accountModel: typeof AccountModel,
19
- ) {
20
- super(accountModel);
21
- }
22
-
23
- create(data: ICreateAccountAttr, options?: any): Promise<AccountModel> | any {
24
- return this.accountModel.create({ ...data }, options);
25
- }
26
-
27
- findAll(options: any): Promise<AccountModel[]> {
28
- return this.accountModel.findAll(options);
29
- }
30
-
31
- findAllWithPagination(
32
- options: any,
33
- ): Promise<{ count: number; rows: AccountModel[] }> {
34
- return this.accountModel.findAndCountAll(options);
35
- }
36
-
37
- findOne(options: any): Promise<AccountModel> {
38
- return this.accountModel.findOne(options);
39
- }
40
-
41
- update(data: IAccountAttr, options?: any): any {
42
- return this.accountModel.update({ ...data }, options);
43
- }
44
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/sequelize';
3
+ import { AccountModel } from './entities/account.entity';
4
+ import { BaseRepository } from '@tomei/general';
5
+ import {
6
+ IAccountAttr,
7
+ ICreateAccountAttr,
8
+ } from './interfaces/account-attr.interface';
9
+ import { IAccountRepository } from './interfaces/account.repository.interface';
10
+
11
+ @Injectable()
12
+ export class AccountRepository
13
+ extends BaseRepository<AccountModel>
14
+ implements IAccountRepository
15
+ {
16
+ constructor(
17
+ @InjectModel(AccountModel)
18
+ private readonly accountModel: typeof AccountModel,
19
+ ) {
20
+ super(accountModel);
21
+ }
22
+
23
+ create(data: ICreateAccountAttr, options?: any): Promise<AccountModel> | any {
24
+ return this.accountModel.create({ ...data }, options);
25
+ }
26
+
27
+ findAll(options: any): Promise<AccountModel[]> {
28
+ return this.accountModel.findAll(options);
29
+ }
30
+
31
+ findAllWithPagination(
32
+ options: any,
33
+ ): Promise<{ count: number; rows: AccountModel[] }> {
34
+ return this.accountModel.findAndCountAll(options);
35
+ }
36
+
37
+ findOne(options: any): Promise<AccountModel> {
38
+ return this.accountModel.findOne(options);
39
+ }
40
+
41
+ update(data: IAccountAttr, options?: any): any {
42
+ return this.accountModel.update({ ...data }, options);
43
+ }
44
+ }
@@ -1,157 +1,157 @@
1
- import { IAccountRepository } from './interfaces/account.repository.interface';
2
- import { AccountModel } from './entities/account.entity';
3
- import { ObjectBase, LoginUserBase, RecordNotFoundError } from '@tomei/general';
4
- import { IBaseRepository } from '@tomei/general/dist/interfaces/repository.base.interface';
5
- import { AccountSystemEntity } from '../account-system-entity';
6
- export class Account extends AccountSystemEntity {
7
- protected BaseRepository;
8
- ObjectId: string;
9
- ObjectName: string;
10
-
11
- accountRepository: IAccountRepository;
12
- AccountNo: string;
13
- Owner: LoginUserBase;
14
- RelatedObject: ObjectBase;
15
- TableName: string;
16
- private isNewRecord = true;
17
- private OwnerId: string;
18
- private OwnerType: string;
19
- private RelatedObjectId: string;
20
- private RelatedObjectType: string;
21
- private ParentAccountNo: string;
22
-
23
- SystemCode: string;
24
- AccSystemCode: string;
25
- Name: string;
26
- Description: string;
27
- AccountType: string;
28
- AccountSubtype: string;
29
-
30
- CreatedAt: Date;
31
- CreatedById: string;
32
-
33
- constructor(
34
- accountRepository?: IBaseRepository<AccountModel>,
35
- accountNo?: string,
36
- ) {
37
- super();
38
- if (accountRepository && accountNo) {
39
- this.accountRepository = accountRepository;
40
- this.AccountNo = accountNo;
41
- const accountData = this.accountRepository.findOne({
42
- where: { AccountNo: accountNo },
43
- });
44
- if (accountData) {
45
- this.isNewRecord = false;
46
- this.ParentAccountNo = accountData.ParentAccountNo;
47
- this.SystemCode = accountData.SystemCode;
48
- this.AccSystemCode = accountData.AccSystemCode;
49
- this.AccSystemRefId = accountData.AccSystemRefId;
50
- this.Name = accountData.Name;
51
- this.Description = accountData.Description;
52
- this.AccountType = accountData.AccountType;
53
- this.AccountSubtype = accountData.AccountSubtype;
54
- this.OwnerId = accountData.OwnerId;
55
- this.OwnerType = accountData.OwnerType;
56
- this.RelatedObjectId = accountData.RelatedObjectId;
57
- this.RelatedObjectType = accountData.RelatedObjectType;
58
- this.AccSystemCode = accountData.AccSystemCode;
59
- } else {
60
- const notFoundError = new RecordNotFoundError('No Record Found.');
61
- throw notFoundError;
62
- }
63
- } else if (accountRepository || accountNo) {
64
- throw new Error('AccountNo and AccountRepository both are required.');
65
- }
66
- }
67
-
68
- public get name(): string {
69
- return this.Name;
70
- }
71
-
72
- public get accountType(): string {
73
- return this.AccountType;
74
- }
75
-
76
- public get accountSubType(): string {
77
- return this.AccountSubtype;
78
- }
79
-
80
- public get parentAccountNo(): string {
81
- return this.ParentAccountNo;
82
- }
83
-
84
- validateAccountValue() {
85
- if (!this.SystemCode) {
86
- throw new Error('SystemCode is required.');
87
- }
88
- if (!this.AccSystemCode) {
89
- throw new Error('AccSystemCode is required.');
90
- }
91
- if (!this.AccSystemRefId) {
92
- throw new Error('AccSystemAccountId is required.');
93
- }
94
- if (!this.AccountType) {
95
- throw new Error('AccountType is required.');
96
- }
97
- }
98
-
99
- isParentAccountExsits() {
100
- if (this.ParentAccountNo) return true;
101
- return false;
102
- }
103
-
104
- async save(
105
- AccSystemRefId: string,
106
- userId: string,
107
- dbTransaction?: any,
108
- ): Promise<AccountModel> {
109
- this.AccSystemRefId = AccSystemRefId;
110
- const data = await this.accountRepository.create(
111
- {
112
- AccountNo: this.AccountNo,
113
- SystemCode: this.SystemCode,
114
- AccSystemCode: this.AccSystemCode,
115
- AccSystemRefId: this.AccSystemRefId,
116
- Name: this.Name,
117
- Description: this.Description,
118
- AccountType: this.AccountType,
119
- AccountSubtype: this.AccountSubtype,
120
- OwnerId: this.OwnerId,
121
- OwnerType: this.OwnerType,
122
- RelatedObjectId: this.RelatedObjectId,
123
- RelatedObjectType: this.RelatedObjectType,
124
- CreatedAt: new Date(),
125
- CreatedById: userId,
126
- },
127
- dbTransaction,
128
- );
129
- return data;
130
- }
131
-
132
- /**
133
- * This method will return finance_Account.AccountNo
134
- * @returns {Promise<string>} AccountNo
135
- */
136
- async getAccountNo(): Promise<string> {
137
- if (this.AccountNo) {
138
- return this.AccountNo;
139
- } else {
140
- try {
141
- const account = await this.accountRepository.findOne({
142
- OwnerId: this.OwnerId,
143
- AccSystemRefId: this.AccSystemRefId,
144
- });
145
-
146
- if (account) {
147
- this.AccountNo = account.AccountNo;
148
- return this.AccountNo;
149
- } else {
150
- throw new Error('Account need to be created first.');
151
- }
152
- } catch (error) {
153
- throw error;
154
- }
155
- }
156
- }
157
- }
1
+ import { IAccountRepository } from './interfaces/account.repository.interface';
2
+ import { AccountModel } from './entities/account.entity';
3
+ import { ObjectBase, LoginUserBase, RecordNotFoundError } from '@tomei/general';
4
+ import { IBaseRepository } from '@tomei/general/dist/interfaces/repository.base.interface';
5
+ import { AccountSystemEntity } from '../account-system-entity';
6
+ export class Account extends AccountSystemEntity {
7
+ protected BaseRepository;
8
+ ObjectId: string;
9
+ ObjectName: string;
10
+
11
+ accountRepository: IAccountRepository;
12
+ AccountNo: string;
13
+ Owner: LoginUserBase;
14
+ RelatedObject: ObjectBase;
15
+ TableName: string;
16
+ private isNewRecord = true;
17
+ private OwnerId: string;
18
+ private OwnerType: string;
19
+ private RelatedObjectId: string;
20
+ private RelatedObjectType: string;
21
+ private ParentAccountNo: string;
22
+
23
+ SystemCode: string;
24
+ AccSystemCode: string;
25
+ Name: string;
26
+ Description: string;
27
+ AccountType: string;
28
+ AccountSubtype: string;
29
+
30
+ CreatedAt: Date;
31
+ CreatedById: string;
32
+
33
+ constructor(
34
+ accountRepository?: IBaseRepository<AccountModel>,
35
+ accountNo?: string,
36
+ ) {
37
+ super();
38
+ if (accountRepository && accountNo) {
39
+ this.accountRepository = accountRepository;
40
+ this.AccountNo = accountNo;
41
+ const accountData = this.accountRepository.findOne({
42
+ where: { AccountNo: accountNo },
43
+ });
44
+ if (accountData) {
45
+ this.isNewRecord = false;
46
+ this.ParentAccountNo = accountData.ParentAccountNo;
47
+ this.SystemCode = accountData.SystemCode;
48
+ this.AccSystemCode = accountData.AccSystemCode;
49
+ this.AccSystemRefId = accountData.AccSystemRefId;
50
+ this.Name = accountData.Name;
51
+ this.Description = accountData.Description;
52
+ this.AccountType = accountData.AccountType;
53
+ this.AccountSubtype = accountData.AccountSubtype;
54
+ this.OwnerId = accountData.OwnerId;
55
+ this.OwnerType = accountData.OwnerType;
56
+ this.RelatedObjectId = accountData.RelatedObjectId;
57
+ this.RelatedObjectType = accountData.RelatedObjectType;
58
+ this.AccSystemCode = accountData.AccSystemCode;
59
+ } else {
60
+ const notFoundError = new RecordNotFoundError('No Record Found.');
61
+ throw notFoundError;
62
+ }
63
+ } else if (accountRepository || accountNo) {
64
+ throw new Error('AccountNo and AccountRepository both are required.');
65
+ }
66
+ }
67
+
68
+ public get name(): string {
69
+ return this.Name;
70
+ }
71
+
72
+ public get accountType(): string {
73
+ return this.AccountType;
74
+ }
75
+
76
+ public get accountSubType(): string {
77
+ return this.AccountSubtype;
78
+ }
79
+
80
+ public get parentAccountNo(): string {
81
+ return this.ParentAccountNo;
82
+ }
83
+
84
+ validateAccountValue() {
85
+ if (!this.SystemCode) {
86
+ throw new Error('SystemCode is required.');
87
+ }
88
+ if (!this.AccSystemCode) {
89
+ throw new Error('AccSystemCode is required.');
90
+ }
91
+ if (!this.AccSystemRefId) {
92
+ throw new Error('AccSystemAccountId is required.');
93
+ }
94
+ if (!this.AccountType) {
95
+ throw new Error('AccountType is required.');
96
+ }
97
+ }
98
+
99
+ isParentAccountExsits() {
100
+ if (this.ParentAccountNo) return true;
101
+ return false;
102
+ }
103
+
104
+ async save(
105
+ AccSystemRefId: string,
106
+ userId: string,
107
+ dbTransaction?: any,
108
+ ): Promise<AccountModel> {
109
+ this.AccSystemRefId = AccSystemRefId;
110
+ const data = await this.accountRepository.create(
111
+ {
112
+ AccountNo: this.AccountNo,
113
+ SystemCode: this.SystemCode,
114
+ AccSystemCode: this.AccSystemCode,
115
+ AccSystemRefId: this.AccSystemRefId,
116
+ Name: this.Name,
117
+ Description: this.Description,
118
+ AccountType: this.AccountType,
119
+ AccountSubtype: this.AccountSubtype,
120
+ OwnerId: this.OwnerId,
121
+ OwnerType: this.OwnerType,
122
+ RelatedObjectId: this.RelatedObjectId,
123
+ RelatedObjectType: this.RelatedObjectType,
124
+ CreatedAt: new Date(),
125
+ CreatedById: userId,
126
+ },
127
+ dbTransaction,
128
+ );
129
+ return data;
130
+ }
131
+
132
+ /**
133
+ * This method will return finance_Account.AccountNo
134
+ * @returns {Promise<string>} AccountNo
135
+ */
136
+ async getAccountNo(): Promise<string> {
137
+ if (this.AccountNo) {
138
+ return this.AccountNo;
139
+ } else {
140
+ try {
141
+ const account = await this.accountRepository.findOne({
142
+ OwnerId: this.OwnerId,
143
+ AccSystemRefId: this.AccSystemRefId,
144
+ });
145
+
146
+ if (account) {
147
+ this.AccountNo = account.AccountNo;
148
+ return this.AccountNo;
149
+ } else {
150
+ throw new Error('Account need to be created first.');
151
+ }
152
+ } catch (error) {
153
+ throw error;
154
+ }
155
+ }
156
+ }
157
+ }