taxtank-core 0.0.1 → 0.1.1

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 (476) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +12 -0
  4. package/package.json +13 -12
  5. package/src/lib/collections/abstract.collection.ts +83 -0
  6. package/src/lib/collections/bank-account.collection.ts +171 -0
  7. package/src/lib/collections/bank-transaction.collection.ts +153 -0
  8. package/src/lib/collections/client-movement.collection.ts +42 -0
  9. package/src/lib/collections/client-portfolio-report.collection.ts +47 -0
  10. package/src/lib/collections/client.collection.ts +5 -0
  11. package/src/lib/collections/collection-dictionary.ts +112 -0
  12. package/src/lib/collections/depreciation-forecast.collection.ts +25 -0
  13. package/src/lib/collections/depreciation.collection.ts +113 -0
  14. package/src/lib/collections/employee.collection.ts +14 -0
  15. package/src/lib/collections/income-source.collection.ts +44 -0
  16. package/src/lib/collections/loan.collection.ts +22 -0
  17. package/src/lib/collections/logbook.collection.ts +129 -0
  18. package/src/lib/collections/message-document.collection.ts +16 -0
  19. package/src/lib/collections/message.collection.ts +27 -0
  20. package/src/lib/collections/property.collection.ts +88 -0
  21. package/src/lib/collections/service-price.collection.ts +13 -0
  22. package/src/lib/collections/service-subscription.collection.ts +20 -0
  23. package/src/lib/collections/tax-return-category-item.collection.ts +148 -0
  24. package/src/lib/collections/tax-review.collection.ts +64 -0
  25. package/src/lib/collections/transaction-allocation.collection.ts +54 -0
  26. package/src/lib/collections/transaction.collection.ts +170 -0
  27. package/src/lib/collections/user-event-setting.collection.ts +70 -0
  28. package/src/lib/db/Enums/address-type.enum.ts +4 -0
  29. package/src/lib/db/Enums/bank-account-status.enum.ts +4 -0
  30. package/src/lib/db/Enums/bank-account-type.enum.ts +10 -0
  31. package/src/lib/db/Enums/bank-connection-status.enum.ts +5 -0
  32. package/src/lib/db/Enums/bank-transaction-type.enum.ts +4 -0
  33. package/src/lib/db/Enums/chart-accounts-category.enum.ts +13 -0
  34. package/src/lib/db/Enums/chart-accounts-etp.enum.ts +7 -0
  35. package/src/lib/db/Enums/chart-accounts-heading-tax-deductible.enum.ts +6 -0
  36. package/src/lib/db/Enums/chart-accounts-heading-taxable.enum.ts +6 -0
  37. package/src/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.ts +4 -0
  38. package/src/lib/db/Enums/chart-accounts-list.enum.ts +19 -0
  39. package/src/lib/db/Enums/chart-accounts-metadata-list.enum.ts +14 -0
  40. package/src/lib/db/Enums/chart-accounts-metadata-type.enum.ts +4 -0
  41. package/src/lib/db/Enums/chart-accounts-type.enum.ts +4 -0
  42. package/src/lib/db/Enums/chat-status.enum.ts +4 -0
  43. package/src/lib/db/Enums/client-details-medicare-exemption.enum.ts +5 -0
  44. package/src/lib/db/Enums/client-details-work-depreciation-calculation.enum.ts +4 -0
  45. package/src/lib/db/Enums/client-details-working-holiday-maker.enum.ts +5 -0
  46. package/src/lib/db/Enums/client-invite-status.enum.ts +4 -0
  47. package/src/lib/db/Enums/client-invite-type.enum.ts +4 -0
  48. package/src/lib/db/Enums/depreciation-calculation-percent.enum.ts +7 -0
  49. package/src/lib/db/Enums/depreciation-calculation.enum.ts +7 -0
  50. package/src/lib/db/Enums/depreciation-type.enum.ts +6 -0
  51. package/src/lib/db/Enums/depreciation-write-off-amount.enum.ts +4 -0
  52. package/src/lib/db/Enums/firm-type.enum.ts +4 -0
  53. package/src/lib/db/Enums/income-source-type-list-other.enum.ts +6 -0
  54. package/src/lib/db/Enums/income-source-type-list-salary.enum.ts +3 -0
  55. package/src/lib/db/Enums/income-source-type-list-work.enum.ts +8 -0
  56. package/src/lib/db/Enums/income-source-type.enum.ts +5 -0
  57. package/src/lib/db/Enums/invite-status.enum.ts +5 -0
  58. package/src/lib/db/Enums/loan-bank-type.enum.ts +10 -0
  59. package/src/lib/db/Enums/loan-frequency.enum.ts +6 -0
  60. package/src/lib/db/Enums/loan-interest-type.enum.ts +4 -0
  61. package/src/lib/db/Enums/loan-payout-type.enum.ts +4 -0
  62. package/src/lib/db/Enums/loan-repayment-frequency.enum.ts +5 -0
  63. package/src/lib/db/Enums/loan-repayment-type.enum.ts +4 -0
  64. package/src/lib/db/Enums/loan-type.enum.ts +12 -0
  65. package/src/lib/db/Enums/loan-vehicle-type.enum.ts +5 -0
  66. package/src/lib/db/Enums/phone-type.enum.ts +4 -0
  67. package/src/lib/db/Enums/property-depreciation-calculation.enum.ts +4 -0
  68. package/src/lib/db/Enums/property-owner-access.enum.ts +4 -0
  69. package/src/lib/db/Enums/property-owner-status.enum.ts +5 -0
  70. package/src/lib/db/Enums/registration-invite-status.enum.ts +4 -0
  71. package/src/lib/db/Enums/salary-forecast-frequency.enum.ts +6 -0
  72. package/src/lib/db/Enums/service-notification-status.enum.ts +5 -0
  73. package/src/lib/db/Enums/service-notification-type.enum.ts +4 -0
  74. package/src/lib/db/Enums/service-payment-status.enum.ts +4 -0
  75. package/src/lib/db/Enums/service-price-recurring-interval.enum.ts +6 -0
  76. package/src/lib/db/Enums/service-price-type.enum.ts +4 -0
  77. package/src/lib/db/Enums/service-subscription-status.enum.ts +8 -0
  78. package/src/lib/db/Enums/spare-document-spare-type.enum.ts +4 -0
  79. package/src/lib/db/Enums/tank-type.enum.ts +5 -0
  80. package/src/lib/db/Enums/tax-calculation-medicare-exemption.enum.ts +4 -0
  81. package/src/lib/db/Enums/tax-calculation-type.enum.ts +12 -0
  82. package/src/lib/db/Enums/tax-return-category-list.enum.ts +26 -0
  83. package/src/lib/db/Enums/tax-return-category-section.enum.ts +6 -0
  84. package/src/lib/db/Enums/tax-review-status.enum.ts +11 -0
  85. package/src/lib/db/Enums/tax-summary-list.enum.ts +15 -0
  86. package/src/lib/db/Enums/tax-summary-section.enum.ts +6 -0
  87. package/src/lib/db/Enums/tax-summary-tax-summary.enum.ts +15 -0
  88. package/src/lib/db/Enums/ticket-feedback.enum.ts +4 -0
  89. package/src/lib/db/Enums/ticket-status.enum.ts +7 -0
  90. package/src/lib/db/Enums/ticket-types.enum.ts +3 -0
  91. package/src/lib/db/Enums/transaction-operation.enum.ts +5 -0
  92. package/src/lib/db/Enums/transaction-source.enum.ts +4 -0
  93. package/src/lib/db/Enums/transaction-type.enum.ts +4 -0
  94. package/src/lib/db/Enums/user-event-status.enum.ts +6 -0
  95. package/src/lib/db/Enums/user-event-type-frequency.enum.ts +6 -0
  96. package/src/lib/db/Enums/user-event-type-reminder-type.enum.ts +6 -0
  97. package/src/lib/db/Enums/user-event-type-reminder.enum.ts +5 -0
  98. package/src/lib/db/Enums/user-event-type-type.enum.ts +33 -0
  99. package/src/lib/db/Enums/user-medicare-exemption.enum.ts +5 -0
  100. package/src/lib/db/Enums/user-roles.enum.ts +13 -0
  101. package/src/lib/db/Enums/user-status.enum.ts +6 -0
  102. package/src/lib/db/Enums/user-title.enum.ts +7 -0
  103. package/src/lib/db/Enums/user-work-depreciation-calculation.enum.ts +4 -0
  104. package/src/lib/db/Enums/user-working-holiday-maker.enum.ts +5 -0
  105. package/src/lib/db/Enums/vehicle-claim-method.enum.ts +4 -0
  106. package/src/lib/db/Enums/vehicle-logbook-purpose.enum.ts +4 -0
  107. package/src/lib/db/Models/address.ts +20 -0
  108. package/src/lib/db/Models/bank-account-balance.ts +13 -0
  109. package/src/lib/db/Models/bank-account-property.ts +9 -0
  110. package/src/lib/db/Models/bank-account.ts +34 -0
  111. package/src/lib/db/Models/bank-connection.ts +15 -0
  112. package/src/lib/db/Models/bank-provider-account.ts +13 -0
  113. package/src/lib/db/Models/bank-transaction-import.ts +12 -0
  114. package/src/lib/db/Models/bank-transaction-rule.ts +26 -0
  115. package/src/lib/db/Models/bank-transaction.ts +17 -0
  116. package/src/lib/db/Models/bank.ts +12 -0
  117. package/src/lib/db/Models/basiq-job.ts +9 -0
  118. package/src/lib/db/Models/borrowing-expense-loan.ts +15 -0
  119. package/src/lib/db/Models/borrowing-expense.ts +7 -0
  120. package/src/lib/db/Models/capital-cost-property.ts +14 -0
  121. package/src/lib/db/Models/capital-cost.ts +4 -0
  122. package/src/lib/db/Models/chart-accounts-depreciation.ts +11 -0
  123. package/src/lib/db/Models/chart-accounts-heading.ts +7 -0
  124. package/src/lib/db/Models/chart-accounts-metadata.ts +12 -0
  125. package/src/lib/db/Models/chart-accounts-value.ts +13 -0
  126. package/src/lib/db/Models/chart-accounts.ts +24 -0
  127. package/src/lib/db/Models/chat.ts +18 -0
  128. package/src/lib/db/Models/client-details.ts +30 -0
  129. package/src/lib/db/Models/client-invite.ts +17 -0
  130. package/src/lib/db/Models/client-movement.ts +13 -0
  131. package/src/lib/db/Models/country.ts +5 -0
  132. package/src/lib/db/Models/depreciation-capital-project.ts +14 -0
  133. package/src/lib/db/Models/depreciation-forecast.ts +19 -0
  134. package/src/lib/db/Models/depreciation-receipt.ts +12 -0
  135. package/src/lib/db/Models/depreciation.ts +43 -0
  136. package/src/lib/db/Models/document-base.ts +10 -0
  137. package/src/lib/db/Models/document-folder.ts +10 -0
  138. package/src/lib/db/Models/document.ts +12 -0
  139. package/src/lib/db/Models/employee-details.ts +8 -0
  140. package/src/lib/db/Models/employee-invite.ts +10 -0
  141. package/src/lib/db/Models/financial-data-system.ts +10 -0
  142. package/src/lib/db/Models/firm-invite.ts +15 -0
  143. package/src/lib/db/Models/firm.ts +29 -0
  144. package/src/lib/db/Models/income-source-forecast.ts +13 -0
  145. package/src/lib/db/Models/income-source-type.ts +9 -0
  146. package/src/lib/db/Models/income-source.ts +21 -0
  147. package/src/lib/db/Models/loan-payout.ts +13 -0
  148. package/src/lib/db/Models/loan.ts +34 -0
  149. package/src/lib/db/Models/message-document.ts +16 -0
  150. package/src/lib/db/Models/message.ts +16 -0
  151. package/src/lib/db/Models/occupation.ts +5 -0
  152. package/src/lib/db/Models/phone.ts +13 -0
  153. package/src/lib/db/Models/property-capital-cost.ts +14 -0
  154. package/src/lib/db/Models/property-category-movement.ts +18 -0
  155. package/src/lib/db/Models/property-category.ts +14 -0
  156. package/src/lib/db/Models/property-document.ts +14 -0
  157. package/src/lib/db/Models/property-forecast.ts +15 -0
  158. package/src/lib/db/Models/property-owner.ts +21 -0
  159. package/src/lib/db/Models/property-sold.ts +13 -0
  160. package/src/lib/db/Models/property-subscription.ts +10 -0
  161. package/src/lib/db/Models/property-valuation.ts +13 -0
  162. package/src/lib/db/Models/property.ts +42 -0
  163. package/src/lib/db/Models/registration-invite.ts +13 -0
  164. package/src/lib/db/Models/salary-forecast.ts +16 -0
  165. package/src/lib/db/Models/service-notification.ts +14 -0
  166. package/src/lib/db/Models/service-payment.ts +12 -0
  167. package/src/lib/db/Models/service-price.ts +16 -0
  168. package/src/lib/db/Models/service-product.ts +13 -0
  169. package/src/lib/db/Models/service-subscription-item.ts +10 -0
  170. package/src/lib/db/Models/service-subscription.ts +15 -0
  171. package/src/lib/db/Models/spare-document-category.ts +6 -0
  172. package/src/lib/db/Models/spare-document.ts +16 -0
  173. package/src/lib/db/Models/tax-calculation.ts +19 -0
  174. package/src/lib/db/Models/tax-return-category.ts +13 -0
  175. package/src/lib/db/Models/tax-return-item.ts +16 -0
  176. package/src/lib/db/Models/tax-return.ts +9 -0
  177. package/src/lib/db/Models/tax-review.ts +14 -0
  178. package/src/lib/db/Models/ticket.ts +20 -0
  179. package/src/lib/db/Models/transaction-allocation.ts +9 -0
  180. package/src/lib/db/Models/transaction-base.ts +33 -0
  181. package/src/lib/db/Models/transaction-metadata.ts +12 -0
  182. package/src/lib/db/Models/transaction-receipt.ts +12 -0
  183. package/src/lib/db/Models/transaction.ts +44 -0
  184. package/src/lib/db/Models/user-event-setting.ts +11 -0
  185. package/src/lib/db/Models/user-event-type.ts +16 -0
  186. package/src/lib/db/Models/user-event.ts +14 -0
  187. package/src/lib/db/Models/user.ts +52 -0
  188. package/src/lib/db/Models/vehicle-claim.ts +12 -0
  189. package/src/lib/db/Models/vehicle-logbook.ts +17 -0
  190. package/src/lib/db/Models/vehicle.ts +9 -0
  191. package/src/lib/functions/array/index.ts +3 -0
  192. package/src/lib/functions/array/replace.ts +5 -0
  193. package/src/lib/functions/array/sort-deep.ts +19 -0
  194. package/src/lib/functions/array/sort.ts +8 -0
  195. package/src/lib/functions/clone-deep.ts +4 -0
  196. package/src/lib/functions/create-date.ts +7 -0
  197. package/src/lib/functions/enum-to-list.ts +16 -0
  198. package/src/lib/functions/get-doc-icon.ts +21 -0
  199. package/src/lib/functions/mat-options-functions.ts +11 -0
  200. package/src/lib/functions/mat-sort-options.ts +9 -0
  201. package/src/lib/functions/round-to.ts +9 -0
  202. package/src/lib/functions/tax-review-filter-predicate.ts +11 -0
  203. package/src/lib/interfaces/asset-entity-type.enum.ts +10 -0
  204. package/src/lib/interfaces/asset-type.enum.ts +9 -0
  205. package/src/lib/interfaces/asset.interface.ts +18 -0
  206. package/src/lib/interfaces/chart-data.interface.ts +11 -0
  207. package/src/lib/interfaces/chart-serie.interface.ts +8 -0
  208. package/src/lib/interfaces/document.interface.ts +20 -0
  209. package/src/lib/interfaces/documentable.interface.ts +9 -0
  210. package/src/lib/interfaces/event-listener.interface.ts +9 -0
  211. package/src/lib/interfaces/income-source-forecast.interface.ts +7 -0
  212. package/src/lib/interfaces/option.interface.ts +4 -0
  213. package/src/lib/interfaces/photoable.ts +14 -0
  214. package/src/lib/interfaces/receipt.interface.ts +13 -0
  215. package/src/lib/interfaces/salary-forecast.interface.ts +17 -0
  216. package/src/lib/interfaces/tank.interface.ts +9 -0
  217. package/src/lib/models/address/address.ts +24 -0
  218. package/src/lib/models/address/country.ts +17 -0
  219. package/src/lib/models/bank/bank-account-chart-data.ts +42 -0
  220. package/src/lib/models/bank/bank-account-property.ts +8 -0
  221. package/src/lib/models/bank/bank-account-types.const.ts +15 -0
  222. package/src/lib/models/bank/bank-account.ts +136 -0
  223. package/src/lib/models/bank/bank-connection.ts +12 -0
  224. package/src/lib/models/bank/bank-transaction-chart-data.ts +132 -0
  225. package/src/lib/models/bank/bank-transaction-summary-fields.enum.ts +4 -0
  226. package/src/lib/models/bank/bank-transaction.ts +74 -0
  227. package/src/lib/models/bank/bank.ts +21 -0
  228. package/src/lib/models/bank/basiq-job.ts +4 -0
  229. package/src/lib/models/bank/basiq-token.ts +16 -0
  230. package/src/lib/models/bank/type-loan.const.ts +7 -0
  231. package/src/lib/models/borrowing-expense/borrowing-expense-loan.ts +4 -0
  232. package/src/lib/models/borrowing-expense/borrowing-expense.ts +4 -0
  233. package/src/lib/models/chart/chart-data.ts +13 -0
  234. package/src/lib/models/chart/chart-serie.ts +8 -0
  235. package/src/lib/models/chart-accounts/chart-accounts-categories.const.ts +85 -0
  236. package/src/lib/models/chart-accounts/chart-accounts-depreciation.ts +14 -0
  237. package/src/lib/models/chart-accounts/chart-accounts-heading.ts +6 -0
  238. package/src/lib/models/chart-accounts/chart-accounts-metadata.ts +15 -0
  239. package/src/lib/models/chart-accounts/chart-accounts-tax-labels.enum.ts +5 -0
  240. package/src/lib/models/chart-accounts/chart-accounts.ts +137 -0
  241. package/src/lib/models/chat/chat-view-type.enum.ts +4 -0
  242. package/src/lib/models/chat/chat.ts +23 -0
  243. package/src/lib/models/chat/message-document.ts +18 -0
  244. package/src/lib/models/chat/message.ts +40 -0
  245. package/src/lib/models/client/client-details.ts +4 -0
  246. package/src/lib/models/client/client-invite.ts +70 -0
  247. package/src/lib/models/client/client-movement.ts +25 -0
  248. package/src/lib/models/client/client-portfolio-chart-data.ts +65 -0
  249. package/src/lib/models/client/client-portfolio-report.ts +10 -0
  250. package/src/lib/models/depreciation/depreciation-capital-project.ts +10 -0
  251. package/src/lib/models/depreciation/depreciation-forecast.ts +31 -0
  252. package/src/lib/models/depreciation/depreciation-group-item.ts +20 -0
  253. package/src/lib/models/depreciation/depreciation-group.enum.ts +7 -0
  254. package/src/lib/models/depreciation/depreciation-group.ts +25 -0
  255. package/src/lib/models/depreciation/depreciation-groups.const.ts +35 -0
  256. package/src/lib/models/depreciation/depreciation-receipt.ts +9 -0
  257. package/src/lib/models/depreciation/depreciation.ts +174 -0
  258. package/src/lib/models/document/document-api-url-prefix.enum.ts +7 -0
  259. package/src/lib/models/document/document-file-types.const.ts +22 -0
  260. package/src/lib/models/document/document-folder.ts +11 -0
  261. package/src/lib/models/document/document.ts +29 -0
  262. package/src/lib/models/employee/employee-details.ts +8 -0
  263. package/src/lib/models/employee/employee-invite.ts +12 -0
  264. package/src/lib/models/endpoint/endpoint.ts +35 -0
  265. package/src/lib/models/endpoint/endpoints.const.ts +157 -0
  266. package/src/lib/models/event/app-event-type.enum.ts +37 -0
  267. package/src/lib/models/event/app-event.ts +9 -0
  268. package/src/lib/models/file/icons-file.enum.ts +5 -0
  269. package/src/lib/models/financial-year/financial-year.ts +57 -0
  270. package/src/lib/models/financial-year/month-name-short.enum.ts +19 -0
  271. package/src/lib/models/financial-year/month-number.enum.ts +19 -0
  272. package/src/lib/models/financial-year/months.const.ts +1 -0
  273. package/src/lib/models/firm/firm.ts +31 -0
  274. package/src/lib/models/income-position/income-position.ts +13 -0
  275. package/src/lib/models/income-source/income-source-chart-data.ts +57 -0
  276. package/src/lib/models/income-source/income-source-forecast.ts +35 -0
  277. package/src/lib/models/income-source/income-source-type.ts +30 -0
  278. package/src/lib/models/income-source/income-source.ts +57 -0
  279. package/src/lib/models/income-source/salary-forecast.ts +23 -0
  280. package/src/lib/models/loan/loan-max-number-of-payments.enum.ts +8 -0
  281. package/src/lib/models/loan/loan-payment.ts +17 -0
  282. package/src/lib/models/loan/loan-payout.ts +13 -0
  283. package/src/lib/models/loan/loan.ts +38 -0
  284. package/src/lib/models/logbook/default-vehicle-expense.ts +20 -0
  285. package/src/lib/models/logbook/logbook-period.ts +12 -0
  286. package/src/lib/models/logbook/logbook-purpose-options.const.ts +6 -0
  287. package/src/lib/models/logbook/vehicle-claim.ts +27 -0
  288. package/src/lib/models/logbook/vehicle-logbook.ts +16 -0
  289. package/src/lib/models/logbook/vehicle.ts +46 -0
  290. package/src/lib/models/notification/notification-event-types.const.ts +43 -0
  291. package/src/lib/models/notification/notification.ts +66 -0
  292. package/src/lib/models/phone/phone.ts +10 -0
  293. package/src/lib/models/property/calculation-form-item.ts +24 -0
  294. package/src/lib/models/property/calculation-form-type.enum.ts +7 -0
  295. package/src/lib/models/property/capital-costs-itmes.const.ts +57 -0
  296. package/src/lib/models/property/corelogic-suggestion.ts +18 -0
  297. package/src/lib/models/property/ownership-filter-options.enum.ts +8 -0
  298. package/src/lib/models/property/property-capital-cost.ts +4 -0
  299. package/src/lib/models/property/property-category-movement.ts +18 -0
  300. package/src/lib/models/property/property-category.ts +9 -0
  301. package/src/lib/models/property/property-document.ts +21 -0
  302. package/src/lib/models/property/property-equity-chart-data.ts +188 -0
  303. package/src/lib/models/property/property-equity-chart-item.ts +35 -0
  304. package/src/lib/models/property/property-equity-chart-type.enum.ts +4 -0
  305. package/src/lib/models/property/property-forecast.ts +55 -0
  306. package/src/lib/models/property/property-owner.ts +50 -0
  307. package/src/lib/models/property/property-sold.ts +10 -0
  308. package/src/lib/models/property/property-subscription.ts +11 -0
  309. package/src/lib/models/property/property-valuation.ts +24 -0
  310. package/src/lib/models/property/property.ts +157 -0
  311. package/src/lib/models/registration-invite/registration-invite.ts +12 -0
  312. package/src/lib/models/service-subscription/module-url-list.const.ts +11 -0
  313. package/src/lib/models/service-subscription/service-payment.ts +8 -0
  314. package/src/lib/models/service-subscription/service-price.ts +8 -0
  315. package/src/lib/models/service-subscription/service-product.ts +11 -0
  316. package/src/lib/models/service-subscription/service-subscription-item.ts +12 -0
  317. package/src/lib/models/service-subscription/service-subscription.ts +151 -0
  318. package/src/lib/models/service-subscription/subscription-description.const.ts +8 -0
  319. package/src/lib/models/service-subscription/subscription-title.const.ts +8 -0
  320. package/src/lib/models/service-subscription/subscription-type.enum.ts +6 -0
  321. package/src/lib/models/tax-review/tax-review.ts +96 -0
  322. package/src/lib/models/tax-summary/tax-return-category-item-details.ts +14 -0
  323. package/src/lib/models/tax-summary/tax-return-category-item.ts +22 -0
  324. package/src/lib/models/tax-summary/tax-summary-section.ts +32 -0
  325. package/src/lib/models/tax-summary/tax-summary-type.enum.ts +7 -0
  326. package/src/lib/models/tax-summary/tax-summary.ts +79 -0
  327. package/src/lib/models/transaction/income-amount-type.enum.ts +7 -0
  328. package/src/lib/models/transaction/transaction-allocation.ts +20 -0
  329. package/src/lib/models/transaction/transaction-metadata.ts +8 -0
  330. package/src/lib/models/transaction/transaction-receipt.ts +9 -0
  331. package/src/lib/models/transaction/transaction.ts +241 -0
  332. package/src/lib/models/user/my-account-history-initiated-by.enum.ts +4 -0
  333. package/src/lib/models/user/my-account-history-status.enum.ts +4 -0
  334. package/src/lib/models/user/my-account-history-type.enum.ts +5 -0
  335. package/src/lib/models/user/my-account-history.ts +12 -0
  336. package/src/lib/models/user/occupation.ts +4 -0
  337. package/src/lib/models/user/user-roles.const.ts +13 -0
  338. package/src/lib/models/user/user-to-register.ts +7 -0
  339. package/src/lib/models/user/user-work-position.const.ts +7 -0
  340. package/src/lib/models/user/user.ts +160 -0
  341. package/src/lib/models/user-event/user-event-category.enum.ts +9 -0
  342. package/src/lib/models/user-event/user-event-category.ts +9 -0
  343. package/src/lib/models/user-event/user-event-setting-field.enum.ts +8 -0
  344. package/src/lib/models/user-event/user-event-setting.ts +11 -0
  345. package/src/lib/models/user-event/user-event-type.ts +22 -0
  346. package/src/lib/services/address/address.service.spec.ts +12 -0
  347. package/src/lib/services/address/address.service.ts +36 -0
  348. package/src/lib/services/asset/assets.service.spec.ts +12 -0
  349. package/src/lib/services/asset/assets.service.ts +51 -0
  350. package/src/lib/services/auth/auth.service.ts +48 -0
  351. package/src/lib/services/auth/jwt.service.ts +37 -0
  352. package/src/lib/services/bank/bank-account-calculation.service.spec.ts +16 -0
  353. package/src/lib/services/bank/bank-account-calculation.service.ts +38 -0
  354. package/src/lib/services/bank/bank-account.service.spec.ts +12 -0
  355. package/src/lib/services/bank/bank-account.service.ts +120 -0
  356. package/src/lib/services/bank/bank-connection.service.spec.ts +12 -0
  357. package/src/lib/services/bank/bank-connection.service.ts +42 -0
  358. package/src/lib/services/bank/bank-transaction-calculation.service.spec.ts +16 -0
  359. package/src/lib/services/bank/bank-transaction-calculation.service.ts +71 -0
  360. package/src/lib/services/bank/bank-transaction.service.spec.ts +12 -0
  361. package/src/lib/services/bank/bank-transaction.service.ts +97 -0
  362. package/src/lib/services/bank/bank.service.spec.ts +12 -0
  363. package/src/lib/services/bank/bank.service.ts +16 -0
  364. package/src/lib/services/bank/basiq.service.spec.ts +12 -0
  365. package/src/lib/services/bank/basiq.service.ts +103 -0
  366. package/src/lib/services/base-rest.service.spec.ts +13 -0
  367. package/src/lib/services/base-rest.service.ts +229 -0
  368. package/src/lib/services/borrowing-expense/borrowing-expense.service.spec.ts +12 -0
  369. package/src/lib/services/borrowing-expense/borrowing-expense.service.ts +82 -0
  370. package/src/lib/services/chart-accounts/chart-accounts-depreciations.service.spec.ts +16 -0
  371. package/src/lib/services/chart-accounts/chart-accounts-depreciations.service.ts +34 -0
  372. package/src/lib/services/chart-accounts/chart-accounts.service.spec.ts +12 -0
  373. package/src/lib/services/chart-accounts/chart-accounts.service.ts +101 -0
  374. package/src/lib/services/chat/chat.service.spec.ts +16 -0
  375. package/src/lib/services/chat/chat.service.ts +79 -0
  376. package/src/lib/services/chat/message-document.service.spec.ts +16 -0
  377. package/src/lib/services/chat/message-document.service.ts +133 -0
  378. package/src/lib/services/chat/message.service.spec.ts +16 -0
  379. package/src/lib/services/chat/message.service.ts +61 -0
  380. package/src/lib/services/client/client-invite.service.spec.ts +16 -0
  381. package/src/lib/services/client/client-invite.service.ts +111 -0
  382. package/src/lib/services/client/client-movement.service.spec.ts +16 -0
  383. package/src/lib/services/client/client-movement.service.ts +114 -0
  384. package/src/lib/services/client/client-portfolio-report.service.spec.ts +16 -0
  385. package/src/lib/services/client/client-portfolio-report.service.ts +34 -0
  386. package/src/lib/services/depreciation/capital-project.service.spec.ts +16 -0
  387. package/src/lib/services/depreciation/capital-project.service.ts +69 -0
  388. package/src/lib/services/depreciation/depreciation.service.spec.ts +12 -0
  389. package/src/lib/services/depreciation/depreciation.service.ts +171 -0
  390. package/src/lib/services/document/document-folder.service.spec.ts +16 -0
  391. package/src/lib/services/document/document-folder.service.ts +95 -0
  392. package/src/lib/services/employee/employee-invite.service.spec.ts +16 -0
  393. package/src/lib/services/employee/employee-invite.service.ts +53 -0
  394. package/src/lib/services/employee/employee.service.spec.ts +16 -0
  395. package/src/lib/services/employee/employee.service.ts +35 -0
  396. package/src/lib/services/event/event-dispatcher.service.spec.ts +16 -0
  397. package/src/lib/services/event/event-dispatcher.service.ts +29 -0
  398. package/src/lib/services/event/sse.service.spec.ts +16 -0
  399. package/src/lib/services/event/sse.service.ts +42 -0
  400. package/src/lib/services/firm/firm.service.spec.ts +16 -0
  401. package/src/lib/services/firm/firm.service.ts +93 -0
  402. package/src/lib/services/header-title/header-title.service.spec.ts +12 -0
  403. package/src/lib/services/header-title/header-title.service.ts +31 -0
  404. package/src/lib/services/income-source/income-source-forecast.service.spec.ts +16 -0
  405. package/src/lib/services/income-source/income-source-forecast.service.ts +91 -0
  406. package/src/lib/services/income-source/income-source.service.spec.ts +12 -0
  407. package/src/lib/services/income-source/income-source.service.ts +127 -0
  408. package/src/lib/services/income-source/salary-forecast.service.spec.ts +16 -0
  409. package/src/lib/services/income-source/salary-forecast.service.ts +92 -0
  410. package/src/lib/services/intercom/intercom.service.spec.ts +16 -0
  411. package/src/lib/services/intercom/intercom.service.ts +37 -0
  412. package/src/lib/services/loan/loan.service.spec.ts +12 -0
  413. package/src/lib/services/loan/loan.service.ts +166 -0
  414. package/src/lib/services/notification/notification.service.spec.ts +12 -0
  415. package/src/lib/services/notification/notification.service.ts +60 -0
  416. package/src/lib/services/preloader/preloader.service.spec.ts +16 -0
  417. package/src/lib/services/preloader/preloader.service.ts +28 -0
  418. package/src/lib/services/property/corelogic.service.spec.ts +12 -0
  419. package/src/lib/services/property/corelogic.service.ts +47 -0
  420. package/src/lib/services/property/property-calculation.service.spec.ts +16 -0
  421. package/src/lib/services/property/property-calculation.service.ts +166 -0
  422. package/src/lib/services/property/property-capital-cost.service.ts +42 -0
  423. package/src/lib/services/property/property-category.service.spec.ts +16 -0
  424. package/src/lib/services/property/property-category.service.ts +15 -0
  425. package/src/lib/services/property/property-document.service.spec.ts +16 -0
  426. package/src/lib/services/property/property-document.service.ts +74 -0
  427. package/src/lib/services/property/property-owner.service.spec.ts +12 -0
  428. package/src/lib/services/property/property-owner.service.ts +134 -0
  429. package/src/lib/services/property/property-sold.service.spec.ts +16 -0
  430. package/src/lib/services/property/property-sold.service.ts +15 -0
  431. package/src/lib/services/property/property.service.spec.ts +12 -0
  432. package/src/lib/services/property/property.service.ts +136 -0
  433. package/src/lib/services/subscription/subscription.service.spec.ts +12 -0
  434. package/src/lib/services/subscription/subscription.service.ts +153 -0
  435. package/src/lib/services/tax-review/tax-review-history.service.spec.ts +16 -0
  436. package/src/lib/services/tax-review/tax-review-history.service.ts +35 -0
  437. package/src/lib/services/tax-review/tax-review.service.spec.ts +16 -0
  438. package/src/lib/services/tax-review/tax-review.service.ts +114 -0
  439. package/src/lib/services/tax-summary/tax-summary.service.ts +70 -0
  440. package/src/lib/services/transaction/transaction-allocation.service.spec.ts +12 -0
  441. package/src/lib/services/transaction/transaction-allocation.service.ts +92 -0
  442. package/src/lib/services/transaction/transaction-calculation.service.spec.ts +16 -0
  443. package/src/lib/services/transaction/transaction-calculation.service.ts +50 -0
  444. package/src/lib/services/transaction/transaction.service.spec.ts +12 -0
  445. package/src/lib/services/transaction/transaction.service.ts +374 -0
  446. package/src/lib/services/user/occupation.service.spec.ts +12 -0
  447. package/src/lib/services/user/occupation.service.ts +42 -0
  448. package/src/lib/services/user/user-switcher.service.ts +34 -0
  449. package/src/lib/services/user/user.service.spec.ts +12 -0
  450. package/src/lib/services/user/user.service.ts +140 -0
  451. package/src/lib/services/user-event/user-event-setting.service.spec.ts +16 -0
  452. package/src/lib/services/user-event/user-event-setting.service.ts +60 -0
  453. package/src/lib/services/user-event/user-event-type.service.spec.ts +16 -0
  454. package/src/lib/services/user-event/user-event-type.service.ts +24 -0
  455. package/src/lib/services/work/work-tank.service.spec.ts +12 -0
  456. package/src/lib/services/work/work-tank.service.ts +277 -0
  457. package/src/lib/tt-core.module.ts +22 -0
  458. package/src/lib/tt-core.service.spec.ts +16 -0
  459. package/src/lib/tt-core.service.ts +17 -0
  460. package/src/public-api.ts +425 -0
  461. package/src/test.ts +27 -0
  462. package/tsconfig.lib.json +15 -0
  463. package/tsconfig.lib.prod.json +10 -0
  464. package/tsconfig.spec.json +17 -0
  465. package/bundles/taxtank-core.umd.js +0 -97
  466. package/bundles/taxtank-core.umd.js.map +0 -1
  467. package/esm2015/lib/tt-core.module.js +0 -33
  468. package/esm2015/lib/tt-core.service.js +0 -23
  469. package/esm2015/public-api.js +0 -6
  470. package/esm2015/taxtank-core.js +0 -5
  471. package/fesm2015/taxtank-core.js +0 -64
  472. package/fesm2015/taxtank-core.js.map +0 -1
  473. package/lib/tt-core.module.d.ts +0 -9
  474. package/lib/tt-core.service.d.ts +0 -8
  475. package/public-api.d.ts +0 -2
  476. package/taxtank-core.d.ts +0 -5
