From c7d856275df6eaf1e039201509f47009cefb432c Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Mon, 5 Jan 2026 19:40:23 +0000 Subject: [PATCH] t --- .../ControleurAjaximporterlisteassure.php | 187 ++++++++---------- Js/fonctions.js | 5 +- .../importermodele.php | 11 +- .../initimportermodele.php | 94 ++++++--- Vue/gabarit.php | 2 +- 5 files changed, 153 insertions(+), 146 deletions(-) diff --git a/Controleur/ControleurAjaximporterlisteassure.php b/Controleur/ControleurAjaximporterlisteassure.php index 6cee698..0492dfc 100644 --- a/Controleur/ControleurAjaximporterlisteassure.php +++ b/Controleur/ControleurAjaximporterlisteassure.php @@ -87,133 +87,102 @@ class ControleurAjaximporterlisteassure extends Controleurrequete public function importermodele() { - $idAvenant = $this->requete->getParametreFormulaire("idAvenant"); - $cheminFichier = $this->requete->getParametreFormulaire("cheminFichier"); + $idAvenant = $this->requete->getParametreFormulaire("idAvenant"); + $cheminFichier = $this->requete->getParametreFormulaire("cheminFichier"); $_SESSION['idAvenant_C'] = $idAvenant; - $this->beneficiaire->initIinsererLigneModeleAssure(); - $dataXLS = array(); - $fichier = "Temp/import/".$cheminFichier; - if (!file_exists($fichier)) - { - $this->genererVueAjax(array('message_erreur_excel' => "Fichier introubable sur le serveur !", 'succes_impot_execl' => "0")); + // 1. Vérification du fichier + if (!file_exists($fichier)) { + $this->genererVueAjax(array( + 'message_erreur_excel' => "Erreur : Fichier introuvable sur le serveur !", + 'succes_impot_execl' => "0" + )); exit(); } - /* - $docXLS = new PHPExcel_Reader_Excel2007(); - - $Excel = $docXLS->load($fichier); - - $Excel->setActiveSheetIndex(0); - - $feuille=$Excel->getActiveSheet(); - */ - - $docXLS = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); - $Excel = $docXLS->load($fichier); - $feuille = $Excel->getSheet($Excel->getFirstSheetIndex()); - - - $derniereLigne = $feuille->getHighestRow(); - $derniereColonne = $feuille->getHighestColumn(); - - $tableauExcel = $feuille->toArray(null, true, true, true); - - for ($i = 2; $i <= $derniereLigne; $i++) - { - $categorie = trim($tableauExcel[$i]['A']); - $numeroAdherent = trim($tableauExcel[$i]['B']); - - $noFamille = trim($tableauExcel[$i]['C']); - if ($noFamille<=" ") + try { + $docXLS = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); + $Excel = $docXLS->load($fichier); + $feuille = $Excel->getSheet($Excel->getFirstSheetIndex()); + + $derniereLigne = $feuille->getHighestRow(); + $tableauExcel = $feuille->toArray(null, true, true, true); + + // 2. Boucle de validation et insertion + for ($i = 2; $i <= $derniereLigne; $i++) { - $noFamille = "0"; + // ... (vos extractions trim() restent identiques) + $nom = trim($tableauExcel[$i]['D']); + $prenoms = trim($tableauExcel[$i]['E']); + $nomComplet = $nom . " " . $prenoms; + $codeLienParente = trim($tableauExcel[$i]['F']); + $sexe = trim($tableauExcel[$i]['I']); + + // Validation Catégorie + if ( (trim($tableauExcel[$i]['A']) <= " ") && ($codeLienParente == "A")) { + $this->renvoyerErreurImport("Ligne $i : $nomComplet => Pas de catégorie !"); + } + + // Validation Lien de parenté + if (!in_array($codeLienParente, array("A", "C", "E", "O"))) { + $this->renvoyerErreurImport("Ligne $i : $nomComplet => Lien de parenté '$codeLienParente' invalide !"); + } + + // Validation Sexe + if (!in_array($sexe, array("M", "F"))) { + $this->renvoyerErreurImport("Ligne $i : $nomComplet => Genre '$sexe' invalide !"); + } + + // Insertion en base temporaire + $this->beneficiaire->insererLigneModeleAssure($idAvenant, ...$params); } - $nom = trim($tableauExcel[$i]['D']); - $prenoms = trim($tableauExcel[$i]['E']); - - $codeLienParente = trim($tableauExcel[$i]['F']); + $this->beneficiaire->gererIncorporationSurFamExistante(); - $codeNaturePiece = trim($tableauExcel[$i]['G']); - $numeroPiece = trim($tableauExcel[$i]['H']); - $sexe = trim($tableauExcel[$i]['I']); - $codeGroupeSanguin = trim($tableauExcel[$i]['J']); - $dateNaissance = trim($tableauExcel[$i]['K']); - $telephonePortable = trim($tableauExcel[$i]['L']); - $email = trim($tableauExcel[$i]['M']); - - $nomComplet = $nom . " " . $prenoms; - - if ( ($categorie<=" ") && ($codeLienParente=="A")) - { - $this->genererVueAjax(array('message_erreur_excel' => $nomComplet . " => Pas de catégorie!", 'succes_impot_execl' => "0")); - exit(); - } - - $liste_liens = array("A", "C", "E", "O"); - if (!in_array($codeLienParente, $liste_liens)) - { - $this->genererVueAjax(array('message_erreur_excel' => $nomComplet . " => Revoir lien de parenté!", 'succes_impot_execl' => "0")); - exit(); - } + // 3. Vérifications métier post-import + $this->verifierContraintesMetier(); - $liste_sexes = array("M", "F"); - if (!in_array($sexe, $liste_sexes)) - { - $this->genererVueAjax(array('message_erreur_excel' => $nomComplet . " => Revoir le sexe!", 'succes_impot_execl' => "0")); - exit(); - } + // 4. SUCCÈS FINAL + $this->genererVueAjax(array( + 'message_erreur_excel' => "Fichier analysé avec succès ! Préparation de l'incorporation...", + 'succes_impot_execl' => "1" + )); - // Penser à gérer les erreurs de date - - $this->beneficiaire->insererLigneModeleAssure($idAvenant, $categorie, $numeroAdherent, - $noFamille, $nom, $prenoms, $codeLienParente, $codeNaturePiece, $numeroPiece, $sexe, - $codeGroupeSanguin, $dateNaissance, $telephonePortable, $email); - - /* - echo "Ligne ". $i . " => OK"; - echo "
"; - */ + } catch (Exception $e) { + $this->renvoyerErreurImport("Erreur lors de la lecture du fichier : " . $e->getMessage()); } - - $this->beneficiaire->gererIncorporationSurFamExistante(); - - // Vérification de certaines erreurs : - // 1 => Si nouvelle famille sans Adhérent - $noFamilleSansAdherent = $this->beneficiaire->getadhimpfamillesansadherent(); - if ($noFamilleSansAdherent>"0") - { - $this->genererVueAjax(array('message_erreur_excel' => "Famille " . $noFamilleSansAdherent . " => Adherent Principal manquant !", 'succes_impot_execl' => "0")); - exit(); - } - - // 2 => Si plus d'1 Adhérent dans une même famille - $noFamillePlusieursAdherent = $this->beneficiaire->getadhimpfamilleplusieursadherent(); - if ($noFamillePlusieursAdherent>"0") - { - $this->genererVueAjax(array('message_erreur_excel' => "Famille " . $noFamillePlusieursAdherent . " => Plusieurs Adherents Principaux !", 'succes_impot_execl' => "0")); - exit(); - } - - // 3 => Incorporation sur une ancienne famille introuvable dans la police - $noFamilleExistantSansAdherent = $this->beneficiaire->getadhimpfamilleexistantsansadherent(); - if ($noFamilleExistantSansAdherent>"0") - { - $this->genererVueAjax(array('message_erreur_excel' => "Famille " . $noFamilleExistantSansAdherent . " => Ancienne famille introuvable !", 'succes_impot_execl' => "0")); - exit(); - } - - $this->genererVueAjax(array('message_erreur_excel' => "Fichier temporaire extrait du serveur avec succes!", 'succes_impot_execl' => "1")); - exit(); } - + + /** + * Helper pour uniformiser les sorties d'erreur + */ + private function renvoyerErreurImport($message) { + $this->genererVueAjax(array( + 'message_erreur_excel' => $message, + 'succes_impot_execl' => "0" + )); + exit(); + } + + /** + * Regroupe vos vérifications de cohérence famille + */ + private function verifierContraintesMetier() { + $err1 = $this->beneficiaire->getadhimpfamillesansadherent(); + if ($err1 > "0") $this->renvoyerErreurImport("Famille $err1 => Adhérent Principal (A) manquant !"); + + $err2 = $this->beneficiaire->getadhimpfamilleplusieursadherent(); + if ($err2 > "0") $this->renvoyerErreurImport("Famille $err2 => Plusieurs Adhérents Principaux détectés !"); + + $err3 = $this->beneficiaire->getadhimpfamilleexistantsansadherent(); + if ($err3 > "0") $this->renvoyerErreurImport("Famille $err3 => Ancienne famille introuvable dans cette police !"); + } + // public function traiterlignesimportees() { diff --git a/Js/fonctions.js b/Js/fonctions.js index 1a53cfe..91c582e 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -2580,8 +2580,7 @@ function importer_modele_assure(idAvenant) { var isSuccess = $("#succes_impot_execl").val(); - maj_etape_3_import_assures(); - /* + if (isSuccess === "1") { alert_ebene("Liaison réussie ! Passage au traitement...", "Link successful! Moving to processing..."); maj_etape_3_import_assures(); @@ -2589,7 +2588,7 @@ function importer_modele_assure(idAvenant) { div_export.empty(); // On vide le spinner pour laisser voir l'erreur alert_ebene("Le fichier contient des erreurs de format.", "The file contains formatting errors."); } - */ + }, error: function() { alert_ebene("Erreur technique lors de l'importation.", "Technical error during import."); diff --git a/Vue/Ajaximporterlisteassure/importermodele.php b/Vue/Ajaximporterlisteassure/importermodele.php index 36c8fc4..b088579 100644 --- a/Vue/Ajaximporterlisteassure/importermodele.php +++ b/Vue/Ajaximporterlisteassure/importermodele.php @@ -1,4 +1,9 @@ -
-

- +
+ +
+
+ +
+ + \ No newline at end of file diff --git a/Vue/Ajaximporterlisteassure/initimportermodele.php b/Vue/Ajaximporterlisteassure/initimportermodele.php index a900efc..e57d61e 100644 --- a/Vue/Ajaximporterlisteassure/initimportermodele.php +++ b/Vue/Ajaximporterlisteassure/initimportermodele.php @@ -1,32 +1,66 @@ - +
+
+ +
+ +
+
- - - - - - - - - - - - +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ nettoyer($avenant['numeroAvenant']) ?> + + + nettoyer($avenant['dateEffet'])) ?> + + +
nettoyer($avenant['libelleAvenant']) ?>
+
+ Saisie le nettoyer($avenant['dateSysteme'])) ?> +
+
+
+ nettoyer($avenant['motifavenant']) ?: '-' ?> +
+
+ nettoyer($avenant['utilisateur']) ?> + + +
+
+
- - - - nettoyer($avenant['numeroAvenant']) ?> - nettoyer($avenant['dateEffet'])) ?> - nettoyer($avenant['libelleAvenant']) ?> - nettoyer($avenant['motifavenant']) ?> - nettoyer($avenant['utilisateur']) ?> - nettoyer($avenant['dateSysteme'])) ?> - - - - - + \ No newline at end of file diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 1ddffe5..3256f97 100755 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -638,7 +638,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte']; - +