From fcd073c82ab9ef459e7ef001eaa5baee4ed2c76c Mon Sep 17 00:00:00 2001 From: tibo Date: Thu, 5 Mar 2020 10:11:01 +0000 Subject: [PATCH] correction sur les comptyeurs de tailel de tableaux --- bin/import_12_fonctions.php | 53 ++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/bin/import_12_fonctions.php b/bin/import_12_fonctions.php index 2ccb15e..551a47a 100644 --- a/bin/import_12_fonctions.php +++ b/bin/import_12_fonctions.php @@ -13,10 +13,7 @@ function tri_chap_2($a , $b) if ('S'.$a['instruction'] < 'S'.$b['instruction']) return -1; if ('S'.$a['instruction'] > 'S'.$b['instruction']) return 1; - if ('S'.$a['code'] < 'S'.$b['code']) return -1; - if ('S'.$a['code'] > 'S'.$b['code']) return 1; - - return 0; + return tri_chap_1($a , $b); } require_once('smeti_db.inc.php'); @@ -33,20 +30,21 @@ echo 'Chargement collectivités '; $sql = SMETI_db::$pdo->prepare("SELECT code, item, libelle FROM v_items WHERE plugin = ( SELECT id FROM plugins WHERE libelle = 'Collectivités' )"); $sql->execute(); $coll = $sql->fetchAll(PDO::FETCH_NUM); +$nb_coll = count($coll); echo 'OK'.PHP_EOL; echo 'Chargement instructions comptables '; $sql = SMETI_db::$pdo->prepare("SELECT code, id, libelle FROM v_items_tree WHERE parent in ( SELECT id FROM v_items WHERE code = 'INSC' )"); $sql->execute(); $instructions = $sql->fetchAll(PDO::FETCH_NUM); +$nb_instructions = count($instructions); echo 'OK'.PHP_EOL; // Se positonner sur l'instruction globale -$n = count($instructions); -for($i=0;$i<$n;$i++) +for($i=0;$i<$nb_instructions;$i++) if ($instructions[$i][0] == 'INSCGLOB') break; -if ($i == $n) die; +if ($i == $nb_instructions) die; $pile_index = 0; $pile_code[$pile_index] = $instructions[$i][0]; @@ -79,8 +77,9 @@ $nb_shipments = count($shipments); usort($shipments,'tri_chap_1'); // On conserve les chapitres dans un tableau // Ils seront réutilisés plus tard -$foncitons = []; +$fonctions = []; $fonctions[] = ['BIDON','BIDON']; +$record = 0; foreach($shipments as $element) { // Gestion d'une barre de progression @@ -110,8 +109,8 @@ foreach($shipments as $element) SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); SMETI_db::$parent = $pile_item[$pile_index]; SMETI_db::$req3->execute(); - - $fonctions[] = [SMETI_db::$code, SMETI_db::$libelle, SMETI_db::$item]; + $fonctions[] = [$element['code'], SMETI_db::$libelle, SMETI_db::$item]; + $record += 1; } } @@ -128,9 +127,11 @@ $pile_index += 1; $pile_code[$pile_index] = ''; $pile_item[$pile_index] = 0; +$nb_fonctions = count($fonctions); + usort($shipments,'tri_chap_2'); -$n = count($fonctions); $counter = 0; +$record = 0; foreach($shipments as $element) { // Gestion d'une barre de progression @@ -141,21 +142,20 @@ foreach($shipments as $element) if (!isset($element['code'])) continue; if (!isset($element['libelle'])) continue; - if ('INSC'.$element['instruction'] != $pile_code[$pile_index-1]) + if ($element['instruction'] != $pile_code[$pile_index-1]) { - // Se positonner sur l'instruction globale - $n = count($instructions); - for($i=0;$i<$n;$i++) - if ($instructions[$i][0] == 'INSC'.$element['instruction']) + // Se positonner sur l'instruction + for($i=0;$i<$nb_instructions;$i++) + if ($instructions[$i][0] == $element['instruction']) break; - if ($i == $n) die; + if ($i == $nb_instructions) continue; $pile_index = 0; $pile_code[$pile_index] = $instructions[$i][0]; $pile_item[$pile_index] = $instructions[$i][1]; - // Rajouter un item pour les chapitres - SMETI_db::$code = 'FONC'.$element['instruction']; + // Rajouter un item pour les fonctions dans cette instruction + SMETI_db::$code = 'FONC'.$element['instruction']; SMETI_db::$libelle = 'Fonctions '. $element['instruction']; SMETI_db::$req1->execute(); // Rajouter un lien @@ -166,6 +166,7 @@ foreach($shipments as $element) SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); SMETI_db::$parent = $pile_item[$pile_index]; SMETI_db::$req3->execute(); + $pile_index += 1; $pile_code[$pile_index] = SMETI_db::$code; $pile_item[$pile_index] = SMETI_db::$child; @@ -173,13 +174,14 @@ foreach($shipments as $element) } if ($element['code'] == $last) continue; - for($i=0;$i<$n;$i++) - if ($fonctions[$i][0] == $element['code']) - break; - if ($i == $n) continue; - // Rajouter un lien vers le chapitre - SMETI_db::$item = $chapitres[$i][2]; + for($i=0;$i<$nb_fonctions;$i++) + if ($fonctions[$i][0] == 'C'.$element['code']) + break; + if ($i == $nb_fonctions) continue; + + // Rajouter un lien vers la fonction + SMETI_db::$item = $fonctions[$i][2]; SMETI_db::$link = 1; SMETI_db::$req2->execute(); // Rajouter un noeud @@ -189,6 +191,7 @@ foreach($shipments as $element) // NB : on pourrait s'en passer en plaçant le chapitre dans la pile $last = $element['code']; + $record += 1; } // Enlever la barre de progression