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,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReceivableItem = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const column_desciptions_helper_1 = require("../helpers/column-desciptions.helper");
9
+ const collaterals_enum_1 = require("../enums/collaterals.enum");
10
+ class ReceivableItem {
11
+ bbcDate = null;
12
+ invoiceDate = null;
13
+ invoiceNumber = '';
14
+ customerTitle = 'NO CUSTOMER';
15
+ dueDate = null;
16
+ invoiceAmount = 0;
17
+ originalAmount = 0;
18
+ invoiceDetail1 = '';
19
+ invoiceDetail2 = '';
20
+ invoiceDetail3 = '';
21
+ constructor(item, bbcDate = null) {
22
+ const itemWithDates = (0, column_desciptions_helper_1.convertIntoDates)(item, collaterals_enum_1.ECollaterals.RECEIVABLE);
23
+ const itemWithoutNulls = lodash_1.default.omitBy(itemWithDates, (value) => value === null);
24
+ Object.assign(this, itemWithoutNulls);
25
+ this.bbcDate = bbcDate;
26
+ }
27
+ }
28
+ exports.ReceivableItem = ReceivableItem;
@@ -0,0 +1,38 @@
1
+ import _ from 'lodash';
2
+
3
+ import { convertIntoDates } from '../helpers/column-desciptions.helper';
4
+ import { ECollaterals } from '../enums/collaterals.enum';
5
+
6
+ interface IReceivableItemLocal {
7
+ bbcDate: Date;
8
+ invoiceDate: Date;
9
+ invoiceNumber: string;
10
+ customerTitle: string;
11
+ dueDate: Date;
12
+ invoiceAmount: number;
13
+ originalAmount: number;
14
+ invoiceDetail1: string;
15
+ invoiceDetail2: string;
16
+ invoiceDetail3: string;
17
+ }
18
+
19
+ export class ReceivableItem implements IReceivableItemLocal {
20
+
21
+ bbcDate: Date = null;
22
+ invoiceDate: Date = null;
23
+ invoiceNumber: string = '';
24
+ customerTitle: string = 'NO CUSTOMER';
25
+ dueDate: Date = null;
26
+ invoiceAmount: number = 0;
27
+ originalAmount: number = 0;
28
+ invoiceDetail1: string = '';
29
+ invoiceDetail2: string = '';
30
+ invoiceDetail3: string = '';
31
+
32
+ constructor(item: Partial<ReceivableItem>, bbcDate = null) {
33
+ const itemWithDates = convertIntoDates(item, ECollaterals.RECEIVABLE);
34
+ const itemWithoutNulls = _.omitBy(itemWithDates, (value) => value === null);
35
+ Object.assign(this, itemWithoutNulls);
36
+ this.bbcDate = bbcDate;
37
+ }
38
+ }
@@ -0,0 +1 @@
1
+ export declare const MAIN_DATE_FORMAT = "YYYY-MM-DD";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAIN_DATE_FORMAT = void 0;
4
+ exports.MAIN_DATE_FORMAT = 'YYYY-MM-DD';
@@ -0,0 +1 @@
1
+ export const MAIN_DATE_FORMAT = 'YYYY-MM-DD';
@@ -1,5 +1,190 @@
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/types/inferschematype" />
25
+ import mongoose from 'mongoose';
1
26
  import { ILedgerDataRow } from './reports.db';
2
27
  import { ILoanProductDoc } from '../models/LoanProducts.model';
3
28
  import { IProductBrokerDocWithBroker } from '../models/ProductBroker.model';
4
29
  export declare const getProductBrokers: (productId: string) => Promise<IProductBrokerDocWithBroker[]>;
5
30
  export declare const enrichWithBrokers: (transactions: ILedgerDataRow[], product: ILoanProductDoc) => Promise<ILedgerDataRow[]>;
