gemcap-be-common 1.5.40 → 1.5.42

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 (64) hide show
  1. package/classes/sales-item.d.ts +16 -0
  2. package/classes/sales-item.js +23 -0
  3. package/classes/sales-item.ts +28 -0
  4. package/db/collaterals.db.d.ts +5 -1
  5. package/db/collaterals.db.js +3 -0
  6. package/db/collaterals.db.ts +3 -0
  7. package/enums/collaterals.enum.d.ts +1 -0
  8. package/enums/collaterals.enum.js +1 -0
  9. package/enums/collaterals.enum.ts +1 -0
  10. package/helpers/column-desciptions.helper.js +29 -0
  11. package/helpers/column-desciptions.helper.ts +29 -0
  12. package/models/AccountPayableItem.model.d.ts +6 -6
  13. package/models/BBCSheet.model.js +2 -0
  14. package/models/BBCSheet.model.ts +2 -0
  15. package/models/Borrower.model.d.ts +3 -3
  16. package/models/BorrowerCompliance.model.d.ts +12 -12
  17. package/models/BorrowerDataContact.model.d.ts +3 -3
  18. package/models/BorrowerDataInsurance.model.d.ts +3 -3
  19. package/models/BorrowerSettings.model.d.ts +24 -24
  20. package/models/Equipment.model.d.ts +9 -9
  21. package/models/FinancialCompliance.model.d.ts +12 -12
  22. package/models/FinancialComplianceBorrower.model.d.ts +6 -6
  23. package/models/Inventory.model.d.ts +9 -9
  24. package/models/InventoryAvailability.model.d.ts +21 -21
  25. package/models/InventoryAvailabilityItem.model.d.ts +3 -3
  26. package/models/InventoryItem.model.d.ts +12 -12
  27. package/models/InventoryManualEntry.model.d.ts +9 -9
  28. package/models/InventorySeasonalRates.model.d.ts +3 -3
  29. package/models/LoanBroker.model.d.ts +6 -6
  30. package/models/LoanCharges.model.d.ts +12 -12
  31. package/models/LoanPayment.model.d.ts +3 -3
  32. package/models/LoanProducts.model.d.ts +9 -9
  33. package/models/LoanStatementStatus.model.d.ts +6 -6
  34. package/models/LoanStatementTransaction.model.d.ts +9 -9
  35. package/models/LoanTransactionFile.model.d.ts +3 -3
  36. package/models/MicroserviceTask.model.d.ts +3 -3
  37. package/models/PostponedTransactions.model.d.ts +3 -3
  38. package/models/ProductBroker.model.d.ts +12 -12
  39. package/models/Receivable.model.d.ts +3 -3
  40. package/models/ReceivableAvailability.model.d.ts +27 -27
  41. package/models/ReceivableAvailabilityItem.model.d.ts +57 -57
  42. package/models/ReceivableItem.model.d.ts +6 -6
  43. package/models/Reserve.model.d.ts +9 -9
  44. package/models/Sales.model.d.ts +106 -0
  45. package/models/Sales.model.js +66 -0
  46. package/models/Sales.model.ts +85 -0
  47. package/models/SalesItem.model.d.ts +97 -0
  48. package/models/SalesItem.model.js +45 -0
  49. package/models/SalesItem.model.ts +84 -0
  50. package/models/TermLoan.model.d.ts +3 -3
  51. package/models/TermLoanCalculated.model.d.ts +18 -18
  52. package/models/UploadedFile.model.d.ts +3 -3
  53. package/models/UploadedSheet.model.d.ts +3 -3
  54. package/models/_index.d.ts +6 -6
  55. package/models/_models.d.ts +2 -0
  56. package/models/_models.js +2 -0
  57. package/models/_models.ts +2 -0
  58. package/package.json +1 -1
  59. package/services/compliance-borrowers.service.d.ts +1 -1
  60. package/services/nodemailer.service.js +4 -5
  61. package/services/nodemailer.service.ts +1 -0
  62. package/services/uploads.service.js +2 -0
  63. package/services/uploads.service.ts +2 -0
  64. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,84 @@
