@tomei/finance 0.3.83 → 0.3.84

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 (282) 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/entities/account.entity.d.ts +26 -0
  11. package/dist/account/entities/account.entity.js +199 -0
  12. package/dist/account/entities/account.entity.js.map +1 -0
  13. package/dist/account/entities/fee-associated-object.entity.d.ts +6 -0
  14. package/dist/account/entities/fee-associated-object.entity.js +52 -0
  15. package/dist/account/entities/fee-associated-object.entity.js.map +1 -0
  16. package/dist/account/index.d.ts +6 -0
  17. package/dist/account/index.js +10 -0
  18. package/dist/account/index.js.map +1 -0
  19. package/dist/account/interfaces/account.repository.interface.d.ts +3 -0
  20. package/dist/account/interfaces/account.repository.interface.js +3 -0
  21. package/dist/account/interfaces/account.repository.interface.js.map +1 -0
  22. package/dist/account-system-entity/index.d.ts +2 -0
  23. package/dist/account-system-entity/index.js +6 -0
  24. package/dist/account-system-entity/index.js.map +1 -0
  25. package/dist/account-system-entity/post-history.entity.d.ts +11 -0
  26. package/dist/account-system-entity/post-history.entity.js +65 -0
  27. package/dist/account-system-entity/post-history.entity.js.map +1 -0
  28. package/dist/base/account-system.interface.d.ts +7 -0
  29. package/dist/base/account-system.interface.js +3 -0
  30. package/dist/base/account-system.interface.js.map +1 -0
  31. package/dist/base/address.base.abstract.d.ts +4 -0
  32. package/dist/base/address.base.abstract.js +10 -0
  33. package/dist/base/address.base.abstract.js.map +1 -0
  34. package/dist/base/base.address.d.ts +8 -0
  35. package/dist/base/base.address.js +15 -0
  36. package/dist/base/base.address.js.map +1 -0
  37. package/dist/base/base.object.d.ts +7 -0
  38. package/dist/base/base.object.js +14 -0
  39. package/dist/base/base.object.js.map +1 -0
  40. package/dist/base/base.owner.d.ts +23 -0
  41. package/dist/base/base.owner.js +34 -0
  42. package/dist/base/base.owner.js.map +1 -0
  43. package/dist/base/base.repository.abstract.d.ts +12 -0
  44. package/dist/base/base.repository.abstract.js +22 -0
  45. package/dist/base/base.repository.abstract.js.map +1 -0
  46. package/dist/base/base.repository.interface.d.ts +9 -0
  47. package/dist/base/base.repository.interface.js +3 -0
  48. package/dist/base/base.repository.interface.js.map +1 -0
  49. package/dist/base/index.d.ts +4 -0
  50. package/dist/base/index.js +10 -0
  51. package/dist/base/index.js.map +1 -0
  52. package/dist/base/object/base.object.abstract.d.ts +5 -0
  53. package/dist/base/object/base.object.abstract.js +7 -0
  54. package/dist/base/object/base.object.abstract.js.map +1 -0
  55. package/dist/base/object/base.object.d.ts +7 -0
  56. package/dist/base/object/base.object.js +14 -0
  57. package/dist/base/object/base.object.js.map +1 -0
  58. package/dist/base/object/object.interface.d.ts +4 -0
  59. package/dist/base/object/object.interface.js +3 -0
  60. package/dist/base/object/object.interface.js.map +1 -0
  61. package/dist/base/object.base.abstract.d.ts +5 -0
  62. package/dist/base/object.base.abstract.js +11 -0
  63. package/dist/base/object.base.abstract.js.map +1 -0
  64. package/dist/base/owner/base.owner.abstract.d.ts +20 -0
  65. package/dist/base/owner/base.owner.abstract.js +8 -0
  66. package/dist/base/owner/base.owner.abstract.js.map +1 -0
  67. package/dist/base/owner/base.owner.d.ts +22 -0
  68. package/dist/base/owner/base.owner.js +31 -0
  69. package/dist/base/owner/base.owner.js.map +1 -0
  70. package/dist/base/owner/owner.interface.d.ts +19 -0
  71. package/dist/base/owner/owner.interface.js +3 -0
  72. package/dist/base/owner/owner.interface.js.map +1 -0
  73. package/dist/base/person.base.abstract.d.ts +21 -0
  74. package/dist/base/person.base.abstract.js +17 -0
  75. package/dist/base/person.base.abstract.js.map +1 -0
  76. package/dist/base/repository/base.repository.abstract.d.ts +12 -0
  77. package/dist/base/repository/base.repository.abstract.js +22 -0
  78. package/dist/base/repository/base.repository.abstract.js.map +1 -0
  79. package/dist/base/repository/base.repository.interface.d.ts +9 -0
  80. package/dist/base/repository/base.repository.interface.js +3 -0
  81. package/dist/base/repository/base.repository.interface.js.map +1 -0
  82. package/dist/customer/customer.repository.d.ts +0 -0
  83. package/dist/customer/customer.repository.js +1 -0
  84. package/dist/customer/customer.repository.js.map +1 -0
  85. package/dist/customer/entities/customer.entity.d.ts +13 -0
  86. package/dist/customer/entities/customer.entity.js +111 -0
  87. package/dist/customer/entities/customer.entity.js.map +1 -0
  88. package/dist/customer/index.d.ts +7 -0
  89. package/dist/customer/index.js +10 -0
  90. package/dist/customer/index.js.map +1 -0
  91. package/dist/document/entities/document-item.entity.d.ts +27 -0
  92. package/dist/document/entities/document-item.entity.js +174 -0
  93. package/dist/document/entities/document-item.entity.js.map +1 -0
  94. package/dist/document/entities/document.entity.d.ts +22 -0
  95. package/dist/document/entities/document.entity.js +139 -0
  96. package/dist/document/entities/document.entity.js.map +1 -0
  97. package/dist/document/index.d.ts +11 -0
  98. package/dist/document/index.js +20 -0
  99. package/dist/document/index.js.map +1 -0
  100. package/dist/document/interfaces/document.repository.interface.d.ts +3 -0
  101. package/dist/document/interfaces/document.repository.interface.js +3 -0
  102. package/dist/document/interfaces/document.repository.interface.js.map +1 -0
  103. package/dist/enum/document-type.enum.d.ts +7 -0
  104. package/dist/enum/document-type.enum.js +12 -0
  105. package/dist/enum/document-type.enum.js.map +1 -0
  106. package/dist/enum/intuit-client.enum.d.ts +13 -0
  107. package/dist/enum/intuit-client.enum.js +19 -0
  108. package/dist/enum/intuit-client.enum.js.map +1 -0
  109. package/dist/finance-company/entities/finance-company.entity.d.ts +13 -0
  110. package/dist/finance-company/entities/finance-company.entity.js +113 -0
  111. package/dist/finance-company/entities/finance-company.entity.js.map +1 -0
  112. package/dist/finance-company/finance-company.entity.d.ts +13 -0
  113. package/dist/finance-company/finance-company.entity.js +66 -0
  114. package/dist/finance-company/finance-company.entity.js.map +1 -0
  115. package/dist/finance-company/finance-company.js +3 -1
  116. package/dist/finance-company/finance-company.js.map +1 -1
  117. package/dist/finance-company/index.d.ts +3 -0
  118. package/dist/finance-company/index.js +8 -0
  119. package/dist/finance-company/index.js.map +1 -0
  120. package/dist/finance-company/interfaces/finance-company-attr.interface.d.ts +10 -0
  121. package/dist/finance-company/interfaces/finance-company-attr.interface.js +3 -0
  122. package/dist/finance-company/interfaces/finance-company-attr.interface.js.map +1 -0
  123. package/dist/finance-company/interfaces/finance-company.repository.interface.d.ts +3 -0
  124. package/dist/finance-company/interfaces/finance-company.repository.interface.js +3 -0
  125. package/dist/finance-company/interfaces/finance-company.repository.interface.js.map +1 -0
  126. package/dist/interfaces/account-system-entity.interface.d.ts +7 -0
  127. package/dist/interfaces/account-system-entity.interface.js +3 -0
  128. package/dist/interfaces/account-system-entity.interface.js.map +1 -0
  129. package/dist/interfaces/customer.repository.interface.d.ts +3 -0
  130. package/dist/interfaces/customer.repository.interface.js +3 -0
  131. package/dist/interfaces/customer.repository.interface.js.map +1 -0
  132. package/dist/interfaces/finance-customer.repository.interface.d.ts +3 -0
  133. package/dist/interfaces/finance-customer.repository.interface.js +3 -0
  134. package/dist/interfaces/finance-customer.repository.interface.js.map +1 -0
  135. package/dist/interfaces/systemConfig.interface.d.ts +0 -0
  136. package/dist/interfaces/systemConfig.interface.js +1 -0
  137. package/dist/interfaces/systemConfig.interface.js.map +1 -0
  138. package/dist/intuit-client/client.d.ts +14 -0
  139. package/dist/intuit-client/client.js +44 -0
  140. package/dist/intuit-client/client.js.map +1 -0
  141. package/dist/journal-entry/entities/journal-entry.entity.d.ts +16 -0
  142. package/dist/journal-entry/entities/journal-entry.entity.js +129 -0
  143. package/dist/journal-entry/entities/journal-entry.entity.js.map +1 -0
  144. package/dist/journal-entry/index.d.ts +6 -0
  145. package/dist/journal-entry/index.js +10 -0
  146. package/dist/journal-entry/index.js.map +1 -0
  147. package/dist/journal-entry/interfaces/journal-entry.repository.interface.d.ts +10 -0
  148. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js +3 -0
  149. package/dist/journal-entry/interfaces/journal-entry.repository.interface.js.map +1 -0
  150. package/dist/ledger-transaction/entities/ledger-transaction.entity.d.ts +19 -0
  151. package/dist/ledger-transaction/entities/ledger-transaction.entity.js +157 -0
  152. package/dist/ledger-transaction/entities/ledger-transaction.entity.js.map +1 -0
  153. package/dist/ledger-transaction/index.d.ts +6 -0
  154. package/dist/ledger-transaction/index.js +10 -0
  155. package/dist/ledger-transaction/index.js.map +1 -0
  156. package/dist/payment/entities/payment-item.entity.d.ts +10 -0
  157. package/dist/payment/entities/payment-item.entity.js +62 -0
  158. package/dist/payment/entities/payment-item.entity.js.map +1 -0
  159. package/dist/payment/entities/payment.entity.d.ts +25 -0
  160. package/dist/payment/entities/payment.entity.js +152 -0
  161. package/dist/payment/entities/payment.entity.js.map +1 -0
  162. package/dist/payment/index.d.ts +10 -0
  163. package/dist/payment/index.js +18 -0
  164. package/dist/payment/index.js.map +1 -0
  165. package/dist/payment/interfaces/payment-item-attr.interface.d.ts +8 -0
  166. package/dist/payment/interfaces/payment-item-attr.interface.js +7 -0
  167. package/dist/payment/interfaces/payment-item-attr.interface.js.map +1 -0
  168. package/dist/payment/interfaces/payment-item.repository.interface.d.ts +3 -0
  169. package/dist/payment/interfaces/payment-item.repository.interface.js +3 -0
  170. package/dist/payment/interfaces/payment-item.repository.interface.js.map +1 -0
  171. package/dist/payment/interfaces/payment.repository.interface.d.ts +3 -0
  172. package/dist/payment/interfaces/payment.repository.interface.js +3 -0
  173. package/dist/payment/interfaces/payment.repository.interface.js.map +1 -0
  174. package/dist/payment/payment-item.repository.d.ts +5 -0
  175. package/dist/payment/payment-item.repository.js +12 -0
  176. package/dist/payment/payment-item.repository.js.map +1 -0
  177. package/dist/payment-item/interfaces/payment-item.repository.interface.d.ts +3 -0
  178. package/dist/payment-item/interfaces/payment-item.repository.interface.js +3 -0
  179. package/dist/payment-item/interfaces/payment-item.repository.interface.js.map +1 -0
  180. package/dist/quickbook-client/client.d.ts +39 -0
  181. package/dist/quickbook-client/client.js +205 -0
  182. package/dist/quickbook-client/client.js.map +1 -0
  183. package/dist/quickbook-client/constant.d.ts +1 -0
  184. package/dist/quickbook-client/constant.js +5 -0
  185. package/dist/quickbook-client/constant.js.map +1 -0
  186. package/dist/quickbook-client/index.d.ts +5 -0
  187. package/dist/quickbook-client/index.js +6 -0
  188. package/dist/quickbook-client/index.js.map +1 -0
  189. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.d.ts +6 -0
  190. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js +3 -0
  191. package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js.map +1 -0
  192. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.d.ts +9 -0
  193. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js +3 -0
  194. package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js.map +1 -0
  195. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.d.ts +7 -0
  196. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js +3 -0
  197. package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js.map +1 -0
  198. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.d.ts +8 -0
  199. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js +3 -0
  200. package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js.map +1 -0
  201. package/dist/quickbook-client/quickbook-client.module-definition.d.ts +2 -0
  202. package/dist/quickbook-client/quickbook-client.module-definition.js +9 -0
  203. package/dist/quickbook-client/quickbook-client.module-definition.js.map +1 -0
  204. package/dist/quickbook-client/quickbook-client.module.d.ts +6 -0
  205. package/dist/quickbook-client/quickbook-client.module.js +34 -0
  206. package/dist/quickbook-client/quickbook-client.module.js.map +1 -0
  207. package/dist/tsconfig.tsbuildinfo +1 -1
  208. package/invoice-template/assets/css/style.css.map +12 -12
  209. package/invoice-template/assets/css/style.min.css +1 -1
  210. package/invoice-template/assets/img/arrow_bg.svg +11 -11
  211. package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
  212. package/invoice-template/assets/img/logo_accent.svg +3 -3
  213. package/invoice-template/assets/img/logo_white.svg +4 -4
  214. package/invoice-template/assets/img/sign.svg +12 -12
  215. package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
  216. package/invoice-template/assets/js/jquery.min.js +1 -1
  217. package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
  218. package/invoice-template/assets/sass/common/_typography.scss +178 -178
  219. package/invoice-template/assets/sass/style.scss +12 -12
  220. package/migrations/finance-account-migration.js +97 -97
  221. package/migrations/finance-company-migration.js +29 -29
  222. package/migrations/finance-customer-migration.js +51 -51
  223. package/migrations/finance-document-item-migration.js +111 -111
  224. package/migrations/finance-document-migration.js +116 -116
  225. package/migrations/finance-payment-item-migration.js +52 -52
  226. package/migrations/finance-payment-method-migration.js +31 -31
  227. package/migrations/finance-payment-method-type-migration.js +55 -55
  228. package/migrations/finance-payment-migration.js +74 -74
  229. package/migrations/finance-post-history-migration.js +45 -45
  230. package/nest-cli.json +19 -19
  231. package/package.json +79 -79
  232. package/src/account/account.repository.ts +11 -11
  233. package/src/account/account.ts +222 -222
  234. package/src/account/interfaces/account-attr.interface.ts +31 -31
  235. package/src/account-system-entity/account-system-entity.ts +65 -65
  236. package/src/account-system-entity/post-history.repository.ts +11 -11
  237. package/src/config.ts +369 -369
  238. package/src/customer/customer.ts +266 -266
  239. package/src/customer/finance-customer.repository.ts +13 -13
  240. package/src/customer/interfaces/customer.repository.interface.ts +3 -3
  241. package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
  242. package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
  243. package/src/database.ts +15 -15
  244. package/src/document/document-item.repository.ts +11 -11
  245. package/src/document/document.repository.ts +11 -11
  246. package/src/document/interfaces/document-attr.interface.ts +28 -28
  247. package/src/document/interfaces/document-item-attr.interface.ts +22 -22
  248. package/src/document/interfaces/document-item.repository.interface.ts +4 -4
  249. package/src/enum/doc-type.enum.ts +8 -8
  250. package/src/enum/index.ts +17 -17
  251. package/src/enum/payment-method.enum.ts +3 -3
  252. package/src/enum/payment-type.enum.ts +4 -4
  253. package/src/finance-company/finance-company.repository.ts +11 -11
  254. package/src/finance-company/finance-company.ts +1509 -1507
  255. package/src/helpers/typeof.ts +29 -29
  256. package/src/index.ts +30 -30
  257. package/src/interfaces/account-system.interface.ts +20 -20
  258. package/src/interfaces/index.ts +3 -3
  259. package/src/models/account.entity.ts +206 -206
  260. package/src/models/customer.entity.ts +93 -93
  261. package/src/models/document-item.entity.ts +143 -143
  262. package/src/models/document.entity.ts +203 -203
  263. package/src/models/finance-company.entity.ts +25 -25
  264. package/src/models/journal-entry.entity.ts +110 -110
  265. package/src/models/ledger-transaction.entity.ts +148 -148
  266. package/src/models/payment-item.entity.ts +60 -60
  267. package/src/models/payment-method-type.entity.ts +70 -70
  268. package/src/models/payment-method.entity.ts +51 -51
  269. package/src/models/payment.entity.ts +129 -129
  270. package/src/models/post-history.entity.ts +41 -41
  271. package/src/payment/interfaces/payment-attr.interface.ts +19 -19
  272. package/src/payment/interfaces/payment-params.interface.ts +8 -8
  273. package/src/payment/payment.repository.ts +11 -11
  274. package/src/payment/payment.ts +208 -208
  275. package/src/payment-item/interfaces/payment-item-attr.interface.ts +10 -10
  276. package/src/payment-item/payment-item.repository.ts +11 -11
  277. package/src/payment-item/payment-item.ts +58 -58
  278. package/src/payment-method/payment-method.repository.ts +11 -11
  279. package/src/payment-method-type/payment-method-type.repository.ts +11 -11
  280. package/tsconfig.build.json +4 -4
  281. package/tsconfig.json +22 -22
  282. package/tslint.json +18 -18