31
+ export declare const getBorrowerBrokers: (borrowerId: string) => Promise<(mongoose.FlattenMaps<import("../models/ProductBroker.model").IProductBrokerDoc> & {
32
+ _id: mongoose.Types.ObjectId;
33
+ })[]>;
34
+ export declare const getAllProductBrokers: () => Promise<(mongoose.FlattenMaps<import("../models/ProductBroker.model").IProductBrokerDoc> & {
35
+ _id: mongoose.Types.ObjectId;
36
+ })[]>;
37
+ export declare const getAllLoanBrokers: () => Promise<{
38
+ emails: mongoose.FlattenMaps<import("../models/LoanBroker.model").ILoanBrokerEmail>[];
39
+ order: number;
40
+ active: boolean;
41
+ name: string;
42
+ _id: any;
43
+ __v?: any;
44
+ $assertPopulated: <Paths = {}>(path: string | string[], values?: Partial<Paths>) => Omit<import("../models/LoanBroker.model").ILoanBrokerDoc, keyof Paths> & Paths;
45
+ $clone: () => import("../models/LoanBroker.model").ILoanBrokerDoc;
46
+ $getAllSubdocs: () => mongoose.Document<any, any, any>[];
47
+ $ignore: (path: string) => void;
48
+ $isDefault: (path: string) => boolean;
49
+ $isDeleted: (val?: boolean) => boolean;
50
+ $getPopulatedDocs: () => mongoose.Document<any, any, any>[];
51
+ $inc: (path: string | string[], val?: number) => import("../models/LoanBroker.model").ILoanBrokerDoc;
52
+ $isEmpty: (path: string) => boolean;
53
+ $isValid: (path: string) => boolean;
54
+ $locals: mongoose.FlattenMaps<Record<string, unknown>>;
55
+ $markValid: (path: string) => void;
56
+ $model: {
57
+ <ModelType = mongoose.Model<unknown, {}, {}, {}, mongoose.Document<unknown, {}, unknown> & Required<{
58
+ _id: unknown;
59
+ }>, any>>(name: string): ModelType;
60
+ <ModelType_1 = mongoose.Model<any, {}, {}, {}, any, any>>(): ModelType_1;
61
+ };
62
+ $op: "save" | "validate" | "remove";
63
+ $session: (session?: mongoose.mongo.ClientSession) => mongoose.mongo.ClientSession;
64
+ $set: {
65
+ (path: string | Record<string, any>, val: any, type: any, options?: mongoose.DocumentSetOptions): import("../models/LoanBroker.model").ILoanBrokerDoc;
66
+ (path: string | Record<string, any>, val: any, options?: mongoose.DocumentSetOptions): import("../models/LoanBroker.model").ILoanBrokerDoc;
67
+ (value: string | Record<string, any>): import("../models/LoanBroker.model").ILoanBrokerDoc;
68
+ };
69
+ $where: mongoose.FlattenMaps<Record<string, unknown>>;
70
+ baseModelName?: string;
71
+ collection: mongoose.Collection<mongoose.mongo.BSON.Document>;
72
+ db: mongoose.FlattenMaps<mongoose.Connection>;
73
+ deleteOne: (options?: mongoose.QueryOptions<unknown>) => any;
74
+ depopulate: (path?: string | string[]) => import("../models/LoanBroker.model").ILoanBrokerDoc;
75
+ directModifiedPaths: () => string[];
76
+ equals: (doc: mongoose.Document<any, any, any>) => boolean;
77
+ errors?: mongoose.Error.ValidationError;
78
+ get: {
79
+ <T extends string | number | symbol>(path: T, type?: any, options?: any): any;
80
+ (path: string, type?: any, options?: any): any;
81
+ };
82
+ getChanges: () => mongoose.UpdateQuery<import("../models/LoanBroker.model").ILoanBrokerDoc>;
83
+ id?: any;
84
+ increment: () => import("../models/LoanBroker.model").ILoanBrokerDoc;
85
+ init: (obj: mongoose.AnyObject, opts?: mongoose.AnyObject) => import("../models/LoanBroker.model").ILoanBrokerDoc;
86
+ invalidate: {
87
+ <T_1 extends string | number | symbol>(path: T_1, errorMsg: string | NativeError, value?: any, kind?: string): NativeError;
88
+ (path: string, errorMsg: string | NativeError, value?: any, kind?: string): NativeError;
89
+ };
90
+ isDirectModified: {
91
+ <T_2 extends string | number | symbol>(path: T_2 | T_2[]): boolean;
92
+ (path: string | string[]): boolean;
93
+ };
94
+ isDirectSelected: {
95
+ <T_3 extends string | number | symbol>(path: T_3): boolean;
96
+ (path: string): boolean;
97
+ };
98
+ isInit: {
99
+ <T_4 extends string | number | symbol>(path: T_4): boolean;
100
+ (path: string): boolean;
101
+ };
102
+ isModified: {
103
+ <T_5 extends string | number | symbol>(path?: T_5 | T_5[], options?: {
104
+ ignoreAtomics?: boolean;
105
+ }): boolean;
106
+ (path?: string | string[], options?: {
107
+ ignoreAtomics?: boolean;
108
+ }): boolean;
109
+ };
110
+ isNew: boolean;
111
+ isSelected: {
112
+ <T_6 extends string | number | symbol>(path: T_6): boolean;
113
+ (path: string): boolean;
114
+ };
115
+ markModified: {
116
+ <T_7 extends string | number | symbol>(path: T_7, scope?: any): void;
117
+ (path: string, scope?: any): void;
118
+ };
119
+ model: {
120
+ <ModelType_2 = mongoose.Model<unknown, {}, {}, {}, mongoose.Document<unknown, {}, unknown> & Required<{
121
+ _id: unknown;
122
+ }>, any>>(name: string): ModelType_2;
123
+ <ModelType_3 = mongoose.Model<any, {}, {}, {}, any, any>>(): ModelType_3;
124
+ };
125
+ modifiedPaths: (options?: {
126
+ includeChildren?: boolean;
127
+ }) => string[];
128
+ overwrite: (obj: mongoose.AnyObject) => import("../models/LoanBroker.model").ILoanBrokerDoc;
129
+ $parent: () => mongoose.Document<any, any, any>;
130
+ populate: {
131
+ <Paths_1 = {}>(path: string | mongoose.PopulateOptions | (string | mongoose.PopulateOptions)[]): Promise<mongoose.MergeType<import("../models/LoanBroker.model").ILoanBrokerDoc, Paths_1>>;
132
+ <Paths_2 = {}>(path: string, select?: string | mongoose.AnyObject, model?: mongoose.Model<any, {}, {}, {}, any, any>, match?: mongoose.AnyObject, options?: mongoose.PopulateOptions): Promise<mongoose.MergeType<import("../models/LoanBroker.model").ILoanBrokerDoc, Paths_2>>;
133
+ };
134
+ populated: (path: string) => any;
135
+ replaceOne: (replacement?: mongoose.AnyObject, options?: mongoose.QueryOptions<unknown>) => mongoose.Query<any, import("../models/LoanBroker.model").ILoanBrokerDoc, {}, import("../models/LoanBroker.model").ILoanBrokerDoc, "find">;
136
+ save: (options?: mongoose.SaveOptions) => Promise<import("../models/LoanBroker.model").ILoanBrokerDoc>;
137
+ schema: mongoose.FlattenMaps<mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
138
+ [x: string]: unknown;
139
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
140
+ [x: string]: unknown;
141
+ }>> & mongoose.FlatRecord<{
142
+ [x: string]: unknown;
143
+ }> & Required<{
144
+ _id: unknown;
145
+ }>>>;
146
+ set: {
147
+ <T_8 extends string | number | symbol>(path: T_8, val: any, type: any, options?: mongoose.DocumentSetOptions): import("../models/LoanBroker.model").ILoanBrokerDoc;
148
+ (path: string | Record<string, any>, val: any, type: any, options?: mongoose.DocumentSetOptions): import("../models/LoanBroker.model").ILoanBrokerDoc;
149
+ (path: string | Record<string, any>, val: any, options?: mongoose.DocumentSetOptions): import("../models/LoanBroker.model").ILoanBrokerDoc;
150
+ (value: string | Record<string, any>): import("../models/LoanBroker.model").ILoanBrokerDoc;
151
+ };
152
+ toJSON: {
153
+ <T_9 = any>(options?: mongoose.ToObjectOptions<mongoose.Document<unknown, {}, unknown> & Required<{
154
+ _id: unknown;
155
+ }>> & {
156
+ flattenMaps?: true;
157
+ }): mongoose.FlattenMaps<T_9>;
158
+ <T_10 = any>(options: mongoose.ToObjectOptions<mongoose.Document<unknown, {}, unknown> & Required<{
159
+ _id: unknown;
160
+ }>> & {
161
+ flattenMaps: false;
162
+ }): T_10;
163
+ };
164
+ toObject: <T_11 = any>(options?: mongoose.ToObjectOptions<mongoose.Document<unknown, {}, unknown> & Required<{
165
+ _id: unknown;
166
+ }>>) => mongoose.Require_id<T_11>;
167
+ unmarkModified: {
168
+ <T_12 extends string | number | symbol>(path: T_12): void;
169
+ (path: string): void;
170
+ };
171
+ updateOne: (update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<import("../models/LoanBroker.model").ILoanBrokerDoc>, options?: mongoose.QueryOptions<unknown>) => mongoose.Query<any, import("../models/LoanBroker.model").ILoanBrokerDoc, {}, import("../models/LoanBroker.model").ILoanBrokerDoc, "find">;
172
+ validate: {
173
+ <T_13 extends string | number | symbol>(pathsToValidate?: T_13 | T_13[], options?: mongoose.AnyObject): Promise<void>;
174
+ (pathsToValidate?: mongoose.PathsToValidate, options?: mongoose.AnyObject): Promise<void>;
175
+ (options: {
176
+ pathsToSkip?: mongoose.pathsToSkip;
177
+ }): Promise<void>;
178
+ };
179
+ validateSync: {
180
+ (options: {
181
+ [k: string]: any;
182
+ pathsToSkip?: mongoose.pathsToSkip;
183
+ }): mongoose.Error.ValidationError;
184
+ <T_14 extends string | number | symbol>(pathsToValidate?: T_14 | T_14[], options?: mongoose.AnyObject): mongoose.Error.ValidationError;
185
+ (pathsToValidate?: mongoose.PathsToValidate, options?: mongoose.AnyObject): mongoose.Error.ValidationError;
186
+ };
187
+ }[]>;
188
+ export declare const getBrokerProducts: (loanBrokerId: string) => Promise<(mongoose.FlattenMaps<import("../models/ProductBroker.model").IProductBrokerDoc> & {
189
+ _id: mongoose.Types.ObjectId;
190
+ })[]>;
package/db/brokers.db.js CHANGED
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.enrichWithBrokers = exports.getProductBrokers = void 0;
6
+ exports.getBrokerProducts = exports.getAllLoanBrokers = exports.getAllProductBrokers = exports.getBorrowerBrokers = exports.enrichWithBrokers = exports.getProductBrokers = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const mongoose_1 = __importDefault(require("mongoose"));
9
+ const _models_1 = require("../models/_models");
9
10
  const reports_db_1 = require("./reports.db");
