law-common 10.73.1 → 10.74.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.
@@ -6,7 +6,7 @@ import { ProjectUserStatusEnum } from "../enums/project_user_status.enum";
6
6
  import { UserRoleEnum } from "../enums/user.entity.enum";
7
7
  import { IClientEntity } from "./client.entity.interface";
8
8
  import { IEntityAuditColumn } from "./entity-audit-columns.interface";
9
- import { IEntityCreateDto, IEntityFilterData, IEntityUpdateDto } from "./entity.utils.interface";
9
+ import { IEntityCreateDto, IEntityFilterData, IEntityUpdateDto, Nullable } from "./entity.utils.interface";
10
10
  import { IProjectRevenueSplitMappingEntity } from "./project-revenue-split-mapping.entity";
11
11
  import { IUserEntity } from "./user.entity.interface";
12
12
  export interface IProjectEntity extends IEntityAuditColumn {
@@ -25,6 +25,14 @@ export interface IProjectEntity extends IEntityAuditColumn {
25
25
  billingOverdueDays?: number;
26
26
  billToClientAffiliateId?: number | null;
27
27
  revenueSplit: ProjectRevenueSplit;
28
+ usageNotificationSentPercentage?: Nullable<UsageNotificationThresholdEnum>;
29
+ clientQuoteId?: Nullable<number>;
30
+ }
31
+ export declare enum UsageNotificationThresholdEnum {
32
+ SEVENTY_FIVE = "75",
33
+ NINETY = "90",
34
+ NINETY_FIVE = "95",
35
+ ONE_HUNDRED = "100"
28
36
  }
29
37
  export interface IProjectUserDto {
30
38
  id: number;
@@ -35,7 +43,7 @@ export interface IProjectEntityDependent {
35
43
  users: IProjectUserDto[];
36
44
  revenueSplitData: IProjectRevenueSplitData[];
37
45
  }
38
- export type IProjectExclude = "organizationId" | "billingRate";
46
+ export type IProjectExclude = "organizationId" | "billingRate" | "usageNotificationSentPercentage";
39
47
  export interface IProjectExcludeT extends Pick<IProjectEntity, IProjectExclude> {
40
48
  }
41
49
  export interface IProjectHourlyRate {
@@ -1,2 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UsageNotificationThresholdEnum = void 0;
4
+ var UsageNotificationThresholdEnum;
5
+ (function (UsageNotificationThresholdEnum) {
6
+ UsageNotificationThresholdEnum["SEVENTY_FIVE"] = "75";
7
+ UsageNotificationThresholdEnum["NINETY"] = "90";
8
+ UsageNotificationThresholdEnum["NINETY_FIVE"] = "95";
9
+ UsageNotificationThresholdEnum["ONE_HUNDRED"] = "100";
10
+ })(UsageNotificationThresholdEnum || (exports.UsageNotificationThresholdEnum = UsageNotificationThresholdEnum = {}));
@@ -1,9 +1,9 @@
1
1
  import { EntityEnum } from "../interface/entity.utils.interface";
2
- import { BaseEntityModel } from "./base.entity.model";
3
2
  import { RelationConfigs } from "../interface/relation-config.interface";
4
- import { IClientQuoteEntity } from "../interface/client_quote.entity.interface";
3
+ import { BaseEntityModel } from "./base.entity.model";
5
4
  import { ClientQuoteCurrencyEnum } from "../enums/client_quote_currency_enum";
6
5
  import { ClientQuoteStatusEnum } from "../enums/client_quote_status_enum";
6
+ import { IClientQuoteEntity } from "../interface/client_quote.entity.interface";
7
7
  import { ClientQuoteRateEntityModel } from "./client_quote_rate.entity.model";
8
8
  export declare class ClientQuoteEntityModel extends BaseEntityModel<EntityEnum.CLIENT_QUOTE> implements IClientQuoteEntity {
9
9
  id: number;
@@ -26,4 +26,5 @@ export declare class ClientQuoteEntityModel extends BaseEntityModel<EntityEnum.C
26
26
  static relationConfigs: RelationConfigs<[EntityEnum.CLIENT_QUOTE_RATE], EntityEnum.CLIENT_QUOTE>;
27
27
  static fromEntity(entity: IClientQuoteEntity): ClientQuoteEntityModel;
28
28
  getRelationConfigs(): any[];
29
+ get maxEstimatedHours(): number;
29
30
  }
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientQuoteEntityModel = void 0;
4
+ const relation_type_enum_1 = require("../enums/relation-type.enum");
4
5
  const entity_utils_interface_1 = require("../interface/entity.utils.interface");
5
6
  const base_entity_model_1 = require("./base.entity.model");
6
- const relation_type_enum_1 = require("../enums/relation-type.enum");
7
+ const utils_1 = require("../../utils");
7
8
  const client_quote_currency_enum_1 = require("../enums/client_quote_currency_enum");
8
9
  const client_quote_status_enum_1 = require("../enums/client_quote_status_enum");
9
10
  class ClientQuoteEntityModel extends base_entity_model_1.BaseEntityModel {
@@ -33,6 +34,11 @@ class ClientQuoteEntityModel extends base_entity_model_1.BaseEntityModel {
33
34
  getRelationConfigs() {
34
35
  return this.constructor.prototype.constructor.relationConfigs || [];
35
36
  }
37
+ get maxEstimatedHours() {
38
+ if (!this.clientQuoteRates)
39
+ return 0;
40
+ return (0, utils_1.sumNormalised)(this.clientQuoteRates, "maxHour");
41
+ }
36
42
  }
37
43
  exports.ClientQuoteEntityModel = ClientQuoteEntityModel;
38
44
  ClientQuoteEntityModel.relationConfigs = [
@@ -1,7 +1,8 @@
1
1
  import { EntityEnum } from "../interface/entity.utils.interface";
2
- import { BaseEntityModel } from "./base.entity.model";
3
2
  import { RelationConfigs } from "../interface/relation-config.interface";
3
+ import { BaseEntityModel } from "./base.entity.model";
4
4
  import { IClientQuoteRateEntity } from "../interface/client_quote_rate.entity.interface";
5
+ import { ClientAffiliateEntityModel } from "./client-affiliate.entity.model";
5
6
  export declare class ClientQuoteRateEntityModel extends BaseEntityModel<EntityEnum.CLIENT_QUOTE_RATE> implements IClientQuoteRateEntity {
6
7
  id: number;
7
8
  clientQuoteId: number;
@@ -19,7 +20,8 @@ export declare class ClientQuoteRateEntityModel extends BaseEntityModel<EntityEn
19
20
  updatedOn: number;
20
21
  createdBy: number;
21
22
  updatedBy: number;
22
- static relationConfigs: RelationConfigs<[], EntityEnum.CLIENT_QUOTE_RATE>;
23
+ clientQuote?: ClientAffiliateEntityModel;
24
+ static relationConfigs: RelationConfigs<[EntityEnum.CLIENT_QUOTE], EntityEnum.CLIENT_QUOTE_RATE>;
23
25
  static fromEntity(entity: IClientQuoteRateEntity): ClientQuoteRateEntityModel;
24
26
  getRelationConfigs(): any[];
25
27
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientQuoteRateEntityModel = void 0;
4
4
  const entity_utils_interface_1 = require("../interface/entity.utils.interface");
5
5
  const base_entity_model_1 = require("./base.entity.model");
6
+ const relation_type_enum_1 = require("../enums/relation-type.enum");
6
7
  class ClientQuoteRateEntityModel extends base_entity_model_1.BaseEntityModel {
7
8
  constructor() {
8
9
  super(...arguments);
@@ -33,4 +34,14 @@ class ClientQuoteRateEntityModel extends base_entity_model_1.BaseEntityModel {
33
34
  }
34
35
  }
35
36
  exports.ClientQuoteRateEntityModel = ClientQuoteRateEntityModel;
36
- ClientQuoteRateEntityModel.relationConfigs = [];
37
+ ClientQuoteRateEntityModel.relationConfigs = [
38
+ {
39
+ name: entity_utils_interface_1.EntityEnum.CLIENT_QUOTE,
40
+ relation: relation_type_enum_1.RelationType.ONE,
41
+ key: "clientQuote",
42
+ mapKeyConfig: {
43
+ relationKey: "id",
44
+ key: "clientQuoteId",
45
+ },
46
+ },
47
+ ];
@@ -1,8 +1,8 @@
1
1
  import { CurrencyEnum } from "../../enums";
2
2
  import { ProjectRevenueSplit } from "../enums/project-revenue-split.enum";
3
3
  import { ProjectBillingTypeEnum, ProjectStatusEnum } from "../enums/project.entity.enum";
4
- import { EntityEnum } from "../interface/entity.utils.interface";
5
- import { IProjectEntity, IProjectUserDto } from "../interface/project.entity.interface";
4
+ import { EntityEnum, Nullable } from "../interface/entity.utils.interface";
5
+ import { IProjectEntity, IProjectUserDto, UsageNotificationThresholdEnum } from "../interface/project.entity.interface";
6
6
  import { RelationConfigs } from "../interface/relation-config.interface";
7
7
  import { BaseEntityModel } from "./base.entity.model";
8
8
  import { ClientEntityModel } from "./client.entity.model";
@@ -27,6 +27,8 @@ export declare class ProjectEntityModel extends BaseEntityModel<EntityEnum.PROJE
27
27
  updatedOn: number;
28
28
  billToClientAffiliateId?: number | null;
29
29
  revenueSplit: ProjectRevenueSplit;
30
+ usageNotificationSentPercentage?: Nullable<UsageNotificationThresholdEnum>;
31
+ clientQuoteId?: Nullable<number>;
30
32
  users?: IProjectUserDto[];
31
33
  billingOverdueDays?: number;
32
34
  userMappings?: (UserEntityModel & ProjectUserMappingEntityModel)[];
@@ -37,4 +39,6 @@ export declare class ProjectEntityModel extends BaseEntityModel<EntityEnum.PROJE
37
39
  populateUsers(users: UserEntityModel[], projectUserMapping: ProjectUserMappingEntityModel[]): void;
38
40
  getRelationConfigs(): [import("../interface/relation-config.interface").IRelationConfig<EntityEnum.PROJECT_USER_MAPPING, EntityEnum.PROJECT>, import("../interface/relation-config.interface").IRelationConfig<EntityEnum.CLIENT, EntityEnum.PROJECT>];
39
41
  isForeignCurrencyProjoect(): boolean;
42
+ get parsedBillingRate(): any;
43
+ isHourlyProject(): boolean;
40
44
  }
@@ -25,6 +25,8 @@ class ProjectEntityModel extends base_entity_model_1.BaseEntityModel {
25
25
  this.updatedOn = 0;
26
26
  this.billToClientAffiliateId = null;
27
27
  this.revenueSplit = project_revenue_split_enum_1.ProjectRevenueSplit.NO;
28
+ this.usageNotificationSentPercentage = null;
29
+ this.clientQuoteId = null;
28
30
  this.users = [];
29
31
  this.client = {};
30
32
  }
@@ -49,6 +51,8 @@ class ProjectEntityModel extends base_entity_model_1.BaseEntityModel {
49
51
  result.billingOverdueDays = entity.billingOverdueDays;
50
52
  result.billToClientAffiliateId = entity.billingOverdueDays;
51
53
  result.revenueSplit = entity.revenueSplit;
54
+ result.usageNotificationSentPercentage = entity.usageNotificationSentPercentage;
55
+ result.clientQuoteId = result.clientQuoteId;
52
56
  return result;
53
57
  }
54
58
  populateUsers(users, projectUserMapping) {
@@ -89,6 +93,12 @@ class ProjectEntityModel extends base_entity_model_1.BaseEntityModel {
89
93
  isForeignCurrencyProjoect() {
90
94
  return this.currency !== enums_1.CurrencyEnum.INR;
91
95
  }
96
+ get parsedBillingRate() {
97
+ return this.billingRate ? JSON.parse(this.billingRate) : null;
98
+ }
99
+ isHourlyProject() {
100
+ return this.billingType === project_entity_enum_1.ProjectBillingTypeEnum.HOURLY;
101
+ }
92
102
  }
93
103
  exports.ProjectEntityModel = ProjectEntityModel;
94
104
  ProjectEntityModel.relationConfigs = [
package/dist/src/index.js CHANGED
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
27
  };
@@ -149,12 +149,12 @@ export declare function getEnumNames(enumType: object): string[];
149
149
  export declare function getFilterByPermission<T extends EnumEntityType<EntityEnum>>(permissionFilterConfig: {
150
150
  [key: string]: IEntityFilterData<T>;
151
151
  }, propertyName: keyof T, userPermission: string, filterDto: IEntityFilterData<T>, emptyValue?: any): {
152
- [propertyName]: any;
152
+ [x: string]: any;
153
153
  };
154
154
  export declare function getFilterByPermissionFn<T extends EnumEntityType<EntityEnum>>(permissionFilterConfig: {
155
155
  [key: string]: () => Promise<IEntityFilterData<T>>;
156
156
  }, propertyName: keyof T, userPermission: string, filterDto: IEntityFilterData<T>, emptyValue?: any): Promise<{
157
- [propertyName]: any;
157
+ [x: string]: any;
158
158
  }>;
159
159
  export declare function getPropertyFilterByPermissionFn<T extends EnumEntityType<EntityEnum>>(permissionFilterConfig: {
160
160
  [key: string]: () => Promise<IEntityFilterData<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "law-common",
3
- "version": "10.73.1",
3
+ "version": "10.74.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [