- Si vous rencontrez des difficultés pour vous connecter, vous devez contacter le support{" "}
+ Si vous utilisez une protection contre les spams (ex. MailInBlack), vous devez contacter votre
+ service informatique pour qu'il autorise les mails en provenance de MonComptePro.
+
+
+
+ Pour tout problème lié à MonComptePro, vous devez contacter le support dédié à cette adresse email{" "}
- MonComptePro
+ contact@moncomptepro.beta.gouv.fr
+
+
+
+
+ Pour consulter l'aide MonComptePro,{" "}
+
+ cliquez ici
>
diff --git a/packages/app/src/app/(default)/messages.tsx b/packages/app/src/app/(default)/messages.tsx
index 8186fb631..de522caee 100644
--- a/packages/app/src/app/(default)/messages.tsx
+++ b/packages/app/src/app/(default)/messages.tsx
@@ -8,4 +8,4 @@ export const MANDATORY_FAVORABLE_POPULATION = "La population envers laquelle l'
export const NOT_HIGHER_THAN_N_RESULT = (n: number) => `Le résultat ne peut pas être supérieur à ${n}`;
export const NOT_ALL_EMPTY_CATEGORIES = "Au moins une catégorie doit avoir un écart renseigné";
export const MANDATORY_SIREN = "Le Siren est requis";
-export const INVALID_SIREN = "Le Siren est composé de 9 chiffres sans espace";
+export const INVALID_SIREN = "Le Siren n'est pas valide";
diff --git a/packages/app/src/app/(default)/mon-espace/mes-declarations/IndexList.tsx b/packages/app/src/app/(default)/mon-espace/mes-declarations/IndexList.tsx
index 1e94cda24..e12b299aa 100644
--- a/packages/app/src/app/(default)/mon-espace/mes-declarations/IndexList.tsx
+++ b/packages/app/src/app/(default)/mon-espace/mes-declarations/IndexList.tsx
@@ -91,7 +91,11 @@ const formatTableData = (declarations: DeclarationDTO[], declarationOpmcList: De
: capitalize(declaration.entreprise?.type),
declaration.entreprise?.tranche ? CompanyWorkforceRange.Label[declaration.entreprise.tranche] : undefined,
formatIsoToFr(declaration["declaration-existante"].date || ""),
- declaration["resultat-global"]?.index || NC,
+ typeof declaration["resultat-global"]?.index === "number" ? (
+ declaration["resultat-global"]?.index
+ ) : (
+ NC
+ ),
formatDeclarationOpmcStatus(
getDeclarationOpmcStatus(
declarationOpmcList.find(declarationOpmc => declarationOpmc.commencer?.annéeIndicateurs === rowYear),
diff --git a/packages/app/src/app/(default)/script/actions.ts b/packages/app/src/app/(default)/script/actions.ts
new file mode 100644
index 000000000..1e126ff05
--- /dev/null
+++ b/packages/app/src/app/(default)/script/actions.ts
@@ -0,0 +1,8 @@
+import { declarationRepo } from "@api/core-domain/repo";
+import { GetAllDeclarations } from "@api/core-domain/useCases/referent/GetAllDeclarations";
+
+export async function getAllDeclarations() {
+ // handle default errors
+ const useCase = new GetAllDeclarations(declarationRepo);
+ return await useCase.execute();
+}
diff --git a/packages/app/src/app/(default)/script/clean-invalids-siren/page.tsx b/packages/app/src/app/(default)/script/clean-invalids-siren/page.tsx
new file mode 100644
index 000000000..8e3ce8147
--- /dev/null
+++ b/packages/app/src/app/(default)/script/clean-invalids-siren/page.tsx
@@ -0,0 +1,92 @@
+import { getAllDeclarations } from "../actions";
+
+function validateSIREN(siren: string): boolean {
+ // Vérifie que la chaîne est composée de 9 chiffres
+ if (!/^\d{9}$/.test(siren)) {
+ return false;
+ }
+
+ // Applique l'algorithme de Luhn
+ let sum = 0;
+ for (let i = 0; i < 9; i++) {
+ let num = parseInt(siren.charAt(i), 10);
+
+ // Multiplie les chiffres en position paire par 2
+ if (i % 2 === 1) {
+ num *= 2;
+ // Si le résultat est supérieur à 9, soustrait 9
+ if (num > 9) {
+ num -= 9;
+ }
+ }
+
+ sum += num;
+ }
+
+ // Le numéro est valide si la somme est un multiple de 10
+ return sum % 10 === 0;
+}
+
+const CleanInvalidsSirenPage = async () => {
+ try {
+ const declarations = await getAllDeclarations();
+ const invalidDeclarations = [];
+ for (const declaration of declarations) {
+ if (!declaration.data?.entreprise.siren) {
+ //console.log("No siren", declaration.siren);
+ }
+ if (!validateSIREN(declaration.data?.entreprise.siren || "")) {
+ console.log("Invalid siren", declaration.siren);
+ invalidDeclarations.push({ ...declaration, invalidSiren: declaration.siren });
+ break;
+ }
+ if (!declaration.data?.entreprise.ues?.entreprises) {
+ //console.log("No ues", declaration.siren);
+ }
+ for (const entreprise of declaration.data?.entreprise.ues?.entreprises || []) {
+ if (!validateSIREN(entreprise.siren)) {
+ invalidDeclarations.push({ ...declaration, invalidSiren: entreprise.siren });
+ console.log("Invalid ues siren", entreprise.siren);
+ break;
+ }
+ }
+ }
+ // const invalids = declarations
+ // .filter(declaration => new Siren(declaration.data?.entreprise.siren || ""))
+ // .filter(declaration => {
+ // if (!declaration.data?.entreprise.ues?.entreprises) {
+ // return true;
+ // }
+ //
+ // return declaration.data?.entreprise.ues?.entreprises.reduce((hasValidSirens, entreprise) => {
+ // if (!hasValidSirens) return false;
+ // try {
+ // new Siren(entreprise.siren);
+ // return true;
+ // } catch (e) {
+ // console.log("Invalid siren", entreprise.siren, e);
+ // return false;
+ // }
+ // }, true);
+ // });
+
+ return (
+
+
nombre de sirens invalides: {invalidDeclarations.length}