@tomei/finance 0.3.56 → 0.3.57

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 (296) 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/CHANGELOG.md +1 -0
  7. package/CONTRIBUTING.md +30 -30
  8. package/LICENSE +21 -21
  9. package/README.md +13 -13
  10. package/configs/config.js +336 -336
  11. package/dist/customer/customer.d.ts +3 -7
  12. package/dist/customer/customer.js +4 -7
  13. package/dist/customer/customer.js.map +1 -1
  14. package/dist/document/document.d.ts +1 -1
  15. package/dist/document/document.js +2 -8
  16. package/dist/document/document.js.map +1 -1
  17. package/dist/finance-company/finance-company.js +0 -11
  18. package/dist/finance-company/finance-company.js.map +1 -1
  19. package/dist/ledger-transaction/interfaces/ledger-transaction-attr.interface.d.ts +13 -14
  20. package/dist/ledger-transaction/ledger-transaction.d.ts +0 -2
  21. package/dist/ledger-transaction/ledger-transaction.js +0 -5
  22. package/dist/ledger-transaction/ledger-transaction.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/invoice-template/assets/css/style.css.map +12 -12
  25. package/invoice-template/assets/css/style.min.css +1 -1
  26. package/invoice-template/assets/img/arrow_bg.svg +11 -11
  27. package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
  28. package/invoice-template/assets/img/logo_accent.svg +3 -3
  29. package/invoice-template/assets/img/logo_white.svg +4 -4
  30. package/invoice-template/assets/img/sign.svg +12 -12
  31. package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
  32. package/invoice-template/assets/js/jquery.min.js +1 -1
  33. package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
  34. package/invoice-template/assets/sass/common/_typography.scss +178 -178
  35. package/invoice-template/assets/sass/style.scss +12 -12
  36. package/migrations/finance-account-migration.js +97 -97
  37. package/migrations/finance-company-migration.js +29 -29
  38. package/migrations/finance-customer-migration.js +51 -51
  39. package/migrations/finance-document-item-migration.js +111 -111
  40. package/migrations/finance-document-migration.js +116 -116
  41. package/migrations/finance-payment-item-migration.js +51 -51
  42. package/migrations/finance-payment-method-migration.js +31 -31
  43. package/migrations/finance-payment-method-type-migration.js +55 -55
  44. package/migrations/finance-payment-migration.js +74 -74
  45. package/migrations/finance-post-history-migration.js +45 -45
  46. package/nest-cli.json +19 -19
  47. package/package.json +79 -79
  48. package/src/account/account.repository.ts +11 -11
  49. package/src/account/account.ts +175 -175
  50. package/src/account/interfaces/account-attr.interface.ts +31 -31
  51. package/src/account-system-entity/account-system-entity.ts +65 -65
  52. package/src/account-system-entity/post-history.repository.ts +11 -11
  53. package/src/config.ts +369 -369
  54. package/src/customer/customer.ts +238 -247
  55. package/src/customer/finance-customer.repository.ts +13 -13
  56. package/src/customer/interfaces/customer.repository.interface.ts +3 -3
  57. package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
  58. package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
  59. package/src/database.ts +15 -15
  60. package/src/document/document-item.repository.ts +11 -11
  61. package/src/document/document.repository.ts +11 -11
  62. package/src/document/document.ts +3 -8
  63. package/src/document/interfaces/document-attr.interface.ts +28 -28
  64. package/src/document/interfaces/document-item-attr.interface.ts +22 -22
  65. package/src/document/interfaces/document-item.repository.interface.ts +4 -4
  66. package/src/enum/doc-type.enum.ts +8 -8
  67. package/src/enum/index.ts +17 -17
  68. package/src/enum/payment-method.enum.ts +3 -3
  69. package/src/enum/payment-type.enum.ts +4 -4
  70. package/src/finance-company/finance-company.repository.ts +11 -11
  71. package/src/finance-company/finance-company.ts +1 -12
  72. package/src/helpers/typeof.ts +29 -29
  73. package/src/index.ts +30 -30
  74. package/src/interfaces/account-system.interface.ts +20 -20
  75. package/src/interfaces/index.ts +3 -3
  76. package/src/ledger-transaction/interfaces/ledger-transaction-attr.interface.ts +13 -14
  77. package/src/ledger-transaction/ledger-transaction.ts +0 -4
  78. package/src/models/account.entity.ts +206 -206
  79. package/src/models/customer.entity.ts +93 -93
  80. package/src/models/document-item.entity.ts +143 -143
  81. package/src/models/document.entity.ts +191 -191
  82. package/src/models/finance-company.entity.ts +25 -25
  83. package/src/models/journal-entry.entity.ts +110 -110
  84. package/src/models/ledger-transaction.entity.ts +148 -148
  85. package/src/models/payment-item.entity.ts +59 -59
  86. package/src/models/payment-method-type.entity.ts +70 -70
  87. package/src/models/payment-method.entity.ts +51 -51
  88. package/src/models/payment.entity.ts +153 -153
  89. package/src/models/post-history.entity.ts +41 -41
  90. package/src/payment/interfaces/payment-attr.interface.ts +19 -19
  91. package/src/payment/interfaces/payment-params.interface.ts +8 -8
  92. package/src/payment/payment.repository.ts +11 -11
  93. package/src/payment/payment.ts +208 -208
  94. package/src/payment-item/interfaces/payment-item-attr.interface.ts +10 -10
  95. package/src/payment-item/payment-item.repository.ts +11 -11
  96. package/src/payment-item/payment-item.ts +58 -58
  97. package/src/payment-method/payment-method.repository.ts +11 -11
  98. package/src/payment-method-type/payment-method-type.repository.ts +11 -11
  99. package/tsconfig.build.json +4 -4
  100. package/tsconfig.json +22 -22
  101. package/tslint.json +18 -18
  102. package/dist/account/entities/account.entity.d.ts +0 -26
  103. package/dist/account/entities/account.entity.js +0 -199
  104. package/dist/account/entities/account.entity.js.map +0 -1
  105. package/dist/account/entities/fee-associated-object.entity.d.ts +0 -6
  106. package/dist/account/entities/fee-associated-object.entity.js +0 -52
  107. package/dist/account/entities/fee-associated-object.entity.js.map +0 -1
  108. package/dist/account/index.d.ts +0 -6
  109. package/dist/account/index.js +0 -10
  110. package/dist/account/index.js.map +0 -1
  111. package/dist/account/interfaces/account.repository.interface.d.ts +0 -3
  112. package/dist/account/interfaces/account.repository.interface.js +0 -3
  113. package/dist/account/interfaces/account.repository.interface.js.map +0 -1
  114. package/dist/account-system-entity/index.d.ts +0 -2
  115. package/dist/account-system-entity/index.js +0 -6
  116. package/dist/account-system-entity/index.js.map +0 -1
  117. package/dist/account-system-entity/post-history.entity.d.ts +0 -11
  118. package/dist/account-system-entity/post-history.entity.js +0 -65
  119. package/dist/account-system-entity/post-history.entity.js.map +0 -1
  120. package/dist/base/account-system.interface.d.ts +0 -7
  121. package/dist/base/account-system.interface.js +0 -3
  122. package/dist/base/account-system.interface.js.map +0 -1
  123. package/dist/base/address.base.abstract.d.ts +0 -4
  124. package/dist/base/address.base.abstract.js +0 -10
  125. package/dist/base/address.base.abstract.js.map +0 -1
  126. package/dist/base/base.address.d.ts +0 -8
  127. package/dist/base/base.address.js +0 -15
  128. package/dist/base/base.address.js.map +0 -1
  129. package/dist/base/base.object.d.ts +0 -7
  130. package/dist/base/base.object.js +0 -14
  131. package/dist/base/base.object.js.map +0 -1
  132. package/dist/base/base.owner.d.ts +0 -23
  133. package/dist/base/base.owner.js +0 -34
  134. package/dist/base/base.owner.js.map +0 -1
  135. package/dist/base/base.repository.abstract.d.ts +0 -12
  136. package/dist/base/base.repository.abstract.js +0 -22
  137. package/dist/base/base.repository.abstract.js.map +0 -1
  138. package/dist/base/base.repository.interface.d.ts +0 -9
  139. package/dist/base/base.repository.interface.js +0 -3
  140. package/dist/base/base.repository.interface.js.map +0 -1
  141. package/dist/base/index.d.ts +0 -4
  142. package/dist/base/index.js +0 -10
  143. package/dist/base/index.js.map +0 -1
  144. package/dist/base/object/base.object.abstract.d.ts +0 -5
  145. package/dist/base/object/base.object.abstract.js +0 -7
  146. package/dist/base/object/base.object.abstract.js.map +0 -1
  147. package/dist/base/object/base.object.d.ts +0 -7
  148. package/dist/base/object/base.object.js +0 -14
  149. package/dist/base/object/base.object.js.map +0 -1
  150. package/dist/base/object/object.interface.d.ts +0 -4
  151. package/dist/base/object/object.interface.js +0 -3
  152. package/dist/base/object/object.interface.js.map +0 -1
  153. package/dist/base/object.base.abstract.d.ts +0 -5
  154. package/dist/base/object.base.abstract.js +0 -11
  155. package/dist/base/object.base.abstract.js.map +0 -1
  156. package/dist/base/owner/base.owner.abstract.d.ts +0 -20
  157. package/dist/base/owner/base.owner.abstract.js +0 -8
  158. package/dist/base/owner/base.owner.abstract.js.map +0 -1
  159. package/dist/base/owner/base.owner.d.ts +0 -22
  160. package/dist/base/owner/base.owner.js +0 -31
  161. package/dist/base/owner/base.owner.js.map +0 -1
  162. package/dist/base/owner/owner.interface.d.ts +0 -19
  163. package/dist/base/owner/owner.interface.js +0 -3
  164. package/dist/base/owner/owner.interface.js.map +0 -1
  165. package/dist/base/person.base.abstract.d.ts +0 -21
  166. package/dist/base/person.base.abstract.js +0 -17
  167. package/dist/base/person.base.abstract.js.map +0 -1
  168. package/dist/base/repository/base.repository.abstract.d.ts +0 -12
  169. package/dist/base/repository/base.repository.abstract.js +0 -22
  170. package/dist/base/repository/base.repository.abstract.js.map +0 -1
  171. package/dist/base/repository/base.repository.interface.d.ts +0 -9
  172. package/dist/base/repository/base.repository.interface.js +0 -3
  173. package/dist/base/repository/base.repository.interface.js.map +0 -1
  174. package/dist/customer/customer.repository.d.ts +0 -0
  175. package/dist/customer/customer.repository.js +0 -1
  176. package/dist/customer/customer.repository.js.map +0 -1
  177. package/dist/customer/entities/customer.entity.d.ts +0 -13
  178. package/dist/customer/entities/customer.entity.js +0 -111
  179. package/dist/customer/entities/customer.entity.js.map +0 -1
  180. package/dist/customer/index.d.ts +0 -7
  181. package/dist/customer/index.js +0 -10
  182. package/dist/customer/index.js.map +0 -1
  183. package/dist/document/entities/document-item.entity.d.ts +0 -27
  184. package/dist/document/entities/document-item.entity.js +0 -174
  185. package/dist/document/entities/document-item.entity.js.map +0 -1
  186. package/dist/document/entities/document.entity.d.ts +0 -22
  187. package/dist/document/entities/document.entity.js +0 -139
  188. package/dist/document/entities/document.entity.js.map +0 -1
  189. package/dist/document/index.d.ts +0 -11
  190. package/dist/document/index.js +0 -20
  191. package/dist/document/index.js.map +0 -1
  192. package/dist/document/interfaces/document.repository.interface.d.ts +0 -3
  193. package/dist/document/interfaces/document.repository.interface.js +0 -3
  194. package/dist/document/interfaces/document.repository.interface.js.map +0 -1
  195. package/dist/enum/document-type.enum.d.ts +0 -7
  196. package/dist/enum/document-type.enum.js +0 -12
  197. package/dist/enum/document-type.enum.js.map +0 -1
  198. package/dist/enum/intuit-client.enum.d.ts +0 -13
  199. package/dist/enum/intuit-client.enum.js +0 -19
  200. package/dist/enum/intuit-client.enum.js.map +0 -1
  201. package/dist/finance-company/entities/finance-company.entity.d.ts +0 -13
  202. package/dist/finance-company/entities/finance-company.entity.js +0 -113
  203. package/dist/finance-company/entities/finance-company.entity.js.map +0 -1
  204. package/dist/finance-company/finance-company.entity.d.ts +0 -13
  205. package/dist/finance-company/finance-company.entity.js +0 -66
  206. package/dist/finance-company/finance-company.entity.js.map +0 -1
  207. package/dist/finance-company/index.d.ts +0 -3
  208. package/dist/finance-company/index.js +0 -8
  209. package/dist/finance-company/index.js.map +0 -1
  210. package/dist/finance-company/interfaces/finance-company-attr.interface.d.ts +0 -10
  211. package/dist/finance-company/interfaces/finance-company-attr.interface.js +0 -3
  212. package/dist/finance-company/interfaces/finance-company-attr.interface.js.map +0 -1
  213. package/dist/finance-company/interfaces/finance-company.repository.interface.d.ts +0 -3
  214. package/dist/finance-company/interfaces/finance-company.repository.interface.js +0 -3
  215. package/dist/finance-company/interfaces/finance-company.repository.interface.js.map +0 -1
  216. package/dist/interfaces/account-system-entity.interface.d.ts +0 -7
  217. package/dist/interfaces/account-system-entity.interface.js +0 -3
  218. package/dist/interfaces/account-system-entity.interface.js.map +0 -1
  219. package/dist/interfaces/customer.repository.interface.d.ts +0 -3
  220. package/dist/interfaces/customer.repository.interface.js +0 -3
  221. package/dist/interfaces/customer.repository.interface.js.map +0 -1
  222. package/dist/interfaces/finance-customer.repository.interface.d.ts +0 -3
  223. package/dist/interfaces/finance-customer.repository.interface.js +0 -3
  224. package/dist/interfaces/finance-customer.repository.interface.js.map +0 -1
  225. package/dist/interfaces/systemConfig.interface.d.ts +0 -0
  226. package/dist/interfaces/systemConfig.interface.js +0 -1
  227. package/dist/interfaces/systemConfig.interface.js.map +0 -1
  228. package/dist/intuit-client/client.d.ts +0 -14
  229. package/dist/intuit-client/client.js +0 -44
  230. package/dist/intuit-client/client.js.map +0 -1
  231. package/dist/journal-entry/entities/journal-entry.entity.d.ts +0 -16
  232. package/dist/journal-entry/entities/journal-entry.entity.js +0 -129
  233. package/dist/journal-entry/entities/journal-entry.entity.js.map +0 -1
  234. package/dist/journal-entry/index.d.ts +0 -6
  235. package/dist/journal-entry/index.js +0 -10
  236. package/dist/journal-entry/index.js.map +0 -1
  237. package/dist/journal-entry/interfaces/journal-entry.repository.interface.d.ts +0 -10
  238. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js +0 -3
  239. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js.map +0 -1
  240. package/dist/ledger-transaction/entities/ledger-transaction.entity.d.ts +0 -19
  241. package/dist/ledger-transaction/entities/ledger-transaction.entity.js +0 -157
  242. package/dist/ledger-transaction/entities/ledger-transaction.entity.js.map +0 -1
  243. package/dist/ledger-transaction/index.d.ts +0 -6
  244. package/dist/ledger-transaction/index.js +0 -10
  245. package/dist/ledger-transaction/index.js.map +0 -1
  246. package/dist/payment/entities/payment-item.entity.d.ts +0 -10
  247. package/dist/payment/entities/payment-item.entity.js +0 -62
  248. package/dist/payment/entities/payment-item.entity.js.map +0 -1
  249. package/dist/payment/entities/payment.entity.d.ts +0 -25
  250. package/dist/payment/entities/payment.entity.js +0 -152
  251. package/dist/payment/entities/payment.entity.js.map +0 -1
  252. package/dist/payment/index.d.ts +0 -10
  253. package/dist/payment/index.js +0 -18
  254. package/dist/payment/index.js.map +0 -1
  255. package/dist/payment/interfaces/payment-item-attr.interface.d.ts +0 -8
  256. package/dist/payment/interfaces/payment-item-attr.interface.js +0 -7
  257. package/dist/payment/interfaces/payment-item-attr.interface.js.map +0 -1
  258. package/dist/payment/interfaces/payment-item.repository.interface.d.ts +0 -3
  259. package/dist/payment/interfaces/payment-item.repository.interface.js +0 -3
  260. package/dist/payment/interfaces/payment-item.repository.interface.js.map +0 -1
  261. package/dist/payment/interfaces/payment.repository.interface.d.ts +0 -3
  262. package/dist/payment/interfaces/payment.repository.interface.js +0 -3
  263. package/dist/payment/interfaces/payment.repository.interface.js.map +0 -1
  264. package/dist/payment/payment-item.repository.d.ts +0 -5
  265. package/dist/payment/payment-item.repository.js +0 -12
  266. package/dist/payment/payment-item.repository.js.map +0 -1
  267. package/dist/payment-item/interfaces/payment-item.repository.interface.d.ts +0 -3
  268. package/dist/payment-item/interfaces/payment-item.repository.interface.js +0 -3
  269. package/dist/payment-item/interfaces/payment-item.repository.interface.js.map +0 -1
  270. package/dist/quickbook-client/client.d.ts +0 -39
  271. package/dist/quickbook-client/client.js +0 -205
  272. package/dist/quickbook-client/client.js.map +0 -1
  273. package/dist/quickbook-client/constant.d.ts +0 -1
  274. package/dist/quickbook-client/constant.js +0 -5
  275. package/dist/quickbook-client/constant.js.map +0 -1
  276. package/dist/quickbook-client/index.d.ts +0 -5
  277. package/dist/quickbook-client/index.js +0 -6
  278. package/dist/quickbook-client/index.js.map +0 -1
  279. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.d.ts +0 -6
  280. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js +0 -3
  281. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js.map +0 -1
  282. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.d.ts +0 -9
  283. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js +0 -3
  284. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js.map +0 -1
  285. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.d.ts +0 -7
  286. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js +0 -3
  287. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js.map +0 -1
  288. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.d.ts +0 -8
  289. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js +0 -3
  290. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js.map +0 -1
  291. package/dist/quickbook-client/quickbook-client.module-definition.d.ts +0 -2
  292. package/dist/quickbook-client/quickbook-client.module-definition.js +0 -9
  293. package/dist/quickbook-client/quickbook-client.module-definition.js.map +0 -1
  294. package/dist/quickbook-client/quickbook-client.module.d.ts +0 -6
  295. package/dist/quickbook-client/quickbook-client.module.js +0 -34
  296. package/dist/quickbook-client/quickbook-client.module.js.map +0 -1
