@silexpert/core 2.0.98 → 2.0.100

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 (37) hide show
  1. package/dist/types/Enum/SocietyApproval.js +12 -12
  2. package/dist/types/Enum/SocietyApproval.js.map +1 -1
  3. package/dist/types/Enum/Zendesk.d.ts +26 -0
  4. package/dist/types/Enum/Zendesk.d.ts.map +1 -1
  5. package/dist/types/Enum/Zendesk.js +49 -0
  6. package/dist/types/Enum/Zendesk.js.map +1 -1
  7. package/dist/types/Interface/api/account/Update.d.ts +1 -0
  8. package/dist/types/Interface/api/account/Update.d.ts.map +1 -1
  9. package/dist/types/Interface/api/account/Update.js +5 -0
  10. package/dist/types/Interface/api/account/Update.js.map +1 -1
  11. package/dist/types/Interface/api/kyc/Read.d.ts +10 -1
  12. package/dist/types/Interface/api/kyc/Read.d.ts.map +1 -1
  13. package/dist/types/Interface/api/kyc/Read.js +8 -1
  14. package/dist/types/Interface/api/kyc/Read.js.map +1 -1
  15. package/dist/types/Interface/api/zendesk/QueryTicket.d.ts +3 -1
  16. package/dist/types/Interface/api/zendesk/QueryTicket.d.ts.map +1 -1
  17. package/dist/types/Interface/api/zendesk/QueryTicket.js +15 -1
  18. package/dist/types/Interface/api/zendesk/QueryTicket.js.map +1 -1
  19. package/dist/types/Interface/models/IEInvoicingKycAndMandate.d.ts +1 -0
  20. package/dist/types/Interface/models/IEInvoicingKycAndMandate.d.ts.map +1 -1
  21. package/dist/types/Interface/models/IEInvoicingKycAndMandate.js +1 -0
  22. package/dist/types/Interface/models/IEInvoicingKycAndMandate.js.map +1 -1
  23. package/dist/utils/commercialManagement/document.d.ts.map +1 -1
  24. package/dist/utils/commercialManagement/document.js +1 -1
  25. package/dist/utils/commercialManagement/document.js.map +1 -1
  26. package/dist/utils/societyApproval.d.ts.map +1 -1
  27. package/dist/utils/societyApproval.js +5 -4
  28. package/dist/utils/societyApproval.js.map +1 -1
  29. package/package.json +1 -1
  30. package/ts/types/Enum/SocietyApproval.ts +12 -12
  31. package/ts/types/Enum/Zendesk.ts +71 -0
  32. package/ts/types/Interface/api/account/Update.ts +3 -0
  33. package/ts/types/Interface/api/kyc/Read.ts +11 -1
  34. package/ts/types/Interface/api/zendesk/QueryTicket.ts +12 -0
  35. package/ts/types/Interface/models/IEInvoicingKycAndMandate.ts +1 -0
  36. package/ts/utils/commercialManagement/document.ts +3 -1
  37. package/ts/utils/societyApproval.ts +7 -3
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { IsString, IsNotEmpty, IsOptional, IsEnum, IsArray, IsNumber, MinLength, IsInt, Min, Max, IsDateString, } from 'class-validator';
11
11
  import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
12
- import { ZendeskTicketChannelEnum, ZendeskTicketPriorityEnum, ZendeskTicketStatusEnum, ZendeskTicketTypeEnum, } from '../../../../types/Enum/Zendesk.js';
12
+ import { ZendeskTicketCategoryEnum, ZendeskTicketChannelEnum, ZendeskTicketPriorityEnum, ZendeskTicketStatusEnum, ZendeskTicketTypeEnum, } from '../../../../types/Enum/Zendesk.js';
13
13
  export class CreateZendeskTicket {
14
14
  subject;
15
15
  body;
@@ -22,6 +22,8 @@ export class CreateZendeskTicket {
22
22
  assigneeId;
23
23
  groupId;
24
24
  organizationId;
25
+ ticketFormId;
26
+ category;
25
27
  }
26
28
  __decorate([
27
29
  ApiProperty(),
@@ -92,6 +94,18 @@ __decorate([
92
94
  IsNumber(),
93
95
  __metadata("design:type", Number)
94
96
  ], CreateZendeskTicket.prototype, "organizationId", void 0);
97
+ __decorate([
98
+ ApiPropertyOptional(),
99
+ IsOptional(),
100
+ IsNumber(),
101
+ __metadata("design:type", Number)
102
+ ], CreateZendeskTicket.prototype, "ticketFormId", void 0);
103
+ __decorate([
104
+ ApiPropertyOptional(),
105
+ IsOptional(),
106
+ IsEnum(ZendeskTicketCategoryEnum),
107
+ __metadata("design:type", String)
108
+ ], CreateZendeskTicket.prototype, "category", void 0);
95
109
  export class UpdateZendeskTicket {
96
110
  subject;
97
111
  body;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryTicket.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/api/zendesk/QueryTicket.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,EACH,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAEL,wBAAwB,EAExB,yBAAyB,EAEzB,uBAAuB,EAEvB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,OAAO,mBAAmB;IAK9B,OAAO,CAAS;IAKhB,IAAI,CAAS;IAMb,WAAW,CAAY;IAKvB,MAAM,CAAuB;IAK7B,QAAQ,CAAyB;IAKjC,IAAI,CAAqB;IAMzB,IAAI,CAAY;IAKhB,WAAW,CAAU;IAKrB,UAAU,CAAU;IAKpB,OAAO,CAAU;IAKjB,cAAc,CAAU;CACzB;AArDC;IAJC,WAAW,EAAE;IACb,QAAQ,EAAE;IACV,UAAU,EAAE;IACZ,SAAS,CAAC,CAAC,CAAC;;oDACG;AAKhB;IAHC,WAAW,EAAE;IACb,QAAQ,EAAE;IACV,UAAU,EAAE;;iDACA;AAMb;IAJC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wDACF;AAKvB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,uBAAuB,CAAC;;mDACH;AAK7B;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,yBAAyB,CAAC;;qDACD;AAKjC;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,qBAAqB,CAAC;;iDACL;AAMzB;IAJC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;iDACT;AAKhB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;wDACU;AAKrB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACS;AAKpB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;oDACM;AAKjB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;2DACa;AAG1B,MAAM,OAAO,mBAAmB;IAK9B,OAAO,CAAU;IAKjB,IAAI,CAAU;IAMd,WAAW,CAAY;IAKvB,MAAM,CAAuB;IAK7B,QAAQ,CAAyB;IAKjC,IAAI,CAAqB;IAMzB,IAAI,CAAY;IAKhB,UAAU,CAAU;IAKpB,OAAO,CAAU;IAKjB,cAAc,CAAU;IAKxB,QAAQ,CAAU;CACnB;AArDC;IAJC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;;oDACI;AAKjB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;iDACG;AAMd;IAJC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wDACF;AAKvB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,uBAAuB,CAAC;;mDACH;AAK7B;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,yBAAyB,CAAC;;qDACD;AAKjC;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,qBAAqB,CAAC;;iDACL;AAMzB;IAJC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;iDACT;AAKhB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACS;AAKpB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;oDACM;AAKjB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;2DACa;AAKxB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;qDACO;AAGpB,MAAM,OAAO,kBAAkB;IAG7B,OAAO,CAAuB;IAK9B,MAAM,CAAuB;IAM7B,IAAI,GAAY,CAAC,CAAC;IAOlB,KAAK,GAAY,EAAE,CAAC;IAKpB,MAAM,CAAU;IAKhB,SAAS,CAAU;IAKnB,OAAO,CAAU;IAKjB,MAAM,CAAU;IAKhB,SAAS,CAAkB;CAC5B;AA5CC;IAFC,WAAW,EAAE;IACb,MAAM,CAAC,wBAAwB,CAAC;;mDACH;AAK9B;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,uBAAuB,CAAC;;kDACH;AAM7B;IAJC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;;gDACW;AAOlB;IALC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC;;iDACW;AAKpB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;kDACK;AAKhB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,YAAY,EAAE;;qDACI;AAKnB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,YAAY,EAAE;;mDACE;AAKjB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,QAAQ,EAAE;;kDACK;AAKhB;IAHC,mBAAmB,EAAE;IACrB,UAAU,EAAE;IACZ,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;qDACG","sourcesContent":["import {\n IsString,\n IsNotEmpty,\n IsOptional,\n IsEnum,\n IsArray,\n IsNumber,\n MinLength,\n IsInt,\n Min,\n Max,\n IsDateString,\n} from 'class-validator';\nimport { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport {\n ZendeskTicketChannel,\n ZendeskTicketChannelEnum,\n ZendeskTicketPriority,\n ZendeskTicketPriorityEnum,\n ZendeskTicketStatus,\n ZendeskTicketStatusEnum,\n ZendeskTicketType,\n ZendeskTicketTypeEnum,\n} from '../../../../types/Enum/Zendesk.js';\n\nexport class CreateZendeskTicket {\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n @MinLength(3)\n subject: string;\n\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n body: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n attachments?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketStatusEnum)\n status?: ZendeskTicketStatus;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketPriorityEnum)\n priority?: ZendeskTicketPriority;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketTypeEnum)\n type?: ZendeskTicketType;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n tags?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n requesterId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n assigneeId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n groupId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n organizationId?: number;\n}\n\nexport class UpdateZendeskTicket {\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n @MinLength(3)\n subject?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n body?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n attachments?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketStatusEnum)\n status?: ZendeskTicketStatus;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketPriorityEnum)\n priority?: ZendeskTicketPriority;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketTypeEnum)\n type?: ZendeskTicketType;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n tags?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n assigneeId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n groupId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n organizationId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n authorId?: number;\n}\n\nexport class ListZendeskTickets {\n @ApiProperty()\n @IsEnum(ZendeskTicketChannelEnum)\n channel: ZendeskTicketChannel;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketStatusEnum)\n status?: ZendeskTicketStatus;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsInt()\n @Min(1)\n page?: number = 1;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsInt()\n @Min(1)\n @Max(100)\n limit?: number = 25;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n search?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsDateString()\n startDate?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsDateString()\n endDate?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n sortBy?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(['asc', 'desc'])\n sortOrder?: 'asc' | 'desc';\n}\n"]}
