gemcap-be-common 1.2.140 → 1.3.0

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 (303) hide show
  1. package/classes/bank-transaction-item.d.ts +17 -0
  2. package/classes/bank-transaction-item.js +64 -0
  3. package/classes/bank-transaction-item.ts +66 -0
  4. package/classes/bank-uploaded-transaction.d.ts +17 -0
  5. package/classes/bank-uploaded-transaction.js +35 -0
  6. package/classes/bank-uploaded-transaction.ts +35 -0
  7. package/classes/inventory-item.d.ts +41 -0
  8. package/classes/inventory-item.js +44 -0
  9. package/classes/inventory-item.ts +63 -0
  10. package/classes/payable-account-item.d.ts +22 -0
  11. package/classes/payable-account-item.js +27 -0
  12. package/classes/payable-account-item.ts +35 -0
  13. package/classes/quickbook-item.d.ts +37 -0
  14. package/classes/quickbook-item.js +51 -0
  15. package/classes/quickbook-item.ts +59 -0
  16. package/classes/receivable-item.d.ts +26 -0
  17. package/classes/receivable-item.js +28 -0
  18. package/classes/receivable-item.ts +38 -0
  19. package/constants/date-formats.contsants.d.ts +1 -0
  20. package/constants/date-formats.contsants.js +4 -0
  21. package/constants/date-formats.contsants.ts +1 -0
  22. package/db/brokers.db.d.ts +185 -0
  23. package/db/brokers.db.js +35 -2
  24. package/db/brokers.db.ts +34 -1
  25. package/db/collateral-adjustments.db.d.ts +34 -0
  26. package/db/collateral-adjustments.db.js +52 -0
  27. package/db/collateral-adjustments.db.ts +54 -0
  28. package/db/collaterals.db.d.ts +1 -1
  29. package/db/equipment.db.d.ts +40 -0
  30. package/db/equipment.db.js +55 -0
  31. package/db/equipment.db.ts +56 -0
  32. package/db/financial-spreading.db.ts +2 -1
  33. package/db/groups.d.ts +5 -0
  34. package/db/groups.js +57 -0
  35. package/db/groups.ts +52 -0
  36. package/db/inventories.d.ts +91 -0
  37. package/db/inventories.js +449 -0
  38. package/db/inventories.ts +481 -0
  39. package/db/inventory-availability.d.ts +3 -0
  40. package/db/inventory-availability.js +103 -0
  41. package/db/inventory-availability.ts +113 -0
  42. package/db/new-summary.d.ts +31 -0
  43. package/db/new-summary.js +1295 -0
  44. package/db/new-summary.ts +1509 -0
  45. package/db/payable-accounts.d.ts +30 -0
  46. package/db/payable-accounts.js +55 -0
  47. package/db/payable-accounts.ts +50 -0
  48. package/db/reserve.db.d.ts +34 -0
  49. package/db/reserve.db.js +52 -0
  50. package/db/reserve.db.ts +48 -0
  51. package/db/uploads.db.d.ts +2 -0
  52. package/db/uploads.db.js +29 -0
  53. package/db/uploads.db.ts +24 -0
  54. package/helpers/main.helper.d.ts +31 -0
  55. package/helpers/main.helper.js +63 -0
  56. package/helpers/main.helper.ts +63 -0
  57. package/models/AccountPayableItem.model.d.ts +6 -6
  58. package/models/AllocatedBankTransaction.model.d.ts +54 -0
  59. package/models/AllocatedBankTransaction.model.js +70 -0
  60. package/models/AllocatedBankTransaction.model.ts +94 -0
  61. package/models/AllocatedData.model.d.ts +33 -0
  62. package/models/AllocatedData.model.js +19 -0
  63. package/models/AllocatedData.model.ts +24 -0
  64. package/models/BBCDate.model.d.ts +3 -3
  65. package/models/BBCSheet.model.d.ts +3 -3
  66. package/models/Banks.model.d.ts +3 -3
  67. package/models/Borrower.model.d.ts +3 -3
  68. package/models/BorrowerData.model.d.ts +3 -3
  69. package/models/BorrowerDataInsurance.model.d.ts +3 -3
  70. package/models/BorrowerDataTerm.model.d.ts +3 -3
  71. package/models/BorrowerSummary.model.js +1 -1
  72. package/models/BorrowerSummary.model.ts +1 -1
  73. package/models/CalandarDay.model.d.ts +40 -0
  74. package/models/CalandarDay.model.js +47 -0
  75. package/models/CalandarDay.model.ts +61 -0
  76. package/models/CashAllocationProduct.model.d.ts +119 -0
  77. package/models/CashAllocationProduct.model.js +102 -0
  78. package/models/CashAllocationProduct.model.ts +112 -0
  79. package/models/CashAllocationReference.model.d.ts +37 -0
  80. package/models/CashAllocationReference.model.js +27 -0
  81. package/models/CashAllocationReference.model.ts +40 -0
  82. package/models/CollateralAdjustment.model.d.ts +51 -0
  83. package/models/CollateralAdjustment.model.js +61 -0
  84. package/models/CollateralAdjustment.model.ts +98 -0
  85. package/models/Company.model.d.ts +35 -0
  86. package/models/Company.model.js +18 -0
  87. package/models/Company.model.ts +29 -0
  88. package/models/CustomerAPGroup.model.d.ts +32 -0
  89. package/models/CustomerAPGroup.model.js +24 -0
  90. package/models/CustomerAPGroup.model.ts +31 -0
  91. package/models/Equipment.model.d.ts +53 -0
  92. package/models/Equipment.model.js +140 -0
  93. package/models/Equipment.model.ts +172 -0
  94. package/models/FinancialCompliance.model.d.ts +39 -0
  95. package/models/FinancialCompliance.model.js +64 -0
  96. package/models/FinancialCompliance.model.ts +78 -0
  97. package/models/FinancialComplianceBorrower.model.d.ts +58 -0
  98. package/models/FinancialComplianceBorrower.model.js +82 -0
  99. package/models/FinancialComplianceBorrower.model.ts +118 -0
  100. package/models/FinancialIndexes.model.d.ts +36 -0
  101. package/models/FinancialIndexes.model.js +27 -0
  102. package/models/FinancialIndexes.model.ts +37 -0
  103. package/models/Inventory.model.d.ts +18 -18
  104. package/models/InventoryAvailability.model.d.ts +21 -21
  105. package/models/InventoryAvailabilityItem.model.d.ts +6 -6
  106. package/models/InventoryItem.model.d.ts +24 -24
  107. package/models/InventoryManualEntry.model.d.ts +9 -9
  108. package/models/InventorySeasonalRates.model.d.ts +3 -3
  109. package/models/LoanBroker.model.d.ts +3 -3
  110. package/models/LoanCharges.model.d.ts +12 -12
  111. package/models/LoanProducts.model.d.ts +9 -9
  112. package/models/LoanStatementStatus.model.d.ts +35 -0
  113. package/models/LoanStatementStatus.model.js +34 -0
  114. package/models/LoanStatementStatus.model.ts +45 -0
  115. package/models/LoanStatementTransaction.model.d.ts +9 -9
  116. package/models/LoanTransactionFile.model.d.ts +41 -0
  117. package/models/LoanTransactionFile.model.js +44 -0
  118. package/models/LoanTransactionFile.model.ts +61 -0
  119. package/models/MappedGroup.model.d.ts +37 -0
  120. package/models/MappedGroup.model.js +33 -0
  121. package/models/MappedGroup.model.ts +46 -0
  122. package/models/MonthEndData.Model.d.ts +41 -0
  123. package/models/MonthEndData.Model.js +42 -0
  124. package/models/MonthEndData.Model.ts +53 -0
  125. package/models/OrganizationEmails.model.d.ts +44 -0
  126. package/models/OrganizationEmails.model.js +40 -0
  127. package/models/OrganizationEmails.model.ts +54 -0
  128. package/models/ProductBroker.model.d.ts +9 -9
  129. package/models/QuickbooksAccount.model.d.ts +39 -0
  130. package/models/QuickbooksAccount.model.js +43 -0
  131. package/models/QuickbooksAccount.model.ts +57 -0
  132. package/models/Receivable.model.d.ts +12 -12
  133. package/models/ReceivableAvailability.model.d.ts +54 -54
  134. package/models/ReceivableAvailabilityItem.model.d.ts +57 -57
  135. package/models/ReceivableItem.model.d.ts +6 -6
  136. package/models/Reserve.model.d.ts +51 -0
  137. package/models/Reserve.model.js +96 -0
  138. package/models/Reserve.model.ts +125 -0
  139. package/models/TermLoan.model.d.ts +3 -3
  140. package/models/TermLoanCalculated.model.d.ts +6 -6
  141. package/models/TransactionAttachedFile.Model.d.ts +35 -0
  142. package/models/TransactionAttachedFile.Model.js +37 -0
  143. package/models/TransactionAttachedFile.Model.ts +48 -0
  144. package/models/UploadedBankTransaction.model.d.ts +56 -0
  145. package/models/UploadedBankTransaction.model.js +78 -0
  146. package/models/UploadedBankTransaction.model.ts +110 -0
  147. package/models/UploadedData.model.d.ts +36 -0
  148. package/models/UploadedData.model.js +23 -0
  149. package/models/UploadedData.model.ts +35 -0
  150. package/models/UploadedFile.model.d.ts +40 -0
  151. package/models/UploadedFile.model.js +41 -0
  152. package/models/UploadedFile.model.ts +57 -0
  153. package/models/UploadedSheet.model.d.ts +46 -0
  154. package/models/UploadedSheet.model.js +27 -0
  155. package/models/UploadedSheet.model.ts +51 -0
  156. package/package.json +10 -1
  157. package/repositories/globals.repository.d.ts +8 -0
  158. package/repositories/globals.repository.js +24 -0
  159. package/repositories/globals.repository.ts +21 -0
  160. package/services/attached-files.service.d.ts +57 -0
  161. package/services/attached-files.service.js +103 -0
  162. package/services/attached-files.service.ts +123 -0
  163. package/services/availability.service.d.ts +77 -0
  164. package/services/availability.service.js +897 -0
  165. package/services/availability.service.ts +1034 -0
  166. package/services/bank-uploaded-transactions.service.d.ts +33 -0
  167. package/services/bank-uploaded-transactions.service.js +430 -0
  168. package/services/bank-uploaded-transactions.service.ts +475 -0
  169. package/services/banks.service.d.ts +36 -0
  170. package/services/banks.service.js +91 -0
  171. package/services/banks.service.ts +95 -0
  172. package/services/borrower-summary.service.d.ts +35 -0
  173. package/services/borrower-summary.service.js +310 -0
  174. package/services/borrower-summary.service.ts +334 -0
  175. package/services/borrowers.service.d.ts +103 -0
  176. package/services/borrowers.service.js +268 -0
  177. package/services/borrowers.service.ts +302 -0
  178. package/services/brokers.service.d.ts +212 -0
  179. package/services/brokers.service.js +160 -0
  180. package/services/brokers.service.ts +200 -0
  181. package/services/calendar.service.d.ts +53 -0
  182. package/services/calendar.service.js +108 -0
  183. package/services/calendar.service.ts +128 -0
  184. package/services/cash-allocation.service.d.ts +40 -0
  185. package/services/cash-allocation.service.js +92 -0
  186. package/services/cash-allocation.service.ts +105 -0
  187. package/services/collateral-adjustments.service.d.ts +38 -0
  188. package/services/collateral-adjustments.service.js +82 -0
  189. package/services/collateral-adjustments.service.ts +95 -0
  190. package/services/collaterals.service.d.ts +69 -0
  191. package/services/collaterals.service.js +279 -0
  192. package/services/collaterals.service.ts +319 -0
  193. package/services/companies.service.d.ts +5 -0
  194. package/services/companies.service.js +21 -0
  195. package/services/companies.service.ts +23 -0
  196. package/services/compliance-borrowers.service.d.ts +152 -0
  197. package/services/compliance-borrowers.service.js +569 -0
  198. package/services/compliance-borrowers.service.ts +617 -0
  199. package/services/equipment.service.d.ts +42 -0
  200. package/services/equipment.service.js +120 -0
  201. package/services/equipment.service.ts +149 -0
  202. package/services/file-manager.service.d.ts +44 -0
  203. package/services/file-manager.service.js +120 -0
  204. package/services/file-manager.service.ts +146 -0
  205. package/services/financial-compliance.service.d.ts +58 -0
  206. package/services/financial-compliance.service.js +281 -0
  207. package/services/financial-compliance.service.ts +309 -0
  208. package/services/financial-indexes.service.d.ts +20 -0
  209. package/services/financial-indexes.service.js +241 -0
  210. package/services/financial-indexes.service.ts +257 -0
  211. package/services/financial-spreading.service.d.ts +74 -0
  212. package/services/financial-spreading.service.js +450 -0
  213. package/services/financial-spreading.service.ts +517 -0
  214. package/services/globals.service.d.ts +5 -0
  215. package/services/globals.service.js +11 -0
  216. package/services/globals.service.ts +8 -0
  217. package/services/groups.service.d.ts +39 -0
  218. package/services/groups.service.js +65 -0
  219. package/services/groups.service.ts +64 -0
  220. package/services/inventory-availability.service.d.ts +13 -0
  221. package/services/inventory-availability.service.js +170 -0
  222. package/services/inventory-availability.service.ts +187 -0
  223. package/services/inventory.service.d.ts +118 -0
  224. package/services/inventory.service.js +239 -0
  225. package/services/inventory.service.ts +276 -0
  226. package/services/loan-charges.service.d.ts +83 -0
  227. package/services/loan-charges.service.js +343 -0
  228. package/services/loan-charges.service.ts +396 -0
  229. package/services/loan-payments.service.d.ts +94 -0
  230. package/services/loan-payments.service.js +485 -0
  231. package/services/loan-payments.service.ts +541 -0
  232. package/services/loan-products.service.d.ts +12 -0
  233. package/services/loan-products.service.js +55 -0
  234. package/services/loan-products.service.ts +58 -0
  235. package/services/loan-statement-balance.service.d.ts +16 -0
  236. package/services/loan-statement-balance.service.js +106 -0
  237. package/services/loan-statement-balance.service.ts +113 -0
  238. package/services/loan-statement-effects.service.d.ts +8 -0
  239. package/services/loan-statement-effects.service.js +42 -0
  240. package/services/loan-statement-effects.service.ts +41 -0
  241. package/services/loan-statement-status.service.d.ts +208 -0
  242. package/services/loan-statement-status.service.js +159 -0
  243. package/services/loan-statement-status.service.ts +177 -0
  244. package/services/loan-statement.service.d.ts +186 -0
  245. package/services/loan-statement.service.js +935 -0
  246. package/services/loan-statement.service.ts +1040 -0
  247. package/services/loan-transactions.service.d.ts +169 -0
  248. package/services/loan-transactions.service.js +941 -0
  249. package/services/loan-transactions.service.ts +1042 -0
  250. package/services/lock.service.d.ts +6 -0
  251. package/services/lock.service.js +45 -0
  252. package/services/lock.service.ts +45 -0
  253. package/services/manual-entry.service.d.ts +20 -0
  254. package/services/manual-entry.service.js +186 -0
  255. package/services/manual-entry.service.ts +201 -0
  256. package/services/month-end-data.service.d.ts +34 -0
  257. package/services/month-end-data.service.js +30 -0
  258. package/services/month-end-data.service.ts +35 -0
  259. package/services/nodemailer.service.d.ts +96 -0
  260. package/services/nodemailer.service.js +689 -0
  261. package/services/nodemailer.service.ts +774 -0
  262. package/services/organization-emails.service.d.ts +31 -0
  263. package/services/organization-emails.service.js +10 -0
  264. package/services/organization-emails.service.ts +7 -0
  265. package/services/organizations.service.d.ts +34 -0
  266. package/services/organizations.service.js +74 -0
  267. package/services/organizations.service.ts +84 -0
  268. package/services/pdf.service.d.ts +61 -0
  269. package/services/pdf.service.js +547 -0
  270. package/services/pdf.service.ts +642 -0
  271. package/services/quickbooks.service.d.ts +99 -0
  272. package/services/quickbooks.service.js +640 -0
  273. package/services/quickbooks.service.ts +734 -0
  274. package/services/reports/investor-summary.service.d.ts +28 -0
  275. package/services/reports/investor-summary.service.js +136 -0
  276. package/services/reports/investor-summary.service.ts +159 -0
  277. package/services/reports.service.d.ts +126 -0
  278. package/services/reports.service.js +584 -0
  279. package/services/reports.service.ts +702 -0
  280. package/services/reserve.service.d.ts +37 -0
  281. package/services/reserve.service.js +76 -0
  282. package/services/reserve.service.ts +79 -0
  283. package/services/sentry.service.d.ts +11 -0
  284. package/services/sentry.service.js +49 -0
  285. package/services/sentry.service.ts +33 -0
  286. package/services/signs.service.d.ts +69 -0
  287. package/services/signs.service.js +230 -0
  288. package/services/signs.service.ts +260 -0
  289. package/services/term-loan.service.d.ts +30 -0
  290. package/services/term-loan.service.js +614 -0
  291. package/services/term-loan.service.ts +696 -0
  292. package/services/uploads.service.d.ts +134 -0
  293. package/services/uploads.service.js +587 -0
  294. package/services/uploads.service.ts +643 -0
  295. package/services/user-logs.service.d.ts +23 -0
  296. package/services/user-logs.service.js +160 -0
  297. package/services/user-logs.service.ts +177 -0
  298. package/services/users.service.d.ts +4 -4
  299. package/services/yield.service.d.ts +46 -0
  300. package/services/yield.service.js +42 -12
  301. package/services/yield.service.ts +38 -8
  302. package/tsconfig.json +5 -5
  303. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,31 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ import { OrganizationEmailsType } from '../models/OrganizationEmails.model';