1
+ import mongoose, { Document } from 'mongoose';
2
+
3
+ import { MODEL_NAMES } from './_models';
4
+ import { ICollateralItem } from '../interfaces/collaterals.interface';
5
+ import { IBBCSheetDoc } from './BBCSheet.model';
6
+ import { IBBCDateDoc } from './BBCDate.model';
7
+
8
+ export const SALES_FIELDS = [
9
+ '_id',
10
+ 'sku',
11
+ 'skuName',
12
+ 'unitsSold',
13
+ 'unitSalePrice',
14
+ ];
15
+
16
+
17
+ export interface ISalesItem extends ICollateralItem {
18
+ sku: string;
19
+ skuName?: string;
20
+ unitsSold: number;
21
+ unitSalePrice: number;
22
+ }
23
+
24
+ export interface ISalesItemDoc extends Document, ISalesItem {
25
+ }
26
+
27
+ export interface ISalesItemDocWithCalculation extends ISalesItemDoc {
28
+ bbcSheet: IBBCSheetDoc;
29
+ bbc: IBBCDateDoc;
30
+ expireDays: number;
31
+ skuDays: number;
32
+ sheetName: string;
33
+ inventoryName: string;
34
+ advanceRate: number;
35
+ availability: number;
36
+ }
37
+
38
+ export interface ISalesItemAvailabilityWithGroups extends ISalesItemDocWithCalculation {
39
+ groups: string[];
40
+ }
41
+
42
+ interface IMatchedGroup {
43
+ groups: string[];
44
+ items: ISalesItemAvailabilityWithGroups[];
45
+ }
46
+
47
+ export interface IMatchedGroups {
48
+ [groupName: string]: IMatchedGroup;
49
+ }
50
+
51
+ export const SalesItemSchema = new mongoose.Schema(
52
+ {
53
+ bbcSheetId: {
54
+ type: mongoose.Schema.Types.ObjectId,
55
+ ref: MODEL_NAMES.BBCSheets,
56
+ required: true,
57
+ },
58
+ order: {
59
+ type: Number,
60
+ required: true,
61
+ },
62
+ sku: {
63
+ type: String,
64
+ trim: true,
65
+ required: true,
66
+ },
67
+ skuName: {
68
+ type: String,
69
+ trim: true,
70
+ },
71
+ unitsSold: {
72
+ type: Number,
73
+ required: true,
74
+ },
75
+ unitSalePrice: {
76
+ type: Number,
77
+ required: true,
78
+ },
79
+ __v: { type: Number, select: false },
80
+ },
81
+ { timestamps: true }
82
+ );
83
+
84
+ export const SalesItemModel: mongoose.Model<ISalesItemDoc> = mongoose.model<ISalesItemDoc>(MODEL_NAMES.salesItem, SalesItemSchema);
@@ -74,11 +74,11 @@ export declare const TermLoanSchema: mongoose.Schema<any, mongoose.Model<any, an
74
74
  productId: mongoose.Types.ObjectId;
75
75
  actual: boolean;
76
76
  lastCalculated: Date;
77
+ primeRate: number;
77
78
  loanStartDate: Date;
78
79
  initialBalance: number;
79
80
  interestRate: number;
80
81
  adminRate: number;
81
- primeRate: number;
82
82
  isMismatched: boolean;
83
83
  calculationStatus: string;
84
84
  __v?: number;
@@ -89,11 +89,11 @@ export declare const TermLoanSchema: mongoose.Schema<any, mongoose.Model<any, an
89
89
  productId: mongoose.Types.ObjectId;
90
90
  actual: boolean;
91
91
  lastCalculated: Date;
92
+ primeRate: number;
92
93
  loanStartDate: Date;
