@silexpert/core 1.1.235 → 1.1.237

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 (72) hide show
  1. package/dist/cjs/api/resources/AccountingFiles.d.ts +2 -1
  2. package/dist/cjs/api/resources/AccountingFiles.d.ts.map +1 -1
  3. package/dist/cjs/api/resources/AccountingFiles.js +3 -0
  4. package/dist/cjs/api/resources/AccountingFiles.js.map +1 -1
  5. package/dist/cjs/api/resources/CommercialImport.d.ts.map +1 -1
  6. package/dist/cjs/api/resources/CommercialImport.js +0 -1
  7. package/dist/cjs/api/resources/CommercialImport.js.map +1 -1
  8. package/dist/cjs/api/resources/Transaction.d.ts +2 -1
  9. package/dist/cjs/api/resources/Transaction.d.ts.map +1 -1
  10. package/dist/cjs/api/resources/Transaction.js +3 -0
  11. package/dist/cjs/api/resources/Transaction.js.map +1 -1
  12. package/dist/cjs/types/Enum/CommercialOfferType.js +2 -2
  13. package/dist/cjs/types/Enum/CommercialOfferType.js.map +1 -1
  14. package/dist/cjs/types/Interface/api/accountingEntry/Create.d.ts +9 -0
  15. package/dist/cjs/types/Interface/api/accountingEntry/Create.d.ts.map +1 -1
  16. package/dist/cjs/types/Interface/api/accountingEntry/Create.js +41 -1
  17. package/dist/cjs/types/Interface/api/accountingEntry/Create.js.map +1 -1
  18. package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.d.ts +4 -0
  19. package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.d.ts.map +1 -1
  20. package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.js +15 -1
  21. package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.js.map +1 -1
  22. package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.d.ts +4 -0
  23. package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.d.ts.map +1 -1
  24. package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.js +13 -3
  25. package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.js.map +1 -1
  26. package/dist/cjs/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.d.ts.map +1 -1
  27. package/dist/cjs/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.js +9 -0
  28. package/dist/cjs/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.js.map +1 -1
  29. package/dist/cjs/utils/email.d.ts.map +1 -1
  30. package/dist/cjs/utils/email.js +3 -7
  31. package/dist/cjs/utils/email.js.map +1 -1
  32. package/dist/mjs/api/resources/AccountingFiles.d.ts +2 -1
  33. package/dist/mjs/api/resources/AccountingFiles.d.ts.map +1 -1
  34. package/dist/mjs/api/resources/AccountingFiles.js +3 -0
  35. package/dist/mjs/api/resources/AccountingFiles.js.map +1 -1
  36. package/dist/mjs/api/resources/CommercialImport.d.ts.map +1 -1
  37. package/dist/mjs/api/resources/CommercialImport.js +0 -1
  38. package/dist/mjs/api/resources/CommercialImport.js.map +1 -1
  39. package/dist/mjs/api/resources/Transaction.d.ts +2 -1
  40. package/dist/mjs/api/resources/Transaction.d.ts.map +1 -1
  41. package/dist/mjs/api/resources/Transaction.js +3 -0
  42. package/dist/mjs/api/resources/Transaction.js.map +1 -1
  43. package/dist/mjs/types/Enum/CommercialOfferType.js +2 -2
  44. package/dist/mjs/types/Enum/CommercialOfferType.js.map +1 -1
  45. package/dist/mjs/types/Interface/api/accountingEntry/Create.d.ts +9 -0
  46. package/dist/mjs/types/Interface/api/accountingEntry/Create.d.ts.map +1 -1
  47. package/dist/mjs/types/Interface/api/accountingEntry/Create.js +46 -0
  48. package/dist/mjs/types/Interface/api/accountingEntry/Create.js.map +1 -1
  49. package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.d.ts +4 -0
  50. package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.d.ts.map +1 -1
  51. package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.js +15 -0
  52. package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.js.map +1 -1
  53. package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.d.ts +4 -0
  54. package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.d.ts.map +1 -1
  55. package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.js +16 -4
  56. package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.js.map +1 -1
  57. package/dist/mjs/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.d.ts.map +1 -1
  58. package/dist/mjs/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.js +10 -1
  59. package/dist/mjs/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.js.map +1 -1
  60. package/dist/mjs/utils/email.d.ts.map +1 -1
  61. package/dist/mjs/utils/email.js +3 -6
  62. package/dist/mjs/utils/email.js.map +1 -1
  63. package/package.json +1 -1
  64. package/ts/api/resources/AccountingFiles.ts +5 -1
  65. package/ts/api/resources/CommercialImport.ts +0 -2
  66. package/ts/api/resources/Transaction.ts +5 -1
  67. package/ts/types/Enum/CommercialOfferType.ts +2 -2
  68. package/ts/types/Interface/api/accountingEntry/Create.ts +32 -0
  69. package/ts/types/Interface/api/accountingFiles/queryAccountingFiles.ts +13 -0
  70. package/ts/types/Interface/api/accountingTransaction/QueryTransaction.ts +10 -1
  71. package/ts/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.ts +8 -2
  72. package/ts/utils/email.ts +5 -35