1
+ {"version":3,"file":"QueryTicket.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/api/zendesk/QueryTicket.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IsString,\n IsNotEmpty,\n IsOptional,\n IsEnum,\n IsArray,\n IsNumber,\n MinLength,\n IsInt,\n Min,\n Max,\n IsDateString,\n} from 'class-validator';\nimport { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport {\n ZendeskTicketCategory,\n ZendeskTicketCategoryEnum,\n ZendeskTicketChannel,\n ZendeskTicketChannelEnum,\n ZendeskTicketPriority,\n ZendeskTicketPriorityEnum,\n ZendeskTicketStatus,\n ZendeskTicketStatusEnum,\n ZendeskTicketType,\n ZendeskTicketTypeEnum,\n} from '../../../../types/Enum/Zendesk.js';\n\nexport class CreateZendeskTicket {\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n @MinLength(3)\n subject: string;\n\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n body: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n attachments?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketStatusEnum)\n status?: ZendeskTicketStatus;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketPriorityEnum)\n priority?: ZendeskTicketPriority;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketTypeEnum)\n type?: ZendeskTicketType;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n tags?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n requesterId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n assigneeId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n groupId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n organizationId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n ticketFormId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketCategoryEnum)\n category?: ZendeskTicketCategory;\n}\n\nexport class UpdateZendeskTicket {\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n @MinLength(3)\n subject?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n body?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n attachments?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketStatusEnum)\n status?: ZendeskTicketStatus;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketPriorityEnum)\n priority?: ZendeskTicketPriority;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketTypeEnum)\n type?: ZendeskTicketType;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsArray()\n @IsString({ each: true })\n tags?: string[];\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n assigneeId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n groupId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n organizationId?: number;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsNumber()\n authorId?: number;\n}\n\nexport class ListZendeskTickets {\n @ApiProperty()\n @IsEnum(ZendeskTicketChannelEnum)\n channel: ZendeskTicketChannel;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(ZendeskTicketStatusEnum)\n status?: ZendeskTicketStatus;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsInt()\n @Min(1)\n page?: number = 1;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsInt()\n @Min(1)\n @Max(100)\n limit?: number = 25;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n search?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsDateString()\n startDate?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsDateString()\n endDate?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsString()\n sortBy?: string;\n\n @ApiPropertyOptional()\n @IsOptional()\n @IsEnum(['asc', 'desc'])\n sortOrder?: 'asc' | 'desc';\n}\n"]}
@@ -13,6 +13,7 @@ export declare class IEInvoicingKycAndMandate {
13
13
  onboardingStatus?: string | null;
14
14
  sentToDocoon: boolean;
15
15
  docoonDirectoryLineId?: string | null;
16
+ isCDAR: boolean;
16
17
  payloadRequest?: FinishProcess;
17
18
  payloadSignature?: FinishProcess;
18
19
  idSociety: number;
@@ -1 +1 @@
1
- {"version":3,"file":"IEInvoicingKycAndMandate.d.ts","sourceRoot":"","sources":["../../../../ts/types/Interface/models/IEInvoicingKycAndMandate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,wBAAwB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,oBAAoB,CAAC,EAAE,KAAK,CAAC;IAC7B,oBAAoB,CAAC,EAAE,KAAK,CAAC;IAC7B,sBAAsB,CAAC,EAAE,KAAK,CAAC;CAChC"}
1
+ {"version":3,"file":"IEInvoicingKycAndMandate.d.ts","sourceRoot":"","sources":["../../../../ts/types/Interface/models/IEInvoicingKycAndMandate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,wBAAwB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,oBAAoB,CAAC,EAAE,KAAK,CAAC;IAC7B,oBAAoB,CAAC,EAAE,KAAK,CAAC;IAC7B,sBAAsB,CAAC,EAAE,KAAK,CAAC;CAChC"}
@@ -11,6 +11,7 @@ export class IEInvoicingKycAndMandate {
11
11
  onboardingStatus; // DRAFT | IN_PROGRESS | COMPLETED | REJECTED | ACTION_NEEDED | EXPIRED | CANCELLED
12
12
  sentToDocoon;
13
13
  docoonDirectoryLineId; // id at docoon
14
+ isCDAR;
14
15
  payloadRequest;
15
16
  payloadSignature;
16
17
  idSociety;
@@ -1 +1 @@
1
- {"version":3,"file":"IEInvoicingKycAndMandate.js","sourceRoot":"","sources":["../../../../ts/types/Interface/models/IEInvoicingKycAndMandate.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACnC,EAAE,CAAU;IACZ,kBAAkB,CAAS;IAC3B,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,kBAAkB,CAAU;IAC5B,iBAAiB,CAAU;IAC3B,UAAU,CAAS;IACnB,aAAa,CAAiB,CAAC,uBAAuB;IACtD,gBAAgB,CAAiB,CAAC,mFAAmF;IACrH,YAAY,CAAU;IACtB,qBAAqB,CAAiB,CAAC,eAAe;IACtD,cAAc,CAAiB;IAC/B,gBAAgB,CAAiB;IACjC,SAAS,CAAS;IAClB,aAAa,CAAiB;IAC9B,sBAAsB,CAAiB;IACvC,sBAAsB,CAAiB;IACvC,wBAAwB,CAAiB;IAEzC,eAAe;IACf,OAAO,CAAY;IACnB,cAAc,CAAS;IACvB,oBAAoB,CAAS;IAC7B,oBAAoB,CAAS;IAC7B,sBAAsB,CAAS;CAChC","sourcesContent":["import { ISociety } from './ISociety.js';\nimport { FinishProcess, IFile } from '../../index.js';\n\nexport class IEInvoicingKycAndMandate {\n id?: number;\n onboardingFolderId: string;\n publicFolderUrl: string;\n eInvoiceAddress: string;\n effectiveDate: string;\n isReceptionAddress: boolean;\n isEmissionAddress: boolean;\n mandateRef: string;\n mandateStatus?: string | null; // COMPLETED | REJECTED\n onboardingStatus?: string | null; // DRAFT | IN_PROGRESS | COMPLETED | REJECTED | ACTION_NEEDED | EXPIRED | CANCELLED\n sentToDocoon: boolean;\n docoonDirectoryLineId?: string | null; // id at docoon\n payloadRequest?: FinishProcess;\n payloadSignature?: FinishProcess;\n idSociety: number;\n idMandateFile?: number | null;\n idKycControlReportFile?: number | null;\n idKycCaptureReportFile?: number | null;\n idKycSignatureReportFile?: number | null;\n\n // associations\n society?: ISociety;\n kycmandateFile?: IFile;\n kycControlReportFile?: IFile;\n kycCaptureReportFile?: IFile;\n kycSignatureReportFile?: IFile;\n}\n"]}
1
+ {"version":3,"file":"IEInvoicingKycAndMandate.js","sourceRoot":"","sources":["../../../../ts/types/Interface/models/IEInvoicingKycAndMandate.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACnC,EAAE,CAAU;IACZ,kBAAkB,CAAS;IAC3B,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,kBAAkB,CAAU;IAC5B,iBAAiB,CAAU;IAC3B,UAAU,CAAS;IACnB,aAAa,CAAiB,CAAC,uBAAuB;IACtD,gBAAgB,CAAiB,CAAC,mFAAmF;IACrH,YAAY,CAAU;IACtB,qBAAqB,CAAiB,CAAC,eAAe;IACtD,MAAM,CAAU;IAChB,cAAc,CAAiB;IAC/B,gBAAgB,CAAiB;IACjC,SAAS,CAAS;IAClB,aAAa,CAAiB;IAC9B,sBAAsB,CAAiB;IACvC,sBAAsB,CAAiB;IACvC,wBAAwB,CAAiB;IAEzC,eAAe;IACf,OAAO,CAAY;IACnB,cAAc,CAAS;IACvB,oBAAoB,CAAS;IAC7B,oBAAoB,CAAS;IAC7B,sBAAsB,CAAS;CAChC","sourcesContent":["import { ISociety } from './ISociety.js';\nimport { FinishProcess, IFile } from '../../index.js';\n\nexport class IEInvoicingKycAndMandate {\n id?: number;\n onboardingFolderId: string;\n publicFolderUrl: string;\n eInvoiceAddress: string;\n effectiveDate: string;\n isReceptionAddress: boolean;\n isEmissionAddress: boolean;\n mandateRef: string;\n mandateStatus?: string | null; // COMPLETED | REJECTED\n onboardingStatus?: string | null; // DRAFT | IN_PROGRESS | COMPLETED | REJECTED | ACTION_NEEDED | EXPIRED | CANCELLED\n sentToDocoon: boolean;\n docoonDirectoryLineId?: string | null; // id at docoon\n isCDAR: boolean;\n payloadRequest?: FinishProcess;\n payloadSignature?: FinishProcess;\n idSociety: number;\n idMandateFile?: number | null;\n idKycControlReportFile?: number | null;\n idKycCaptureReportFile?: number | null;\n idKycSignatureReportFile?: number | null;\n\n // associations\n society?: ISociety;\n kycmandateFile?: IFile;\n kycControlReportFile?: IFile;\n kycCaptureReportFile?: IFile;\n kycSignatureReportFile?: IFile;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../ts/utils/commercialManagement/document.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAG/B,MAAM,wDAAwD,CAAC;AAQhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAO1E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,oBAAoB,CAAC;AAa5B,wBAAgB,0BAA0B,CACxC,qBAAqB,EAAE,mBAAmB,EAC1C,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,EACtD,mBAAmB,UAAQ,EAC3B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,8BAA8B,CAuIhC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,UAAQ,EAC3B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,0BAA0B,CA4B5B;AASD;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,GAAG;IAC1G,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAgIA"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../ts/utils/commercialManagement/document.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAG/B,MAAM,wDAAwD,CAAC;AAQhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAO1E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,oBAAoB,CAAC;AAa5B,wBAAgB,0BAA0B,CACxC,qBAAqB,EAAE,mBAAmB,EAC1C,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,EACtD,mBAAmB,UAAQ,EAC3B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,8BAA8B,CAuIhC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,UAAQ,EAC3B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,0BAA0B,CA4B5B;AASD;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,GAAG;IAC1G,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAkIA"}
@@ -282,7 +282,7 @@ export function checkCommercialDocumentInformation(payload) {
282
282
  if (['margin', 'autoliquidation', 'export', 'exempt'].includes(vatType)) {
283
283
  for (const product of products) {
284
284
  if (getById(product.idVat)?.value !== 0) {
285
- errors.push(`L'article ${product.itemSaleName} a une TVA non nulle alors que le type de TVA est ${vatType}.`);
285
+ errors.push(`L'article "${product.itemSaleName}" a une TVA non nulle alors que la mention légale de TVA est définie comme "${vatType}".`);
286
286
  }
287
287
  }
288
288
  }
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../ts/utils/commercialManagement/document.ts"],"names":[],"mappings":"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","sourcesContent":["import dayjs from 'dayjs';\nimport {\n ReadCommercialDocumentTemplate,\n ReadDocumentEditing,\n ReadVatEditing,\n} from '../../types/Interface/api/commercialManagement/Read.js';\nimport {\n AccountingCategoryList,\n CommercialVatMentionList,\n FontIds,\n fontList,\n InvoiceLanguage,\n} from '../../types/Enum/CommercialManagement.js';\nimport { EstimateInvoiceType } from '../../types/Enum/EstimateInvoice.js';\nimport { Vat } from '../../types/Enum/Vat.js';\nimport { integerToFormattedAmountString, integerToFormattedAmountObject } from '../amount.js';\nimport { CommercialDocumentCommonHTML, CommercialDocumentMailHTML } from './templates/common.js';\nimport { bodyTemplate } from './templates/body.js';\nimport { productToReadProductEditing } from './product.js';\nimport { getById, vatToReadVatEditing } from './vat.js';\nimport {\n CreateInvoiceDocument,\n CreateMailHeader,\n CreatePreSaleDocument,\n ReadCommercialMailTemplate,\n} from '../../types/index.js';\nimport { thirdPartyToReadThirdPartyEditing } from './thirdParty.js';\nimport { getBrandConfig } from '../brands.js';\nimport { internationalizationChoices, internationalizationConsistency } from './internationalization/choices.js';\nimport ejs from 'ejs';\nimport 'dayjs/locale/fr.js';\nimport { orderBy, groupBy, sumBy, round, uniq } from 'lodash-es';\nimport sanitize from 'sanitize-html';\n\ntype brandColorType = {\n primary: string;\n primary50: string;\n primary100: string;\n primary300: string;\n primary500: string;\n primary700: string;\n};\n\nexport function generateCommercialDocument(\n idEstimateInvoiceType: EstimateInvoiceType,\n payload: CreateInvoiceDocument | CreatePreSaleDocument,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialDocumentTemplate {\n const products = orderBy(payload.products.map((product) => productToReadProductEditing(product), 'reorder'));\n const vats = orderBy(\n Object.values(groupBy(products, 'vatFormatted')).map((v) => vatToReadVatEditing(v), 'value'),\n ).filter((v) => v.id !== Vat.MARGE.id);\n\n const thirdParty = thirdPartyToReadThirdPartyEditing(payload.thirdParty);\n\n let forcedVats: ReadVatEditing[] | undefined = undefined;\n\n if (payload.advanceProducts?.length) {\n const advanceVats = Object.values(groupBy(payload.advanceProducts, 'vatFormatted'))\n .map((v) => vatToReadVatEditing(v), 'value')\n .filter((v) => v.id !== Vat.MARGE.id);\n\n forcedVats = vats.map((v) => {\n const base = v.base - (advanceVats.find((a) => a.id === v.id)?.base ?? 0);\n const toPay = v.toPay - (advanceVats.find((a) => a.id === v.id)?.toPay ?? 0);\n return {\n ...v,\n baseFormatted: integerToFormattedAmountString(base),\n amountFormatted: integerToFormattedAmountString(toPay),\n };\n });\n }\n\n const totalVats = sumBy(vats, (v) => round(v.amount));\n const totalTaxExcluded = sumBy(products, (p) => round(p.totalTaxExcluded));\n\n const totalTaxIncluded = totalTaxExcluded + totalVats;\n\n const locale = payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n\n const accountingCategory = AccountingCategoryList.find((a) => a.id === payload.accountingCategory)?.label ?? null;\n\n const recoveryCost = payload.recoveryCost;\n const data: ReadDocumentEditing & { brandColors: brandColorType; brandName: string; shouldHideBrandName: boolean } = {\n ...payload,\n thirdParty,\n paymentLink: payload.paymentLink ?? '#',\n idEstimateInvoiceType,\n title: payload.title ?? null,\n penalties: payload.penalties\n ? (internationalizationConsistency(locale, payload.penalties, 'penalties') ?? payload.penalties)\n : null,\n termsOfPayment: payload.termsOfPayment\n ? (internationalizationConsistency(locale, payload.termsOfPayment, 'termsOfPayment') ?? payload.termsOfPayment)\n : null,\n recoveryCost: recoveryCost\n ? (internationalizationConsistency(locale, recoveryCost, 'recoveryCost') ?? recoveryCost)\n : null,\n discount: payload.discount\n ? (internationalizationConsistency(locale, payload.discount, 'discount') ?? payload.discount)\n : null,\n vatMention: payload.vatMention\n ? (internationalizationConsistency(locale, payload.vatMention, 'vatMention') ?? payload.vatMention)\n : null,\n phoneContact: payload.settings?.phoneContact ?? null,\n products,\n vats,\n totalTaxExcluded: totalTaxExcluded,\n totalTaxIncluded: round(totalTaxIncluded),\n totalTaxAndDiscountIncluded: round(totalTaxIncluded),\n generalDiscountFormatted: payload.generalDiscount2\n ? integerToFormattedAmountString(payload.generalDiscount2)\n : null,\n depositFormatted: payload.deposit ? integerToFormattedAmountString(payload.deposit) : null,\n totalTaxExcludedFormatted: integerToFormattedAmountString(totalTaxExcluded),\n totalTaxIncludedFormatted: integerToFormattedAmountString(totalTaxIncluded),\n totalTaxAndDiscountIncludedFormatted: integerToFormattedAmountString(\n totalTaxIncluded - (payload.generalDiscount2 ?? 0) - (payload.deposit ?? 0),\n ),\n totalVatAmountFormatted: integerToFormattedAmountString(totalVats),\n font: {\n id: payload.settings?.idFont ?? FontIds.CIRCULAR_STD,\n name: fontList.find((f) => f.id === payload.settings?.idFont)?.name ?? fontList[0].name,\n url: fontList.find((f) => f.id === payload.settings?.idFont)?.link ?? fontList[0].link,\n },\n capitalFormatted: payload.capital\n ? `${payload.capital}`\n .split('')\n .reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? ' ' : ''}${acc}`, '')\n .trim()\n : null,\n dueDateFormatted: payload.dueDate ? dayjs(payload.dueDate).format('DD/MM/YYYY') : null,\n expirationDateFormatted: payload.expirationDate ? dayjs(payload.expirationDate).format('DD/MM/YYYY') : null,\n emissionDateFormatted: payload.emissionDate ? dayjs(payload.emissionDate).format('DD/MM/YYYY') : null,\n shouldDisplayDiscountColumn: !!products.find((p) => p.discount2 && p.discount2 > 0),\n // @ts-ignore\n marginVats: uniq(products.filter((p) => p.marginVatFormatted !== null).map((p) => p.marginVatFormatted)),\n accountingCategoryFormatted: accountingCategory\n ? (internationalizationConsistency(locale, accountingCategory, 'accountingCategory') ?? null)\n : null,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n brandName: `${getBrandConfig({ objectWaited: 'name', nodeEnv }) as unknown as string}`,\n shouldHideBrandName,\n addressComplement: payload.addressComplement ?? null,\n paymentType: payload.paymentType\n ? (internationalizationConsistency(locale, payload.paymentType, 'paymentType') ?? payload.paymentType)\n : null,\n languageTemplate: languageOption,\n };\n\n const commonTemplate = new CommercialDocumentCommonHTML();\n const documentFreeText = [EstimateInvoiceType.DEVIS, EstimateInvoiceType.BON].includes(idEstimateInvoiceType)\n ? payload?.settings?.freeEstimateText\n : payload?.settings?.freeInvoiceText;\n\n return {\n header: ejs.render(commonTemplate.header, data),\n body: ejs.render(bodyTemplate, {\n ...data,\n comment:\n data.comment && typeof data.comment === 'string'\n ? sanitize(data.comment?.replace(/\\n/g, '<br/>'), { allowedTags: ['b', 'i', 'em', 'br', 'strong'] })\n : null,\n products: data.products.map((p) => ({\n ...p,\n comment:\n p.comment && typeof p.comment === 'string'\n ? sanitize(p.comment?.replace(/\\n/g, '<br/>'), { allowedTags: ['b', 'i', 'em', 'br', 'strong'] })\n : null,\n // @ts-expect-error\n unitFormatted: internationalizationConsistency(locale, p.unitFormatted, 'unit'),\n })),\n vats: forcedVats ?? vats,\n }),\n footer: ejs.render(commonTemplate.footer, {\n ...data,\n freeText: documentFreeText ?? null,\n }),\n data,\n };\n}\n\nexport function generateMailHeader(\n params: CreateMailHeader,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialMailTemplate {\n const locale = params.payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n dayjs.locale('fr');\n const data = {\n ...params.payload,\n totalTaxExcludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxExcluded),\n totalTaxIncludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxIncluded),\n totalVatFormatted: integerToFormattedAmountObject(\n params.payload.totalTaxIncluded - params.payload.totalTaxExcluded,\n ),\n dueDateFormatted: params.payload.dueDate ? dayjs(params.payload.dueDate).format('DD MMMM YYYY') : null,\n hasVat: params.hasVat,\n hostS3: params.hostS3,\n logoUrl: params.logoUrl,\n companyName: params.companyName,\n fileUrl: params.fileUrl,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n shouldHideBrandName,\n languageMail: languageOption,\n };\n\n const mailTemplate = new CommercialDocumentMailHTML();\n\n return {\n header: ejs.render(mailTemplate.header, data),\n };\n}\n\nfunction isMissing(value: unknown): boolean {\n if (value === null || value === undefined) return true;\n if (typeof value === 'string') return value.trim().length === 0;\n if (Array.isArray(value)) return value.length === 0;\n return false;\n}\n\n/**\n * @description Si cette fonction est modifiée, penser à check si la fonction `checkErrors` de `emission.service.ts` du core doit être modifiée aussi\n */\nexport function checkCommercialDocumentInformation(payload: CreateInvoiceDocument | CreatePreSaleDocument): {\n valid: boolean;\n errors?: string[];\n} {\n const errors: string[] = [];\n\n const products = orderBy(payload.products.map((product) => productToReadProductEditing(product), 'reorder'));\n const vats = orderBy(\n Object.values(groupBy(products, 'vatFormatted')).map((v) => vatToReadVatEditing(v), 'value'),\n ).filter((v) => v.id !== Vat.MARGE.id);\n\n const totalVats = sumBy(vats, (v) => round(v.amount));\n const totalTaxExcluded = sumBy(products, (p) => round(p.totalTaxExcluded));\n const totalTaxIncluded = round(totalTaxExcluded + totalVats);\n\n const requiredData: Array<{ value: unknown; error: string }> = [\n // Invoice\n { value: payload.reference, error: 'Le numéro de facture est obligatoire.' },\n { value: payload.idEstimateInvoiceType, error: 'Le type de document est obligatoire.' },\n { value: payload.emissionDate, error: 'La date d’émission est obligatoire.' },\n // Items\n ...products.flatMap((product, index) => {\n const productLabel = product.itemSaleName?.trim() ? `\"${product.itemSaleName}\"` : `à la ligne ${index + 1}`;\n\n return [\n {\n value: product.itemSaleName,\n error: `Le nom de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.priceTaxExcluded,\n error: `Le prix net de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.quantity,\n error: `La quantité de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.unit,\n error: `Le code EN 16931 de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.idVat,\n error: `Le type de TVA de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.totalTaxExcluded,\n error: `Le montant net de l'article ${productLabel} est obligatoire.`,\n },\n ];\n }),\n // Seller\n { value: payload.name, error: 'Le nom du vendeur est obligatoire.' },\n { value: payload.siren, error: 'Le SIREN du vendeur est obligatoire.' },\n {\n value: payload.zipCode,\n error: 'Le code postal du vendeur est obligatoire.',\n },\n {\n value: payload.street,\n error: 'L’adresse du vendeur est obligatoire.',\n },\n {\n value: payload.city,\n error: 'La ville du vendeur est obligatoire.',\n },\n {\n value: payload.idCountry,\n error: 'Le pays du vendeur est obligatoire.',\n },\n // {\n // value: payload.settings?.mailContact,\n // error: 'L’email du vendeur est obligatoire.',\n // },\n // Customer\n {\n value: payload.thirdParty.company ?? payload.thirdParty.fullname ?? 'NA',\n error: 'Le nom de l’acheteur est obligatoire.',\n },\n {\n value: payload.thirdParty?.idCountry,\n error: 'Le pays de l’acheteur est obligatoire.',\n },\n // {\n // value: payload.thirdParty?.email,\n // error: 'L’email de l’acheteur est obligatoire.',\n // },\n // Vats\n ...vats.flatMap((vat, index) => [\n {\n value: vat.amount,\n error: `Le montant de TVA à la ligne ${index + 1} est obligatoire.`,\n },\n {\n value: vat.base,\n error: `La base d’imposition de la TVA à la ligne ${index + 1} est obligatoire.`,\n },\n {\n value: vat.value,\n error: `Le type de TVA à la ligne ${index + 1} est obligatoire.`,\n },\n ]),\n // Totals\n { value: totalTaxExcluded, error: 'Le montant total hors taxe est obligatoire.' },\n {\n value: totalTaxExcluded,\n error: 'La somme du montant net des lignes est obligatoire.',\n },\n { value: totalVats, error: 'Le montant total de TVA est obligatoire.' },\n {\n value: totalTaxIncluded,\n error: 'Le montant total TTC est obligatoire.',\n },\n ];\n\n // Check des mentions de tva\n const vatType = CommercialVatMentionList.find((v) => v.value === payload.vatMention)?.taxType ?? 'standard';\n\n // Si le type de tva est margin, autoliquidation, export ou exempt,\n // aucun produit ne doit avoir de tva > 0\n if (['margin', 'autoliquidation', 'export', 'exempt'].includes(vatType)) {\n for (const product of products) {\n if (getById(product.idVat)?.value !== 0) {\n errors.push(`L'article ${product.itemSaleName} a une TVA non nulle alors que le type de TVA est ${vatType}.`);\n }\n }\n }\n\n errors.push(...requiredData.filter((data) => isMissing(data.value)).map((data) => data.error));\n\n return { valid: errors.length === 0, errors: errors.length > 0 ? errors : undefined };\n}\n"]}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../ts/utils/commercialManagement/document.ts"],"names":[],"mappings":"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","sourcesContent":["import dayjs from 'dayjs';\nimport {\n ReadCommercialDocumentTemplate,\n ReadDocumentEditing,\n ReadVatEditing,\n} from '../../types/Interface/api/commercialManagement/Read.js';\nimport {\n AccountingCategoryList,\n CommercialVatMentionList,\n FontIds,\n fontList,\n InvoiceLanguage,\n} from '../../types/Enum/CommercialManagement.js';\nimport { EstimateInvoiceType } from '../../types/Enum/EstimateInvoice.js';\nimport { Vat } from '../../types/Enum/Vat.js';\nimport { integerToFormattedAmountString, integerToFormattedAmountObject } from '../amount.js';\nimport { CommercialDocumentCommonHTML, CommercialDocumentMailHTML } from './templates/common.js';\nimport { bodyTemplate } from './templates/body.js';\nimport { productToReadProductEditing } from './product.js';\nimport { getById, vatToReadVatEditing } from './vat.js';\nimport {\n CreateInvoiceDocument,\n CreateMailHeader,\n CreatePreSaleDocument,\n ReadCommercialMailTemplate,\n} from '../../types/index.js';\nimport { thirdPartyToReadThirdPartyEditing } from './thirdParty.js';\nimport { getBrandConfig } from '../brands.js';\nimport { internationalizationChoices, internationalizationConsistency } from './internationalization/choices.js';\nimport ejs from 'ejs';\nimport 'dayjs/locale/fr.js';\nimport { orderBy, groupBy, sumBy, round, uniq } from 'lodash-es';\nimport sanitize from 'sanitize-html';\n\ntype brandColorType = {\n primary: string;\n primary50: string;\n primary100: string;\n primary300: string;\n primary500: string;\n primary700: string;\n};\n\nexport function generateCommercialDocument(\n idEstimateInvoiceType: EstimateInvoiceType,\n payload: CreateInvoiceDocument | CreatePreSaleDocument,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialDocumentTemplate {\n const products = orderBy(payload.products.map((product) => productToReadProductEditing(product), 'reorder'));\n const vats = orderBy(\n Object.values(groupBy(products, 'vatFormatted')).map((v) => vatToReadVatEditing(v), 'value'),\n ).filter((v) => v.id !== Vat.MARGE.id);\n\n const thirdParty = thirdPartyToReadThirdPartyEditing(payload.thirdParty);\n\n let forcedVats: ReadVatEditing[] | undefined = undefined;\n\n if (payload.advanceProducts?.length) {\n const advanceVats = Object.values(groupBy(payload.advanceProducts, 'vatFormatted'))\n .map((v) => vatToReadVatEditing(v), 'value')\n .filter((v) => v.id !== Vat.MARGE.id);\n\n forcedVats = vats.map((v) => {\n const base = v.base - (advanceVats.find((a) => a.id === v.id)?.base ?? 0);\n const toPay = v.toPay - (advanceVats.find((a) => a.id === v.id)?.toPay ?? 0);\n return {\n ...v,\n baseFormatted: integerToFormattedAmountString(base),\n amountFormatted: integerToFormattedAmountString(toPay),\n };\n });\n }\n\n const totalVats = sumBy(vats, (v) => round(v.amount));\n const totalTaxExcluded = sumBy(products, (p) => round(p.totalTaxExcluded));\n\n const totalTaxIncluded = totalTaxExcluded + totalVats;\n\n const locale = payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n\n const accountingCategory = AccountingCategoryList.find((a) => a.id === payload.accountingCategory)?.label ?? null;\n\n const recoveryCost = payload.recoveryCost;\n const data: ReadDocumentEditing & { brandColors: brandColorType; brandName: string; shouldHideBrandName: boolean } = {\n ...payload,\n thirdParty,\n paymentLink: payload.paymentLink ?? '#',\n idEstimateInvoiceType,\n title: payload.title ?? null,\n penalties: payload.penalties\n ? (internationalizationConsistency(locale, payload.penalties, 'penalties') ?? payload.penalties)\n : null,\n termsOfPayment: payload.termsOfPayment\n ? (internationalizationConsistency(locale, payload.termsOfPayment, 'termsOfPayment') ?? payload.termsOfPayment)\n : null,\n recoveryCost: recoveryCost\n ? (internationalizationConsistency(locale, recoveryCost, 'recoveryCost') ?? recoveryCost)\n : null,\n discount: payload.discount\n ? (internationalizationConsistency(locale, payload.discount, 'discount') ?? payload.discount)\n : null,\n vatMention: payload.vatMention\n ? (internationalizationConsistency(locale, payload.vatMention, 'vatMention') ?? payload.vatMention)\n : null,\n phoneContact: payload.settings?.phoneContact ?? null,\n products,\n vats,\n totalTaxExcluded: totalTaxExcluded,\n totalTaxIncluded: round(totalTaxIncluded),\n totalTaxAndDiscountIncluded: round(totalTaxIncluded),\n generalDiscountFormatted: payload.generalDiscount2\n ? integerToFormattedAmountString(payload.generalDiscount2)\n : null,\n depositFormatted: payload.deposit ? integerToFormattedAmountString(payload.deposit) : null,\n totalTaxExcludedFormatted: integerToFormattedAmountString(totalTaxExcluded),\n totalTaxIncludedFormatted: integerToFormattedAmountString(totalTaxIncluded),\n totalTaxAndDiscountIncludedFormatted: integerToFormattedAmountString(\n totalTaxIncluded - (payload.generalDiscount2 ?? 0) - (payload.deposit ?? 0),\n ),\n totalVatAmountFormatted: integerToFormattedAmountString(totalVats),\n font: {\n id: payload.settings?.idFont ?? FontIds.CIRCULAR_STD,\n name: fontList.find((f) => f.id === payload.settings?.idFont)?.name ?? fontList[0].name,\n url: fontList.find((f) => f.id === payload.settings?.idFont)?.link ?? fontList[0].link,\n },\n capitalFormatted: payload.capital\n ? `${payload.capital}`\n .split('')\n .reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? ' ' : ''}${acc}`, '')\n .trim()\n : null,\n dueDateFormatted: payload.dueDate ? dayjs(payload.dueDate).format('DD/MM/YYYY') : null,\n expirationDateFormatted: payload.expirationDate ? dayjs(payload.expirationDate).format('DD/MM/YYYY') : null,\n emissionDateFormatted: payload.emissionDate ? dayjs(payload.emissionDate).format('DD/MM/YYYY') : null,\n shouldDisplayDiscountColumn: !!products.find((p) => p.discount2 && p.discount2 > 0),\n // @ts-ignore\n marginVats: uniq(products.filter((p) => p.marginVatFormatted !== null).map((p) => p.marginVatFormatted)),\n accountingCategoryFormatted: accountingCategory\n ? (internationalizationConsistency(locale, accountingCategory, 'accountingCategory') ?? null)\n : null,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n brandName: `${getBrandConfig({ objectWaited: 'name', nodeEnv }) as unknown as string}`,\n shouldHideBrandName,\n addressComplement: payload.addressComplement ?? null,\n paymentType: payload.paymentType\n ? (internationalizationConsistency(locale, payload.paymentType, 'paymentType') ?? payload.paymentType)\n : null,\n languageTemplate: languageOption,\n };\n\n const commonTemplate = new CommercialDocumentCommonHTML();\n const documentFreeText = [EstimateInvoiceType.DEVIS, EstimateInvoiceType.BON].includes(idEstimateInvoiceType)\n ? payload?.settings?.freeEstimateText\n : payload?.settings?.freeInvoiceText;\n\n return {\n header: ejs.render(commonTemplate.header, data),\n body: ejs.render(bodyTemplate, {\n ...data,\n comment:\n data.comment && typeof data.comment === 'string'\n ? sanitize(data.comment?.replace(/\\n/g, '<br/>'), { allowedTags: ['b', 'i', 'em', 'br', 'strong'] })\n : null,\n products: data.products.map((p) => ({\n ...p,\n comment:\n p.comment && typeof p.comment === 'string'\n ? sanitize(p.comment?.replace(/\\n/g, '<br/>'), { allowedTags: ['b', 'i', 'em', 'br', 'strong'] })\n : null,\n // @ts-expect-error\n unitFormatted: internationalizationConsistency(locale, p.unitFormatted, 'unit'),\n })),\n vats: forcedVats ?? vats,\n }),\n footer: ejs.render(commonTemplate.footer, {\n ...data,\n freeText: documentFreeText ?? null,\n }),\n data,\n };\n}\n\nexport function generateMailHeader(\n params: CreateMailHeader,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialMailTemplate {\n const locale = params.payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n dayjs.locale('fr');\n const data = {\n ...params.payload,\n totalTaxExcludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxExcluded),\n totalTaxIncludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxIncluded),\n totalVatFormatted: integerToFormattedAmountObject(\n params.payload.totalTaxIncluded - params.payload.totalTaxExcluded,\n ),\n dueDateFormatted: params.payload.dueDate ? dayjs(params.payload.dueDate).format('DD MMMM YYYY') : null,\n hasVat: params.hasVat,\n hostS3: params.hostS3,\n logoUrl: params.logoUrl,\n companyName: params.companyName,\n fileUrl: params.fileUrl,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n shouldHideBrandName,\n languageMail: languageOption,\n };\n\n const mailTemplate = new CommercialDocumentMailHTML();\n\n return {\n header: ejs.render(mailTemplate.header, data),\n };\n}\n\nfunction isMissing(value: unknown): boolean {\n if (value === null || value === undefined) return true;\n if (typeof value === 'string') return value.trim().length === 0;\n if (Array.isArray(value)) return value.length === 0;\n return false;\n}\n\n/**\n * @description Si cette fonction est modifiée, penser à check si la fonction `checkErrors` de `emission.service.ts` du core doit être modifiée aussi\n */\nexport function checkCommercialDocumentInformation(payload: CreateInvoiceDocument | CreatePreSaleDocument): {\n valid: boolean;\n errors?: string[];\n} {\n const errors: string[] = [];\n\n const products = orderBy(payload.products.map((product) => productToReadProductEditing(product), 'reorder'));\n const vats = orderBy(\n Object.values(groupBy(products, 'vatFormatted')).map((v) => vatToReadVatEditing(v), 'value'),\n ).filter((v) => v.id !== Vat.MARGE.id);\n\n const totalVats = sumBy(vats, (v) => round(v.amount));\n const totalTaxExcluded = sumBy(products, (p) => round(p.totalTaxExcluded));\n const totalTaxIncluded = round(totalTaxExcluded + totalVats);\n\n const requiredData: Array<{ value: unknown; error: string }> = [\n // Invoice\n { value: payload.reference, error: 'Le numéro de facture est obligatoire.' },\n { value: payload.idEstimateInvoiceType, error: 'Le type de document est obligatoire.' },\n { value: payload.emissionDate, error: 'La date d’émission est obligatoire.' },\n // Items\n ...products.flatMap((product, index) => {\n const productLabel = product.itemSaleName?.trim() ? `\"${product.itemSaleName}\"` : `à la ligne ${index + 1}`;\n\n return [\n {\n value: product.itemSaleName,\n error: `Le nom de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.priceTaxExcluded,\n error: `Le prix net de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.quantity,\n error: `La quantité de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.unit,\n error: `Le code EN 16931 de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.idVat,\n error: `Le type de TVA de l'article ${productLabel} est obligatoire.`,\n },\n {\n value: product.totalTaxExcluded,\n error: `Le montant net de l'article ${productLabel} est obligatoire.`,\n },\n ];\n }),\n // Seller\n { value: payload.name, error: 'Le nom du vendeur est obligatoire.' },\n { value: payload.siren, error: 'Le SIREN du vendeur est obligatoire.' },\n {\n value: payload.zipCode,\n error: 'Le code postal du vendeur est obligatoire.',\n },\n {\n value: payload.street,\n error: 'L’adresse du vendeur est obligatoire.',\n },\n {\n value: payload.city,\n error: 'La ville du vendeur est obligatoire.',\n },\n {\n value: payload.idCountry,\n error: 'Le pays du vendeur est obligatoire.',\n },\n // {\n // value: payload.settings?.mailContact,\n // error: 'L’email du vendeur est obligatoire.',\n // },\n // Customer\n {\n value: payload.thirdParty.company ?? payload.thirdParty.fullname ?? 'NA',\n error: 'Le nom de l’acheteur est obligatoire.',\n },\n {\n value: payload.thirdParty?.idCountry,\n error: 'Le pays de l’acheteur est obligatoire.',\n },\n // {\n // value: payload.thirdParty?.email,\n // error: 'L’email de l’acheteur est obligatoire.',\n // },\n // Vats\n ...vats.flatMap((vat, index) => [\n {\n value: vat.amount,\n error: `Le montant de TVA à la ligne ${index + 1} est obligatoire.`,\n },\n {\n value: vat.base,\n error: `La base d’imposition de la TVA à la ligne ${index + 1} est obligatoire.`,\n },\n {\n value: vat.value,\n error: `Le type de TVA à la ligne ${index + 1} est obligatoire.`,\n },\n ]),\n // Totals\n { value: totalTaxExcluded, error: 'Le montant total hors taxe est obligatoire.' },\n {\n value: totalTaxExcluded,\n error: 'La somme du montant net des lignes est obligatoire.',\n },\n { value: totalVats, error: 'Le montant total de TVA est obligatoire.' },\n {\n value: totalTaxIncluded,\n error: 'Le montant total TTC est obligatoire.',\n },\n ];\n\n // Check des mentions de tva\n const vatType = CommercialVatMentionList.find((v) => v.value === payload.vatMention)?.taxType ?? 'standard';\n\n // Si le type de tva est margin, autoliquidation, export ou exempt,\n // aucun produit ne doit avoir de tva > 0\n if (['margin', 'autoliquidation', 'export', 'exempt'].includes(vatType)) {\n for (const product of products) {\n if (getById(product.idVat)?.value !== 0) {\n errors.push(\n `L'article \"${product.itemSaleName}\" a une TVA non nulle alors que la mention légale de TVA est définie comme \"${vatType}\".`,\n );\n }\n }\n }\n\n errors.push(...requiredData.filter((data) => isMissing(data.value)).map((data) => data.error));\n\n return { valid: errors.length === 0, errors: errors.length > 0 ? errors : undefined };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"societyApproval.d.ts","sourceRoot":"","sources":["../../ts/utils/societyApproval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAEL,2BAA2B,EAC3B,6BAA6B,EAE7B,+BAA+B,EAChC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAQjF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,iBAAiB,GAC7B,6BAA6B,GAAG,SAAS,CAE3C;AAYD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,2BAA2B,GAC1C,+BAA+B,GAAG,SAAS,CAG7C;AAYD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAwFhH"}
1
+ {"version":3,"file":"societyApproval.d.ts","sourceRoot":"","sources":["../../ts/utils/societyApproval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAEL,2BAA2B,EAC3B,6BAA6B,EAE7B,+BAA+B,EAChC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAQjF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,iBAAiB,GAC7B,6BAA6B,GAAG,SAAS,CAE3C;AAYD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,2BAA2B,GAC1C,+BAA+B,GAAG,SAAS,CAG7C;AAcD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA0FhH"}
@@ -1,4 +1,4 @@
1
- import { LegalForm } from '../types/Enum/LegalForm.js';
1
+ import { LegalForm, LegalFormTypeEnum } from '../types/Enum/LegalForm.js';
2
2
  import { AdditionalMentionType, SocietyApprovalDocumentsByLegalForm, } from '../types/Enum/SocietyApproval.js';
3
3
  import { QualityList } from '../types/Enum/Quality.js';
4
4
  import { getBrand } from './brands.js';
@@ -43,12 +43,13 @@ export function getApprovalDocumentInfos(idLegalForm, idDocumentType) {
43
43
  const config = getApprovalDocumentsByLegalForm(idLegalForm);
44
44
  return config?.documents.find((doc) => doc.idDocumentType === idDocumentType);
45
45
  }
46
- function createApprovalDecisionTitleGenerator() {
46
+ function createApprovalDecisionTitleGenerator(idLegalForm) {
47
47
  const decisionOrdinals = ['PREMIERE', 'DEUXIEME', 'TROISIEME', 'QUATRIEME', 'CINQUIEME', 'SIXIEME'];
48
+ const decisionLabel = idLegalForm === LegalFormTypeEnum.SARL || idLegalForm === LegalFormTypeEnum.SAS ? 'RESOLUTION' : 'DECISION';
48
49
  let decisionNumber = 0;
49
50
  return () => {
50
51
  decisionNumber += 1;
51
- return `${decisionOrdinals[decisionNumber - 1] ?? `${decisionNumber}EME`} DECISION`;
52
+ return `${decisionOrdinals[decisionNumber - 1] ?? `${decisionNumber}EME`} ${decisionLabel}`;
52
53
  };
53
54
  }
54
55
  /**
@@ -68,7 +69,7 @@ export function buildApprovalTemplateData(existingApproval, style) {
68
69
  return {
69
70
  // Variables globales
70
71
  AdditionalMentionType,
71
- nextDecisionTitle: createApprovalDecisionTitleGenerator(),
72
+ nextDecisionTitle: createApprovalDecisionTitleGenerator(existingApproval?.exercice?.society?.idLegalForm ?? undefined),
72
73
  rates: {
73
74
  flatTax: 0.314,
74
75
  flatLevy: 0.128, //prelevement forfaitaire
@@ -1 +1 @@
1
- {"version":3,"file":"societyApproval.js","sourceRoot":"","sources":["../../ts/utils/societyApproval.ts"],"names":[],"mappings":"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","sourcesContent":["import { LegalForm, LegalFormTypeEnum } from '../types/Enum/LegalForm.js';\nimport {\n AdditionalMentionType,\n SocietyApprovalDocumentType,\n SocietyApprovalDocumentConfig,\n SocietyApprovalDocumentsByLegalForm,\n SocietyApprovalDocumentTemplate,\n} from '../types/Enum/SocietyApproval.js';\nimport { ISocietyApproval } from '../types/Interface/models/ISocietyApproval.js';\nimport { QualityList } from '../types/Enum/Quality.js';\nimport { getBrand } from './brands.js';\nimport { convertNumberToLetter } from './amount.js';\nimport dayjs from 'dayjs';\nimport { CityOfGreffeDetail } from '../types/Enum/CityOfGreffe.js';\nimport { siretToSiren } from './siretValidation.js';\n\n/**\n * Récupère le nom de la forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param fallback - Valeur par défaut si non trouvée\n * @returns Le nom de la forme juridique\n */\nexport function getLegalFormName(idLegalForm: LegalFormTypeEnum, fallback: string = ''): string {\n return Object.values(LegalForm).find((lf) => lf.id === idLegalForm)?.name ?? fallback;\n}\n\n/**\n * Récupère la configuration des documents d'approbation pour une forme juridique donnée\n * @param idLegalForm - L'identifiant de la forme juridique\n * @returns La configuration des documents ou undefined si non trouvée\n */\nexport function getApprovalDocumentsByLegalForm(\n idLegalForm: LegalFormTypeEnum,\n): SocietyApprovalDocumentConfig | undefined {\n return SocietyApprovalDocumentsByLegalForm.find((config) => config.idLegalForm === idLegalForm);\n}\n\n/**\n * Récupère le texte de la ville du greffe\n * @param idCityOfGreffe - L'identifiant de la ville du greffe\n * @returns Le texte de la ville ou une chaîne vide\n */\nfunction getCityOfGreffeName(idCityOfGreffe: number | null | undefined): string {\n if (!idCityOfGreffe) return '';\n return CityOfGreffeDetail.find((c) => c.id === idCityOfGreffe)?.text ?? '';\n}\n\n/**\n * Récupère le nom du template pour un document spécifique et une forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param idDocumentType - Le type de document d'approbation\n * @returns Le nom du template ou undefined si non trouvé\n */\nexport function getApprovalDocumentInfos(\n idLegalForm: LegalFormTypeEnum,\n idDocumentType: SocietyApprovalDocumentType,\n): SocietyApprovalDocumentTemplate | undefined {\n const config = getApprovalDocumentsByLegalForm(idLegalForm);\n return config?.documents.find((doc) => doc.idDocumentType === idDocumentType);\n}\n\nfunction createApprovalDecisionTitleGenerator(): () => string {\n const decisionOrdinals = ['PREMIERE', 'DEUXIEME', 'TROISIEME', 'QUATRIEME', 'CINQUIEME', 'SIXIEME'];\n let decisionNumber = 0;\n\n return () => {\n decisionNumber += 1;\n return `${decisionOrdinals[decisionNumber - 1] ?? `${decisionNumber}EME`} DECISION`;\n };\n}\n\n/**\n * Construit les données formatées pour le template d'approbation\n * @param existingApproval - Les données d'approbation de la société\n * @param style - Le style HTML pour le document\n * @returns L'objet de données formaté pour le template\n */\nexport function buildApprovalTemplateData(existingApproval: ISocietyApproval, style: string): Record<string, any> {\n const yearInText = convertNumberToLetter(\n +dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('YYYY'),\n ).toLowerCase();\n const dayAndMonthInText = `${convertNumberToLetter(+dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('D'))} ${dayjs(\n existingApproval?.generatingDatas?.approvalDate || null,\n )\n .locale('fr')\n .format('MMMM')\n .toLowerCase()}`;\n const totalSharesHeldInText = convertNumberToLetter(\n existingApproval?.exercice?.society?.totalSharesHeld ?? 0,\n ).toLowerCase();\n const brand = getBrand();\n return {\n // Variables globales\n AdditionalMentionType,\n nextDecisionTitle: createApprovalDecisionTitleGenerator(),\n rates: {\n flatTax: 0.314,\n flatLevy: 0.128, //prelevement forfaitaire\n csg: 0.106,\n solidarity: 0.075,\n crds: 0.005,\n socialSecurityContributions: 0.186, //= csg + solidarity + crds\n },\n style,\n yearInText,\n dayAndMonthInText,\n totalSharesHeldInText,\n date: dayjs().locale('fr').format('DD MMMM YYYY'),\n companyInformation: {\n rcs: brand?.companyInformation?.rcs,\n nomRaisonSociale: brand?.companyInformation?.nomRaisonSociale,\n city: brand?.companyInformation?.city,\n postalAddress: brand?.companyInformation?.postalAddress,\n montantCapital: brand?.companyInformation?.montantCapital,\n statut: brand?.companyInformation?.statut,\n ECOrderCity: brand?.companyInformation?.ECOrderCity,\n },\n owner: {\n identity: `${existingApproval?.exercice?.society?.users?.[0]?.idCivility === 1 ? 'Monsieur' : 'Madame'} ${existingApproval?.exercice?.society?.users?.[0]?.firstname} ${existingApproval?.exercice?.society?.users?.[0]?.lastname} `,\n quality: QualityList.find(\n (ql) => ql.id === existingApproval?.exercice?.society?.users?.[0]?.businessPartners?.[0]?.idQuality,\n )?.label,\n },\n // Variables stockées en base\n ...existingApproval,\n generatingDatas: {\n ...existingApproval?.generatingDatas,\n ...(existingApproval?.generatingDatas?.approvalDate\n ? {\n approvalDate: dayjs(existingApproval?.generatingDatas?.approvalDate)\n .locale('fr')\n .format('DD MMMM YYYY')\n .toUpperCase(),\n }\n : {}),\n ...(existingApproval?.generatingDatas?.approvalDate\n ? {\n approvalDateMore4Months: dayjs(existingApproval?.generatingDatas?.approvalDate)\n .add(4, 'month')\n .locale('fr')\n .format('DD MMMM YYYY'),\n }\n : {}),\n ...(existingApproval?.generatingDatas?.approvalDividendsPaymentDate\n ? {\n approvalDividendsPaymentDate: dayjs(existingApproval?.generatingDatas?.approvalDividendsPaymentDate)\n .locale('fr')\n .format('DD MMMM YYYY'),\n }\n : {}),\n },\n exercice: {\n ...existingApproval?.exercice,\n society: {\n ...existingApproval?.exercice?.society,\n cityOfGreffe: getCityOfGreffeName(existingApproval?.exercice?.society?.idCityOfGreffe).toUpperCase(),\n siren: existingApproval?.exercice?.society?.siret\n ? (siretToSiren(existingApproval.exercice.society.siret)?.replace(/(\\d{3})(\\d{3})(\\d{3})/, '$1 $2 $3') ??\n null)\n : null,\n },\n endDate: dayjs(existingApproval?.exercice?.endDate).locale('fr').format('DD MMMM YYYY').toLowerCase(),\n },\n QualityList,\n };\n}\n"]}
1
+ {"version":3,"file":"societyApproval.js","sourceRoot":"","sources":["../../ts/utils/societyApproval.ts"],"names":[],"mappings":"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","sourcesContent":["import { LegalForm, LegalFormTypeEnum } from '../types/Enum/LegalForm.js';\nimport {\n AdditionalMentionType,\n SocietyApprovalDocumentType,\n SocietyApprovalDocumentConfig,\n SocietyApprovalDocumentsByLegalForm,\n SocietyApprovalDocumentTemplate,\n} from '../types/Enum/SocietyApproval.js';\nimport { ISocietyApproval } from '../types/Interface/models/ISocietyApproval.js';\nimport { QualityList } from '../types/Enum/Quality.js';\nimport { getBrand } from './brands.js';\nimport { convertNumberToLetter } from './amount.js';\nimport dayjs from 'dayjs';\nimport { CityOfGreffeDetail } from '../types/Enum/CityOfGreffe.js';\nimport { siretToSiren } from './siretValidation.js';\n\n/**\n * Récupère le nom de la forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param fallback - Valeur par défaut si non trouvée\n * @returns Le nom de la forme juridique\n */\nexport function getLegalFormName(idLegalForm: LegalFormTypeEnum, fallback: string = ''): string {\n return Object.values(LegalForm).find((lf) => lf.id === idLegalForm)?.name ?? fallback;\n}\n\n/**\n * Récupère la configuration des documents d'approbation pour une forme juridique donnée\n * @param idLegalForm - L'identifiant de la forme juridique\n * @returns La configuration des documents ou undefined si non trouvée\n */\nexport function getApprovalDocumentsByLegalForm(\n idLegalForm: LegalFormTypeEnum,\n): SocietyApprovalDocumentConfig | undefined {\n return SocietyApprovalDocumentsByLegalForm.find((config) => config.idLegalForm === idLegalForm);\n}\n\n/**\n * Récupère le texte de la ville du greffe\n * @param idCityOfGreffe - L'identifiant de la ville du greffe\n * @returns Le texte de la ville ou une chaîne vide\n */\nfunction getCityOfGreffeName(idCityOfGreffe: number | null | undefined): string {\n if (!idCityOfGreffe) return '';\n return CityOfGreffeDetail.find((c) => c.id === idCityOfGreffe)?.text ?? '';\n}\n\n/**\n * Récupère le nom du template pour un document spécifique et une forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param idDocumentType - Le type de document d'approbation\n * @returns Le nom du template ou undefined si non trouvé\n */\nexport function getApprovalDocumentInfos(\n idLegalForm: LegalFormTypeEnum,\n idDocumentType: SocietyApprovalDocumentType,\n): SocietyApprovalDocumentTemplate | undefined {\n const config = getApprovalDocumentsByLegalForm(idLegalForm);\n return config?.documents.find((doc) => doc.idDocumentType === idDocumentType);\n}\n\nfunction createApprovalDecisionTitleGenerator(idLegalForm?: LegalFormTypeEnum): () => string {\n const decisionOrdinals = ['PREMIERE', 'DEUXIEME', 'TROISIEME', 'QUATRIEME', 'CINQUIEME', 'SIXIEME'];\n const decisionLabel =\n idLegalForm === LegalFormTypeEnum.SARL || idLegalForm === LegalFormTypeEnum.SAS ? 'RESOLUTION' : 'DECISION';\n let decisionNumber = 0;\n\n return () => {\n decisionNumber += 1;\n return `${decisionOrdinals[decisionNumber - 1] ?? `${decisionNumber}EME`} ${decisionLabel}`;\n };\n}\n\n/**\n * Construit les données formatées pour le template d'approbation\n * @param existingApproval - Les données d'approbation de la société\n * @param style - Le style HTML pour le document\n * @returns L'objet de données formaté pour le template\n */\nexport function buildApprovalTemplateData(existingApproval: ISocietyApproval, style: string): Record<string, any> {\n const yearInText = convertNumberToLetter(\n +dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('YYYY'),\n ).toLowerCase();\n const dayAndMonthInText = `${convertNumberToLetter(+dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('D'))} ${dayjs(\n existingApproval?.generatingDatas?.approvalDate || null,\n )\n .locale('fr')\n .format('MMMM')\n .toLowerCase()}`;\n const totalSharesHeldInText = convertNumberToLetter(\n existingApproval?.exercice?.society?.totalSharesHeld ?? 0,\n ).toLowerCase();\n const brand = getBrand();\n return {\n // Variables globales\n AdditionalMentionType,\n nextDecisionTitle: createApprovalDecisionTitleGenerator(\n existingApproval?.exercice?.society?.idLegalForm ?? undefined,\n ),\n rates: {\n flatTax: 0.314,\n flatLevy: 0.128, //prelevement forfaitaire\n csg: 0.106,\n solidarity: 0.075,\n crds: 0.005,\n socialSecurityContributions: 0.186, //= csg + solidarity + crds\n },\n style,\n yearInText,\n dayAndMonthInText,\n totalSharesHeldInText,\n date: dayjs().locale('fr').format('DD MMMM YYYY'),\n companyInformation: {\n rcs: brand?.companyInformation?.rcs,\n nomRaisonSociale: brand?.companyInformation?.nomRaisonSociale,\n city: brand?.companyInformation?.city,\n postalAddress: brand?.companyInformation?.postalAddress,\n montantCapital: brand?.companyInformation?.montantCapital,\n statut: brand?.companyInformation?.statut,\n ECOrderCity: brand?.companyInformation?.ECOrderCity,\n },\n owner: {\n identity: `${existingApproval?.exercice?.society?.users?.[0]?.idCivility === 1 ? 'Monsieur' : 'Madame'} ${existingApproval?.exercice?.society?.users?.[0]?.firstname} ${existingApproval?.exercice?.society?.users?.[0]?.lastname} `,\n quality: QualityList.find(\n (ql) => ql.id === existingApproval?.exercice?.society?.users?.[0]?.businessPartners?.[0]?.idQuality,\n )?.label,\n },\n // Variables stockées en base\n ...existingApproval,\n generatingDatas: {\n ...existingApproval?.generatingDatas,\n ...(existingApproval?.generatingDatas?.approvalDate\n ? {\n approvalDate: dayjs(existingApproval?.generatingDatas?.approvalDate)\n .locale('fr')\n .format('DD MMMM YYYY')\n .toUpperCase(),\n }\n : {}),\n ...(existingApproval?.generatingDatas?.approvalDate\n ? {\n approvalDateMore4Months: dayjs(existingApproval?.generatingDatas?.approvalDate)\n .add(4, 'month')\n .locale('fr')\n .format('DD MMMM YYYY'),\n }\n : {}),\n ...(existingApproval?.generatingDatas?.approvalDividendsPaymentDate\n ? {\n approvalDividendsPaymentDate: dayjs(existingApproval?.generatingDatas?.approvalDividendsPaymentDate)\n .locale('fr')\n .format('DD MMMM YYYY'),\n }\n : {}),\n },\n exercice: {\n ...existingApproval?.exercice,\n society: {\n ...existingApproval?.exercice?.society,\n cityOfGreffe: getCityOfGreffeName(existingApproval?.exercice?.society?.idCityOfGreffe).toUpperCase(),\n siren: existingApproval?.exercice?.society?.siret\n ? (siretToSiren(existingApproval.exercice.society.siret)?.replace(/(\\d{3})(\\d{3})(\\d{3})/, '$1 $2 $3') ??\n null)\n : null,\n },\n endDate: dayjs(existingApproval?.exercice?.endDate).locale('fr').format('DD MMMM YYYY').toLowerCase(),\n },\n QualityList,\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "2.0.98",
3
+ "version": "2.0.100",
4
4
  "description": "Silex Core perform HTTP Request and object binding. Silex core helps developers to retrieve and return formatted object",
5
5
  "keywords": [
6
6
  "accounting",
@@ -225,12 +225,12 @@ export const SocietyApprovalDocumentsByLegalForm: SocietyApprovalDocumentConfig[
225
225
  templateName: 'DECLARATION_OF_CONFIDENTIALITY_FOR_ANNUAL_ACCOUNTS_PME_SARL',
226
226
  documentSectionType: DocumentSectionType.DECLARATION_OF_CONFIDENTIALITY_FOR_ANNUAL_ACCOUNTS,
227
227
  },
228
- // {
229
- // idDocumentType: SocietyApprovalDocumentType.INCOME_APPROPRIATION,
230
- // docName: 'Résolution d’affectation du résultat',
231
- // templateName: 'INCOME_APPROPRIATION_SARL',
232
- // documentSectionType: DocumentSectionType.INCOME_APPROPRIATION,
233
- // },
228
+ {
229
+ idDocumentType: SocietyApprovalDocumentType.INCOME_APPROPRIATION,
230
+ docName: 'Résolution d’affectation du résultat',
231
+ templateName: 'INCOME_APPROPRIATION_SARL',
232
+ documentSectionType: DocumentSectionType.INCOME_APPROPRIATION,
233
+ },
234
234
  {
235
235
  idDocumentType: SocietyApprovalDocumentType.LIST_OF_CONVENTIONS,
236
236
  docName: 'Rapport spécial des conventions réglementées',
@@ -273,12 +273,12 @@ export const SocietyApprovalDocumentsByLegalForm: SocietyApprovalDocumentConfig[
273
273
  templateName: 'DECLARATION_OF_CONFIDENTIALITY_FOR_ANNUAL_ACCOUNTS_PME_SAS',
274
274
  documentSectionType: DocumentSectionType.DECLARATION_OF_CONFIDENTIALITY_FOR_ANNUAL_ACCOUNTS,
275
275
  },
276
- // {
277
- // idDocumentType: SocietyApprovalDocumentType.INCOME_APPROPRIATION,
278
- // docName: 'Résolution d’affectation du résultat',
279
- // templateName: 'INCOME_APPROPRIATION_SARL',
280
- // documentSectionType: DocumentSectionType.INCOME_APPROPRIATION,
281
- // },
276
+ {
277
+ idDocumentType: SocietyApprovalDocumentType.INCOME_APPROPRIATION,
278
+ docName: 'Résolution d’affectation du résultat',
279
+ templateName: 'INCOME_APPROPRIATION_SAS',
280
+ documentSectionType: DocumentSectionType.INCOME_APPROPRIATION,
281
+ },
282
282
  {
283
283
  idDocumentType: SocietyApprovalDocumentType.LIST_OF_CONVENTIONS,
284
284
  docName: 'Rapport spécial des conventions réglementées',
@@ -54,3 +54,74 @@ export enum ZendeskTicketChannelEnum {
54
54
  WEB_SERVICE = 'web_service',
55
55
  WHATSAPP = 'whatsapp',
56
56
  }
57
+
58
+ export type ZendeskTicketCategory =
59
+ | 'pièces_comptables'
60
+ | 'tva_et_comptabilité'
61
+ | 'démarches_administratives_tva'
62
+ | 'demande_de_remboursement_de_tva'
63
+ | 'conseils_tva'
64
+ | 'suivi_de_votre_dossier'
65
+ | 'attestations_et_documents_officiels'
66
+ | 'contrôle_du_fichier_des_écritures_comptables__fec_'
67
+ | 'reprise_de_votre_dossier_comptable'
68
+ | 'vérification_de_votre_dossier'
69
+ | 'documents_demandés_pour_votre_bilan'
70
+ | 'paramétrage_comptable'
71
+ | 'vérifications_sociales_et_paie'
72
+ | 'bilan_annuel'
73
+ | 'conseils_et_accompagnement'
74
+ | 'informations_manquantes_ou_non_conformes'
75
+ | 'traitement_prioritaire_du_bilan'
76
+ | 'relance_bilan'
77
+ | 'support_application';
78
+
79
+ export enum ZendeskTicketCategoryEnum {
80
+ PIECES_COMPTABLES = 'pièces_comptables',
81
+ TVA_ET_COMPTABILITE = 'tva_et_comptabilité',
82
+ DEMARCHES_ADMINISTRATIVES_TVA = 'démarches_administratives_tva',
83
+ DEMANDE_REMBOURSEMENT_TVA = 'demande_de_remboursement_de_tva',
84
+ CONSEILS_TVA = 'conseils_tva',
85
+ SUIVI_DOSSIER = 'suivi_de_votre_dossier',
86
+ ATTESTATIONS_DOCUMENTS_OFFICIELS = 'attestations_et_documents_officiels',
87
+ CONTROLE_FEC = 'contrôle_du_fichier_des_écritures_comptables__fec_',
88
+ REPRISE_DOSSIER_COMPTABLE = 'reprise_de_votre_dossier_comptable',
89
+ VERIFICATION_DOSSIER = 'vérification_de_votre_dossier',
90
+ DOCUMENTS_DEMANDES_BILAN = 'documents_demandés_pour_votre_bilan',
91
+ PARAMETRAGE_COMPTABLE = 'paramétrage_comptable',
92
+ VERIFICATIONS_SOCIALES_PAIE = 'vérifications_sociales_et_paie',
93
+ BILAN_ANNUEL = 'bilan_annuel',
94
+ CONSEILS_ACCOMPAGNEMENT = 'conseils_et_accompagnement',
95
+ INFORMATIONS_MANQUANTES_NON_CONFORMES = 'informations_manquantes_ou_non_conformes',
96
+ TRAITEMENT_PRIORITAIRE_BILAN = 'traitement_prioritaire_du_bilan',
97
+ RELANCE_BILAN = 'relance_bilan',
98
+ SUPPORT_APPLICATION = 'support_application',
99
+ }
100
+
101
+ export const ZendeskTicketCategoryList: Array<{ id: ZendeskTicketCategoryEnum; label: string }> = [
102
+ { id: ZendeskTicketCategoryEnum.PIECES_COMPTABLES, label: 'Pièces comptables' },
103
+ { id: ZendeskTicketCategoryEnum.TVA_ET_COMPTABILITE, label: 'TVA et comptabilité' },
104
+ { id: ZendeskTicketCategoryEnum.CONSEILS_TVA, label: 'Conseils TVA' },
105
+ { id: ZendeskTicketCategoryEnum.DEMARCHES_ADMINISTRATIVES_TVA, label: 'Démarches administratives TVA' },
106
+ { id: ZendeskTicketCategoryEnum.DEMANDE_REMBOURSEMENT_TVA, label: 'Demande de remboursement de TVA' },
107
+ { id: ZendeskTicketCategoryEnum.SUIVI_DOSSIER, label: 'Suivi de votre dossier' },
108
+ { id: ZendeskTicketCategoryEnum.ATTESTATIONS_DOCUMENTS_OFFICIELS, label: 'Attestations et documents officiels' },
109
+ {
110
+ id: ZendeskTicketCategoryEnum.CONTROLE_FEC,
111
+ label: 'Contrôle du Fichier des Écritures Comptables (FEC)',
112
+ },
113
+ { id: ZendeskTicketCategoryEnum.REPRISE_DOSSIER_COMPTABLE, label: 'Reprise de votre dossier comptable' },
114
+ { id: ZendeskTicketCategoryEnum.VERIFICATION_DOSSIER, label: 'Vérification de votre dossier' },
115
+ { id: ZendeskTicketCategoryEnum.DOCUMENTS_DEMANDES_BILAN, label: 'Documents demandés pour votre bilan' },
116
+ { id: ZendeskTicketCategoryEnum.PARAMETRAGE_COMPTABLE, label: 'Paramétrage comptable' },
117
+ { id: ZendeskTicketCategoryEnum.VERIFICATIONS_SOCIALES_PAIE, label: 'Vérifications sociales et paie' },
118
+ { id: ZendeskTicketCategoryEnum.BILAN_ANNUEL, label: 'Bilan annuel' },
119
+ { id: ZendeskTicketCategoryEnum.CONSEILS_ACCOMPAGNEMENT, label: 'Conseils et accompagnement' },
120
+ {
121
+ id: ZendeskTicketCategoryEnum.INFORMATIONS_MANQUANTES_NON_CONFORMES,
122
+ label: 'Informations manquantes ou non conformes',
123
+ },
124
+ { id: ZendeskTicketCategoryEnum.TRAITEMENT_PRIORITAIRE_BILAN, label: 'Traitement prioritaire du bilan' },
125
+ { id: ZendeskTicketCategoryEnum.RELANCE_BILAN, label: 'Relance bilan' },
126
+ { id: ZendeskTicketCategoryEnum.SUPPORT_APPLICATION, label: 'Support application' },
127
+ ];
@@ -20,6 +20,9 @@ export class UpdateAccountSociety {
20
20
 
21
21
  @ApiPropertyOptional()
22
22
  idRegisterCategorie?: number;
23
+
24
+ @ApiPropertyOptional()
25
+ metadata?: IAccount['metadata'];
23
26
  }
24
27
 
25
28
  export class UpdateAccount {
@@ -1,8 +1,18 @@
1
1
  import { IEInvoicingKycAndMandate, ReadDocoonDirectoryLineAdded } from '../../../../index.js';
2
2
 
3
+ export enum EInvoicingAddressingIdentifierStatus {
4
+ ACTIVE = 'ACTIVE',
5
+ SUSPENDED = 'SUSPENDED',
6
+ PENDING = 'PENDING',
7
+ ERROR = 'ERROR',
8
+ CANCELLED = 'CANCELLED',
9
+ }
10
+
3
11
  export type _InvoicingKycMAndateWithDirectoryLineInfo = IEInvoicingKycAndMandate & {
12
+ status: EInvoicingAddressingIdentifierStatus;
13
+ statusLabel: string;
14
+ /** @deprecated do not use, will be removed in future versions */
4
15
  directoryLineInfo?: ReadDocoonDirectoryLineAdded;
5
- status?: 'ACTIVE' | 'SUSPENDED' | 'PENDING' | 'ERROR';
6
16
  };
7
17
  export interface LegalRepresentative {
8
18
  type: 'INDIVIDU' | 'ENTREPRISE';
@@ -13,6 +13,8 @@ import {
13
13
  } from 'class-validator';
14
14
  import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
15
15
  import {
16
+ ZendeskTicketCategory,
17
+ ZendeskTicketCategoryEnum,
16
18
  ZendeskTicketChannel,
17
19
  ZendeskTicketChannelEnum,
18
20
  ZendeskTicketPriority,
@@ -81,6 +83,16 @@ export class CreateZendeskTicket {
81
83
  @IsOptional()
82
84
  @IsNumber()
83
85
  organizationId?: number;
86
+
87
+ @ApiPropertyOptional()
88
+ @IsOptional()
89
+ @IsNumber()
90
+ ticketFormId?: number;
91
+
92
+ @ApiPropertyOptional()
93
+ @IsOptional()
94
+ @IsEnum(ZendeskTicketCategoryEnum)
95
+ category?: ZendeskTicketCategory;
84
96
  }
85
97
 
86
98
  export class UpdateZendeskTicket {
@@ -14,6 +14,7 @@ export class IEInvoicingKycAndMandate {
14
14
  onboardingStatus?: string | null; // DRAFT | IN_PROGRESS | COMPLETED | REJECTED | ACTION_NEEDED | EXPIRED | CANCELLED
15
15
  sentToDocoon: boolean;
16
16
  docoonDirectoryLineId?: string | null; // id at docoon
17
+ isCDAR: boolean;
17
18
  payloadRequest?: FinishProcess;
18
19
  payloadSignature?: FinishProcess;
19
20
  idSociety: number;
@@ -350,7 +350,9 @@ export function checkCommercialDocumentInformation(payload: CreateInvoiceDocumen
350
350
  if (['margin', 'autoliquidation', 'export', 'exempt'].includes(vatType)) {
351
351
  for (const product of products) {
352
352
  if (getById(product.idVat)?.value !== 0) {
353
- errors.push(`L'article ${product.itemSaleName} a une TVA non nulle alors que le type de TVA est ${vatType}.`);
353
+ errors.push(
354
+ `L'article "${product.itemSaleName}" a une TVA non nulle alors que la mention légale de TVA est définie comme "${vatType}".`,
355
+ );
354
356
  }
355
357
  }
356
358
  }
@@ -59,13 +59,15 @@ export function getApprovalDocumentInfos(
59
59
  return config?.documents.find((doc) => doc.idDocumentType === idDocumentType);
60
60
  }
61
61
 
62
- function createApprovalDecisionTitleGenerator(): () => string {
62
+ function createApprovalDecisionTitleGenerator(idLegalForm?: LegalFormTypeEnum): () => string {
63
63
  const decisionOrdinals = ['PREMIERE', 'DEUXIEME', 'TROISIEME', 'QUATRIEME', 'CINQUIEME', 'SIXIEME'];
64
+ const decisionLabel =
65
+ idLegalForm === LegalFormTypeEnum.SARL || idLegalForm === LegalFormTypeEnum.SAS ? 'RESOLUTION' : 'DECISION';
64
66
  let decisionNumber = 0;
65
67
 
66
68
  return () => {
67
69
  decisionNumber += 1;
68
- return `${decisionOrdinals[decisionNumber - 1] ?? `${decisionNumber}EME`} DECISION`;
70
+ return `${decisionOrdinals[decisionNumber - 1] ?? `${decisionNumber}EME`} ${decisionLabel}`;
69
71
  };
70
72
  }
71
73
 
@@ -92,7 +94,9 @@ export function buildApprovalTemplateData(existingApproval: ISocietyApproval, st
92
94
  return {
93
95
  // Variables globales
94
96
  AdditionalMentionType,
95
- nextDecisionTitle: createApprovalDecisionTitleGenerator(),
97
+ nextDecisionTitle: createApprovalDecisionTitleGenerator(
98
+ existingApproval?.exercice?.society?.idLegalForm ?? undefined,
99
+ ),
96
100
  rates: {
97
101
  flatTax: 0.314,
98
102
  flatLevy: 0.128, //prelevement forfaitaire