10
11
  const ProductBroker_model_1 = require("../models/ProductBroker.model");
11
- const _models_1 = require("../models/_models");
12
+ const LoanBroker_model_1 = require("../models/LoanBroker.model");
12
13
  const getProductBrokers = async (productId) => {
13
14
  return ProductBroker_model_1.ProductBrokerModel.aggregate([
14
15
  {
@@ -61,3 +62,35 @@ const enrichWithBrokers = async (transactions, product) => {
61
62
  }, []);
62
63
  };
63
64
  exports.enrichWithBrokers = enrichWithBrokers;
65
+ const getBorrowerBrokers = async (borrowerId) => {
66
+ return ProductBroker_model_1.ProductBrokerModel
67
+ .find({ borrowerId }, { createdAt: 0, updatedAt: 0, __v: 0 })
68
+ .sort({ order: 1 })
69
+ .lean();
70
+ };
71
+ exports.getBorrowerBrokers = getBorrowerBrokers;
72
+ const getAllProductBrokers = async () => {
73
+ return ProductBroker_model_1.ProductBrokerModel
74
+ .find({}, { createdAt: 0, updatedAt: 0, __v: 0 })
75
+ .sort({ order: 1 })
76
+ .lean();
77
+ };
78
+ exports.getAllProductBrokers = getAllProductBrokers;
79
+ const getAllLoanBrokers = async () => {
80
+ const results = await LoanBroker_model_1.LoanBrokerModel
81
+ .find({}, { createdAt: 0, updatedAt: 0, __v: 0 })
82
+ .sort({ order: 1 })
83
+ .lean();
84
+ return results.map((result) => ({
85
+ ...result,
86
+ emails: result.emails ?? [],
87
+ }));
88
+ };
89
+ exports.getAllLoanBrokers = getAllLoanBrokers;
90
+ const getBrokerProducts = async (loanBrokerId) => {
91
+ return ProductBroker_model_1.ProductBrokerModel
92
+ .find({ loanBrokerId }, { createdAt: 0, updatedAt: 0, __v: 0 })
93
+ .sort({ order: 1, BSCode: 1, PLCode: 1 })
94
+ .lean();
95
+ };
96
+ exports.getBrokerProducts = getBrokerProducts;
package/db/brokers.db.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import Decimal from 'decimal.js';
2
2
  import mongoose from 'mongoose';
3
3
 
4
+ import { MODEL_NAMES } from '../models/_models';
4
5
  import { EChargeType, ILedgerDataRow } from './reports.db';
5
6
  import { ILoanProductDoc } from '../models/LoanProducts.model';
6
7
  import { IProductBrokerDocWithBroker, ProductBrokerModel } from '../models/ProductBroker.model';
7
- import { MODEL_NAMES } from '../models/_models';
8
+ import { LoanBrokerModel } from '../models/LoanBroker.model';
8
9
 
9
10
  export const getProductBrokers = async (productId: string) => {
10
11
  return ProductBrokerModel.aggregate<IProductBrokerDocWithBroker>([
@@ -59,3 +60,35 @@ export const enrichWithBrokers = async (transactions: ILedgerDataRow[], product:
59
60
  return handler ? [...acc, t, ...productBrokers.map((broker) => handler(t, broker))] : [...acc, t];
60
61
  }, <ILedgerDataRow[]>[]);
61
62
  };
63
+
64
+ export const getBorrowerBrokers = async (borrowerId: string) => {
65
+ return ProductBrokerModel
66
+ .find({ borrowerId }, { createdAt: 0, updatedAt: 0, __v: 0 })
67
+ .sort({ order: 1 })
68
+ .lean();
69
+ };
70
+
71
+ export const getAllProductBrokers = async () => {
72
+ return ProductBrokerModel
73
+ .find({}, { createdAt: 0, updatedAt: 0, __v: 0 })
74
+ .sort({ order: 1 })
75
+ .lean();
76
+ };
77
+
78
+ export const getAllLoanBrokers = async () => {
79
+ const results = await LoanBrokerModel
80
+ .find({}, { createdAt: 0, updatedAt: 0, __v: 0 })
81
+ .sort({ order: 1 })
82
+ .lean();
83
+ return results.map((result) => ({
84
+ ...result,
85
+ emails: result.emails ?? [],
86
+ }));
87
+ };
88
+
89
+ export const getBrokerProducts = async (loanBrokerId: string) => {
90
+ return ProductBrokerModel
91
+ .find({ loanBrokerId }, { createdAt: 0, updatedAt: 0, __v: 0 })
92
+ .sort({ order: 1, BSCode: 1, PLCode: 1 })
93
+ .lean();
94
+ };
@@ -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/types/inferschematype" />
25
+ import mongoose from 'mongoose';
26
+ import { ICollateralAdjustment, ICollateralAdjustmentDoc, ICollateralAdjustmentItem, ICollateralAdjustmentSummary } from '../models/CollateralAdjustment.model';
27
+ export declare const getCollateralAdjustmentDocs: (bbcDateIds: mongoose.Types.ObjectId[]) => Promise<ICollateralAdjustmentDoc[]>;
28
+ export declare const saveCollateralAdjustmentDoc: (bbcDateId: mongoose.Types.ObjectId, collateralAdjustmentUpdate: Partial<ICollateralAdjustment>) => Promise<mongoose.FlattenMaps<ICollateralAdjustment> & {
29
+ _id: mongoose.Types.ObjectId;
30
+ }>;
31
+ export declare const copyCollateralAdjustmentWithoutSaving: (bbcDateId: mongoose.Types.ObjectId, items: ICollateralAdjustmentItem[], summary: ICollateralAdjustmentSummary) => Promise<mongoose.Document<unknown, {}, ICollateralAdjustment> & ICollateralAdjustment & {
32
+ _id: mongoose.Types.ObjectId;
33
+ }>;
34
+ export declare const getLastCollateralAdjustmentDocs: (bbcDateId: string, borrowerId: string) => Promise<ICollateralAdjustmentDoc[]>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getLastCollateralAdjustmentDocs = exports.copyCollateralAdjustmentWithoutSaving = exports.saveCollateralAdjustmentDoc = exports.getCollateralAdjustmentDocs = void 0;
7
+ const mongoose_1 = __importDefault(require("mongoose"));
8
+ const bbcDates_db_1 = require("./bbcDates.db");
9
+ const CollateralAdjustment_model_1 = require("../models/CollateralAdjustment.model");
10
+ const getCollateralAdjustmentDocs = async (bbcDateIds) => {
11
+ return CollateralAdjustment_model_1.CollateralAdjustment.aggregate([
12
+ {
13
+ $match: {
14
+ 'bbcDateId': {
15
+ $in: bbcDateIds,
16
+ },
17
+ },
18
+ },
19
+ ]);
20
+ };
21
+ exports.getCollateralAdjustmentDocs = getCollateralAdjustmentDocs;
22
+ const saveCollateralAdjustmentDoc = async (bbcDateId, collateralAdjustmentUpdate) => {
23
+ return CollateralAdjustment_model_1.CollateralAdjustment
24
+ .findOneAndUpdate({ bbcDateId }, collateralAdjustmentUpdate, { upsert: true, new: true })
25
+ .lean();
26
+ };
27
+ exports.saveCollateralAdjustmentDoc = saveCollateralAdjustmentDoc;
28
+ const copyCollateralAdjustmentWithoutSaving = async (bbcDateId, items, summary) => {
29
+ return new CollateralAdjustment_model_1.CollateralAdjustment({ bbcDateId, items, summary });
30
+ };
31
+ exports.copyCollateralAdjustmentWithoutSaving = copyCollateralAdjustmentWithoutSaving;
32
+ const getLastCollateralAdjustmentDocs = async (bbcDateId, borrowerId) => {
33
+ const bbcDates = await (0, bbcDates_db_1.getBBCDatesByBorrower)(borrowerId);
34
+ const bbcDateIds = bbcDates.map((bbc) => bbc._id);
35
+ return CollateralAdjustment_model_1.CollateralAdjustment.aggregate([
36
+ {
37
+ $match: {
38
+ $and: [
39
+ { 'bbcDateId': { $in: bbcDateIds } },
40
+ { 'bbcDateId': { $ne: new mongoose_1.default.Types.ObjectId(bbcDateId) } },
41
+ ],
42
+ },
43
+ },
44
+ {
45
+ $sort: { 'updatedAt': -1 },
46
+ },
47
+ {
48
+ $limit: 1,
49
+ },
50
+ ]);
51
+ };
52
+ exports.getLastCollateralAdjustmentDocs = getLastCollateralAdjustmentDocs;
@@ -0,0 +1,54 @@
1
+ import mongoose from 'mongoose';
2
+
3
+ import { getBBCDatesByBorrower } from './bbcDates.db';
4
+ import {
5
+ CollateralAdjustment,
6
+ ICollateralAdjustment,
7
+ ICollateralAdjustmentDoc,
8
+ ICollateralAdjustmentItem,
9
+ ICollateralAdjustmentSummary,
10
+ } from '../models/CollateralAdjustment.model';
11
+
12
+ export const getCollateralAdjustmentDocs = async (bbcDateIds: mongoose.Types.ObjectId[]) => {
13
+ return CollateralAdjustment.aggregate<ICollateralAdjustmentDoc>([
14
+ {
15
+ $match: {
16
+ 'bbcDateId': {
17
+ $in: bbcDateIds,
18
+ },
19
+ },
20
+ },
21
+ ]);
22
+ };
23
+
24
+ export const saveCollateralAdjustmentDoc = async (bbcDateId: mongoose.Types.ObjectId, collateralAdjustmentUpdate: Partial<ICollateralAdjustment>) => {
25
+ return CollateralAdjustment
26
+ .findOneAndUpdate({ bbcDateId }, collateralAdjustmentUpdate, { upsert: true, new: true })
27
+ .lean();
28
+ };
29
+
30
+ export const copyCollateralAdjustmentWithoutSaving = async (bbcDateId: mongoose.Types.ObjectId, items: ICollateralAdjustmentItem[], summary: ICollateralAdjustmentSummary) => {
31
+ return new CollateralAdjustment({ bbcDateId, items, summary });
32
+ };
33
+
34
+ export const getLastCollateralAdjustmentDocs = async (bbcDateId: string, borrowerId: string) => {
35
+ const bbcDates = await getBBCDatesByBorrower(borrowerId);
36
+ const bbcDateIds = bbcDates.map((bbc) => bbc._id);
37
+ return CollateralAdjustment.aggregate<ICollateralAdjustmentDoc>([
38
+ {
39
+ $match:
40
+ {
41
+ $and: [
42
+ { 'bbcDateId': { $in: bbcDateIds } },
43
+ { 'bbcDateId': { $ne: new mongoose.Types.ObjectId(bbcDateId) } },
44
+ ],
45
+ },
46
+ },
47
+ {
48
+ $sort: { 'updatedAt': -1 },
49
+ },
50
+ {
51
+ $limit: 1,
52
+ },
53
+ ]);
54
+ };
@@ -75,7 +75,7 @@ export declare const createQuery: (groupFields: {
75
75
  };
76
76
  };
77
77
  itemQueries: any;
78
- enumKey: "INVENTORY" | "RECEIVABLE" | "ACCOUNT_PAYABLE" | "OTHER" | "CASH" | "LOAN_TRANSACTIONS" | "QUICKBOOKS" | "UPLOADED_BANK_TRANSACTIONS";
78
+ enumKey: "OTHER" | "INVENTORY" | "RECEIVABLE" | "ACCOUNT_PAYABLE" | "CASH" | "LOAN_TRANSACTIONS" | "QUICKBOOKS" | "UPLOADED_BANK_TRANSACTIONS";
79
79
  };
80
80
  export declare const ITEMS_PAGINATION: (paginatorOptions: IPaginatorOptions) => ({
81
81
  $skip: number;
@@ -0,0 +1,40 @@
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/types/inferschematype" />
25
+ import mongoose from 'mongoose';
26
+ import { IEquipmentDoc, IEquipmentItem, IEquipmentSummary } from '../models/Equipment.model';
27
+ export declare const getEquipmentDates: (borrowerId: string) => Promise<IEquipmentDoc[]>;
28
+ export declare const getEquipment: (borrowerId: string, date: Date) => Promise<mongoose.FlattenMaps<IEquipmentDoc> & {
29
+ _id: mongoose.Types.ObjectId;
30
+ }>;
31
+ export declare const deleteEquipment: (borrowerId: string, date: Date) => Promise<mongoose.Document<unknown, {}, IEquipmentDoc> & IEquipmentDoc & {
32
+ _id: mongoose.Types.ObjectId;
33
+ }>;
34
+ export declare const getLatestEquipments: (borrowerId: string, date: Date) => Promise<IEquipmentDoc[]>;
35
+ export declare const saveEquipmentDoc: (borrowerId: string, date: Date, items: IEquipmentItem[], summary: IEquipmentSummary) => Promise<mongoose.FlattenMaps<IEquipmentDoc> & {
36
+ _id: mongoose.Types.ObjectId;
37
+ }>;
38
+ export declare const copyEquipmentWithoutSaving: (borrower: string, date: Date, items: IEquipmentItem[], summary: IEquipmentSummary) => Promise<mongoose.Document<unknown, {}, IEquipmentDoc> & IEquipmentDoc & {
39
+ _id: mongoose.Types.ObjectId;
40
+ }>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.copyEquipmentWithoutSaving = exports.saveEquipmentDoc = exports.getLatestEquipments = exports.deleteEquipment = exports.getEquipment = exports.getEquipmentDates = void 0;
7
+ const mongoose_1 = __importDefault(require("mongoose"));
8
+ const Equipment_model_1 = __importDefault(require("../models/Equipment.model"));
9
+ const getEquipmentDates = async (borrowerId) => {
10
+ return Equipment_model_1.default.aggregate([
11
+ {
12
+ $match: {
13
+ 'borrowerId': new mongoose_1.default.Types.ObjectId(borrowerId),
14
+ },
15
+ }, {
16
+ $sort: { 'date': -1 },
17
+ },
18
+ ]);
19
+ };
20
+ exports.getEquipmentDates = getEquipmentDates;
21
+ const getEquipment = async (borrowerId, date) => {
22
+ return Equipment_model_1.default.findOne({ 'borrowerId': new mongoose_1.default.Types.ObjectId(borrowerId), 'date': date }).lean();
23
+ };
24
+ exports.getEquipment = getEquipment;
25
+ const deleteEquipment = async (borrowerId, date) => {
26
+ return Equipment_model_1.default.findOneAndDelete({ 'borrowerId': new mongoose_1.default.Types.ObjectId(borrowerId), 'date': date });
27
+ };
28
+ exports.deleteEquipment = deleteEquipment;
29
+ const getLatestEquipments = async (borrowerId, date) => {
30
+ return Equipment_model_1.default.aggregate([
31
+ {
32
+ $match: {
33
+ 'borrowerId': new mongoose_1.default.Types.ObjectId(borrowerId),
34
+ 'date': { $lte: date },
35
+ },
36
+ }, {
37
+ $sort: { 'date': -1 },
38
+ }, {
39
+ $limit: 1,
40
+ },
41
+ ]);
42
+ };
43
+ exports.getLatestEquipments = getLatestEquipments;
44
+ const saveEquipmentDoc = async (borrowerId, date, items, summary) => {
45
+ return Equipment_model_1.default
46
+ .findOneAndUpdate({ borrowerId: new mongoose_1.default.Types.ObjectId(borrowerId), date }, { items, summary }, { upsert: true, new: true })
47
+ .lean();
48
+ };
49
+ exports.saveEquipmentDoc = saveEquipmentDoc;
50
+ const copyEquipmentWithoutSaving = async (borrower, date, items, summary) => {
51
+ const notSavedEquipment = new Equipment_model_1.default({ borrower, date, items, summary });
52
+ notSavedEquipment._id = null;
53
+ return notSavedEquipment;
54
+ };
55
+ exports.copyEquipmentWithoutSaving = copyEquipmentWithoutSaving;