@@ -1 +1 @@
1
- {"version":3,"file":"QueryPaymentExpectationCustomer.js","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,OAAO,+BAA+B;IAC1C,iBAAiB;IACjB,KAAK,CAAU;IAEf,iBAAiB;IACjB,MAAM,CAAS;IAEf,iBAAiB;IACjB,YAAY,CAAU;IACtB,iBAAiB,CAAU;CAC5B;AAED,MAAM,OAAO,kCAAkC;IAE3C,KAAK,CAAS;CACjB;AAFC;IAAC,WAAW,EAAE;;iEACE;AAElB,MAAM,OAAO,iDAAiD;IAC5D,iBAAiB;IACjB,SAAS,CAAS;CACnB;AAED,MAAM,OAAO,4CAA4C;IACvD,iBAAiB;IACjB,SAAS,CAAS;IAElB,MAAM,CAAiB;IAEvB,SAAS,CAAiB;IAE1B,MAAM,CAAiB;IAEvB,OAAO,CAAiB;IAExB,IAAI,CAAS;IAEb,KAAK,CAAS;IAEd,KAAK,CAAU;IAEf,UAAU,CAAW;CACtB;AAED,MAAM,OAAO,kCAAkC;IAC7C,iBAAiB;IACjB,eAAe,CAAS;IAExB,iBAAiB;IACjB,KAAK,CAAS;CACf;AAED,MAAM,OAAO,sCAAsC;IACjD,iBAAiB;IACjB,eAAe,CAAS;IAExB,iBAAiB;IACjB,KAAK,CAAS;CACf;AAED,MAAM,OAAO,4CAA4C;IACvD,SAAS,CAAS;IAElB,EAAE,CAAS;CACZ","sourcesContent":["import { ApiProperty } from '../../../../utils';\nimport { QueryPaginate } from '../BasePaginate';\nimport { Order } from '../BaseRequest';\n\nexport class QueryPaymentExpectationCustomer {\n // @ApiProperty()\n label?: string;\n\n // @ApiProperty()\n amount: number;\n\n // @ApiProperty()\n idThirdParty?: number;\n idEstimateInvoice?: number;\n}\n\nexport class QueryGetPaymentExpectationCustomer {\n @ApiProperty()\n token: string;\n}\nexport class QueryGetSocietyPaymentsExpectationsCustomersStats {\n // @ApiProperty()\n idSociety: number;\n}\n\nexport class QueryGetSocietyPaymentsExpectationsCustomers implements QueryPaginate, Order {\n // @ApiProperty()\n idSociety: number;\n\n status?: string | null;\n\n dateStart?: string | null;\n\n search?: string | null;\n\n dateEnd?: string | null;\n\n page: number;\n\n limit: number;\n\n order?: string;\n\n descending?: boolean;\n}\n\nexport class QueryPayPaymentExpectationCustomer {\n // @ApiProperty()\n idPaymentMethod: string;\n\n // @ApiProperty()\n token: string;\n}\n\nexport class QueryConfirmPaymentExpectationCustomer {\n // @ApiProperty()\n idPaymentIntent: string;\n\n // @ApiProperty()\n token: string;\n}\n\nexport class QueryDeleteSocietyPaymentExpectationCustomer {\n idSociety: number;\n\n id: number;\n}\n"]}
1
+ {"version":3,"file":"QueryPaymentExpectationCustomer.js","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/paymentExpectationCustomer/QueryPaymentExpectationCustomer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAE3E,MAAM,OAAO,+BAA+B;IAC1C,iBAAiB;IACjB,KAAK,CAAU;IAEf,iBAAiB;IACjB,MAAM,CAAS;IAEf,iBAAiB;IACjB,YAAY,CAAU;IACtB,iBAAiB,CAAU;CAC5B;AAED,MAAM,OAAO,kCAAkC;IAE3C,KAAK,CAAS;CACjB;AAFC;IAAC,WAAW,EAAE;;iEACE;AAElB,MAAM,OAAO,iDAAiD;IAC5D,iBAAiB;IACjB,SAAS,CAAS;CACnB;AAED,MAAM,OAAO,4CAA4C;IACvD,iBAAiB;IACjB,SAAS,CAAS;IAElB,MAAM,CAAiB;IAEvB,SAAS,CAAiB;IAE1B,MAAM,CAAiB;IAEvB,OAAO,CAAiB;IAExB,IAAI,CAAS;IAEb,KAAK,CAAS;IAEd,KAAK,CAAU;IAMb,UAAU,CAAW;CACxB;AALC;IAAC,mBAAmB,EAAE;IACrB,SAAS,EAAE;IACX,SAAS,EAAE;IACX,UAAU,EAAE;;gFACU;AAGzB,MAAM,OAAO,kCAAkC;IAC7C,iBAAiB;IACjB,eAAe,CAAS;IAExB,iBAAiB;IACjB,KAAK,CAAS;CACf;AAED,MAAM,OAAO,sCAAsC;IACjD,iBAAiB;IACjB,eAAe,CAAS;IAExB,iBAAiB;IACjB,KAAK,CAAS;CACf;AAED,MAAM,OAAO,4CAA4C;IACvD,SAAS,CAAS;IAElB,EAAE,CAAS;CACZ","sourcesContent":["import { IsBoolean, IsOptional } from 'class-validator';\nimport { ApiProperty, ApiPropertyOptional } from '../../../../utils';\nimport { QueryPaginate } from '../BasePaginate';\nimport { Order } from '../BaseRequest';\nimport { ToBoolean } from '../../../../utils/transforms/boolean.transform';\n\nexport class QueryPaymentExpectationCustomer {\n // @ApiProperty()\n label?: string;\n\n // @ApiProperty()\n amount: number;\n\n // @ApiProperty()\n idThirdParty?: number;\n idEstimateInvoice?: number;\n}\n\nexport class QueryGetPaymentExpectationCustomer {\n @ApiProperty()\n token: string;\n}\nexport class QueryGetSocietyPaymentsExpectationsCustomersStats {\n // @ApiProperty()\n idSociety: number;\n}\n\nexport class QueryGetSocietyPaymentsExpectationsCustomers implements QueryPaginate, Order {\n // @ApiProperty()\n idSociety: number;\n\n status?: string | null;\n\n dateStart?: string | null;\n\n search?: string | null;\n\n dateEnd?: string | null;\n\n page: number;\n\n limit: number;\n\n order?: string;\n\n @ApiPropertyOptional()\n @IsBoolean()\n @ToBoolean()\n @IsOptional()\n descending?: boolean;\n}\n\nexport class QueryPayPaymentExpectationCustomer {\n // @ApiProperty()\n idPaymentMethod: string;\n\n // @ApiProperty()\n token: string;\n}\n\nexport class QueryConfirmPaymentExpectationCustomer {\n // @ApiProperty()\n idPaymentIntent: string;\n\n // @ApiProperty()\n token: string;\n}\n\nexport class QueryDeleteSocietyPaymentExpectationCustomer {\n idSociety: number;\n\n id: number;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../ts/utils/email.ts"],"names":[],"mappings":"AAuJA,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAsIrD"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../ts/utils/email.ts"],"names":[],"mappings":"AAyHA,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAsIrD"}
@@ -1,5 +1,6 @@
1
1
  // import * as dayjs from 'dayjs';
2
2
  // import { orderBy as orderByLodash } from 'lodash';
3
+ import { EntityType } from '../types/Enum/EntityType';
3
4
  import { Role } from '../types/Enum/Role';
4
5
  import { getBrandConfig, isItThisEnv } from './brands';
5
6
  import { signatureTemplate } from './email/templates/signature';
@@ -72,12 +73,8 @@ function getRoleSignature(user) {
72
73
  return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;
73
74
  }
74
75
  function getHoraires(user) {
75
- const offices = getBrandConfig({
76
- nodeEnv: 'Pourcentage',
77
- objectWaited: 'offices',
78
- });
79
- if (isItThisEnv('Pourcentage') && offices?.NICE?.id === user.idOffice) {
80
- return 'Du lundi au vendredi de 8h à 18h';
76
+ if (user?.entity && isItThisEnv('Pourcentage') && [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)) {
77
+ return 'Du lundi au vendredi de 9h à 18h';
81
78
  }
82
79
  return 'Du lundi au vendredi de 9h à 19h';
83
80
  // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 19h';
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../ts/utils/email.ts"],"names":[],"mappings":"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","sourcesContent":["// import * as dayjs from 'dayjs';\n// import { orderBy as orderByLodash } from 'lodash';\nimport { Role } from '../types/Enum/Role';\nimport { getBrandConfig, isItThisEnv } from './brands';\nimport { signatureTemplate } from './email/templates/signature';\n\nconst ejs = require('ejs');\ntype offices = {\n LAXOU: {\n id: number,\n name: string,\n },\n PARIS: {\n id: number,\n name: string,\n },\n MARSEILLE: {\n id: number,\n name: string,\n },\n EPINAL: {\n id: number,\n name: string,\n },\n HOME_OFFICE: {\n id: number,\n name: string,\n },\n NICE: {\n id: number,\n name: string,\n },\n};\n\n\nfunction intersection<T>(arr: [T[], T[]]) { return arr.reduce((a: T[], b: T[]) => a.filter((c) => b.includes(c)), []); }\n\nfunction getRoleSignature(user:any) {\n if (user.positionLabel) return user.positionLabel;\n\n const isStagiaireOrAlternant = user.roles.map((r: any) => r.id).includes(Role.INTERN) || user.roles.map((r: any) => r.id).includes(Role.ALTERNATE);\n const isManager = user.roles.map((r: any) => r.id).includes(Role.MANAGER);\n\n const isSocial = user.roles.map((r: any) => r.id).includes(Role.SOCIAL);\n const isJuridic = user.roles.map((r: any) => r.id).includes(Role.JURIDIC);\n const isFacturation = user.roles.map((r: any) => r.id).includes(Role.FACTURATION);\n const isExpert = user.roles.map((r: any) => r.id).includes(Role.EXPERT_ACCOUNTANT);\n const isCS = user.roles.map((r: any) => r.id).includes(Role.CUSTOMER_SUCCESS);\n const isSales = user.roles.map((r: any) => r.id).includes(Role.COMMERCIAL);\n const isAdmin = user.roles.map((r: any) => r.id).includes(Role.ADMIN);\n const isFront = !!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS]]).length;\n\n if (isSales && isManager) { return 'Responsable commercial'; }\n if (isSales) { return `Chargé${user.idCivility === 2 ? 'e' : ''} de clientèle`; }\n\n if (isCS && isManager) { return 'Responsable relations clients'; }\n if (isCS) { return `Conseill${user.idCivility === 2 ? 'ère' : 'er'} comptable`; }\n\n if (isFacturation && isStagiaireOrAlternant) { return 'Assistant facturation'; }\n if (isFacturation && isManager) { return 'Responsable facturation'; }\n if (isFacturation) { return `Chargé${user.idCivility === 2 ? 'e' : ''} de facturation`; }\n\n if (isJuridic && isStagiaireOrAlternant) { return 'Assistant juridique'; }\n if (isJuridic && isManager) { return 'Responsable juridique'; }\n if (isJuridic) { return 'Juriste'; }\n\n if (isSocial && isStagiaireOrAlternant) { return 'Assistant paie'; }\n if (isSocial && isManager) { return 'Responsable paie'; }\n if (isSocial) { return 'Gestionnaire de paie'; }\n\n if (isExpert) { return `Expert${user.idCivility === 2 ? 'e' : ''}-comptable`; }\n\n if (isAdmin) { return 'Développeur web'; }\n\n if (isFront && isManager) return 'Responsable comptable';\n if (isFront && isStagiaireOrAlternant) return 'Assistant comptable';\n if (isFront) return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n}\n\nfunction getHoraires(user:any) { // On affiche les horaires uniquement pour les front, et pas pour les TVA\n\n const offices = getBrandConfig({\n nodeEnv: 'Pourcentage',\n objectWaited: 'offices',\n }) as unknown as offices; \n\n if (isItThisEnv('Pourcentage') && offices?.NICE?.id === user.idOffice) {\n return 'Du lundi au vendredi de 8h à 18h';\n }\n \n return 'Du lundi au vendredi de 9h à 19h';\n\n // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 19h';\n\n // if (!user.workingSchedules.length) return 'Du lundi au vendredi de 9h à 19h';\n\n // let reducedSchedules = user.workingSchedules.reduce((acc: any, e:any, index: number) => {\n // const name = `${dayjs(e.morningStart, 'HH:mm:ss').format('HH:mm')}-${dayjs(e.afternoonEnd || e.morningEnd, 'HH:mm:ss').format('HH:mm')}`;\n // if (!acc[name]) acc[name] = [index];\n // else acc[name].push(index);\n // return acc;\n // }, {});\n\n // reducedSchedules = orderByLodash(reducedSchedules, (elem) => elem.length, ['desc']);\n\n // let resultHoraire = '';\n // let startH;\n // let startM;\n // let endH;\n // let endM;\n // let firstDayOfWeek;\n // let lastDayOfWeek;\n\n // reducedSchedules.forEach((schedule: any, index: number) => {\n // startH = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('hour');\n // startM = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('minute');\n // endH = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('hour');\n // endM = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('minute');\n // firstDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[schedule[0]].idDay).format('dddd');\n // if (!index) {\n // // pour le premier index, on affiche l'amplitude horaire la plus commune, du XX au XX de Xh à Xh\n // lastDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[user.workingSchedules.length - 1].idDay).format('dddd');\n // resultHoraire += `Du ${firstDayOfWeek} au ${lastDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // } else { // Fonctionnel si uniquement un jour par semaine avec des horaires différents\n // resultHoraire += `<br/>Le ${firstDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // }\n // });\n // return resultHoraire;\n}\n\nfunction getMailSignature(user:any, idTypeBrand:number) {\n const informatiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.informatique',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n\n if (user.roles.map((r: any) => r.id).includes(Role.ADMIN)) { return informatiqueMail; }\n if (user && !!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return user.email;\n return bonjourMail;\n}\n\nfunction getPhoneSignature(user:any) {\n if (user.phone !== '0383931414') { return user.phone.replace(/\\B(?=(\\d{2})+(?!\\d))/g, '&nbsp;'); }\n return false;\n}\n\nexport function generateSignature(params: any): string {\n const {\n forceRole = null, idTypeBrand = 1, ...otherParams\n } = params;\n let {\n user,\n } = otherParams;\n \n const hostS3 = getBrandConfig({\n idTypeBrand,\n objectWaited: 'urlS3',\n });\n\n const brandName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'name',\n }) as unknown as string;\n const commercialName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'commercialName',\n }) as unknown as string;\n const iban = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.IBAN',\n }) as unknown as string;\n const bic = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.BIC',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n const socialMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.social',\n }) as unknown as string;\n const supportMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.support',\n }) as unknown as string;\n const juridiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.juridique',\n }) as unknown as string;\n const facturationMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.facturation',\n }) as unknown as string;\n const primaryColor = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'colors.primary',\n }) as unknown as string;\n const standardPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.contact',\n }) as unknown as string;\n const juridiquePhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.juridique',\n }) as unknown as string;\n const socialPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.social',\n }) as unknown as string;\n\n let roleSignature: string | null;\n let mailSignature: string | null;\n let phoneSignature: string | boolean;\n let horaires: string | null;\n [roleSignature, mailSignature, phoneSignature, horaires] = ['Expert-Comptable', bonjourMail, false, 'Du lundi au vendredi de 9h à 19h'];\n\n if (forceRole === 'social') { // Signature social\n user = {\n firstname: 'Service social',\n isAll: true,\n };\n mailSignature = socialMail;\n roleSignature = '';\n phoneSignature = socialPhoneSignature;\n } else if (forceRole === 'support') { // Signature support\n user = {\n firstname: 'Service Support',\n isAll: true,\n };\n mailSignature = supportMail;\n roleSignature = null;\n } else if (forceRole === 'juridique') { // Signature juridique\n user = {\n firstname: 'Service juridique',\n isAll: true,\n };\n mailSignature = juridiqueMail;\n roleSignature = null;\n phoneSignature = juridiquePhoneSignature;\n } else if (forceRole === 'facturation') { // Signature facturation\n user = {\n firstname: 'Service facturation',\n isAll: true,\n };\n mailSignature = facturationMail;\n roleSignature = null;\n phoneSignature = standardPhoneSignature;\n } else if (!user) { // Signature Clementine\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n roleSignature = '';\n } else if (user !== 0) { // Signature par défaut\n roleSignature = getRoleSignature(user);\n mailSignature = getMailSignature(user, idTypeBrand);\n horaires = getHoraires(user);\n phoneSignature = getPhoneSignature(user);\n }\n\n return ejs.render(signatureTemplate, {\n forceRole,\n isFacturation: user.roles ? user.roles.some((r: any) => r.id === Role.FACTURATION) : false,\n brandName,\n idTypeBrand,\n commercialName,\n iban,\n bic,\n hostS3,\n user,\n roleSignature,\n mailSignature,\n phoneSignature,\n standardPhoneSignature: standardPhoneSignature.replace(/\\s+/gm, '&nbsp;'),\n horaires,\n primaryColor,\n supportMail,\n });\n}"]}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../ts/utils/email.ts"],"names":[],"mappings":"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","sourcesContent":["// import * as dayjs from 'dayjs';\n// import { orderBy as orderByLodash } from 'lodash';\nimport { EntityType } from '../types/Enum/EntityType';\nimport { Role } from '../types/Enum/Role';\nimport { IUser } from '../types/Interface/models/IUser';\nimport { getBrandConfig, isItThisEnv } from './brands';\nimport { signatureTemplate } from './email/templates/signature';\n\nconst ejs = require('ejs');\n\nfunction intersection<T>(arr: [T[], T[]]) { return arr.reduce((a: T[], b: T[]) => a.filter((c) => b.includes(c)), []); }\n\nfunction getRoleSignature(user:any) {\n if (user.positionLabel) return user.positionLabel;\n\n const isStagiaireOrAlternant = user.roles.map((r: any) => r.id).includes(Role.INTERN) || user.roles.map((r: any) => r.id).includes(Role.ALTERNATE);\n const isManager = user.roles.map((r: any) => r.id).includes(Role.MANAGER);\n\n const isSocial = user.roles.map((r: any) => r.id).includes(Role.SOCIAL);\n const isJuridic = user.roles.map((r: any) => r.id).includes(Role.JURIDIC);\n const isFacturation = user.roles.map((r: any) => r.id).includes(Role.FACTURATION);\n const isExpert = user.roles.map((r: any) => r.id).includes(Role.EXPERT_ACCOUNTANT);\n const isCS = user.roles.map((r: any) => r.id).includes(Role.CUSTOMER_SUCCESS);\n const isSales = user.roles.map((r: any) => r.id).includes(Role.COMMERCIAL);\n const isAdmin = user.roles.map((r: any) => r.id).includes(Role.ADMIN);\n const isFront = !!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS]]).length;\n\n if (isSales && isManager) { return 'Responsable commercial'; }\n if (isSales) { return `Chargé${user.idCivility === 2 ? 'e' : ''} de clientèle`; }\n\n if (isCS && isManager) { return 'Responsable relations clients'; }\n if (isCS) { return `Conseill${user.idCivility === 2 ? 'ère' : 'er'} comptable`; }\n\n if (isFacturation && isStagiaireOrAlternant) { return 'Assistant facturation'; }\n if (isFacturation && isManager) { return 'Responsable facturation'; }\n if (isFacturation) { return `Chargé${user.idCivility === 2 ? 'e' : ''} de facturation`; }\n\n if (isJuridic && isStagiaireOrAlternant) { return 'Assistant juridique'; }\n if (isJuridic && isManager) { return 'Responsable juridique'; }\n if (isJuridic) { return 'Juriste'; }\n\n if (isSocial && isStagiaireOrAlternant) { return 'Assistant paie'; }\n if (isSocial && isManager) { return 'Responsable paie'; }\n if (isSocial) { return 'Gestionnaire de paie'; }\n\n if (isExpert) { return `Expert${user.idCivility === 2 ? 'e' : ''}-comptable`; }\n\n if (isAdmin) { return 'Développeur web'; }\n\n if (isFront && isManager) return 'Responsable comptable';\n if (isFront && isStagiaireOrAlternant) return 'Assistant comptable';\n if (isFront) return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n}\n\nfunction getHoraires(user:IUser) { // On affiche les horaires uniquement pour les front, et pas pour les TVA\n\n if (user?.entity && isItThisEnv('Pourcentage') && [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)) {\n return 'Du lundi au vendredi de 9h à 18h';\n }\n \n return 'Du lundi au vendredi de 9h à 19h';\n\n // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 19h';\n\n // if (!user.workingSchedules.length) return 'Du lundi au vendredi de 9h à 19h';\n\n // let reducedSchedules = user.workingSchedules.reduce((acc: any, e:any, index: number) => {\n // const name = `${dayjs(e.morningStart, 'HH:mm:ss').format('HH:mm')}-${dayjs(e.afternoonEnd || e.morningEnd, 'HH:mm:ss').format('HH:mm')}`;\n // if (!acc[name]) acc[name] = [index];\n // else acc[name].push(index);\n // return acc;\n // }, {});\n\n // reducedSchedules = orderByLodash(reducedSchedules, (elem) => elem.length, ['desc']);\n\n // let resultHoraire = '';\n // let startH;\n // let startM;\n // let endH;\n // let endM;\n // let firstDayOfWeek;\n // let lastDayOfWeek;\n\n // reducedSchedules.forEach((schedule: any, index: number) => {\n // startH = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('hour');\n // startM = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('minute');\n // endH = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('hour');\n // endM = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('minute');\n // firstDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[schedule[0]].idDay).format('dddd');\n // if (!index) {\n // // pour le premier index, on affiche l'amplitude horaire la plus commune, du XX au XX de Xh à Xh\n // lastDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[user.workingSchedules.length - 1].idDay).format('dddd');\n // resultHoraire += `Du ${firstDayOfWeek} au ${lastDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // } else { // Fonctionnel si uniquement un jour par semaine avec des horaires différents\n // resultHoraire += `<br/>Le ${firstDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // }\n // });\n // return resultHoraire;\n}\n\nfunction getMailSignature(user:any, idTypeBrand:number) {\n const informatiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.informatique',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n\n if (user.roles.map((r: any) => r.id).includes(Role.ADMIN)) { return informatiqueMail; }\n if (user && !!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return user.email;\n return bonjourMail;\n}\n\nfunction getPhoneSignature(user:any) {\n if (user.phone !== '0383931414') { return user.phone.replace(/\\B(?=(\\d{2})+(?!\\d))/g, '&nbsp;'); }\n return false;\n}\n\nexport function generateSignature(params: any): string {\n const {\n forceRole = null, idTypeBrand = 1, ...otherParams\n } = params;\n let {\n user,\n } = otherParams;\n \n const hostS3 = getBrandConfig({\n idTypeBrand,\n objectWaited: 'urlS3',\n });\n\n const brandName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'name',\n }) as unknown as string;\n const commercialName = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'commercialName',\n }) as unknown as string;\n const iban = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.IBAN',\n }) as unknown as string;\n const bic = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'bank.BIC',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n const socialMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.social',\n }) as unknown as string;\n const supportMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.support',\n }) as unknown as string;\n const juridiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.juridique',\n }) as unknown as string;\n const facturationMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.facturation',\n }) as unknown as string;\n const primaryColor = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'colors.primary',\n }) as unknown as string;\n const standardPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.contact',\n }) as unknown as string;\n const juridiquePhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.juridique',\n }) as unknown as string;\n const socialPhoneSignature = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listPhones.social',\n }) as unknown as string;\n\n let roleSignature: string | null;\n let mailSignature: string | null;\n let phoneSignature: string | boolean;\n let horaires: string | null;\n [roleSignature, mailSignature, phoneSignature, horaires] = ['Expert-Comptable', bonjourMail, false, 'Du lundi au vendredi de 9h à 19h'];\n\n if (forceRole === 'social') { // Signature social\n user = {\n firstname: 'Service social',\n isAll: true,\n };\n mailSignature = socialMail;\n roleSignature = '';\n phoneSignature = socialPhoneSignature;\n } else if (forceRole === 'support') { // Signature support\n user = {\n firstname: 'Service Support',\n isAll: true,\n };\n mailSignature = supportMail;\n roleSignature = null;\n } else if (forceRole === 'juridique') { // Signature juridique\n user = {\n firstname: 'Service juridique',\n isAll: true,\n };\n mailSignature = juridiqueMail;\n roleSignature = null;\n phoneSignature = juridiquePhoneSignature;\n } else if (forceRole === 'facturation') { // Signature facturation\n user = {\n firstname: 'Service facturation',\n isAll: true,\n };\n mailSignature = facturationMail;\n roleSignature = null;\n phoneSignature = standardPhoneSignature;\n } else if (!user) { // Signature Clementine\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n roleSignature = '';\n } else if (user !== 0) { // Signature par défaut\n roleSignature = getRoleSignature(user);\n mailSignature = getMailSignature(user, idTypeBrand);\n horaires = getHoraires(user);\n phoneSignature = getPhoneSignature(user);\n }\n\n return ejs.render(signatureTemplate, {\n forceRole,\n isFacturation: user.roles ? user.roles.some((r: any) => r.id === Role.FACTURATION) : false,\n brandName,\n idTypeBrand,\n commercialName,\n iban,\n bic,\n hostS3,\n user,\n roleSignature,\n mailSignature,\n phoneSignature,\n standardPhoneSignature: standardPhoneSignature.replace(/\\s+/gm, '&nbsp;'),\n horaires,\n primaryColor,\n supportMail,\n });\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "1.1.235",
3
+ "version": "1.1.237",
4
4
  "description": "Silex Core perform HTTP Request and object binding. Silex core helps developers to retrieve and return formatted object",
5
5
  "homepage": "https://gitlab.compta-clementine.fr/dev/silex-api",
6
6
  "main": "dist/cjs/index.js",
@@ -1,6 +1,6 @@
1
1
  import { Resource } from '../Resource';
2
2
  import {
3
- BasePaginate, IAccountingFile, QueryAccountingFiles, QueryAccountingFilesV2, QueryTransaction, ReadFormattedAccountingTransaction, ReadUpdateAccouningFile,
3
+ BasePaginate, CreateAccountingFileFromFile, IAccountingFile, QueryAccountingFiles, QueryAccountingFilesV2, QueryTransaction, ReadFormattedAccountingTransaction, ReadUpdateAccouningFile,
4
4
  } from '../../types';
5
5
 
6
6
  export class AccountingFiles extends Resource {
@@ -22,6 +22,10 @@ export class AccountingFiles extends Resource {
22
22
  return this.axios.$post('/society/accountingFiles', sendAccountingFiles, { headers: { 'Content-Type': 'multipart/form-data' } });
23
23
  }
24
24
 
25
+ createFromFile(idSociety: number, idFile: number, params: CreateAccountingFileFromFile): Promise<IAccountingFile> {
26
+ return this.axios.$post(`societies/${idSociety}/files/${idFile}/accountingFiles`, params);
27
+ }
28
+
25
29
  createCashBasedAccountingFiles(params: QueryAccountingFilesV2) : Promise<IAccountingFile[]> {
26
30
  const formData = new FormData();
27
31
  Object.entries(params).forEach(([key, value]) => {
@@ -1,8 +1,6 @@
1
- import * as FormData from 'form-data';
2
1
  import {
3
2
  CreateCommercialMigration,
4
3
  CreateCommercialTransactions, HeadersMappingImport, ImportRow, QueryHeader, QueryProcessCsv,
5
-
6
4
  } from '../../types';
7
5
  import { Resource } from '../Resource';
8
6
 
@@ -1,7 +1,7 @@
1
1
  import { Resource } from '../Resource';
2
2
  import {
3
3
  BasePaginate,
4
- ReadFormattedAccountingTransaction, UpdateAccountingTransaction, DeleteTransactions, QueryUnexport, QueryGetAllTransactions, IAccountingTransaction, ReadAccountantBalance, CreateManualEntry, IAccountingEntry, QueryDeleteInvoices, ReadDeletedInvoices, QuerySocietyTransactionCount, ReadSocietyTransactionCount, ReadBankAccountSum, QueryBankAccountSum, QueryTransaction, ReadPartnerTransactionType, DuplicateAccountingTransaction,
4
+ ReadFormattedAccountingTransaction, UpdateAccountingTransaction, DeleteTransactions, QueryUnexport, QueryGetAllTransactions, IAccountingTransaction, ReadAccountantBalance, CreateManualEntry, IAccountingEntry, QueryDeleteInvoices, ReadDeletedInvoices, QuerySocietyTransactionCount, ReadSocietyTransactionCount, ReadBankAccountSum, QueryBankAccountSum, QueryTransaction, ReadPartnerTransactionType, DuplicateAccountingTransaction, CreateWithMasterEntry,
5
5
  } from '../../types';
6
6
 
7
7
  export class Transaction extends Resource {
@@ -49,6 +49,10 @@ export class Transaction extends Resource {
49
49
  return this.axios.$post(`/society/${idSociety}/manual-transactions`, data);
50
50
  }
51
51
 
52
+ createWithMasterEntry(idSociety: number, data: Array<CreateWithMasterEntry>): Promise<IAccountingTransaction> {
53
+ return this.axios.$post(`/society/${idSociety}/transactions`, data);
54
+ }
55
+
52
56
  getAllManual(idSociety: number, idExercice: number): Promise<Array<Array<IAccountingEntry>>> {
53
57
  return this.axios.$get(`/society/${idSociety}/exercices/${idExercice}/manual-transactions`);
54
58
  }
@@ -103,8 +103,8 @@ export const CommercialOfferTypeDetail = {
103
103
  },
104
104
  BALANCE_SHEET_OFFERED_EXCEPTIONAL : {
105
105
  id: 8,
106
- label: 'Offre exceptionnel Express',
107
- text: 'Offre exceptionnel, bilan à %value% € pour l\'exercice %exerciceYear%',
106
+ label: 'Offre exceptionnelle Express',
107
+ text: 'Offre exceptionnelle, bilan à %value% € pour l\'exercice %exerciceYear%',
108
108
  amountType: CommercialOfferAmountType.MONEY,
109
109
  idPrestationList: [],
110
110
  isComptable: true,
@@ -40,6 +40,38 @@ export class CreateManualEntry {
40
40
  balanceIsOptionnal?: boolean;
41
41
  }
42
42
 
43
+ export class CreateWithMasterEntry {
44
+ @ApiProperty()
45
+ @IsNumber()
46
+ debit: number;
47
+
48
+ @ApiProperty()
49
+ @IsNumber()
50
+ credit: number;
51
+
52
+ @ApiProperty()
53
+ dateValue: Date;
54
+
55
+ @ApiProperty()
56
+ @IsString()
57
+ designation: string;
58
+
59
+ @ApiPropertyOptional()
60
+ @IsNumber()
61
+ @IsOptional()
62
+ idAccountingJournal?: AccountingJournal | null;
63
+
64
+ @ApiPropertyOptional()
65
+ @IsInt()
66
+ @IsOptional()
67
+ idFile?: number | null;
68
+
69
+ @ApiPropertyOptional()
70
+ @IsString()
71
+ @IsOptional()
72
+ dateLocked?: string | null;
73
+ }
74
+
43
75
  export class DuplicateAccountingTransaction {
44
76
  @ApiProperty()
45
77
  @IsArray()
@@ -1,5 +1,8 @@
1
1
  import { ApiProperty, ApiPropertyOptional } from '../../../../utils';
2
2
  import { ToBoolean } from '../../../../utils/transforms/boolean.transform';
3
+ import {
4
+ IsInt, IsOptional,
5
+ } from 'class-validator';
3
6
 
4
7
  export class QueryAccountingFiles {
5
8
  @ApiProperty()
@@ -30,4 +33,14 @@ export class QueryAccountingFilesV2 extends QueryAccountingFiles {
30
33
 
31
34
  @ApiPropertyOptional()
32
35
  idAccountingTransaction?: number;
36
+ }
37
+
38
+ export class CreateAccountingFileFromFile {
39
+ @ApiProperty()
40
+ @IsInt()
41
+ idAccountingFileType: number;
42
+
43
+ @ApiPropertyOptional()
44
+ @IsOptional()
45
+ emissionDate: Date | null;
33
46
  }
@@ -1,5 +1,6 @@
1
1
  import { ApiProperty, ApiPropertyOptional } from '../../../../utils';
2
2
  import { TypeCustomerProviderOperation } from '../../../Enum/TypeCustomerProviderOperation';
3
+ import { AccountingJournal } from '../../../Enum/AccountingJournal';
3
4
 
4
5
  export class QueryTransaction {
5
6
  id: number;
@@ -11,7 +12,6 @@ export class QueryTransaction {
11
12
  limit: number;
12
13
 
13
14
  @ApiProperty()
14
- // @Type(() => Number)
15
15
  idAccountingJournal: number[];
16
16
 
17
17
  @ApiPropertyOptional()
@@ -20,6 +20,9 @@ export class QueryTransaction {
20
20
  @ApiPropertyOptional()
21
21
  idAccountType?: number;
22
22
 
23
+ @ApiPropertyOptional()
24
+ idFile?: number;
25
+
23
26
  @ApiPropertyOptional()
24
27
  orderBy?: string;
25
28
 
@@ -57,4 +60,10 @@ export class QueryGetAllTransactions {
57
60
 
58
61
  @ApiPropertyOptional()
59
62
  dateValue?: string;
63
+
64
+ @ApiPropertyOptional()
65
+ idAccountingJournal: AccountingJournal[];
66
+
67
+ @ApiPropertyOptional()
68
+ idFile: number;
60
69
  }
@@ -1,6 +1,8 @@
1
- import { ApiProperty } from '../../../../utils';
1
+ import { IsBoolean, IsOptional } from 'class-validator';
2
+ import { ApiProperty, ApiPropertyOptional } from '../../../../utils';
2
3
  import { QueryPaginate } from '../BasePaginate';
3
4
  import { Order } from '../BaseRequest';
5
+ import { ToBoolean } from '../../../../utils/transforms/boolean.transform';
4
6
 
5
7
  export class QueryPaymentExpectationCustomer {
6
8
  // @ApiProperty()
@@ -41,7 +43,11 @@ export class QueryGetSocietyPaymentsExpectationsCustomers implements QueryPagina
41
43
 
42
44
  order?: string;
43
45
 
44
- descending?: boolean;
46
+ @ApiPropertyOptional()
47
+ @IsBoolean()
48
+ @ToBoolean()
49
+ @IsOptional()
50
+ descending?: boolean;
45
51
  }
46
52
 
47
53
  export class QueryPayPaymentExpectationCustomer {
package/ts/utils/email.ts CHANGED
@@ -1,37 +1,12 @@
1
1
  // import * as dayjs from 'dayjs';
2
2
  // import { orderBy as orderByLodash } from 'lodash';
3
+ import { EntityType } from '../types/Enum/EntityType';
3
4
  import { Role } from '../types/Enum/Role';
5
+ import { IUser } from '../types/Interface/models/IUser';
4
6
  import { getBrandConfig, isItThisEnv } from './brands';
5
7
  import { signatureTemplate } from './email/templates/signature';
6
8
 
7
9
  const ejs = require('ejs');
8
- type offices = {
9
- LAXOU: {
10
- id: number,
11
- name: string,
12
- },
13
- PARIS: {
14
- id: number,
15
- name: string,
16
- },
17
- MARSEILLE: {
18
- id: number,
19
- name: string,
20
- },
21
- EPINAL: {
22
- id: number,
23
- name: string,
24
- },
25
- HOME_OFFICE: {
26
- id: number,
27
- name: string,
28
- },
29
- NICE: {
30
- id: number,
31
- name: string,
32
- },
33
- };
34
-
35
10
 
36
11
  function intersection<T>(arr: [T[], T[]]) { return arr.reduce((a: T[], b: T[]) => a.filter((c) => b.includes(c)), []); }
37
12
 
@@ -78,15 +53,10 @@ function getRoleSignature(user:any) {
78
53
  return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;
79
54
  }
80
55
 
81
- function getHoraires(user:any) { // On affiche les horaires uniquement pour les front, et pas pour les TVA
82
-
83
- const offices = getBrandConfig({
84
- nodeEnv: 'Pourcentage',
85
- objectWaited: 'offices',
86
- }) as unknown as offices;
56
+ function getHoraires(user:IUser) { // On affiche les horaires uniquement pour les front, et pas pour les TVA
87
57
 
88
- if (isItThisEnv('Pourcentage') && offices?.NICE?.id === user.idOffice) {
89
- return 'Du lundi au vendredi de 8h à 18h';
58
+ if (user?.entity && isItThisEnv('Pourcentage') && [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)) {
59
+ return 'Du lundi au vendredi de 9h à 18h';
90
60
  }
91
61
 
92
62
  return 'Du lundi au vendredi de 9h à 19h';