27
+ export declare class OrganizationEmailsService {
28
+ getEmail(organizationId: string, type: OrganizationEmailsType): Promise<import("mongoose").FlattenMaps<import("../models/OrganizationEmails.model").IOrganizationEmail> & Required<{
29
+ _id: import("mongoose").Types.ObjectId;
30
+ }>>;
31
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrganizationEmailsService = void 0;
4
+ const OrganizationEmails_model_1 = require("../models/OrganizationEmails.model");
5
+ class OrganizationEmailsService {
6
+ async getEmail(organizationId, type) {
7
+ return OrganizationEmails_model_1.OrganizationEmail.findOne({ organizationId, type }).lean();
8
+ }
9
+ }
10
+ exports.OrganizationEmailsService = OrganizationEmailsService;
@@ -0,0 +1,7 @@
1
+ import { OrganizationEmail, OrganizationEmailsType } from '../models/OrganizationEmails.model';
2
+
3
+ export class OrganizationEmailsService {
4
+ async getEmail(organizationId: string, type: OrganizationEmailsType) {
5
+ return OrganizationEmail.findOne({ organizationId, type }).lean();
6
+ }
7
+ }
@@ -0,0 +1,34 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ import { IOrganization } from '../models/Organization.model';
27
+ export declare class OrganizationsService {
28
+ getOrganizations(): Promise<IOrganization[]>;
29
+ createInitialOrganizations(): Promise<void>;
30
+ getDefaultOrganization(): Promise<import("mongoose").FlattenMaps<IOrganization> & Required<{
31
+ _id: import("mongoose").Types.ObjectId;
32
+ }>>;
33
+ getOrganizationForBorrower(borrowerId: string): Promise<IOrganization>;
34
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrganizationsService = void 0;
4
+ const Organization_model_1 = require("../models/Organization.model");
5
+ const Borrower_model_1 = require("../models/Borrower.model");
6
+ const main_helper_1 = require("../helpers/main.helper");
7
+ const OrganizationEmails_model_1 = require("../models/OrganizationEmails.model");
8
+ const initialOrganizations = [
9
+ {
10
+ name: 'GemCap',
11
+ isDefault: false,
12
+ subfolder: 'gemcap',
13
+ emails: [
14
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.SENDER, address: 'compliance@gemcapsolutions.com', title: 'GemCap' },
15
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.PORTFOLIO, address: 'portfolio@gemcapsolutions.com', title: 'GemCap' },
16
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.FINANCIAL, address: 'finance@gemcapsolutions.com', title: 'GemCap Finance Department' },
17
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.HIDDEN_RECIPIENT, address: 'compliance@gemcapsolutions.com', title: 'GemCap' },
18
+ ],
19
+ },
20
+ {
21
+ name: 'Black Feather',
22
+ isDefault: true,
23
+ subfolder: 'black_feather',
24
+ emails: [
25
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.SENDER, address: 'compliance@blackfeatherfunding.com', title: 'Black Feather' },
26
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.PORTFOLIO, address: 'portfolio@blackfeatherfunding.com', title: 'Black Feather' },
27
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.FINANCIAL, address: 'finance@blackfeatherfunding.com', title: 'Black Feather Finance Department' },
28
+ { organizationId: null, type: OrganizationEmails_model_1.OrganizationEmailsType.HIDDEN_RECIPIENT, address: 'compliance@blackfeatherfunding.com', title: 'Black Feather' },
29
+ ],
30
+ },
31
+ ];
32
+ class OrganizationsService {
33
+ async getOrganizations() {
34
+ const organizations = await Organization_model_1.Organization.find().sort({ name: 1 });
35
+ return organizations.map((i) => (0, main_helper_1.removeFields)(i, main_helper_1.fieldsToUnset));
36
+ }
37
+ async createInitialOrganizations() {
38
+ await Promise.all(initialOrganizations.map(async (organization) => {
39
+ const updatedOrganization = await Organization_model_1.Organization.findOneAndUpdate({ name: organization.name }, {
40
+ $setOnInsert: {
41
+ name: organization.name,
42
+ subfolder: organization.subfolder,
43
+ isDefault: organization.isDefault,
44
+ },
45
+ }, { upsert: true, new: true });
46
+ await Promise.all(organization.emails.map(async (email) => {
47
+ await OrganizationEmails_model_1.OrganizationEmail.findOneAndUpdate({ type: email.type, organizationId: updatedOrganization._id }, {
48
+ $setOnInsert: {
49
+ organizationId: updatedOrganization._id,
50
+ type: email.type,
51
+ title: email.title,
52
+ address: email.address,
53
+ },
54
+ }, { upsert: true, new: true });
55
+ }));
56
+ }));
57
+ }
58
+ async getDefaultOrganization() {
59
+ return Organization_model_1.Organization.findOne({ isDefault: true }).lean();
60
+ }
61
+ async getOrganizationForBorrower(borrowerId) {
62
+ const borrower = await Borrower_model_1.BorrowerModel.findById(borrowerId).lean();
63
+ const defaultOrganization = await this.getDefaultOrganization();
64
+ if (!borrower) {
65
+ return defaultOrganization;
66
+ }
67
+ const organization = await Organization_model_1.Organization.findById(borrower.organizationId).lean();
68
+ if (!organization) {
69
+ return defaultOrganization;
70
+ }
71
+ return organization;
72
+ }
73
+ }
74
+ exports.OrganizationsService = OrganizationsService;
@@ -0,0 +1,84 @@
1
+ import { IOrganization, Organization } from '../models/Organization.model';
2
+ import { BorrowerModel } from '../models/Borrower.model';
3
+
4
+ import { fieldsToUnset, removeFields } from '../helpers/main.helper';
5
+ import { IOrganizationEmail, OrganizationEmail, OrganizationEmailsType } from '../models/OrganizationEmails.model';
6
+
7
+ const initialOrganizations: (IOrganization & { emails: IOrganizationEmail[] })[] = [
8
+ {
9
+ name: 'GemCap',
10
+ isDefault: false,
11
+ subfolder: 'gemcap',
12
+ emails: [
13
+ { organizationId: null, type: OrganizationEmailsType.SENDER, address: 'compliance@gemcapsolutions.com', title: 'GemCap' },
14
+ { organizationId: null, type: OrganizationEmailsType.PORTFOLIO, address: 'portfolio@gemcapsolutions.com', title: 'GemCap' },
15
+ { organizationId: null, type: OrganizationEmailsType.FINANCIAL, address: 'finance@gemcapsolutions.com', title: 'GemCap Finance Department' },
16
+ { organizationId: null, type: OrganizationEmailsType.HIDDEN_RECIPIENT, address: 'compliance@gemcapsolutions.com', title: 'GemCap' },
17
+ ],
18
+ },
19
+ {
20
+ name: 'Black Feather',
21
+ isDefault: true,
22
+ subfolder: 'black_feather',
23
+ emails: [
24
+ { organizationId: null, type: OrganizationEmailsType.SENDER, address: 'compliance@blackfeatherfunding.com', title: 'Black Feather' },
25
+ { organizationId: null, type: OrganizationEmailsType.PORTFOLIO, address: 'portfolio@blackfeatherfunding.com', title: 'Black Feather' },
26
+ { organizationId: null, type: OrganizationEmailsType.FINANCIAL, address: 'finance@blackfeatherfunding.com', title: 'Black Feather Finance Department' },
27
+ { organizationId: null, type: OrganizationEmailsType.HIDDEN_RECIPIENT, address: 'compliance@blackfeatherfunding.com', title: 'Black Feather' },
28
+ ],
29
+ },
30
+ ];
31
+
32
+ export class OrganizationsService {
33
+ async getOrganizations() {
34
+ const organizations = await Organization.find().sort({ name: 1 });
35
+ return organizations.map((i) => removeFields<IOrganization>(i, fieldsToUnset));
36
+ }
37
+
38
+ async createInitialOrganizations() {
39
+ await Promise.all(initialOrganizations.map(async (organization) => {
40
+ const updatedOrganization = await Organization.findOneAndUpdate(
41
+ { name: organization.name },
42
+ {
43
+ $setOnInsert: {
44
+ name: organization.name,
45
+ subfolder: organization.subfolder,
46
+ isDefault: organization.isDefault,
47
+ },
48
+ },
49
+ { upsert: true, new: true },
50
+ );
51
+ await Promise.all(organization.emails.map(async (email) => {
52
+ await OrganizationEmail.findOneAndUpdate(
53
+ { type: email.type, organizationId: updatedOrganization._id },
54
+ {
55
+ $setOnInsert: {
56
+ organizationId: updatedOrganization._id,
57
+ type: email.type,
58
+ title: email.title,
59
+ address: email.address,
60
+ },
61
+ },
62
+ { upsert: true, new: true },
63
+ );
64
+ }));
65
+ }));
66
+ }
67
+
68
+ async getDefaultOrganization() {
69
+ return Organization.findOne({ isDefault: true }).lean();
70
+ }
71
+
72
+ async getOrganizationForBorrower(borrowerId: string): Promise<IOrganization> {
73
+ const borrower = await BorrowerModel.findById(borrowerId).lean();
74
+ const defaultOrganization = await this.getDefaultOrganization();
75
+ if (!borrower) {
76
+ return defaultOrganization;
77
+ }
78
+ const organization = await Organization.findById(borrower.organizationId).lean();
79
+ if (!organization) {
80
+ return defaultOrganization;
81
+ }
82
+ return organization;
83
+ }
84
+ }
@@ -0,0 +1,61 @@
1
+ import pdfMake from 'pdfmake/build/pdfmake';
2
+ import { FinancialIndexesService } from './financial-indexes.service';
3
+ import { LoanChargesService } from './loan-charges.service';
4
+ import { LoanStatementService } from './loan-statement.service';
5
+ import { LoanStatementBalanceService } from './loan-statement-balance.service';
6
+ import { LoanTransactionsService } from './loan-transactions.service';
7
+ import { OrganizationsService } from './organizations.service';
8
+ import { TermLoanService } from './term-loan.service';
9
+ interface IPdfServiceConfig {
10
+ rootDir: string;
11
+ title: string;
12
+ }
13
+ export declare const defaultPDFPageMarginSize = 30;
14
+ export declare const defaultPDFPageSize: {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ export declare const defaultPDFPageSettings: {
19
+ margin: number;
20
+ docWidth: number;
21
+ docHeight: number;
22
+ };
23
+ export declare class PdfService {
24
+ private readonly financialIndexesService;
25
+ private readonly loanChargesService;
26
+ private readonly loanStatementBalanceService;
27
+ private readonly loanStatementService;
28
+ private readonly loanTransactionsService;
29
+ private readonly organizationsService;
30
+ private readonly termLoanService;
31
+ private readonly config;
32
+ margin: number;
33
+ docWidth: number;
34
+ docHeight: number;
35
+ constructor(config: IPdfServiceConfig, financialIndexesService: FinancialIndexesService, loanChargesService: LoanChargesService, loanStatementBalanceService: LoanStatementBalanceService, loanStatementService: LoanStatementService, loanTransactionsService: LoanTransactionsService, organizationsService: OrganizationsService, termLoanService: TermLoanService);
36
+ addHeaderNew(organizationSubfolder: string): {
37
+ alignment: string;
38
+ columns: {
39
+ image: string;
40
+ width: number;
41
+ }[];
42
+ };
43
+ private getProductStatementData;
44
+ getTermLoan(productId: string, start: Date): Promise<{
45
+ monthlyPrincipal: number;
46
+ dueDate: Date;
47
+ termLoanTableData: any[];
48
+ }>;
49
+ createStatementDoc<T extends pdfMake.TCreatedPdf | {
50
+ total: number;
51
+ dueDate: Date;
52
+ productTotals: {
53
+ [productId: string]: number;
54
+ };
55
+ }>(params: {
56
+ borrowerId: string;
57
+ start: string;
58
+ end: string;
59
+ }, getOnlyTotal?: boolean): Promise<T>;
60
+ }
61
+ export {};