@@ -1,222 +1,222 @@
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
- AccSystemRefId: string,
199
- userId: string,
200
- dbTransaction?: any,
201
- ): Promise<AccountModel> {
202
- this.AccSystemRefId = AccSystemRefId;
203
- const data = await this.RepositoryBase.create(
204
- {
205
- AccountNo: this.AccountNo,
206
- AccSystemRefId: this.AccSystemRefId,
207
- Name: this.Name,
208
- Description: this.Description,
209
- AccountType: this.AccountType,
210
- AccountSubtype: this.AccountSubtype,
211
- OwnerId: this.OwnerId,
212
- OwnerType: this.OwnerType,
213
- RelatedObjectId: this.RelatedObjectId,
214
- RelatedObjectType: this.RelatedObjectType,
215
- CreatedAt: new Date(),
216
- CreatedById: userId,
217
- },
218
- dbTransaction,
219
- );
220
- return data;
221
- }
222
- }
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
+ AccSystemRefId: string,
199
+ userId: string,
200
+ dbTransaction?: any,
201
+ ): Promise<AccountModel> {
202
+ this.AccSystemRefId = AccSystemRefId;
203
+ const data = await this.RepositoryBase.create(
204
+ {
205
+ AccountNo: this.AccountNo,
206
+ AccSystemRefId: this.AccSystemRefId,
207
+ Name: this.Name,
208
+ Description: this.Description,
209
+ AccountType: this.AccountType,
210
+ AccountSubtype: this.AccountSubtype,
211
+ OwnerId: this.OwnerId,
212
+ OwnerType: this.OwnerType,
213
+ RelatedObjectId: this.RelatedObjectId,
214
+ RelatedObjectType: this.RelatedObjectType,
215
+ CreatedAt: new Date(),
216
+ CreatedById: userId,
217
+ },
218
+ dbTransaction,
219
+ );
220
+ return data;
221
+ }
222
+ }
@@ -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
+ }
@@ -1,65 +1,65 @@
1
- import { IRepositoryBase, LoginUserBase, ObjectBase } from '@tomei/general';
2
- // import { FinanceCompany } from '../finance-company';
3
- import { PostHistoryRepository } from './post-history.repository';
4
- import cuid from 'cuid';
5
- import { Injectable } from '@nestjs/common';
6
-
7
- @Injectable()
8
- export abstract class AccountSystemEntity extends ObjectBase {
9
- CompanyId = '';
10
- PostedToAccSystemYN = 'N';
11
- AccSystemRefId = '';
12
- PostedById = '';
13
- PostedDateTime: Date;
14
- protected abstract RepositoryBase: IRepositoryBase<any>;
15
- private static PostHistoryRepository = new PostHistoryRepository();
16
-
17
- async postToAccSystem(dbTransaction: any, loginUser: LoginUserBase) {
18
- try {
19
- /*retrieve the finance company details from finance_Company to
20
- * get details of the accounting system*/
21
- const company = 'test';
22
- // const company = await FinanceCompany.getFinanceCompany(this.CompanyId);
23
-
24
- /*todo:instantiating the appropriate accounting system to perform the post*/
25
- // if (this.TableName === 'finance_Customer') {
26
- // await this.AccountingSystem.createCustomer();
27
- // }
28
-
29
- /*setting the posted fields*/
30
- this.PostedToAccSystemYN = 'Y';
31
- this.PostedById = loginUser.ObjectId;
32
- this.PostedDateTime = new Date();
33
-
34
- /*updating the posted fields to the table either using direct
35
- * SQL or RepositoryBase*/
36
- const entity = await this.RepositoryBase.findByPk(this.ObjectId);
37
- const updated = await entity.update(
38
- {
39
- PostedToAccSystemYN: this.PostedToAccSystemYN,
40
- PostedById: this.PostedById,
41
- PostedDateTime: this.PostedDateTime,
42
- },
43
- { transaction: dbTransaction },
44
- );
45
-
46
- /*writing to accounting transaction log table finance_PostHistory*/
47
- await AccountSystemEntity.PostHistoryRepository.create(
48
- {
49
- PostId: cuid(),
50
- DateTime: this.PostedDateTime,
51
- ItemId: this.ObjectId,
52
- ItemType: this.TableName,
53
- ItemValue: JSON.stringify(updated),
54
- PostedById: this.PostedById,
55
- AccSystemCode: 'test',
56
- // AccSystemCode: company.AccSystemCode,
57
- AccSystemRefId: this.AccSystemRefId,
58
- },
59
- { transaction: dbTransaction },
60
- );
61
- } catch (err) {
62
- throw err;
63
- }
64
- }
65
- }
1
+ import { IRepositoryBase, LoginUserBase, ObjectBase } from '@tomei/general';
2
+ // import { FinanceCompany } from '../finance-company';
3
+ import { PostHistoryRepository } from './post-history.repository';
4
+ import cuid from 'cuid';
5
+ import { Injectable } from '@nestjs/common';
6
+
7
+ @Injectable()
8
+ export abstract class AccountSystemEntity extends ObjectBase {
9
+ CompanyId = '';
10
+ PostedToAccSystemYN = 'N';
11
+ AccSystemRefId = '';
12
+ PostedById = '';
13
+ PostedDateTime: Date;
14
+ protected abstract RepositoryBase: IRepositoryBase<any>;
15
+ private static PostHistoryRepository = new PostHistoryRepository();
16
+
17
+ async postToAccSystem(dbTransaction: any, loginUser: LoginUserBase) {
18
+ try {
19
+ /*retrieve the finance company details from finance_Company to
20
+ * get details of the accounting system*/
21
+ const company = 'test';
22
+ // const company = await FinanceCompany.getFinanceCompany(this.CompanyId);
23
+
24
+ /*todo:instantiating the appropriate accounting system to perform the post*/
25
+ // if (this.TableName === 'finance_Customer') {
26
+ // await this.AccountingSystem.createCustomer();
27
+ // }
28
+
29
+ /*setting the posted fields*/
30
+ this.PostedToAccSystemYN = 'Y';
31
+ this.PostedById = loginUser.ObjectId;
32
+ this.PostedDateTime = new Date();
33
+
34
+ /*updating the posted fields to the table either using direct
35
+ * SQL or RepositoryBase*/
36
+ const entity = await this.RepositoryBase.findByPk(this.ObjectId);
37
+ const updated = await entity.update(
38
+ {
39
+ PostedToAccSystemYN: this.PostedToAccSystemYN,
40
+ PostedById: this.PostedById,
41
+ PostedDateTime: this.PostedDateTime,
42
+ },
43
+ { transaction: dbTransaction },
44
+ );
45
+
46
+ /*writing to accounting transaction log table finance_PostHistory*/
47
+ await AccountSystemEntity.PostHistoryRepository.create(
48
+ {
49
+ PostId: cuid(),
50
+ DateTime: this.PostedDateTime,
51
+ ItemId: this.ObjectId,
52
+ ItemType: this.TableName,
53
+ ItemValue: JSON.stringify(updated),
54
+ PostedById: this.PostedById,
55
+ AccSystemCode: 'test',
56
+ // AccSystemCode: company.AccSystemCode,
57
+ AccSystemRefId: this.AccSystemRefId,
58
+ },
59
+ { transaction: dbTransaction },
60
+ );
61
+ } catch (err) {
62
+ throw err;
63
+ }
64
+ }
65
+ }
@@ -1,11 +1,11 @@
1
- import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
- import FinancePostHistoryModel from '../models/post-history.entity';
3
-
4
- export class PostHistoryRepository
5
- extends RepositoryBase<FinancePostHistoryModel>
6
- implements IRepositoryBase<FinancePostHistoryModel>
7
- {
8
- constructor() {
9
- super(FinancePostHistoryModel);
10
- }
11
- }
1
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
+ import FinancePostHistoryModel from '../models/post-history.entity';
3
+
4
+ export class PostHistoryRepository
5
+ extends RepositoryBase<FinancePostHistoryModel>
6
+ implements IRepositoryBase<FinancePostHistoryModel>
7
+ {
8
+ constructor() {
9
+ super(FinancePostHistoryModel);
10
+ }
11
+ }