@tomei/finance 0.3.89 → 0.3.91

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 (284) 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.js +2 -2
  11. package/dist/account/account.js.map +1 -1
  12. package/dist/finance-company/finance-company.js +6 -3
  13. package/dist/finance-company/finance-company.js.map +1 -1
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/invoice-template/assets/css/style.css.map +12 -12
  16. package/invoice-template/assets/css/style.min.css +1 -1
  17. package/invoice-template/assets/img/arrow_bg.svg +11 -11
  18. package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
  19. package/invoice-template/assets/img/logo_accent.svg +3 -3
  20. package/invoice-template/assets/img/logo_white.svg +4 -4
  21. package/invoice-template/assets/img/sign.svg +12 -12
  22. package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
  23. package/invoice-template/assets/js/jquery.min.js +1 -1
  24. package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
  25. package/invoice-template/assets/sass/common/_typography.scss +178 -178
  26. package/invoice-template/assets/sass/style.scss +12 -12
  27. package/migrations/finance-account-migration.js +97 -97
  28. package/migrations/finance-company-migration.js +29 -29
  29. package/migrations/finance-customer-migration.js +51 -51
  30. package/migrations/finance-document-item-migration.js +111 -111
  31. package/migrations/finance-document-migration.js +116 -116
  32. package/migrations/finance-payment-item-migration.js +52 -52
  33. package/migrations/finance-payment-method-migration.js +31 -31
  34. package/migrations/finance-payment-method-type-migration.js +55 -55
  35. package/migrations/finance-payment-migration.js +74 -74
  36. package/migrations/finance-post-history-migration.js +45 -45
  37. package/nest-cli.json +19 -19
  38. package/package.json +79 -79
  39. package/src/account/account.repository.ts +11 -11
  40. package/src/account/account.ts +251 -251
  41. package/src/account/interfaces/account-attr.interface.ts +31 -31
  42. package/src/account-system-entity/account-system-entity.ts +65 -65
  43. package/src/account-system-entity/post-history.repository.ts +11 -11
  44. package/src/config.ts +369 -369
  45. package/src/customer/customer.ts +266 -266
  46. package/src/customer/finance-customer.repository.ts +13 -13
  47. package/src/customer/interfaces/customer.repository.interface.ts +3 -3
  48. package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
  49. package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
  50. package/src/database.ts +15 -15
  51. package/src/document/document-item.repository.ts +11 -11
  52. package/src/document/document.repository.ts +11 -11
  53. package/src/document/interfaces/document-attr.interface.ts +28 -28
  54. package/src/document/interfaces/document-item-attr.interface.ts +22 -22
  55. package/src/document/interfaces/document-item.repository.interface.ts +4 -4
  56. package/src/enum/doc-type.enum.ts +8 -8
  57. package/src/enum/index.ts +17 -17
  58. package/src/enum/payment-method.enum.ts +3 -3
  59. package/src/enum/payment-type.enum.ts +4 -4
  60. package/src/finance-company/finance-company.repository.ts +11 -11
  61. package/src/finance-company/finance-company.ts +1560 -1556
  62. package/src/helpers/typeof.ts +29 -29
  63. package/src/index.ts +30 -30
  64. package/src/interfaces/account-system.interface.ts +20 -20
  65. package/src/interfaces/index.ts +3 -3
  66. package/src/models/account.entity.ts +206 -206
  67. package/src/models/customer.entity.ts +93 -93
  68. package/src/models/document-item.entity.ts +143 -143
  69. package/src/models/document.entity.ts +203 -203
  70. package/src/models/finance-company.entity.ts +25 -25
  71. package/src/models/journal-entry.entity.ts +110 -110
  72. package/src/models/ledger-transaction.entity.ts +148 -148
  73. package/src/models/payment-item.entity.ts +60 -60
  74. package/src/models/payment-method-type.entity.ts +70 -70
  75. package/src/models/payment-method.entity.ts +51 -51
  76. package/src/models/payment.entity.ts +129 -129
  77. package/src/models/post-history.entity.ts +41 -41
  78. package/src/payment/interfaces/payment-attr.interface.ts +19 -19
  79. package/src/payment/interfaces/payment-params.interface.ts +8 -8
  80. package/src/payment/payment.repository.ts +11 -11
  81. package/src/payment/payment.ts +200 -200
  82. package/src/payment-item/interfaces/payment-item-attr.interface.ts +10 -10
  83. package/src/payment-item/payment-item.repository.ts +11 -11
  84. package/src/payment-item/payment-item.ts +58 -58
  85. package/src/payment-method/payment-method.repository.ts +11 -11
  86. package/src/payment-method-type/payment-method-type.repository.ts +11 -11
  87. package/tsconfig.build.json +4 -4
  88. package/tsconfig.json +22 -22
  89. package/tslint.json +18 -18
  90. package/dist/account/entities/account.entity.d.ts +0 -26
  91. package/dist/account/entities/account.entity.js +0 -199
  92. package/dist/account/entities/account.entity.js.map +0 -1
  93. package/dist/account/entities/fee-associated-object.entity.d.ts +0 -6
  94. package/dist/account/entities/fee-associated-object.entity.js +0 -52
  95. package/dist/account/entities/fee-associated-object.entity.js.map +0 -1
  96. package/dist/account/index.d.ts +0 -6
  97. package/dist/account/index.js +0 -10
  98. package/dist/account/index.js.map +0 -1
  99. package/dist/account/interfaces/account.repository.interface.d.ts +0 -3
  100. package/dist/account/interfaces/account.repository.interface.js +0 -3
  101. package/dist/account/interfaces/account.repository.interface.js.map +0 -1
  102. package/dist/account-system-entity/index.d.ts +0 -2
  103. package/dist/account-system-entity/index.js +0 -6
  104. package/dist/account-system-entity/index.js.map +0 -1
  105. package/dist/account-system-entity/post-history.entity.d.ts +0 -11
  106. package/dist/account-system-entity/post-history.entity.js +0 -65
  107. package/dist/account-system-entity/post-history.entity.js.map +0 -1
  108. package/dist/base/account-system.interface.d.ts +0 -7
  109. package/dist/base/account-system.interface.js +0 -3
  110. package/dist/base/account-system.interface.js.map +0 -1
  111. package/dist/base/address.base.abstract.d.ts +0 -4
  112. package/dist/base/address.base.abstract.js +0 -10
  113. package/dist/base/address.base.abstract.js.map +0 -1
  114. package/dist/base/base.address.d.ts +0 -8
  115. package/dist/base/base.address.js +0 -15
  116. package/dist/base/base.address.js.map +0 -1
  117. package/dist/base/base.object.d.ts +0 -7
  118. package/dist/base/base.object.js +0 -14
  119. package/dist/base/base.object.js.map +0 -1
  120. package/dist/base/base.owner.d.ts +0 -23
  121. package/dist/base/base.owner.js +0 -34
  122. package/dist/base/base.owner.js.map +0 -1
  123. package/dist/base/base.repository.abstract.d.ts +0 -12
  124. package/dist/base/base.repository.abstract.js +0 -22
  125. package/dist/base/base.repository.abstract.js.map +0 -1
  126. package/dist/base/base.repository.interface.d.ts +0 -9
  127. package/dist/base/base.repository.interface.js +0 -3
  128. package/dist/base/base.repository.interface.js.map +0 -1
  129. package/dist/base/index.d.ts +0 -4
  130. package/dist/base/index.js +0 -10
  131. package/dist/base/index.js.map +0 -1
  132. package/dist/base/object/base.object.abstract.d.ts +0 -5
  133. package/dist/base/object/base.object.abstract.js +0 -7
  134. package/dist/base/object/base.object.abstract.js.map +0 -1
  135. package/dist/base/object/base.object.d.ts +0 -7
  136. package/dist/base/object/base.object.js +0 -14
  137. package/dist/base/object/base.object.js.map +0 -1
  138. package/dist/base/object/object.interface.d.ts +0 -4
  139. package/dist/base/object/object.interface.js +0 -3
  140. package/dist/base/object/object.interface.js.map +0 -1
  141. package/dist/base/object.base.abstract.d.ts +0 -5
  142. package/dist/base/object.base.abstract.js +0 -11
  143. package/dist/base/object.base.abstract.js.map +0 -1
  144. package/dist/base/owner/base.owner.abstract.d.ts +0 -20
  145. package/dist/base/owner/base.owner.abstract.js +0 -8
  146. package/dist/base/owner/base.owner.abstract.js.map +0 -1
  147. package/dist/base/owner/base.owner.d.ts +0 -22
  148. package/dist/base/owner/base.owner.js +0 -31
  149. package/dist/base/owner/base.owner.js.map +0 -1
  150. package/dist/base/owner/owner.interface.d.ts +0 -19
  151. package/dist/base/owner/owner.interface.js +0 -3
  152. package/dist/base/owner/owner.interface.js.map +0 -1
  153. package/dist/base/person.base.abstract.d.ts +0 -21
  154. package/dist/base/person.base.abstract.js +0 -17
  155. package/dist/base/person.base.abstract.js.map +0 -1
  156. package/dist/base/repository/base.repository.abstract.d.ts +0 -12
  157. package/dist/base/repository/base.repository.abstract.js +0 -22
  158. package/dist/base/repository/base.repository.abstract.js.map +0 -1
  159. package/dist/base/repository/base.repository.interface.d.ts +0 -9
  160. package/dist/base/repository/base.repository.interface.js +0 -3
  161. package/dist/base/repository/base.repository.interface.js.map +0 -1
  162. package/dist/customer/customer.repository.d.ts +0 -0
  163. package/dist/customer/customer.repository.js +0 -1
  164. package/dist/customer/customer.repository.js.map +0 -1
  165. package/dist/customer/entities/customer.entity.d.ts +0 -13
  166. package/dist/customer/entities/customer.entity.js +0 -111
  167. package/dist/customer/entities/customer.entity.js.map +0 -1
  168. package/dist/customer/index.d.ts +0 -7
  169. package/dist/customer/index.js +0 -10
  170. package/dist/customer/index.js.map +0 -1
  171. package/dist/document/entities/document-item.entity.d.ts +0 -27
  172. package/dist/document/entities/document-item.entity.js +0 -174
  173. package/dist/document/entities/document-item.entity.js.map +0 -1
  174. package/dist/document/entities/document.entity.d.ts +0 -22
  175. package/dist/document/entities/document.entity.js +0 -139
  176. package/dist/document/entities/document.entity.js.map +0 -1
  177. package/dist/document/index.d.ts +0 -11
  178. package/dist/document/index.js +0 -20
  179. package/dist/document/index.js.map +0 -1
  180. package/dist/document/interfaces/document.repository.interface.d.ts +0 -3
  181. package/dist/document/interfaces/document.repository.interface.js +0 -3
  182. package/dist/document/interfaces/document.repository.interface.js.map +0 -1
  183. package/dist/enum/document-type.enum.d.ts +0 -7
  184. package/dist/enum/document-type.enum.js +0 -12
  185. package/dist/enum/document-type.enum.js.map +0 -1
  186. package/dist/enum/intuit-client.enum.d.ts +0 -13
  187. package/dist/enum/intuit-client.enum.js +0 -19
  188. package/dist/enum/intuit-client.enum.js.map +0 -1
  189. package/dist/finance-company/entities/finance-company.entity.d.ts +0 -13
  190. package/dist/finance-company/entities/finance-company.entity.js +0 -113
  191. package/dist/finance-company/entities/finance-company.entity.js.map +0 -1
  192. package/dist/finance-company/finance-company.entity.d.ts +0 -13
  193. package/dist/finance-company/finance-company.entity.js +0 -66
  194. package/dist/finance-company/finance-company.entity.js.map +0 -1
  195. package/dist/finance-company/index.d.ts +0 -3
  196. package/dist/finance-company/index.js +0 -8
  197. package/dist/finance-company/index.js.map +0 -1
  198. package/dist/finance-company/interfaces/finance-company-attr.interface.d.ts +0 -10
  199. package/dist/finance-company/interfaces/finance-company-attr.interface.js +0 -3
  200. package/dist/finance-company/interfaces/finance-company-attr.interface.js.map +0 -1
  201. package/dist/finance-company/interfaces/finance-company.repository.interface.d.ts +0 -3
  202. package/dist/finance-company/interfaces/finance-company.repository.interface.js +0 -3
  203. package/dist/finance-company/interfaces/finance-company.repository.interface.js.map +0 -1
  204. package/dist/interfaces/account-system-entity.interface.d.ts +0 -7
  205. package/dist/interfaces/account-system-entity.interface.js +0 -3
  206. package/dist/interfaces/account-system-entity.interface.js.map +0 -1
  207. package/dist/interfaces/customer.repository.interface.d.ts +0 -3
  208. package/dist/interfaces/customer.repository.interface.js +0 -3
  209. package/dist/interfaces/customer.repository.interface.js.map +0 -1
  210. package/dist/interfaces/finance-customer.repository.interface.d.ts +0 -3
  211. package/dist/interfaces/finance-customer.repository.interface.js +0 -3
  212. package/dist/interfaces/finance-customer.repository.interface.js.map +0 -1
  213. package/dist/interfaces/systemConfig.interface.d.ts +0 -0
  214. package/dist/interfaces/systemConfig.interface.js +0 -1
  215. package/dist/interfaces/systemConfig.interface.js.map +0 -1
  216. package/dist/intuit-client/client.d.ts +0 -14
  217. package/dist/intuit-client/client.js +0 -44
  218. package/dist/intuit-client/client.js.map +0 -1
  219. package/dist/journal-entry/entities/journal-entry.entity.d.ts +0 -16
  220. package/dist/journal-entry/entities/journal-entry.entity.js +0 -129
  221. package/dist/journal-entry/entities/journal-entry.entity.js.map +0 -1
  222. package/dist/journal-entry/index.d.ts +0 -6
  223. package/dist/journal-entry/index.js +0 -10
  224. package/dist/journal-entry/index.js.map +0 -1
  225. package/dist/journal-entry/interfaces/journal-entry.repository.interface.d.ts +0 -10
  226. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js +0 -3
  227. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js.map +0 -1
  228. package/dist/ledger-transaction/entities/ledger-transaction.entity.d.ts +0 -19
  229. package/dist/ledger-transaction/entities/ledger-transaction.entity.js +0 -157
  230. package/dist/ledger-transaction/entities/ledger-transaction.entity.js.map +0 -1
  231. package/dist/ledger-transaction/index.d.ts +0 -6
  232. package/dist/ledger-transaction/index.js +0 -10
  233. package/dist/ledger-transaction/index.js.map +0 -1
  234. package/dist/payment/entities/payment-item.entity.d.ts +0 -10
  235. package/dist/payment/entities/payment-item.entity.js +0 -62
  236. package/dist/payment/entities/payment-item.entity.js.map +0 -1
  237. package/dist/payment/entities/payment.entity.d.ts +0 -25
  238. package/dist/payment/entities/payment.entity.js +0 -152
  239. package/dist/payment/entities/payment.entity.js.map +0 -1
  240. package/dist/payment/index.d.ts +0 -10
  241. package/dist/payment/index.js +0 -18
  242. package/dist/payment/index.js.map +0 -1
  243. package/dist/payment/interfaces/payment-item-attr.interface.d.ts +0 -8
  244. package/dist/payment/interfaces/payment-item-attr.interface.js +0 -7
  245. package/dist/payment/interfaces/payment-item-attr.interface.js.map +0 -1
  246. package/dist/payment/interfaces/payment-item.repository.interface.d.ts +0 -3
  247. package/dist/payment/interfaces/payment-item.repository.interface.js +0 -3
  248. package/dist/payment/interfaces/payment-item.repository.interface.js.map +0 -1
  249. package/dist/payment/interfaces/payment.repository.interface.d.ts +0 -3
  250. package/dist/payment/interfaces/payment.repository.interface.js +0 -3
  251. package/dist/payment/interfaces/payment.repository.interface.js.map +0 -1
  252. package/dist/payment/payment-item.repository.d.ts +0 -5
  253. package/dist/payment/payment-item.repository.js +0 -12
  254. package/dist/payment/payment-item.repository.js.map +0 -1
  255. package/dist/payment-item/interfaces/payment-item.repository.interface.d.ts +0 -3
  256. package/dist/payment-item/interfaces/payment-item.repository.interface.js +0 -3
  257. package/dist/payment-item/interfaces/payment-item.repository.interface.js.map +0 -1
  258. package/dist/quickbook-client/client.d.ts +0 -39
  259. package/dist/quickbook-client/client.js +0 -205
  260. package/dist/quickbook-client/client.js.map +0 -1
  261. package/dist/quickbook-client/constant.d.ts +0 -1
  262. package/dist/quickbook-client/constant.js +0 -5
  263. package/dist/quickbook-client/constant.js.map +0 -1
  264. package/dist/quickbook-client/index.d.ts +0 -5
  265. package/dist/quickbook-client/index.js +0 -6
  266. package/dist/quickbook-client/index.js.map +0 -1
  267. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.d.ts +0 -6
  268. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js +0 -3
  269. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js.map +0 -1
  270. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.d.ts +0 -9
  271. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js +0 -3
  272. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js.map +0 -1
  273. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.d.ts +0 -7
  274. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js +0 -3
  275. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js.map +0 -1
  276. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.d.ts +0 -8
  277. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js +0 -3
  278. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js.map +0 -1
  279. package/dist/quickbook-client/quickbook-client.module-definition.d.ts +0 -2
  280. package/dist/quickbook-client/quickbook-client.module-definition.js +0 -9
  281. package/dist/quickbook-client/quickbook-client.module-definition.js.map +0 -1
  282. package/dist/quickbook-client/quickbook-client.module.d.ts +0 -6
  283. package/dist/quickbook-client/quickbook-client.module.js +0 -34
  284. package/dist/quickbook-client/quickbook-client.module.js.map +0 -1