93
94
  initialBalance: number;
94
95
  interestRate: number;
95
96
  adminRate: number;
96
- primeRate: number;
97
97
  isMismatched: boolean;
98
98
  calculationStatus: string;
99
99
  __v?: number;
@@ -104,11 +104,11 @@ export declare const TermLoanSchema: mongoose.Schema<any, mongoose.Model<any, an
104
104
  productId: mongoose.Types.ObjectId;
105
105
  actual: boolean;
106
106
  lastCalculated: Date;
107
+ primeRate: number;
107
108
  loanStartDate: Date;
108
109
  initialBalance: number;
109
110
  interestRate: number;
110
111
  adminRate: number;
111
- primeRate: number;
112
112
  isMismatched: boolean;
113
113
  calculationStatus: string;
114
114
  __v?: number;
@@ -74,6 +74,11 @@ export declare const TermLoanCalculatedSchema: mongoose.Schema<any, mongoose.Mod
74
74
  createdAt: NativeDate;
75
75
  updatedAt: NativeDate;
76
76
  } & {
77
+ payments: mongoose.Types.DocumentArray<{
78
+ amount: number;
79
+ paymentId: mongoose.Types.ObjectId;
80
+ }>;
81
+ adminFee: number;
77
82
  interestRate: number;
78
83
  termLoanId: mongoose.Types.ObjectId;
79
84
  relevantStatement: string;
@@ -81,20 +86,15 @@ export declare const TermLoanCalculatedSchema: mongoose.Schema<any, mongoose.Mod
81
86
  monthlyInterest: number;
82
87
  monthlyPrincipal: number;
83
88
  closingBalance: number;
84
- adminFee: number;
85
89
  interestDaily: number;
86
90
  gracePeriod: boolean;
87
91
  amortization: boolean;
88
- payments: mongoose.Types.DocumentArray<{
89
- amount: number;
90
- paymentId: mongoose.Types.ObjectId;
91
- }>;
92
92
  disbursements: number;
93
93
  dailyResults: mongoose.Types.DocumentArray<{
94
- interestRate: number;
95
94
  day: string;
96
95
  interest: number;
97
96
  paymentDate: boolean;
97
+ interestRate: number;
98
98
  }>;
99
99
  __v?: number;
100
100
  paymentDueDate?: Date;
@@ -102,6 +102,11 @@ export declare const TermLoanCalculatedSchema: mongoose.Schema<any, mongoose.Mod
102
102
  createdAt: NativeDate;
103
103
  updatedAt: NativeDate;
104
104
  } & {
105
+ payments: mongoose.Types.DocumentArray<{
106
+ amount: number;
107
+ paymentId: mongoose.Types.ObjectId;
108
+ }>;
109
+ adminFee: number;
105
110
  interestRate: number;
106
111
  termLoanId: mongoose.Types.ObjectId;
107
112
  relevantStatement: string;
@@ -109,20 +114,15 @@ export declare const TermLoanCalculatedSchema: mongoose.Schema<any, mongoose.Mod
109
114
  monthlyInterest: number;
110
115
  monthlyPrincipal: number;
111
116
  closingBalance: number;
112
- adminFee: number;
113
117
  interestDaily: number;
114
118
  gracePeriod: boolean;
115
119
  amortization: boolean;
116
- payments: mongoose.Types.DocumentArray<{
117
- amount: number;
118
- paymentId: mongoose.Types.ObjectId;
119
- }>;
120
120
  disbursements: number;
121
121
  dailyResults: mongoose.Types.DocumentArray<{
122
- interestRate: number;
123
122
  day: string;
124
123
  interest: number;
125
124
  paymentDate: boolean;
125
+ interestRate: number;
126
126
  }>;
127
127
  __v?: number;
128
128
  paymentDueDate?: Date;
@@ -130,6 +130,11 @@ export declare const TermLoanCalculatedSchema: mongoose.Schema<any, mongoose.Mod
130
130
  createdAt: NativeDate;
131
131
  updatedAt: NativeDate;
132
132
  } & {
133
+ payments: mongoose.Types.DocumentArray<{
134
+ amount: number;
135
+ paymentId: mongoose.Types.ObjectId;
136
+ }>;
137
+ adminFee: number;
133
138
  interestRate: number;
134
139
  termLoanId: mongoose.Types.ObjectId;
135
140
  relevantStatement: string;
@@ -137,20 +142,15 @@ export declare const TermLoanCalculatedSchema: mongoose.Schema<any, mongoose.Mod
137
142
  monthlyInterest: number;
138
143
  monthlyPrincipal: number;
139
144
  closingBalance: number;
140
- adminFee: number;
141
145
  interestDaily: number;
142
146
  gracePeriod: boolean;
143
147
  amortization: boolean;
144
- payments: mongoose.Types.DocumentArray<{
145
- amount: number;
146
- paymentId: mongoose.Types.ObjectId;
147
- }>;
148
148
  disbursements: number;
149
149
  dailyResults: mongoose.Types.DocumentArray<{
150
- interestRate: number;
151
150
  day: string;
152
151
  interest: number;
153
152
  paymentDate: boolean;
153
+ interestRate: number;
154
154
  }>;
155
155
  __v?: number;
156
156
  paymentDueDate?: Date;
@@ -42,8 +42,8 @@ export declare const UploadedFileSchema: mongoose.Schema<any, mongoose.Model<any
42
42
  } & {
43
43
  type: string;
44
44
  converted: boolean;
45
- __v?: number;
46
45
  borrowerId?: mongoose.Types.ObjectId;
46
+ __v?: number;
47
47
  userId?: string;
48
48
  filename?: string;
49
49
  originalName?: string;
@@ -53,8 +53,8 @@ export declare const UploadedFileSchema: mongoose.Schema<any, mongoose.Model<any
53
53
  } & {
54
54
  type: string;
55
55
  converted: boolean;
56
- __v?: number;
57
56
  borrowerId?: mongoose.Types.ObjectId;
57
+ __v?: number;
58
58
  userId?: string;
59
59
  filename?: string;
60
60
  originalName?: string;
@@ -64,8 +64,8 @@ export declare const UploadedFileSchema: mongoose.Schema<any, mongoose.Model<any
64
64
  } & {
65
65
  type: string;
66
66
  converted: boolean;
67
- __v?: number;
68
67
  borrowerId?: mongoose.Types.ObjectId;
68
+ __v?: number;
69
69
  userId?: string;
70
70
  filename?: string;
71
71
  originalName?: string;
@@ -46,24 +46,24 @@ export declare const UploadedSheetSchema: mongoose.Schema<any, mongoose.Model<an
46
46
  createdAt: NativeDate;
47
47
  updatedAt: NativeDate;
48
48
  } & {
49
- sheetName: string;
50
49
  fileId: mongoose.Types.ObjectId;
50
+ sheetName: string;
51
51
  total: number;
52
52
  __v?: number;
53
53
  }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