@@ -1,247 +1,238 @@
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
-
17
- // const AccountSystemEntity = import('../account-system-entity').then(({AccountSystemEntity}) => AccountSystemEntity);
18
- export default abstract class FinanceCustomerBase
19
- extends AccountSystemEntity
20
- implements IPerson
21
- {
22
- CustomerId = 'New';
23
- CustSystemCode = '';
24
- CustSystemRefId = '';
25
-
26
- protected abstract ParentARAccountNo: string;
27
- protected abstract ParentAPAccountNo: string;
28
- protected abstract ARAccountNo: string;
29
- protected abstract APAccountNo: string;
30
-
31
- abstract FullName: string;
32
- abstract IDNo: string;
33
- abstract IDType: string;
34
- abstract ContactNo: string;
35
- abstract Email: string;
36
- abstract DefaultAddress: IAddress;
37
-
38
- private _AccountReceivable: Account;
39
- private _AccountPayable: Account;
40
-
41
- private static _AccountRepository = new AccountRepository();
42
-
43
- // note: getDetails from spec is void type. Meaning that this probably needed a fix soon
44
- async getDetails(): Promise<{
45
- FullName: string;
46
- IDNo: string;
47
- IDType: string;
48
- Email: string;
49
- ContactNo: string;
50
- }> {
51
- return {
52
- FullName: this.FullName,
53
- IDNo: this.IDNo,
54
- IDType: this.IDType,
55
- Email: this.Email,
56
- ContactNo: this.ContactNo,
57
- };
58
- }
59
-
60
- protected static _FinanceCustomerRepository = new FinanceCustomerRepository();
61
- RepositoryBase: IRepositoryBase<any>;
62
-
63
- constructor(
64
- custSystemRefId?: string,
65
- custSystemCode?: string,
66
- sFinanceCompanyId?: string,
67
- ) {
68
- super();
69
- if (custSystemRefId && custSystemCode && sFinanceCompanyId) {
70
- const financeCustomerData =
71
- FinanceCustomerBase._FinanceCustomerRepository.findOne({
72
- where: {
73
- CompanyId: sFinanceCompanyId,
74
- CustSystemCode: custSystemCode,
75
- CustSystemRefId: custSystemRefId,
76
- },
77
- });
78
- if (financeCustomerData) {
79
- this.CompanyId = sFinanceCompanyId;
80
- this.CustSystemCode = custSystemCode;
81
- this.CustSystemRefId = custSystemRefId;
82
- } else {
83
- const notFoundError = new RecordNotFoundError('No Record Found');
84
- throw notFoundError;
85
- }
86
- }
87
- }
88
-
89
- public static async initCustomer<C extends FinanceCustomerBase>(
90
- this: new () => C,
91
- custSystemRefId: string,
92
- custSystemCode: string,
93
- sFinanceCompanyId: string,
94
- ): Promise<C> {
95
- const financeCustomerData =
96
- await FinanceCustomerBase._FinanceCustomerRepository.findOne({
97
- where: {
98
- CompanyId: sFinanceCompanyId,
99
- CustSystemCode: custSystemCode,
100
- CustSystemRefId: custSystemRefId,
101
- },
102
- });
103
- if (financeCustomerData) {
104
- const self = new this();
105
- self.CustomerId = financeCustomerData.CustomerId;
106
- self.CompanyId = sFinanceCompanyId;
107
- self.CustSystemCode = custSystemCode;
108
- self.CustSystemRefId = custSystemRefId;
109
- self.AccSystemRefId = financeCustomerData.AccSystemRefId;
110
- self.PostedToAccSystemYN = financeCustomerData.PostedToAccSystemYN;
111
- self.PostedById = financeCustomerData.PostedById;
112
- self.PostedDateTime = financeCustomerData.PostedDateTime;
113
- return self;
114
- } else {
115
- const notFoundError = new RecordNotFoundError('No Record Found');
116
- throw notFoundError;
117
- }
118
- }
119
-
120
- get AccountReceivable(): Promise<Account> {
121
- return new Promise((resolve, reject) => {
122
- let transaction;
123
- if (this._AccountReceivable) {
124
- resolve(this._AccountReceivable);
125
- } else {
126
- FinanceDb.getConnection()
127
- .transaction()
128
- .then((t) => {
129
- transaction = t;
130
- return FinanceCustomerBase._AccountRepository.findOne({
131
- where: {
132
- AccountType: 'Account Receivable',
133
- OwnerId: this.CustomerId,
134
- OwnerType: type(this),
135
- },
136
- });
137
- })
138
- .then((accountData) => {
139
- this._AccountReceivable = new Account(transaction);
140
- if (accountData) {
141
- this._AccountReceivable.AccountNo = accountData.AccountNo;
142
- this._AccountReceivable.ParentAccountNo =
143
- accountData.ParentAccountNo;
144
- this._AccountReceivable.AccountType = accountData.AccountType;
145
- this._AccountReceivable.OwnerId = accountData.OwnerId;
146
- this._AccountReceivable.OwnerType = accountData.OwnerType;
147
- } else {
148
- // this._AccountReceivable.AccountNo = `${this.CustSystemCode}-AR-123456789`;
149
- // this._AccountReceivable.ParentAccountNo = `${this.CustSystemCode}-AR`;
150
- this._AccountReceivable.AccountNo = this.ARAccountNo; //SystemInfo.SYSTEM_CODE + '-AR-' + '8 digit running no'
151
- this._AccountReceivable.ParentAccountNo = this.ParentARAccountNo; //SystemInfo.SYSTEM_CODE + '-AR'
152
- this._AccountReceivable.AccountType = 'Account Receivable';
153
- this._AccountReceivable.OwnerId = this.CustomerId;
154
- this._AccountReceivable.OwnerType = type(this);
155
- }
156
- resolve(this._AccountReceivable);
157
- })
158
- .catch((err) => {
159
- reject(err);
160
- });
161
- }
162
- });
163
- }
164
-
165
- get AccountPayable(): Promise<Account> {
166
- return new Promise((resolve, reject) => {
167
- let transaction;
168
- if (this._AccountPayable) {
169
- resolve(this._AccountPayable);
170
- } else {
171
- FinanceDb.getConnection()
172
- .transaction()
173
- .then((t) => {
174
- transaction = t;
175
- return FinanceCustomerBase._AccountRepository.findOne({
176
- where: {
177
- AccountType: 'Account Payable',
178
- OwnerId: this.CustomerId,
179
- OwnerType: type(this),
180
- },
181
- });
182
- })
183
- .then((accountData) => {
184
- this._AccountPayable = new Account(transaction);
185
- if (accountData) {
186
- this._AccountPayable.AccountNo = accountData.AccountNo;
187
- this._AccountPayable.ParentAccountNo =
188
- accountData.ParentAccountNo;
189
- this._AccountPayable.AccountType = accountData.AccountType;
190
- this._AccountPayable.OwnerId = accountData.OwnerId;
191
- this._AccountPayable.OwnerType = accountData.OwnerType;
192
- } else {
193
- // this._AccountPayable.AccountNo = `${this.CustSystemCode}-AP-123456789`;
194
- // this._AccountPayable.ParentAccountNo = `${this.CustSystemCode}-AP`;
195
- this._AccountPayable.AccountNo = this.APAccountNo; //SystemInfo.SYSTEM_CODE + '-AP-' + '8 digit running no'
196
- this._AccountPayable.ParentAccountNo = this.ParentAPAccountNo; //SystemInfo.SYSTEM_CODE + '-AP'
197
- this._AccountPayable.AccountType = 'Account Payable';
198
- this._AccountPayable.OwnerId = this.CustomerId;
199
- this._AccountPayable.OwnerType = type(this);
200
- }
201
- resolve(this._AccountPayable);
202
- })
203
- .catch((err) => {
204
- reject(err);
205
- });
206
- }
207
- });
208
- }
209
-
210
- /*
211
- * Get the billing address for a person.
212
- **/
213
- abstract getBillingAddress(params: any): Promise<IAddress>;
214
-
215
- init(person: LoginUserBase) {
216
- this.FullName = person.FullName;
217
- this.IDNo = person.IDNo;
218
- this.IDType = person.IDType;
219
- this.Email = person.Email;
220
- this.ContactNo = person.ContactNo;
221
- this.DefaultAddress = person.DefaultAddress;
222
- }
223
-
224
- async save(
225
- accSystemRefId: string,
226
- custSystemCode: string,
227
- custSystemRefId: string,
228
- dbTransaction?: any,
229
- ): Promise<FinanceCustomerModel> {
230
- this.CustSystemCode = custSystemCode;
231
- this.CustSystemRefId = custSystemRefId;
232
- this.AccSystemRefId = accSystemRefId;
233
- this.PostedToAccSystemYN = 'Y';
234
- const data = await FinanceCustomerBase._FinanceCustomerRepository.create(
235
- {
236
- CompanyId: this.CompanyId,
237
- CustomerId: cuid(),
238
- CustSystemCode: this.CustSystemCode,
239
- CustSystemRefId: this.CustSystemRefId,
240
- AccSystemRefId: this.AccSystemRefId,
241
- PostedToAccSystemYN: this.PostedToAccSystemYN,
242
- },
243
- { transaction: dbTransaction },
244
- );
245
- return data;
246
- }
247
- }
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
+
17
+ // const AccountSystemEntity = import('../account-system-entity').then(({AccountSystemEntity}) => AccountSystemEntity);
18
+ export default abstract class FinanceCustomerBase
19
+ extends AccountSystemEntity
20
+ implements IPerson
21
+ {
22
+ abstract FullName: string;
23
+ abstract IDNo: string;
24
+ abstract IDType: string;
25
+ abstract ContactNo: string;
26
+ abstract Email: string;
27
+ abstract DefaultAddress: IAddress;
28
+
29
+ private _AccountReceivable: Account;
30
+ private _AccountPayable: Account;
31
+
32
+ private static _AccountRepository = new AccountRepository();
33
+
34
+ // note: getDetails from spec is void type. Meaning that this probably needed a fix soon
35
+ async getDetails(): Promise<{
36
+ FullName: string;
37
+ IDNo: string;
38
+ IDType: string;
39
+ Email: string;
40
+ ContactNo: string;
41
+ }> {
42
+ return {
43
+ FullName: this.FullName,
44
+ IDNo: this.IDNo,
45
+ IDType: this.IDType,
46
+ Email: this.Email,
47
+ ContactNo: this.ContactNo,
48
+ };
49
+ }
50
+
51
+ protected static _FinanceCustomerRepository = new FinanceCustomerRepository();
52
+
53
+ CustomerId: string;
54
+ CustSystemCode: string;
55
+ CustSystemRefId: string;
56
+ RepositoryBase: IRepositoryBase<any>;
57
+
58
+ constructor(
59
+ custSystemRefId?: string,
60
+ custSystemCode?: string,
61
+ sFinanceCompanyId?: string,
62
+ ) {
63
+ super();
64
+ if (custSystemRefId && custSystemCode && sFinanceCompanyId) {
65
+ const financeCustomerData =
66
+ FinanceCustomerBase._FinanceCustomerRepository.findOne({
67
+ where: {
68
+ CompanyId: sFinanceCompanyId,
69
+ CustSystemCode: custSystemCode,
70
+ CustSystemRefId: custSystemRefId,
71
+ },
72
+ });
73
+ if (financeCustomerData) {
74
+ this.CompanyId = sFinanceCompanyId;
75
+ this.CustSystemCode = custSystemCode;
76
+ this.CustSystemRefId = custSystemRefId;
77
+ } else {
78
+ const notFoundError = new RecordNotFoundError('No Record Found');
79
+ throw notFoundError;
80
+ }
81
+ }
82
+ }
83
+
84
+ public static async initCustomer<C extends FinanceCustomerBase>(
85
+ this: new () => C,
86
+ custSystemRefId: string,
87
+ custSystemCode: string,
88
+ sFinanceCompanyId: string,
89
+ ): Promise<C> {
90
+ const financeCustomerData =
91
+ await FinanceCustomerBase._FinanceCustomerRepository.findOne({
92
+ where: {
93
+ CompanyId: sFinanceCompanyId,
94
+ CustSystemCode: custSystemCode,
95
+ CustSystemRefId: custSystemRefId,
96
+ },
97
+ });
98
+ if (financeCustomerData) {
99
+ const self = new this();
100
+ self.CustomerId = financeCustomerData.CustomerId;
101
+ self.CompanyId = sFinanceCompanyId;
102
+ self.CustSystemCode = custSystemCode;
103
+ self.CustSystemRefId = custSystemRefId;
104
+ self.AccSystemRefId = financeCustomerData.AccSystemRefId;
105
+ self.PostedToAccSystemYN = financeCustomerData.PostedToAccSystemYN;
106
+ self.PostedById = financeCustomerData.PostedById;
107
+ self.PostedDateTime = financeCustomerData.PostedDateTime;
108
+ return self;
109
+ } else {
110
+ const notFoundError = new RecordNotFoundError('No Record Found');
111
+ throw notFoundError;
112
+ }
113
+ }
114
+
115
+ get AccountReceivable(): Promise<Account> {
116
+ return new Promise((resolve, reject) => {
117
+ let transaction;
118
+ if (this._AccountReceivable) {
119
+ resolve(this._AccountReceivable);
120
+ } else {
121
+ FinanceDb.getConnection()
122
+ .transaction()
123
+ .then((t) => {
124
+ transaction = t;
125
+ return FinanceCustomerBase._AccountRepository.findOne({
126
+ where: {
127
+ AccountType: 'Account Receivable',
128
+ OwnerId: this.CustomerId,
129
+ OwnerType: type(this),
130
+ },
131
+ });
132
+ })
133
+ .then((accountData) => {
134
+ this._AccountReceivable = new Account(transaction);
135
+ if (accountData) {
136
+ this._AccountReceivable.AccountNo = accountData.AccountNo;
137
+ this._AccountReceivable.ParentAccountNo =
138
+ accountData.ParentAccountNo;
139
+ this._AccountReceivable.AccountType = accountData.AccountType;
140
+ this._AccountReceivable.OwnerId = accountData.OwnerId;
141
+ this._AccountReceivable.OwnerType = accountData.OwnerType;
142
+ } else {
143
+ this._AccountReceivable.AccountNo = `${this.CustSystemCode}-AR-123456789`;
144
+ this._AccountReceivable.ParentAccountNo = `${this.CustSystemCode}-AR`;
145
+ this._AccountReceivable.AccountType = 'Account Receivable';
146
+ this._AccountReceivable.OwnerId = this.CustomerId;
147
+ this._AccountReceivable.OwnerType = type(this);
148
+ }
149
+ resolve(this._AccountReceivable);
150
+ })
151
+ .catch((err) => {
152
+ reject(err);
153
+ });
154
+ }
155
+ });
156
+ }
157
+
158
+ get AccountPayable(): Promise<Account> {
159
+ return new Promise((resolve, reject) => {
160
+ let transaction;
161
+ if (this._AccountPayable) {
162
+ resolve(this._AccountPayable);
163
+ } else {
164
+ FinanceDb.getConnection()
165
+ .transaction()
166
+ .then((t) => {
167
+ transaction = t;
168
+ return FinanceCustomerBase._AccountRepository.findOne({
169
+ where: {
170
+ AccountType: 'Account Payable',
171
+ OwnerId: this.CustomerId,
172
+ OwnerType: type(this),
173
+ },
174
+ });
175
+ })
176
+ .then((accountData) => {
177
+ this._AccountPayable = new Account(transaction);
178
+ if (accountData) {
179
+ this._AccountPayable.AccountNo = accountData.AccountNo;
180
+ this._AccountPayable.ParentAccountNo =
181
+ accountData.ParentAccountNo;
182
+ this._AccountPayable.AccountType = accountData.AccountType;
183
+ this._AccountPayable.OwnerId = accountData.OwnerId;
184
+ this._AccountPayable.OwnerType = accountData.OwnerType;
185
+ } else {
186
+ this._AccountPayable.AccountNo = `${this.CustSystemCode}-AP-123456789`;
187
+ this._AccountPayable.ParentAccountNo = `${this.CustSystemCode}-AP`;
188
+ this._AccountPayable.AccountType = 'Account Payable';
189
+ this._AccountPayable.OwnerId = this.CustomerId;
190
+ this._AccountPayable.OwnerType = type(this);
191
+ }
192
+ resolve(this._AccountPayable);
193
+ })
194
+ .catch((err) => {
195
+ reject(err);
196
+ });
197
+ }
198
+ });
199
+ }
200
+
201
+ /*
202
+ * Get the billing address for a person.
203
+ **/
204
+ abstract getBillingAddress(params: any): Promise<IAddress>;
205
+
206
+ init(person: LoginUserBase) {
207
+ this.FullName = person.FullName;
208
+ this.IDNo = person.IDNo;
209
+ this.IDType = person.IDType;
210
+ this.Email = person.Email;
211
+ this.ContactNo = person.ContactNo;
212
+ this.DefaultAddress = person.DefaultAddress;
213
+ }
214
+
215
+ async save(
216
+ accSystemRefId: string,
217
+ custSystemCode: string,
218
+ custSystemRefId: string,
219
+ dbTransaction?: any,
220
+ ): Promise<FinanceCustomerModel> {
221
+ this.CustSystemCode = custSystemCode;
222
+ this.CustSystemRefId = custSystemRefId;
223
+ this.AccSystemRefId = accSystemRefId;
224
+ this.PostedToAccSystemYN = 'Y';
225
+ const data = await FinanceCustomerBase._FinanceCustomerRepository.create(
226
+ {
227
+ CompanyId: this.CompanyId,
228
+ CustomerId: cuid(),
229
+ CustSystemCode: this.CustSystemCode,
230
+ CustSystemRefId: this.CustSystemRefId,
231
+ AccSystemRefId: this.AccSystemRefId,
232
+ PostedToAccSystemYN: this.PostedToAccSystemYN,
233
+ },
234
+ { transaction: dbTransaction },
235
+ );
236
+ return data;
237
+ }
238
+ }
@@ -1,13 +1,13 @@
1
- import { Injectable } from '@nestjs/common/decorators';
2
- import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
- import FinanceCustomerModel from '../models/customer.entity';
4
-
5
- @Injectable()
6
- export class FinanceCustomerRepository
7
- extends RepositoryBase<FinanceCustomerModel>
8
- implements IRepositoryBase<FinanceCustomerModel>
9
- {
10
- constructor() {
11
- super(FinanceCustomerModel);
12
- }
13
- }
1
+ import { Injectable } from '@nestjs/common/decorators';
2
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
+ import FinanceCustomerModel from '../models/customer.entity';
4
+
5
+ @Injectable()
6
+ export class FinanceCustomerRepository
7
+ extends RepositoryBase<FinanceCustomerModel>
8
+ implements IRepositoryBase<FinanceCustomerModel>
9
+ {
10
+ constructor() {
11
+ super(FinanceCustomerModel);
12
+ }
13
+ }
@@ -1,3 +1,3 @@
1
- export interface ICustomerRepository<T> {
2
- findOne?(options: any): Promise<T>;
3
- }
1
+ export interface ICustomerRepository<T> {
2
+ findOne?(options: any): Promise<T>;
3
+ }
@@ -1,10 +1,10 @@
1
- export interface IFinanceCustomerAttr {
2
- CustomerId: string;
3
- CompanyId: string;
4
- CustSystemCode: string;
5
- CustSystemRefId: string;
6
- AccSystemRefId: string;
7
- PostedToAccSystemYN: string;
8
- PostedById: string;
9
- PostedDateTime?: Date;
10
- }
1
+ export interface IFinanceCustomerAttr {
2
+ CustomerId: string;
3
+ CompanyId: string;
4
+ CustSystemCode: string;
5
+ CustSystemRefId: string;
6
+ AccSystemRefId: string;
7
+ PostedToAccSystemYN: string;
8
+ PostedById: string;
9
+ PostedDateTime?: Date;
10
+ }
@@ -1,4 +1,4 @@
1
- import { IRepositoryBase } from '@tomei/general';
2
- import FinanceCustomerModel from '../../models/customer.entity';
3
-
4
- export type IFinanceCustomerRepository = IRepositoryBase<FinanceCustomerModel>;
1
+ import { IRepositoryBase } from '@tomei/general';
2
+ import FinanceCustomerModel from '../../models/customer.entity';
3
+
4
+ export type IFinanceCustomerRepository = IRepositoryBase<FinanceCustomerModel>;
package/src/database.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { Sequelize, SequelizeOptions } from 'sequelize-typescript';
2
-
3
- let sequelize: Sequelize;
4
-
5
- function init(sequelizeOptions: SequelizeOptions) {
6
- sequelize = new Sequelize(sequelizeOptions);
7
-
8
- sequelize.addModels([__dirname + '/models']);
9
- }
10
-
11
- function getConnection() {
12
- return sequelize;
13
- }
14
-
15
- export { init, getConnection };
1
+ import { Sequelize, SequelizeOptions } from 'sequelize-typescript';
2
+
3
+ let sequelize: Sequelize;
4
+
5
+ function init(sequelizeOptions: SequelizeOptions) {
6
+ sequelize = new Sequelize(sequelizeOptions);
7
+
8
+ sequelize.addModels([__dirname + '/models']);
9
+ }
10
+
11
+ function getConnection() {
12
+ return sequelize;
13
+ }
14
+
15
+ export { init, getConnection };
@@ -1,11 +1,11 @@
1
- import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
- import DocumentItemModel from '../models/document-item.entity';
3
-
4
- export class DocumentItemRepository
5
- extends RepositoryBase<DocumentItemModel>
6
- implements IRepositoryBase<DocumentItemModel>
7
- {
8
- constructor() {
9
- super(DocumentItemModel);
10
- }
11
- }
1
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
+ import DocumentItemModel from '../models/document-item.entity';
3
+
4
+ export class DocumentItemRepository
5
+ extends RepositoryBase<DocumentItemModel>
6
+ implements IRepositoryBase<DocumentItemModel>
7
+ {
8
+ constructor() {
9
+ super(DocumentItemModel);
10
+ }
11
+ }
@@ -1,11 +1,11 @@
1
- import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
- import DocumentModel from '../models/document.entity';
3
-
4
- export class DocumentRepository
5
- extends RepositoryBase<DocumentModel>
6
- implements IRepositoryBase<DocumentModel>
7
- {
8
- constructor() {
9
- super(DocumentModel);
10
- }
11
- }
1
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
+ import DocumentModel from '../models/document.entity';
3
+
4
+ export class DocumentRepository
5
+ extends RepositoryBase<DocumentModel>
6
+ implements IRepositoryBase<DocumentModel>
7
+ {
8
+ constructor() {
9
+ super(DocumentModel);
10
+ }
11
+ }