gemcap-be-common 1.5.74 → 1.5.76

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.
@@ -7,6 +7,7 @@ interface ISalesLocal {
7
7
  unitSalePrice?: number;
8
8
  salesPeriodStart?: Date;
9
9
  salesPeriodEnd?: Date;
10
+ salesPerDay?: number;
10
11
  }
11
12
  export declare class SalesItem implements ISalesLocal {
12
13
  bbcDate: Date;
@@ -17,6 +18,9 @@ export declare class SalesItem implements ISalesLocal {
17
18
  unitSalePrice: number;
18
19
  salesPeriodStart: Date | null;
19
20
  salesPeriodEnd: Date | null;
20
- constructor(item: Partial<SalesItem>, bbcDate?: any);
21
+ salesPerDay?: number;
22
+ constructor(item: Partial<SalesItem>, bbcDate: any, options: {
23
+ [extraOption: string]: string;
24
+ });
21
25
  }
22
26
  export {};
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SalesItem = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
+ const dayjs_1 = __importDefault(require("dayjs"));
8
9
  const column_desciptions_helper_1 = require("../helpers/column-desciptions.helper");
9
10
  const collaterals_enum_1 = require("../enums/collaterals.enum");
10
11
  class SalesItem {
@@ -16,7 +17,16 @@ class SalesItem {
16
17
  unitSalePrice = 0;
17
18
  salesPeriodStart = null;
18
19
  salesPeriodEnd = null;
19
- constructor(item, bbcDate = null) {
20
+ salesPerDay = 0;
21
+ constructor(item, bbcDate = null, options) {
22
+ if (options && options.salesPeriodStart) {
23
+ item.salesPeriodStart = dayjs_1.default.utc(options.salesPeriodStart).toDate();
24
+ }
25
+ if (options && options.salesPeriodEnd) {
26
+ item.salesPeriodEnd = dayjs_1.default.utc(options.salesPeriodEnd).toDate();
27
+ }
28
+ const salesPeriod = dayjs_1.default.utc(item.salesPeriodStart).diff(dayjs_1.default.utc(options.salesPeriodEnd), 'day');
29
+ this.salesPerDay = salesPeriod > 0 ? item.unitsSold / salesPeriod : 0;
20
30
  const itemWithDates = (0, column_desciptions_helper_1.convertIntoDates)(item, collaterals_enum_1.ECollaterals.SALES);
21
31
  const itemWithoutNulls = lodash_1.default.omitBy(itemWithDates, (value) => value === null);
22
32
  Object.assign(this, itemWithoutNulls);
@@ -1,4 +1,5 @@
1
1
  import _ from 'lodash';
2
+ import dayjs from 'dayjs';
2
3
 
3
4
  import { convertIntoDates } from '../helpers/column-desciptions.helper';
4
5
  import { ECollaterals } from '../enums/collaterals.enum';
@@ -12,6 +13,7 @@ interface ISalesLocal {
12
13
  unitSalePrice?: number;
13
14
  salesPeriodStart?: Date;
14
15
  salesPeriodEnd?: Date;
16
+ salesPerDay?: number;
15
17
  }
16
18
 
17
19
  export class SalesItem implements ISalesLocal {
@@ -24,8 +26,17 @@ export class SalesItem implements ISalesLocal {
24
26
  unitSalePrice: number = 0;
25
27
  salesPeriodStart: Date | null = null;
26
28
  salesPeriodEnd: Date | null = null;
29
+ salesPerDay?: number = 0;
27
30
 
28
- constructor(item: Partial<SalesItem>, bbcDate = null) {
31
+ constructor(item: Partial<SalesItem>, bbcDate = null, options: { [extraOption: string]: string }) {
32
+ if (options && options.salesPeriodStart) {
33
+ item.salesPeriodStart = dayjs.utc(options.salesPeriodStart).toDate();
34
+ }
35
+ if (options && options.salesPeriodEnd) {
36
+ item.salesPeriodEnd = dayjs.utc(options.salesPeriodEnd).toDate();
37
+ }
38
+ const salesPeriod = dayjs.utc(item.salesPeriodStart).diff(dayjs.utc(options.salesPeriodEnd), 'day');
39
+ this.salesPerDay = salesPeriod > 0 ? item.unitsSold / salesPeriod : 0;
29
40
  const itemWithDates = convertIntoDates(item, ECollaterals.SALES);
30
41
  const itemWithoutNulls = _.omitBy(itemWithDates, (value) => value === null);
31
42
  Object.assign(this, itemWithoutNulls);
@@ -81,7 +81,7 @@ export declare const createQuery: (groupFields: {
81
81
  };
82
82
  };
83
83
  itemQueries: any;
84
- enumKey: "INVENTORY" | "RECEIVABLE" | "ACCOUNT_PAYABLE" | "SALES" | "LOAN_TRANSACTIONS" | "UPLOADED_BANK_TRANSACTIONS" | "QUICKBOOKS" | "OTHER" | "CASH";
84
+ enumKey: "INVENTORY" | "RECEIVABLE" | "ACCOUNT_PAYABLE" | "SALES" | "OTHER" | "CASH" | "LOAN_TRANSACTIONS" | "QUICKBOOKS" | "UPLOADED_BANK_TRANSACTIONS";
85
85
  };
86
86
  export declare const ITEMS_PAGINATION: (paginatorOptions: IPaginatorOptions) => ({
87
87
  $skip: number;
@@ -260,14 +260,14 @@ exports.COLLATERALS = {
260
260
  title: 'Sales period start',
261
261
  required: true,
262
262
  items: [],
263
- validators: [validators_enums_1.EValidators.NOT_EMPTY, validators_enums_1.EValidators.IS_DATE],
263
+ validators: [validators_enums_1.EValidators.IS_DATE],
264
264
  },
265
265
  {
266
266
  db_title: 'salesPeriodEnd',
267
267
  title: 'Sales period end',
268
268
  required: true,
269
269
  items: [],
270
- validators: [validators_enums_1.EValidators.NOT_EMPTY, validators_enums_1.EValidators.IS_DATE],
270
+ validators: [validators_enums_1.EValidators.IS_DATE],
271
271
  },
272
272
  ],
273
273
  [collaterals_enum_1.ECollaterals.LOAN_TRANSACTIONS]: [
@@ -260,14 +260,14 @@ COLLATERALS = {
260
260
  title: 'Sales period start',
261
261
  required: true,
262
262
  items: [],
263
- validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
263
+ validators: [EValidators.IS_DATE],
264
264
  },
265
265
  {
266
266
  db_title: 'salesPeriodEnd',
267
267
  title: 'Sales period end',
268
268
  required: true,
269
269
  items: [],
270
- validators: [EValidators.NOT_EMPTY, EValidators.IS_DATE],
270
+ validators: [EValidators.IS_DATE],
271
271
  },
272
272
  ],
273
273
  [ECollaterals.LOAN_TRANSACTIONS]: [
@@ -37,6 +37,7 @@ export interface ISalesItem extends ICollateralItem {
37
37
  unitSalePrice?: number;
38
38
  salesPeriodStart: Date;
39
39
  salesPeriodEnd: Date;
40
+ salesPerDay: number;
40
41
  }
41
42
  export interface ISalesItemLean extends ISalesItem {
42
43
  _id: mongoose.Types.ObjectId;
@@ -66,6 +67,7 @@ export declare const SalesItemSchema: mongoose.Schema<any, mongoose.Model<any, a
66
67
  unitSalePrice?: number;
67
68
  salesPeriodStart?: Date;
68
69
  salesPeriodEnd?: Date;
70
+ salesPerDay?: number;
69
71
  __v?: number;
70
72
  }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
71
73
  createdAt: NativeDate;
@@ -80,6 +82,7 @@ export declare const SalesItemSchema: mongoose.Schema<any, mongoose.Model<any, a
80
82
  unitSalePrice?: number;
81
83
  salesPeriodStart?: Date;
82
84
  salesPeriodEnd?: Date;
85
+ salesPerDay?: number;
83
86
  __v?: number;
84
87
  }>> & mongoose.FlatRecord<{
85
88
  createdAt: NativeDate;
@@ -94,6 +97,7 @@ export declare const SalesItemSchema: mongoose.Schema<any, mongoose.Model<any, a
94
97
  unitSalePrice?: number;
95
98
  salesPeriodStart?: Date;
96
99
  salesPeriodEnd?: Date;
100
+ salesPerDay?: number;
97
101
  __v?: number;
98
102
  }> & {
99
103
  _id: mongoose.Types.ObjectId;
@@ -15,6 +15,7 @@ exports.SALES_FIELDS = [
15
15
  'unitSalePrice',
16
16
  'salesPeriodStart',
17
17
  'salesPeriodEnd',
18
+ 'salesPerDay',
18
19
  ];
19
20
  exports.SalesItemSchema = new mongoose_1.default.Schema({
20
21
  bbcSheetId: {
@@ -54,6 +55,9 @@ exports.SalesItemSchema = new mongoose_1.default.Schema({
54
55
  salesPeriodEnd: {
55
56
  type: Date,
56
57
  },
58
+ salesPerDay: {
59
+ type: Number,
60
+ },
57
61
  __v: { type: Number, select: false },
58
62
  }, { timestamps: true });
59
63
  exports.SalesItem = mongoose_1.default.model(_models_1.MODEL_NAMES.salesItem, exports.SalesItemSchema);
@@ -12,6 +12,7 @@ export const SALES_FIELDS = [
12
12
  'unitSalePrice',
13
13
  'salesPeriodStart',
14
14
  'salesPeriodEnd',
15
+ 'salesPerDay',
15
16
  ];
16
17
 
17
18
  export interface ISalesItem extends ICollateralItem {
@@ -22,6 +23,7 @@ export interface ISalesItem extends ICollateralItem {
22
23
  unitSalePrice?: number;
23
24
  salesPeriodStart: Date;
24
25
  salesPeriodEnd: Date;
26
+ salesPerDay: number;
25
27
  }
26
28
 
27
29
  export interface ISalesItemLean extends ISalesItem {
@@ -80,9 +82,12 @@ export const SalesItemSchema = new mongoose.Schema(
80
82
  salesPeriodEnd: {
81
83
  type: Date,
82
84
  },
85
+ salesPerDay: {
86
+ type: Number,
87
+ },
83
88
  __v: { type: Number, select: false },
84
89
  },
85
90
  { timestamps: true }
86
91
  );
87
92
 
88
- export const SalesItem = mongoose.model<ICollateralItem, TSalesItemModel>(MODEL_NAMES.salesItem, SalesItemSchema);
93
+ export const SalesItem = mongoose.model<ISalesItem, TSalesItemModel>(MODEL_NAMES.salesItem, SalesItemSchema);
@@ -35,10 +35,10 @@ export declare const allSchemas: {
35
35
  createdAt: NativeDate;
36
36
  updatedAt: NativeDate;
37
37
  } & {
38
- order: number;
39
- amount: number;
40
38
  bbcSheetId: import("mongoose").Types.ObjectId;
39
+ order: number;
41
40
  apDate: Date;
41
+ amount: number;
42
42
  __v?: number;
43
43
  poNumber?: string;
44
44
  customerName?: string;
@@ -49,10 +49,10 @@ export declare const allSchemas: {
49
49
  createdAt: NativeDate;
50
50
  updatedAt: NativeDate;
51
51
  } & {
52
- order: number;
53
- amount: number;
54
52
  bbcSheetId: import("mongoose").Types.ObjectId;
53
+ order: number;
55
54
  apDate: Date;
55
+ amount: number;
56
56
  __v?: number;
57
57
  poNumber?: string;
58
58
  customerName?: string;
@@ -63,10 +63,10 @@ export declare const allSchemas: {
63
63
  createdAt: NativeDate;
64
64
  updatedAt: NativeDate;
65
65
  } & {
66
- order: number;
67
- amount: number;
68
66
  bbcSheetId: import("mongoose").Types.ObjectId;
67
+ order: number;
69
68
  apDate: Date;
69
+ amount: number;
70
70
  __v?: number;
71
71
  poNumber?: string;
72
72
  customerName?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemcap-be-common",
3
- "version": "1.5.74",
3
+ "version": "1.5.76",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -86,10 +86,10 @@ export declare class BorrowerService {
86
86
  getBorrowerCodesMap(): Promise<Map<string, string>>;
87
87
  getBorrowerStatementDetails(borrowers: IBorrowerDoc[]): Promise<{
88
88
  [x: string]: {
89
- LAST_MONTH?: boolean;
90
- CURRENT_MONTH?: boolean;
91
89
  ENTIRE_LOAN?: boolean;
92
90
  SELECTED_PERIOD?: boolean;
91
+ CURRENT_MONTH?: boolean;
92
+ LAST_MONTH?: boolean;
93
93
  TERM_LOAN?: boolean;
94
94
  };
95
95
  }>;
@@ -458,7 +458,7 @@ class UploadsService {
458
458
  [collaterals_enum_1.ECollaterals.INVENTORY]: () => new inventory_item_1.InventoryItem(row, bbcDate, skuDates),
459
459
  [collaterals_enum_1.ECollaterals.RECEIVABLE]: () => new receivable_item_1.ReceivableItem(row, bbcDate),
460
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),
461
+ [collaterals_enum_1.ECollaterals.SALES]: () => new sales_item_1.SalesItem(row, bbcDate, mapData.extraOptions),
462
462
  [collaterals_enum_1.ECollaterals.LOAN_TRANSACTIONS]: async () => {
463
463
  const newItem = new bank_transaction_item_1.LoanTransactionItem(row, this.borrowersDB);
464
464
  const classErrors = await newItem.initialize();
@@ -515,7 +515,7 @@ export class UploadsService {
515
515
  [ECollaterals.INVENTORY]: () => new InventoryItem(row, bbcDate, skuDates),
516
516
  [ECollaterals.RECEIVABLE]: () => new ReceivableItem(row, bbcDate),
517
517
  [ECollaterals.ACCOUNT_PAYABLE]: () => new PayableAccountItem(row, bbcDate),
518
- [ECollaterals.SALES]: () => new SalesItem(row, bbcDate),
518
+ [ECollaterals.SALES]: () => new SalesItem(row, bbcDate, mapData.extraOptions),
519
519
  [ECollaterals.LOAN_TRANSACTIONS]: async () => {
520
520
  const newItem = new LoanTransactionItem(row, this.borrowersDB);
521
521
  const classErrors = await newItem.initialize();