54
54
  createdAt: NativeDate;
55
55
  updatedAt: NativeDate;
56
56
  } & {
57
- sheetName: string;
58
57
  fileId: mongoose.Types.ObjectId;
58
+ sheetName: string;
59
59
  total: number;
60
60
  __v?: number;
61
61
  }>> & mongoose.FlatRecord<{
62
62
  createdAt: NativeDate;
63
63
  updatedAt: NativeDate;
64
64
  } & {
65
- sheetName: string;
66
65
  fileId: mongoose.Types.ObjectId;
66
+ sheetName: string;
67
67
  total: number;
68
68
  __v?: number;
69
69
  }> & {
@@ -31,10 +31,10 @@ export declare const allSchemas: {
31
31
  createdAt: NativeDate;
32
32
  updatedAt: NativeDate;
33
33
  } & {
34
- bbcSheetId: import("mongoose").Types.ObjectId;
35
34
  order: number;
36
- apDate: Date;
37
35
  amount: number;
36
+ bbcSheetId: import("mongoose").Types.ObjectId;
37
+ apDate: Date;
38
38
  __v?: number;
39
39
  poNumber?: string;
40
40
  customerName?: string;
@@ -45,10 +45,10 @@ export declare const allSchemas: {
45
45
  createdAt: NativeDate;
46
46
  updatedAt: NativeDate;
47
47
  } & {
48
- bbcSheetId: import("mongoose").Types.ObjectId;
49
48
  order: number;
50
- apDate: Date;
51
49
  amount: number;
50
+ bbcSheetId: import("mongoose").Types.ObjectId;
51
+ apDate: Date;
52
52
  __v?: number;
53
53
  poNumber?: string;
54
54
  customerName?: string;
@@ -59,10 +59,10 @@ export declare const allSchemas: {
59
59
  createdAt: NativeDate;
60
60
  updatedAt: NativeDate;
61
61
  } & {
62
- bbcSheetId: import("mongoose").Types.ObjectId;
63
62
  order: number;
64
- apDate: Date;
65
63
  amount: number;
64
+ bbcSheetId: import("mongoose").Types.ObjectId;
65
+ apDate: Date;
66
66
  __v?: number;
67
67
  poNumber?: string;
68
68
  customerName?: string;
@@ -111,6 +111,8 @@ export declare const MODEL_NAMES: {
111
111
  reserves: string;
112
112
  quickbooksAccounts: string;
113
113
  receivableItems: string;
114
+ sales: string;
115
+ salesItem: string;
114
116
  scorecard: string;
115
117
  scorecardAnswer: string;
116
118
  scorecardSubmission: string;
package/models/_models.js CHANGED
@@ -114,6 +114,8 @@ exports.MODEL_NAMES = {
114
114
  reserves: 'reserves',
115
115
  quickbooksAccounts: 'quickbooks_accounts',
116
116
  receivableItems: 'receivableitems',
117
+ sales: 'sales',
118
+ salesItem: 'sales_items',
117
119
  scorecard: 'scorecards',
118
120
  scorecardAnswer: 'scorecard_answers',
119
121
  scorecardSubmission: 'scorecard_submissions',
package/models/_models.ts CHANGED
@@ -113,6 +113,8 @@ export const MODEL_NAMES = {
113
113
  reserves: 'reserves',
114
114
  quickbooksAccounts: 'quickbooks_accounts',
115
115
  receivableItems: 'receivableitems',
116
+ sales: 'sales',
117
+ salesItem: 'sales_items',
116
118
  scorecard: 'scorecards',
117
119
  scorecardAnswer: 'scorecard_answers',
118
120
  scorecardSubmission: 'scorecard_submissions',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemcap-be-common",
3
- "version": "1.5.40",
3
+ "version": "1.5.42",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -45,7 +45,7 @@ export declare class ComplianceBorrowersService {
45
45
  };
46
46
  };
47
47
  getFullComplianceBorrowerById(complianceBorrowerId: string): Promise<any>;
48
- getAllBorrowersShortened(userAccess: IUserAccess): Promise<(Pick<IComplianceBorrowerWithBorrower, "items" | "borrower" | "fundingStatus"> | {
48
+ getAllBorrowersShortened(userAccess: IUserAccess): Promise<(Pick<IComplianceBorrowerWithBorrower, "borrower" | "fundingStatus" | "items"> | {
49
49
  items: {
50
50
  instances: any[];
51
51
  item: import("../models/ComplianceItem.model").IComplianceItemDocument;
@@ -116,6 +116,7 @@ class NodemailerService {
116
116
  this.sentryService.catchErrorBySentry(null, err);
117
117
  throw err;
118
118
  }
119
+ console.debug({ info });
119
120
  console.log(info.envelope);
120
121
  console.log(info.messageId);
121
122
  console.log('Message sent: %s', info.messageId);
@@ -520,11 +521,9 @@ class NodemailerService {
520
521
  .replace('${signature}', signature);
521
522
  try {
522
523
  this.transporter.sendMail({
523
- from: 'dev@blackfeatherfunding.com',
524
- to: 'echonok@gmail.com',
525
- // from: `${senderEmail.title} <${senderEmail.address}>`,
526
- // to: email.addresses,
527
- // cc: `${senderEmail.title} <${senderEmail.address}>`,
524
+ from: `${senderEmail.title} <${senderEmail.address}>`,
525
+ to: email.addresses,
526
+ cc: `${senderEmail.title} <${senderEmail.address}>`,
528
527
  subject: email.subject,
529
528
  text: email.subject,
530
529
  html: replacedData,
@@ -128,6 +128,7 @@ export class NodemailerService {
128
128
  this.sentryService.catchErrorBySentry(null, err);
129
129
  throw err;
130
130
  }
131
+ console.debug({ info });
131
132
  console.log(info.envelope);
132
133
  console.log(info.messageId);
133
134
  console.log('Message sent: %s', info.messageId);
@@ -61,6 +61,7 @@ const Equipment_model_1 = __importDefault(require("../models/Equipment.model"));
61
61
  const Reserve_model_1 = __importDefault(require("../models/Reserve.model"));
62
62
  const quickbook_item_1 = require("../classes/quickbook-item");
63
63
  const bank_uploaded_transaction_1 = require("../classes/bank-uploaded-transaction");
64
+ const sales_item_1 = require("../classes/sales-item");
64
65
  const validators = {
65
66
  [validators_enums_1.EValidators.NOT_EMPTY]: (field, value) => {
66
67
  if (!value || value.toString().trim() === '') {
@@ -457,6 +458,7 @@ class UploadsService {
457
458
  [collaterals_enum_1.ECollaterals.INVENTORY]: () => new inventory_item_1.InventoryItem(row, bbcDate, skuDates),
458
459
  [collaterals_enum_1.ECollaterals.RECEIVABLE]: () => new receivable_item_1.ReceivableItem(row, bbcDate),
459
460
  [collaterals_enum_1.ECollaterals.ACCOUNT_PAYABLE]: () => new payable_account_item_1.PayableAccountItem(row, bbcDate),
461
+ [collaterals_enum_1.ECollaterals.SALES]: () => new sales_item_1.SalesItem(row, bbcDate),
460
462
  [collaterals_enum_1.ECollaterals.LOAN_TRANSACTIONS]: async () => {
461
463
  const newItem = new bank_transaction_item_1.LoanTransactionItem(row, this.borrowersDB);
462
464
  const classErrors = await newItem.initialize();
@@ -53,6 +53,7 @@ import { UserLogsService } from './user-logs.service';
53
53
  import { LockService } from './lock.service';
54
54
  import { BorrowersDB } from './borrowers.db';
55
55
  import { UsersService } from './users.service';
56
+ import { SalesItem } from '../classes/sales-item';
56
57
 
57
58
  interface IMappedColumns {
58
59
  [columnName: string]: number;
@@ -514,6 +515,7 @@ export class UploadsService {
514
515
  [ECollaterals.INVENTORY]: () => new InventoryItem(row, bbcDate, skuDates),
515
516
  [ECollaterals.RECEIVABLE]: () => new ReceivableItem(row, bbcDate),
516
517
  [ECollaterals.ACCOUNT_PAYABLE]: () => new PayableAccountItem(row, bbcDate),
518
+ [ECollaterals.SALES]: () => new SalesItem(row, bbcDate),
517
519
  [ECollaterals.LOAN_TRANSACTIONS]: async () => {
518
520
  const newItem = new LoanTransactionItem(row, this.borrowersDB);
519
521
  const classErrors = await newItem.initialize();