@tomei/finance 0.6.14 → 0.6.21

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