@@ -1,251 +1,251 @@
1
- import { RecordNotFoundError } from '@tomei/general';
2
- import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
3
- import AccountModel from '../models/account.entity';
4
- import { AccountRepository } from './account.repository';
5
-
6
- // eslint-disable-next-line @typescript-eslint/no-var-requires
7
- // const getConfig = require('../config');
8
-
9
- export default class Account extends AccountSystemEntity {
10
- AccountNo = 'New';
11
- ParentAccountNo? = '';
12
- Name = '';
13
- Description = '';
14
- AccountType = '';
15
- AccountSubtype = '';
16
- OwnerId = '';
17
- OwnerType = '';
18
- RelatedObjectId = '';
19
- RelatedObjectType = '';
20
- CreatedById = '';
21
- CreatedAt: Date;
22
- UpdatedById = '';
23
- UpdatedAt: Date;
24
-
25
- private static _RepositoryBase = new AccountRepository();
26
-
27
- private _DbTransaction: any;
28
- private _IsNewRecord = true;
29
-
30
- private get IsNewRecord() {
31
- return this._IsNewRecord;
32
- }
33
-
34
- private set IsNewRecord(record: boolean) {
35
- this._IsNewRecord = record;
36
- }
37
-
38
- /* AccountSystemEntity Implementation */
39
- get RepositoryBase() {
40
- return Account._RepositoryBase;
41
- }
42
-
43
- /* ObjectBase Implementation */
44
- get ObjectId() {
45
- return this.AccountNo;
46
- }
47
-
48
- get ObjectName() {
49
- return this.Name;
50
- }
51
-
52
- get TableName() {
53
- return 'finance_Account';
54
- }
55
-
56
- constructor(dbTransaction?: any, accountNo?: string) {
57
- super();
58
- if (dbTransaction) {
59
- this._DbTransaction = dbTransaction;
60
- }
61
- if (accountNo) {
62
- this.RepositoryBase.findOne({
63
- where: {
64
- AccountNo: accountNo,
65
- },
66
- transaction: dbTransaction,
67
- })
68
- .then((accountData) => {
69
- if (accountData) {
70
- this.IsNewRecord = false;
71
- this.CompanyId = accountData.CompanyId;
72
- this.ParentAccountNo = accountData.ParentAccountNo;
73
- this.Name = accountData.Name;
74
- this.Description = accountData.Description;
75
- this.AccountType = accountData.AccountType;
76
- this.AccountSubtype = accountData.AccountSubType;
77
- this.OwnerId = accountData.OwnerId;
78
- this.OwnerType = accountData.OwnerType;
79
- this.RelatedObjectId = accountData.RelatedObjectId;
80
- this.RelatedObjectType = accountData.RelatedObjectType;
81
- this.CreatedById = accountData.CreatedById;
82
- this.CreatedAt = accountData.CreatedAt;
83
- this.UpdatedById = accountData.UpdatedById;
84
- this.UpdatedAt = accountData.UpdatedAt;
85
- this.AccSystemRefId = accountData.AccSystemRefId;
86
- this.PostedToAccSystemYN = accountData.PostedToAccSystemYN;
87
- this.PostedById = accountData.PostedById;
88
- this.PostedDateTime = accountData.PostedDateTime;
89
- } else {
90
- const notFoundError = new RecordNotFoundError('No Record Found.');
91
- throw notFoundError;
92
- }
93
- })
94
- .catch((err) => {
95
- // tslint:disable-next-line:no-console
96
- console.log('Account Class constructor err: ', err);
97
- });
98
- }
99
- }
100
-
101
- private init(accountData: any) {
102
- this.IsNewRecord = false;
103
- this.CompanyId = accountData.CompanyId;
104
- this.ParentAccountNo = accountData.ParentAccountNo;
105
- this.Name = accountData.Name;
106
- this.Description = accountData.Description;
107
- this.AccountType = accountData.AccountType;
108
- this.AccountSubtype = accountData.AccountSubType;
109
- this.OwnerId = accountData.OwnerId;
110
- this.OwnerType = accountData.OwnerType;
111
- this.RelatedObjectId = accountData.RelatedObjectId;
112
- this.RelatedObjectType = accountData.RelatedObjectType;
113
- this.CreatedById = accountData.CreatedById;
114
- this.CreatedAt = accountData.CreatedAt;
115
- this.UpdatedById = accountData.UpdatedById;
116
- this.UpdatedAt = accountData.UpdatedAt;
117
- this.AccSystemRefId = accountData.AccSystemRefId;
118
- this.PostedToAccSystemYN = accountData.PostedToAccSystemYN;
119
- this.PostedById = accountData.PostedById;
120
- this.PostedDateTime = accountData.PostedDateTime;
121
- }
122
-
123
- static async initAccount(
124
- dbTransaction: any,
125
- accountNo: string,
126
- ): Promise<Account> {
127
- try {
128
- const accountData = await Account._RepositoryBase.findOne({
129
- where: {
130
- AccountNo: accountNo,
131
- },
132
- transaction: dbTransaction,
133
- });
134
- if (accountData) {
135
- const account = new Account(dbTransaction);
136
- account.init(accountData.get({ plain: true }));
137
- return account;
138
- } else {
139
- const notFoundError = new RecordNotFoundError('No Record Found.');
140
- throw notFoundError;
141
- }
142
- } catch (error) {
143
- console.log('Account Class constructor err: ', error);
144
- throw error;
145
- }
146
- }
147
-
148
- /**
149
- * Account static constructor
150
- *
151
- * Create the Customer Account Receivable (AR) and Customer Account Payable (AP) default accounts.
152
- * The static constructor is to run once each time the program loads and check if the default accounts have been created.
153
- * If it has not, it will create the accounts.
154
- */
155
- static initialize(): void {
156
- const dbTransaction = null;
157
- let defaultAccountReceivable: Account;
158
- let defaultAccountPayable: Account;
159
-
160
- // const config = getConfig();
161
- // config.systemConfig['EZC']
162
-
163
- try {
164
- defaultAccountReceivable = new Account(dbTransaction, 'EZC-AR');
165
- } catch (err) {
166
- defaultAccountReceivable = new Account(dbTransaction);
167
- defaultAccountReceivable.AccountNo = null;
168
- defaultAccountReceivable.AccountType = 'Account Receivable';
169
- defaultAccountReceivable.OwnerId = 'System';
170
- defaultAccountReceivable.OwnerType = '';
171
- }
172
-
173
- try {
174
- defaultAccountPayable = new Account(dbTransaction, 'EZC-AP');
175
- } catch (err) {
176
- defaultAccountPayable = new Account(dbTransaction);
177
- defaultAccountPayable.AccountNo = null;
178
- defaultAccountPayable.AccountType = 'Account Payable';
179
- defaultAccountPayable.OwnerId = 'System';
180
- }
181
- }
182
-
183
- validateAccountValue() {
184
- if (!this.AccSystemRefId) {
185
- throw new Error('AccSystemAccountId is required.');
186
- }
187
- if (!this.AccountType) {
188
- throw new Error('AccountType is required.');
189
- }
190
- }
191
-
192
- isParentAccountExists() {
193
- if (this.ParentAccountNo) return true;
194
- return false;
195
- }
196
-
197
- async save(
198
- CompanyId: string,
199
- AccSystemRefId: string,
200
- userId: string,
201
- dbTransaction?: any,
202
- ): Promise<AccountModel> {
203
- this.AccSystemRefId = AccSystemRefId;
204
- const data = await this.RepositoryBase.findOne({
205
- where: {
206
- AccountNo: this.AccountNo,
207
- },
208
- transaction: dbTransaction,
209
- });
210
- if (data) {
211
- this.AccountNo = data.AccountNo;
212
- this.AccSystemRefId = data.AccSystemRefId;
213
- this.Name = data.Name;
214
- this.Description = data.Description;
215
- this.AccountType = data.AccountType;
216
- this.AccountSubtype = data.AccountSubType;
217
- this.CompanyId = data.CompanyId;
218
- this.OwnerId = data.OwnerId;
219
- this.OwnerType = data.OwnerType;
220
- this.RelatedObjectId = data.RelatedObjectId;
221
- this.RelatedObjectType = data.RelatedObjectType;
222
- this.PostedToAccSystemYN = data.PostedToAccSystemYN;
223
- this.CreatedAt = data.CreatedAt;
224
- this.CreatedById = data.CreatedById;
225
- } else {
226
- await this.RepositoryBase.create(
227
- {
228
- AccountNo: this.AccountNo,
229
- AccSystemRefId: this.AccSystemRefId,
230
- Name: this.Name,
231
- Description: this.Description,
232
- AccountType: this.AccountType,
233
- AccountSubtype: this.AccountSubtype,
234
- CompanyId: CompanyId,
235
- OwnerId: this.OwnerId,
236
- OwnerType: this.OwnerType,
237
- RelatedObjectId: this.RelatedObjectId,
238
- RelatedObjectType: this.RelatedObjectType,
239
- PostedToAccSystemYN: this.PostedToAccSystemYN,
240
- CreatedAt: new Date(),
241
- CreatedById: userId,
242
- },
243
- {
244
- transaction: dbTransaction,
245
- },
246
- );
247
- }
248
-
249
- return data;
250
- }
251
- }
1
+ import { RecordNotFoundError } from '@tomei/general';
2
+ import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
3
+ import AccountModel from '../models/account.entity';
4
+ import { AccountRepository } from './account.repository';
5
+
6
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
7
+ // const getConfig = require('../config');
8
+
9
+ export default class Account extends AccountSystemEntity {
10
+ AccountNo = 'New';
11
+ ParentAccountNo? = '';
12
+ Name = '';
13
+ Description = '';
14
+ AccountType = '';
15
+ AccountSubtype = '';
16
+ OwnerId = '';
17
+ OwnerType = '';
18
+ RelatedObjectId = '';
19
+ RelatedObjectType = '';
20
+ CreatedById = '';
21
+ CreatedAt: Date;
22
+ UpdatedById = '';
23
+ UpdatedAt: Date;
24
+
25
+ private static _RepositoryBase = new AccountRepository();
26
+
27
+ private _DbTransaction: any;
28
+ private _IsNewRecord = true;
29
+
30
+ private get IsNewRecord() {
31
+ return this._IsNewRecord;
32
+ }
33
+
34
+ private set IsNewRecord(record: boolean) {
35
+ this._IsNewRecord = record;
36
+ }
37
+
38
+ /* AccountSystemEntity Implementation */
39
+ get RepositoryBase() {
40
+ return Account._RepositoryBase;
41
+ }
42
+
43
+ /* ObjectBase Implementation */
44
+ get ObjectId() {
45
+ return this.AccountNo;
46
+ }
47
+
48
+ get ObjectName() {
49
+ return this.Name;
50
+ }
51
+
52
+ get TableName() {
53
+ return 'finance_Account';
54
+ }
55
+
56
+ constructor(dbTransaction?: any, accountNo?: string) {
57
+ super();
58
+ if (dbTransaction) {
59
+ this._DbTransaction = dbTransaction;
60
+ }
61
+ if (accountNo) {
62
+ this.RepositoryBase.findOne({
63
+ where: {
64
+ AccountNo: accountNo,
65
+ },
66
+ transaction: dbTransaction,
67
+ })
68
+ .then((accountData) => {
69
+ if (accountData) {
70
+ this.IsNewRecord = false;
71
+ this.CompanyId = accountData.CompanyId;
72
+ this.ParentAccountNo = accountData.ParentAccountNo;
73
+ this.Name = accountData.Name;
74
+ this.Description = accountData.Description;
75
+ this.AccountType = accountData.AccountType;
76
+ this.AccountSubtype = accountData.AccountSubType;
77
+ this.OwnerId = accountData.OwnerId;
78
+ this.OwnerType = accountData.OwnerType;
79
+ this.RelatedObjectId = accountData.RelatedObjectId;
80
+ this.RelatedObjectType = accountData.RelatedObjectType;
81
+ this.CreatedById = accountData.CreatedById;
82
+ this.CreatedAt = accountData.CreatedAt;
83
+ this.UpdatedById = accountData.UpdatedById;
84
+ this.UpdatedAt = accountData.UpdatedAt;
85
+ this.AccSystemRefId = accountData.AccSystemRefId;
86
+ this.PostedToAccSystemYN = accountData.PostedToAccSystemYN;
87
+ this.PostedById = accountData.PostedById;
88
+ this.PostedDateTime = accountData.PostedDateTime;
89
+ } else {
90
+ const notFoundError = new RecordNotFoundError('No Record Found.');
91
+ throw notFoundError;
92
+ }
93
+ })
94
+ .catch((err) => {
95
+ // tslint:disable-next-line:no-console
96
+ console.log('Account Class constructor err: ', err);
97
+ });
98
+ }
99
+ }
100
+
101
+ private init(accountData: any) {
102
+ this.IsNewRecord = false;
103
+ this.CompanyId = accountData.CompanyId;
104
+ this.ParentAccountNo = accountData.ParentAccountNo;
105
+ this.Name = accountData.Name;
106
+ this.Description = accountData.Description;
107
+ this.AccountType = accountData.AccountType;
108
+ this.AccountSubtype = accountData.AccountSubType;
109
+ this.OwnerId = accountData.OwnerId;
110
+ this.OwnerType = accountData.OwnerType;
111
+ this.RelatedObjectId = accountData.RelatedObjectId;
112
+ this.RelatedObjectType = accountData.RelatedObjectType;
113
+ this.CreatedById = accountData.CreatedById;
114
+ this.CreatedAt = accountData.CreatedAt;
115
+ this.UpdatedById = accountData.UpdatedById;
116
+ this.UpdatedAt = accountData.UpdatedAt;
117
+ this.AccSystemRefId = accountData.AccSystemRefId;
118
+ this.PostedToAccSystemYN = accountData.PostedToAccSystemYN;
119
+ this.PostedById = accountData.PostedById;
120
+ this.PostedDateTime = accountData.PostedDateTime;
121
+ }
122
+
123
+ static async initAccount(
124
+ dbTransaction: any,
125
+ accountNo: string,
126
+ ): Promise<Account> {
127
+ try {
128
+ const accountData = await Account._RepositoryBase.findOne({
129
+ where: {
130
+ AccountNo: accountNo,
131
+ },
132
+ transaction: dbTransaction,
133
+ });
134
+ if (accountData) {
135
+ const account = new Account(dbTransaction);
136
+ account.init(accountData.get({ plain: true }));
137
+ return account;
138
+ } else {
139
+ const notFoundError = new RecordNotFoundError('No Record Found.');
140
+ throw notFoundError;
141
+ }
142
+ } catch (error) {
143
+ console.log('Account Class constructor err: ', error);
144
+ throw error;
145
+ }
146
+ }
147
+
148
+ /**
149
+ * Account static constructor
150
+ *
151
+ * Create the Customer Account Receivable (AR) and Customer Account Payable (AP) default accounts.
152
+ * The static constructor is to run once each time the program loads and check if the default accounts have been created.
153
+ * If it has not, it will create the accounts.
154
+ */
155
+ static initialize(): void {
156
+ const dbTransaction = null;
157
+ let defaultAccountReceivable: Account;
158
+ let defaultAccountPayable: Account;
159
+
160
+ // const config = getConfig();
161
+ // config.systemConfig['EZC']
162
+
163
+ try {
164
+ defaultAccountReceivable = new Account(dbTransaction, 'EZC-AR');
165
+ } catch (err) {
166
+ defaultAccountReceivable = new Account(dbTransaction);
167
+ defaultAccountReceivable.AccountNo = null;
168
+ defaultAccountReceivable.AccountType = 'Account Receivable';
169
+ defaultAccountReceivable.OwnerId = 'System';
170
+ defaultAccountReceivable.OwnerType = '';
171
+ }
172
+
173
+ try {
174
+ defaultAccountPayable = new Account(dbTransaction, 'EZC-AP');
175
+ } catch (err) {
176
+ defaultAccountPayable = new Account(dbTransaction);
177
+ defaultAccountPayable.AccountNo = null;
178
+ defaultAccountPayable.AccountType = 'Account Payable';
179
+ defaultAccountPayable.OwnerId = 'System';
180
+ }
181
+ }
182
+
183
+ validateAccountValue() {
184
+ if (!this.AccSystemRefId) {
185
+ throw new Error('AccSystemAccountId is required.');
186
+ }
187
+ if (!this.AccountType) {
188
+ throw new Error('AccountType is required.');
189
+ }
190
+ }
191
+
192
+ isParentAccountExists() {
193
+ if (this.ParentAccountNo) return true;
194
+ return false;
195
+ }
196
+
197
+ async save(
198
+ CompanyId: string,
199
+ AccSystemRefId: string,
200
+ userId: string,
201
+ dbTransaction?: any,
202
+ ): Promise<AccountModel> {
203
+ this.AccSystemRefId = AccSystemRefId;
204
+ let data = await this.RepositoryBase.findOne({
205
+ where: {
206
+ AccountNo: this.AccountNo,
207
+ },
208
+ transaction: dbTransaction,
209
+ });
210
+ if (data) {
211
+ this.AccountNo = data.AccountNo;
212
+ this.AccSystemRefId = data.AccSystemRefId;
213
+ this.Name = data.Name;
214
+ this.Description = data.Description;
215
+ this.AccountType = data.AccountType;
216
+ this.AccountSubtype = data.AccountSubType;
217
+ this.CompanyId = data.CompanyId;
218
+ this.OwnerId = data.OwnerId;
219
+ this.OwnerType = data.OwnerType;
220
+ this.RelatedObjectId = data.RelatedObjectId;
221
+ this.RelatedObjectType = data.RelatedObjectType;
222
+ this.PostedToAccSystemYN = data.PostedToAccSystemYN;
223
+ this.CreatedAt = data.CreatedAt;
224
+ this.CreatedById = data.CreatedById;
225
+ } else {
226
+ data = await this.RepositoryBase.create(
227
+ {
228
+ AccountNo: this.AccountNo,
229
+ AccSystemRefId: this.AccSystemRefId,
230
+ Name: this.Name,
231
+ Description: this.Description,
232
+ AccountType: this.AccountType,
233
+ AccountSubtype: this.AccountSubtype,
234
+ CompanyId: CompanyId,
235
+ OwnerId: this.OwnerId,
236
+ OwnerType: this.OwnerType,
237
+ RelatedObjectId: this.RelatedObjectId,
238
+ RelatedObjectType: this.RelatedObjectType,
239
+ PostedToAccSystemYN: this.PostedToAccSystemYN,
240
+ CreatedAt: new Date(),
241
+ CreatedById: userId,
242
+ },
243
+ {
244
+ transaction: dbTransaction,
245
+ },
246
+ );
247
+ }
248
+
249
+ return data;
250
+ }
251
+ }
@@ -1,31 +1,31 @@
1
- import { ObjectBase, LoginUserBase } from '@tomei/general';
2
-
3
- export interface IAccountAttr {
4
- AccountNo: string;
5
- CompanyId: string;
6
- ParentAccountNo?: string;
7
- Name: string;
8
- Description?: string;
9
- AccountType: string;
10
- AccountSubType?: string;
11
- OwnerId?: string;
12
- OwnerType?: string;
13
- RelatedObjectId?: string;
14
- RelatedObjectType?: string;
15
- CreatedAt: Date;
16
- CreatedById: string;
17
- UpdatedAt?: Date;
18
- UpdatedById?: string;
19
- AccSystemRefId: string;
20
- PostedToAccSystemYN: string;
21
- PostedById?: string;
22
- PostedDateTime?: Date;
23
- }
24
-
25
- export interface ICreateAccountAttr {
26
- Owner: LoginUserBase;
27
- RelatedObject?: ObjectBase;
28
- AccountType?: string;
29
- AccountSubType?: string;
30
- ParentAccountNo?: string;
31
- }
1
+ import { ObjectBase, LoginUserBase } from '@tomei/general';
2
+
3
+ export interface IAccountAttr {
4
+ AccountNo: string;
5
+ CompanyId: string;
6
+ ParentAccountNo?: string;
7
+ Name: string;
8
+ Description?: string;
9
+ AccountType: string;
10
+ AccountSubType?: string;
11
+ OwnerId?: string;
12
+ OwnerType?: string;
13
+ RelatedObjectId?: string;
14
+ RelatedObjectType?: string;
15
+ CreatedAt: Date;
16
+ CreatedById: string;
17
+ UpdatedAt?: Date;
18
+ UpdatedById?: string;
19
+ AccSystemRefId: string;
20
+ PostedToAccSystemYN: string;
21
+ PostedById?: string;
22
+ PostedDateTime?: Date;
23
+ }
24
+
25
+ export interface ICreateAccountAttr {
26
+ Owner: LoginUserBase;
27
+ RelatedObject?: ObjectBase;
28
+ AccountType?: string;
29
+ AccountSubType?: string;
30
+ ParentAccountNo?: string;
31
+ }