@@ -0,0 +1,148 @@
1
+ import { AbstractCollection } from './abstract.collection';
2
+ import { TaxReturnCategoryItem } from '../models/tax-summary/tax-return-category-item';
3
+ import { TaxReturnCategoryListEnum } from '../db/Enums/tax-return-category-list.enum';
4
+ import { TaxReturnCategorySectionEnum } from '../db/Enums/tax-return-category-section.enum';
5
+ import { TaxReturnCategoryItemDetails } from '../models/tax-summary/tax-return-category-item-details';
6
+
7
+ /**
8
+ * collection for tax return category items
9
+ */
10
+ export class TaxReturnCategoryItemCollection extends AbstractCollection<TaxReturnCategoryItem> {
11
+ /**
12
+ * Work income
13
+ */
14
+ get salary(): number {
15
+ return this.getByCategory(TaxReturnCategoryListEnum.SALARY)?.amount || 0;
16
+ }
17
+
18
+ /**
19
+ * Work expenses
20
+ */
21
+ get workExpenses(): number {
22
+ return this.getByCategory(TaxReturnCategoryListEnum.WORK_EXPENSES)?.amount || 0;
23
+ }
24
+
25
+ /**
26
+ * Property income
27
+ */
28
+ get rentalIncome(): number {
29
+ return this.getByCategory(TaxReturnCategoryListEnum.GROSS_RENT)?.amount || 0;
30
+ }
31
+
32
+ /**
33
+ * Property rental deductions
34
+ */
35
+ get rentalDeductions(): number {
36
+ return this.getByCategory(TaxReturnCategoryListEnum.OTHER_RENTAL_DEDUCTIONS)?.amount || 0;
37
+ }
38
+
39
+ /**
40
+ * Property expenses
41
+ */
42
+ get propertyExpenses(): number {
43
+ return this.rentalDeductions + this.borrowingExpenses;
44
+ }
45
+
46
+ /**
47
+ * Property interest
48
+ */
49
+ get interestDeductions(): number {
50
+ return this.getByCategory(TaxReturnCategoryListEnum.INTEREST_DEDUCTIONS)?.amount || 0;
51
+ }
52
+
53
+ /**
54
+ * Property capital works depreciations
55
+ */
56
+ get capitalWorks(): number {
57
+ return this.getByCategory(TaxReturnCategoryListEnum.CAPITAL_WORKS)?.amount || 0;
58
+ }
59
+
60
+ /**
61
+ * Property plant & equipment depreciations
62
+ */
63
+ get plantEquipment(): number {
64
+ return this.getByCategory(TaxReturnCategoryListEnum.DEPRECIATION)?.amount || 0;
65
+ }
66
+
67
+ /**
68
+ * Total property depreciaions
69
+ */
70
+ get propertyDepreciations(): number {
71
+ return this.capitalWorks + this.plantEquipment;
72
+ }
73
+
74
+ get partnershipsAndTrusts(): number {
75
+ return this.getByCategory(TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS)?.amount || 0;
76
+ }
77
+
78
+ get pciAndSbeIncome(): number {
79
+ return this.getByCategory(TaxReturnCategoryListEnum.PCI_SBE_INCOME)?.amount || 0;
80
+ }
81
+
82
+ get capitalGains(): number {
83
+ return this.getByCategory(TaxReturnCategoryListEnum.CAPITAL_GAINS)?.amount || 0;
84
+ }
85
+
86
+ get foreignSourceIncome(): number {
87
+ return this.getByCategory(TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME)?.amount || 0;
88
+ }
89
+
90
+ /**
91
+ * Other income
92
+ */
93
+ get otherIncome(): number {
94
+ return (this.getByCategory(TaxReturnCategoryListEnum.OTHER_INCOME)?.amount || 0) +
95
+ this.partnershipsAndTrusts +
96
+ this.pciAndSbeIncome +
97
+ this.capitalGains +
98
+ this.foreignSourceIncome;
99
+ }
100
+
101
+ /**
102
+ * Other expenses
103
+ */
104
+ get otherDeductions(): number {
105
+ return this.getByCategory(TaxReturnCategoryListEnum.OTHER_DEDUCTIONS)?.amount || 0;
106
+ }
107
+
108
+ get taxInstalments(): number {
109
+ return this.getTaxCreditsCollection().getByCategory(TaxReturnCategoryListEnum.TAX_INSTALMENTS)?.amount || 0;
110
+ }
111
+
112
+ get frankingCredits(): number {
113
+ return this.getTaxCreditsCollection().getByCategory(TaxReturnCategoryListEnum.FRANKING_CREDITS)?.amount || 0;
114
+ }
115
+
116
+ get taxOffsets(): number {
117
+ return this.getByCategory(TaxReturnCategoryListEnum.TAX_OFFSETS)?.amount || 0;
118
+ }
119
+
120
+ get borrowingExpenses(): number {
121
+ return this.getByCategory(TaxReturnCategoryListEnum.BORROWING_EXPENSES)?.amount || 0;
122
+ }
123
+
124
+ get grossTaxPayable(): number {
125
+ return this.getByCategory(TaxReturnCategoryListEnum.GROSS_TAX_PAYABLE)?.amount || 0;
126
+ }
127
+
128
+ /**
129
+ * taxWithheld by section (work or other)
130
+ */
131
+ getTaxWithheld(section: TaxReturnCategorySectionEnum = TaxReturnCategorySectionEnum.WORK_TANK): number {
132
+ return this.getTaxCreditsCollection().getByCategory(TaxReturnCategoryListEnum.TAX_WITHHELD)?.details
133
+ .filter((details: TaxReturnCategoryItemDetails) => details.section === section)
134
+ .reduce((sum: number, details: TaxReturnCategoryItemDetails): number => sum + details.amount, 0) || 0;
135
+ }
136
+
137
+ getTaxCreditsCollection(): TaxReturnCategoryItemCollection {
138
+ return new TaxReturnCategoryItemCollection(this.getByCategory(TaxReturnCategoryListEnum.TAX_CREDITS)?.items || []);
139
+ }
140
+
141
+ getTotalAmountByIncomeSourceName(name: string): number {
142
+ return this.items.reduce(((sum: number, item: TaxReturnCategoryItem): number => sum + item.getAmountByIncomeSourceName(name)), 0);
143
+ }
144
+
145
+ private getByCategory(category: TaxReturnCategoryListEnum): TaxReturnCategoryItem {
146
+ return this.items.find((item: TaxReturnCategoryItem): boolean => item.taxReturnCategory.id === category);
147
+ }
148
+ }
@@ -0,0 +1,64 @@
1
+ import { AbstractCollection } from './abstract.collection';
2
+ import { TaxReview } from '../models/tax-review/tax-review';
3
+ import { TaxReviewStatusEnum } from '../db/Enums/tax-review-status.enum';
4
+ import { User } from '../models/user/user';
5
+ import uniqBy from 'lodash/uniqBy'
6
+
7
+ /**
8
+ * Collection of tax review
9
+ */
10
+ export class TaxReviewCollection extends AbstractCollection<TaxReview> {
11
+ /**
12
+ * Get tax reviews items with SENT & COMPLETED statuses
13
+ */
14
+ getCompleted(): TaxReview[] {
15
+ return this.items
16
+ .filter((taxReview: TaxReview) => taxReview.isSent() || taxReview.isCompleted());
17
+ }
18
+
19
+ /**
20
+ * Get tax reviews items with WAITING_FOR_APPROVAL status
21
+ */
22
+ getReadyForReview(): TaxReview[] {
23
+ return this.items.filter((taxReview: TaxReview) => taxReview.isNew());
24
+ }
25
+
26
+ /**
27
+ * Get tax reviews items in work (In progress, Waiting for client, Waiting for Approval, Is approved)
28
+ */
29
+ getInWork(): TaxReview[] {
30
+ return this.items
31
+ .filter((taxReview: TaxReview) => {
32
+ return taxReview.isInProgress() ||
33
+ taxReview.isWaitingForClient() ||
34
+ taxReview.isWaitingForApproval() ||
35
+ taxReview.isApproved();
36
+ });
37
+ }
38
+
39
+ /**
40
+ * Get percentage of completed reviews of the total review amount
41
+ */
42
+ getCompletedPercentage(): number {
43
+ return 100 * this.getCompleted().length / this.items.length || 0;
44
+ }
45
+
46
+ /**
47
+ * get list of items filtered by status
48
+ * @param status
49
+ */
50
+ getByStatus(status: TaxReviewStatusEnum): TaxReview[] {
51
+ return this.items.filter((item: TaxReview): boolean => item.status === status);
52
+ }
53
+
54
+ /**
55
+ * get list of items by firm id
56
+ */
57
+ getByEmployeeId(employeeId: number): TaxReview[] {
58
+ return this.items.filter((item: TaxReview): boolean => item.employee.id === employeeId);
59
+ }
60
+
61
+ getEmployees(): User[] {
62
+ return uniqBy(this.items.map((review: TaxReview): User => review.employee), 'id');
63
+ }
64
+ }
@@ -0,0 +1,54 @@
1
+ import { AbstractCollection } from './abstract.collection';
2
+ import { TransactionAllocation } from '../models/transaction/transaction-allocation';
3
+ import { BankTransactionCollection } from './bank-transaction.collection';
4
+ import { CollectionDictionary } from './collection-dictionary';
5
+ import { Transaction } from '../models/transaction/transaction';
6
+ import { BankTransaction } from '../models/bank/bank-transaction';
7
+
8
+
9
+ export class TransactionAllocationCollection extends AbstractCollection<TransactionAllocation> {
10
+ get amount(): number {
11
+ return this.sumBy('amount');
12
+ }
13
+
14
+ getByTransactionsIds(ids: number[]): TransactionAllocationCollection {
15
+ return new TransactionAllocationCollection(
16
+ this.items.filter((allocation: TransactionAllocation): boolean => ids.includes(allocation.transaction.id))
17
+ );
18
+ }
19
+
20
+ getByBankTransactionsIds(ids: number[]): TransactionAllocationCollection {
21
+ return new TransactionAllocationCollection(
22
+ this.items.filter((allocation: TransactionAllocation): boolean => ids.includes(allocation.bankTransaction.id))
23
+ );
24
+ }
25
+
26
+ /**
27
+ * Group allocations by bank account via bank transactions collection
28
+ */
29
+ groupByBankAccount(bankTransactions: BankTransactionCollection): CollectionDictionary<TransactionAllocationCollection> {
30
+ // Group bank transactions by bank account id
31
+ const bankTransactionsByBankAccount: CollectionDictionary<BankTransactionCollection> = new CollectionDictionary(bankTransactions, 'bankAccount');
32
+ // Create empty dictionary of transaction allocations
33
+ const allocationsByBankAccount: CollectionDictionary<TransactionAllocationCollection> = new CollectionDictionary(new TransactionAllocationCollection([]));
34
+ // Fill allocations dictionary with bank transactions dictionary keys and allocations related with each bank transaction collection
35
+ bankTransactionsByBankAccount.keys.forEach((key: string): void => {
36
+ allocationsByBankAccount.add(key, this.getByBankTransactionsIds(bankTransactionsByBankAccount.get(key).getIds()));
37
+ });
38
+ return allocationsByBankAccount;
39
+ }
40
+
41
+ /**
42
+ * check if collection includes allocation of passed transaction
43
+ */
44
+ hasTransaction(transaction: Transaction): boolean {
45
+ return !!this.items.find((allocation: TransactionAllocation): boolean => allocation.transaction.id === transaction.id);
46
+ }
47
+
48
+ /**
49
+ * Check if bank transaction is related with current allocations
50
+ */
51
+ hasBankTransaction(bankTransaction: BankTransaction): boolean {
52
+ return !!this.items.find((allocation: TransactionAllocation): boolean => allocation.bankTransaction.id === bankTransaction.id);
53
+ }
54
+ }
@@ -0,0 +1,170 @@
1
+ import { AbstractCollection } from './abstract.collection';
2
+ import { Transaction } from '../models/transaction/transaction';
3
+ import { TransactionAllocationCollection } from './transaction-allocation.collection';
4
+ import { TankTypeEnum } from '../db/Enums/tank-type.enum';
5
+ import { ChartAccountsCategoryEnum } from '../db/Enums/chart-accounts-category.enum';
6
+
7
+ /**
8
+ * Collection of transactions
9
+ */
10
+ export class TransactionCollection extends AbstractCollection<Transaction> {
11
+ /**
12
+ * Get total amount of all transactions in the collection
13
+ */
14
+ get amount(): number {
15
+ return +this.items.reduce((sum: number, transaction: Transaction) => sum + transaction.getNetAmount(), 0).toFixed(2);
16
+ }
17
+
18
+ /**
19
+ * Difference between allocated amount and total amount
20
+ */
21
+ getUnallocatedAmount(allocations: TransactionAllocationCollection): number {
22
+ return +(this.amount - allocations.getByTransactionsIds(this.getIds()).amount).toFixed(2);
23
+ }
24
+
25
+ /**
26
+ * Get cash position
27
+ * Cash Position = Income - Expenses
28
+ * Cash position is equal to Total Amount because income is positive and expense is negative,
29
+ */
30
+ get cashPosition(): number {
31
+ return this.claimAmount;
32
+ }
33
+
34
+ /**
35
+ * Get new collection of transactions filtered by tank type
36
+ * @param tankType
37
+ */
38
+ getByTankType(tankType: TankTypeEnum): TransactionCollection {
39
+ return new TransactionCollection(
40
+ this.items.filter((transaction: Transaction): boolean => transaction.tankType === tankType)
41
+ );
42
+ }
43
+
44
+ /**
45
+ * get date of the last transaction
46
+ */
47
+ getLastTransactionDate(): Date {
48
+ return new Date(Math.max.apply(Math, this.items.map((transaction: Transaction) => transaction.date)));
49
+ }
50
+
51
+ /**
52
+ * Get summary of claim amounts
53
+ */
54
+ get claimAmount(): number {
55
+ return this.items.reduce((sum: number, transaction: Transaction) => sum + transaction.claimAmount, 0);
56
+ }
57
+
58
+ getByCategories(categories: ChartAccountsCategoryEnum[]): TransactionCollection {
59
+ return new TransactionCollection(
60
+ this.items.filter((transaction: Transaction): boolean => categories.includes(transaction.chartAccounts.category))
61
+ );
62
+ }
63
+
64
+ /**
65
+ * Get transactions by month
66
+ * @param monthIndex by which desired month should be taken
67
+ */
68
+ getByMonth(monthIndex: number): TransactionCollection {
69
+ return new TransactionCollection(this.items.filter((transaction: Transaction): boolean =>
70
+ transaction.date.getMonth() === monthIndex
71
+ ));
72
+ }
73
+
74
+ /**
75
+ * get list of transactions filtered by chart accounts id
76
+ * @param chartAccountsId chart accounts id for filtering
77
+ */
78
+ getByChartAccountsId(chartAccountsId: number): Transaction[] {
79
+ return this.items.filter((transaction: Transaction): boolean => transaction.chartAccounts.id === chartAccountsId);
80
+ }
81
+
82
+ getIncomeTransactions(): TransactionCollection {
83
+ return new TransactionCollection(
84
+ this.items.filter((transaction: Transaction): boolean => transaction.isIncome())
85
+ );
86
+ }
87
+
88
+ get claimIncome(): number {
89
+ return this.getIncomeTransactions().claimAmount;
90
+ }
91
+
92
+ getExpenseTransactions(): TransactionCollection {
93
+ return new TransactionCollection(
94
+ this.items.filter((transaction: Transaction): boolean => transaction.isExpense() && !transaction.isInterest())
95
+ );
96
+ }
97
+
98
+ get claimExpense(): number {
99
+ return this.getExpenseTransactions().claimAmount;
100
+ }
101
+
102
+ getInterestTransactions(): TransactionCollection {
103
+ return new TransactionCollection(
104
+ this.items.filter((transaction: Transaction): boolean => transaction.isInterest())
105
+ );
106
+ }
107
+
108
+ get claimInterest(): number {
109
+ return this.getInterestTransactions().claimAmount;
110
+ }
111
+
112
+ /**
113
+ * Get collection of transactions and properties filtered by properties ids
114
+ * @param ids Ids of properties for filter
115
+ */
116
+ getByPropertiesIds(ids: number[]): TransactionCollection {
117
+ return new TransactionCollection(
118
+ this.items.filter((transaction: Transaction): boolean => {
119
+ return ids.includes(transaction.property?.id);
120
+ })
121
+ );
122
+ }
123
+
124
+ /**
125
+ * Get new collection filtered by income source id
126
+ * @param id id of income source for filter
127
+ */
128
+ getByIncomeSourceId(id: number): TransactionCollection {
129
+ return new TransactionCollection(
130
+ this.items.filter((transaction: Transaction): boolean => transaction.incomeSource?.id === id)
131
+ );
132
+ }
133
+
134
+ /**
135
+ * Get new collection filtered by chart accounts category
136
+ * @param category Chart accounts category value
137
+ */
138
+ getByChartAccountsCategory(category: ChartAccountsCategoryEnum): TransactionCollection {
139
+ return new TransactionCollection(
140
+ this.items.filter((transaction: Transaction): boolean => transaction.chartAccounts.category === category)
141
+ );
142
+ }
143
+
144
+ /**
145
+ * Get new collection of property transactions
146
+ */
147
+ getPropertyTransactions(): TransactionCollection {
148
+ return new TransactionCollection(
149
+ this.items.filter((transaction: Transaction): boolean => transaction.isPropertyTank())
150
+ );
151
+ }
152
+
153
+ getDebitTransactions(): TransactionCollection {
154
+ return new TransactionCollection(
155
+ this.items.filter((transaction: Transaction): boolean => transaction.isDebit())
156
+ );
157
+ }
158
+
159
+ getCreditTransactions(): TransactionCollection {
160
+ return new TransactionCollection(
161
+ this.items.filter((transaction: Transaction): boolean => transaction.isCredit())
162
+ );
163
+ }
164
+
165
+ getByAllocations(allocations: TransactionAllocationCollection): TransactionCollection {
166
+ return new TransactionCollection(
167
+ this.items.filter((transaction: Transaction): boolean => allocations.hasTransaction(transaction))
168
+ );
169
+ }
170
+ }
@@ -0,0 +1,70 @@
1
+ import { AbstractCollection } from './abstract.collection';
2
+ import { UserEventSetting } from '../models/user-event/user-event-setting';
3
+ import { UserEventType } from '../models/user-event/user-event-type';
4
+ import { UserEventTypeFrequencyEnum } from '../db/Enums/user-event-type-frequency.enum';
5
+ import { CollectionDictionary } from './collection-dictionary';
6
+ import { plainToClass } from 'class-transformer';
7
+
8
+ /**
9
+ * Collection of user event settings
10
+ */
11
+ export class UserEventSettingCollection extends AbstractCollection<UserEventSetting> {
12
+ constructor(items: UserEventSetting[], userEventTypes: UserEventType[]) {
13
+ super(items);
14
+ this.setItems(userEventTypes);
15
+ }
16
+
17
+ /**
18
+ * Flag that indicates if all settings are selected for provided field
19
+ */
20
+ isAllSelected(field: string): boolean {
21
+ return !this.items.find((item: UserEventSetting) => !item[field]);
22
+ }
23
+
24
+ /**
25
+ * Flag that indicates if all settings are deselected for provided field
26
+ */
27
+ isAllDeselected(field: string): boolean {
28
+ return !this.items.find((item: UserEventSetting) => item[field]);
29
+ }
30
+
31
+ /**
32
+ * Check is any setting is updating by 'isUpdating' flag
33
+ */
34
+ isAnyUpdating(): boolean {
35
+ return this.items.some((item: UserEventSetting) => item.isUpdating);
36
+ }
37
+
38
+ /**
39
+ * Get frequency type based on each collection item 'frequency' field value
40
+ */
41
+ get commonFrequencyType(): UserEventTypeFrequencyEnum | false {
42
+ const frequencyDictionary: CollectionDictionary<UserEventSettingCollection> = new CollectionDictionary(this, '', 'frequency');
43
+ return +Object.keys(frequencyDictionary).find((key: string): boolean => frequencyDictionary[key].length === this.length) || false;
44
+ }
45
+
46
+ /**
47
+ * Rewrite collection items with provided user event types
48
+ */
49
+ private setItems(userEventTypes: UserEventType[]): void {
50
+ if (!userEventTypes) {
51
+ return;
52
+ }
53
+
54
+ this.items = userEventTypes.map((userEventType: UserEventType): UserEventSetting => {
55
+ // find existing setting by user event type id
56
+ const existingSetting: UserEventSetting = this.items.find((setting: UserEventSetting) => setting.userEventType.id === userEventType.id);
57
+ // if setting exist - return new UserEventSetting instance based on existing setting and default user event type
58
+ if (existingSetting) {
59
+ return plainToClass(UserEventSetting, Object.assign(existingSetting, {userEventType}));
60
+ }
61
+ // ...or return new UserEventSetting instance based on default user event type
62
+ return plainToClass(UserEventSetting, {
63
+ byEmail: userEventType.byEmail,
64
+ byNotification: userEventType.byNotification,
65
+ frequency: userEventType.frequency,
66
+ userEventType
67
+ });
68
+ });
69
+ }
70
+ }
@@ -0,0 +1,4 @@
1
+ export enum AddressTypeEnum {
2
+ STREET = 1,
3
+ POSTAL = 2,
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum BankAccountStatusEnum {
2
+ INACTIVE = 0,
3
+ ACTIVE = 1,
4
+ }
@@ -0,0 +1,10 @@
1
+ export enum BankAccountTypeEnum {
2
+ TRANSACTION = 1,
3
+ SAVINGS = 2,
4
+ CREDIT_CARD = 3,
5
+ MORTGAGE = 4,
6
+ LOAN = 5,
7
+ INVESTMENT = 6,
8
+ TERM_DEPOSIT = 7,
9
+ OFFSET = 10,
10
+ }
@@ -0,0 +1,5 @@
1
+ export enum BankConnectionStatusEnum {
2
+ PENDING = 1,
3
+ ACTIVE = 2,
4
+ INVALID = 3,
5
+ }
@@ -0,0 +1,4 @@
1
+ export enum BankTransactionTypeEnum {
2
+ DEBIT = 1,
3
+ CREDIT = 2,
4
+ }
@@ -0,0 +1,13 @@
1
+ export enum ChartAccountsCategoryEnum {
2
+ PROPERTY_INCOME = 1,
3
+ PROPERTY_EXPENSE = 2,
4
+ PROPERTY_DEPRECIATION = 3,
5
+ PROPERTY_CAPITAL_WORKS = 4,
6
+ WORK_DEPRECIATION = 5,
7
+ WORK_INCOME = 6,
8
+ WORK_EXPENSE = 7,
9
+ OTHER_INCOME = 8,
10
+ OTHER_EXPENSE = 9,
11
+ PERSONAL_INCOME = 10,
12
+ PERSONAL_EXPENSE = 11,
13
+ }
@@ -0,0 +1,7 @@
1
+ export enum ChartAccountsEtpEnum {
2
+ ETP_R = 549,
3
+ ETP_S = 550,
4
+ ETP_O = 551,
5
+ ETP_D = 552,
6
+ ETP_B = 553,
7
+ }
@@ -0,0 +1,6 @@
1
+ export enum ChartAccountsHeadingTaxDeductibleEnum {
2
+ ALLOWANCES_AND_PAYMENTS = 4,
3
+ PENSIONS_AND_ALLOWANCES = 5,
4
+ ANNUITIES_AND_SUPERANNUATION_INCOME_STREAMS = 40,
5
+ SUPERANNUATION_LUMP_SUM = 41,
6
+ }
@@ -0,0 +1,6 @@
1
+ export enum ChartAccountsHeadingTaxableEnum {
2
+ GROSS_INTEREST = 7,
3
+ DIVIDENDS = 38,
4
+ EMPLOYEE_SHARE_SCHEMES = 42,
5
+ PARTNERSHIPS_AND_TRUSTS_INCOME = 43,
6
+ }
@@ -0,0 +1,4 @@
1
+ export enum ChartAccountsHeadingVehicleListEnum {
2
+ WORK_RELATED_CAR_EXPENSES = 8,
3
+ DEPRECIATION_VEHICLES = 9,
4
+ }
@@ -0,0 +1,19 @@
1
+ export enum ChartAccountsListEnum {
2
+ INTEREST_ON_LOAN = 302,
3
+ BORROWING_EXPENSES = 315,
4
+ DIVIDENDS = 542,
5
+ TRANSFER = 615,
6
+ BUILDING_AT_COST = 304,
7
+ MANAGEMENT_FEES_PLATFORM_FEES = 656,
8
+ KLMS_TRAVELLED_FOR_WORK = 24,
9
+ DIRECTOR_FEES = 6,
10
+ SALARY_OR_WAGES = 2,
11
+ VEHICLES = 25,
12
+ COMMERCIAL_VEHICLES = 26,
13
+ TAX_INSTALMENTS = 662,
14
+ INTEREST_EARNED = 22,
15
+ TRUST_INCOME = 567,
16
+ TAX_OFFSETS_N_R_A_S = 571,
17
+ VEHICLE_LOAN_INTEREST = 37,
18
+ VEHICLE_LOAN_PRINCIPAL = 38,
19
+ }
@@ -0,0 +1,14 @@
1
+ export enum ChartAccountsMetadataListEnum {
2
+ TAX_INSTALMENTS = 4,
3
+ FRANKING_CREDIT = 5,
4
+ SHARE_PERCENTAGE = 7,
5
+ TAX_OFFSETS = 8,
6
+ HOURS = 11,
7
+ TAX_PAID = 13,
8
+ REDUNDANCY = 17,
9
+ NON_REDUNDANCY = 18,
10
+ YEARS_OF_SERVICE = 19,
11
+ UNTAXED_ELEMENT = 24,
12
+ FRANKED = 26,
13
+ TAX_OFFSETS_N_R_A_S = 29,
14
+ }
@@ -0,0 +1,4 @@
1
+ export enum ChartAccountsMetadataTypeEnum {
2
+ NUMBER = 3,
3
+ BOOLEAN = 4,
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum ChartAccountsTypeEnum {
2
+ INCOME = 1,
3
+ EXPENSE = 2,
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum ChatStatusEnum {
2
+ ACTIVE = 1,
3
+ INACTIVE = 2,
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum ClientDetailsMedicareExemptionEnum {
2
+ NO = 0,
3
+ HALF = 1,
4
+ FULL = 2,
5
+ }
@@ -0,0 +1,4 @@
1
+ export enum ClientDetailsWorkDepreciationCalculationEnum {
2
+ PRIME_COST = 1,
3
+ DIMINISHING = 2,
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum ClientDetailsWorkingHolidayMakerEnum {
2
+ NO = 0,
3
+ VISA417 = 1,
4
+ VISA462 = 2,
5
+ }
@@ -0,0 +1,4 @@
1
+ export enum ClientInviteStatusEnum {
2
+ PENDING = 1,
3
+ REJECTED = 2,
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum ClientInviteTypeEnum {
2
+ FROM_CLIENT = 1,
3
+ FROM_EMPLOYEE = 2,
4
+ }
@@ -0,0 +1,7 @@
1
+ export enum DepreciationCalculationPercentEnum {
2
+ PRIME_COST = 100,
3
+ DIMINISHING = 200,
4
+ CAPITAL = 2.5,
5
+ LVP = 37.5,
6
+ LVP_FIRST = 18.75,
7
+ }