Loading code/test1.php +137 −91 Original line number Diff line number Diff line Loading @@ -28,9 +28,10 @@ $dataIntervenants = false; // OK $dataVolumesHoraires = false; // OK $dataStructures = false; // OK $calculTout = true; $calculTout = false; $peuplerAttendus = false; $transfertDansNouvelleInfra = false; $transfertIntervenantsDansNouvelleInfra = false; $transfertVolumesHorairesDansNouvelleInfra = true; $bdd = OseAdmin::instance()->getBdd(); Loading Loading @@ -170,12 +171,6 @@ if ($duplicationDonnees){ } if ($dataIntervenants) { $sql = " Loading Loading @@ -425,7 +420,6 @@ if ($dataStructures){ } // on calcule tout! /* * Exemples erreurs Loading Loading @@ -457,26 +451,16 @@ if ($calculTout) { $i = 0; $sql = "SELECT id FROM formule_test_intervenant WHERE id >= $min ORDER BY id"; $q = $bdd->select($sql); $bdd->beginTransaction(); foreach ($q as $fti) { $i++; try { if ($i % 100 == 0){ $bdd->commitTransaction(); echo "Transaction commit\n"; $bdd->beginTransaction(); } $calcSql = "BEGIN ose_formule.test(" . $fti['ID'] . "); END;"; //$bdd->beginTransaction(); $bdd->exec($calcSql); //$bdd->commitTransaction(); echo 'Calcul test id = ' . $fti['ID'] . " - $i / $count\n"; } catch (\Exception $e) { echo 'ERREUR ERREUR ERREUR ERREUR id = ' . $fti['ID'] . " - $i / $count " . $e->getMessage() . "\n"; } } $bdd->commitTransaction(); $serviceFormuleTest->calculerTout(); } if ($peuplerAttendus) { Loading @@ -499,8 +483,7 @@ if ($peuplerAttendus) { } } if ($transfertDansNouvelleInfra) { if ($transfertIntervenantsDansNouvelleInfra) { $bddDevConfig = OseAdmin::instance()->config()->get('bdds')['local-dev']; $bddDev = new \Unicaen\BddAdmin\Bdd($bddDevConfig); $bddDev->setLogger(OseAdmin::instance()->console()); Loading Loading @@ -533,64 +516,118 @@ if ($transfertDansNouvelleInfra) { JOIN formule f ON f.id = fti.FORMULE_ID "; $volumesHorairesSql = " SELECT ID, INTERVENANT_TEST_ID FORMULE_INTERVENANT_TEST_ID, REFERENTIEL, SERVICE_STATUTAIRE, TAUX_FI, TAUX_FA, TAUX_FC, TYPE_INTERVENTION_CODE, PONDERATION_SERVICE_DU, PONDERATION_SERVICE_COMPL, PARAM_1, PARAM_2, PARAM_3, PARAM_4, PARAM_5, HEURES, A_SERVICE_FI HEURES_ATTENDUES_SERVICE_FI, A_SERVICE_FA HEURES_ATTENDUES_SERVICE_FA, A_SERVICE_FC HEURES_ATTENDUES_SERVICE_FC, A_SERVICE_REFERENTIEL HEURES_ATTENDUES_SERVICE_REFERENTIEL, A_HEURES_COMPL_FI HEURES_ATTENDUES_COMPL_FI, A_HEURES_COMPL_FA HEURES_ATTENDUES_COMPL_FA, A_HEURES_COMPL_FC HEURES_ATTENDUES_COMPL_FC, A_HEURES_COMPL_FC_MAJOREES HEURES_ATTENDUES_PRIMES, A_HEURES_COMPL_REFERENTIEL HEURES_ATTENDUES_COMPL_REFERENTIEL, C_SERVICE_FI HEURES_SERVICE_FI, C_SERVICE_FA HEURES_SERVICE_FA, C_SERVICE_FC HEURES_SERVICE_FC, C_SERVICE_REFERENTIEL HEURES_SERVICE_REFERENTIEL, C_HEURES_COMPL_FI HEURES_COMPL_FI, C_HEURES_COMPL_FA HEURES_COMPL_FA, C_HEURES_COMPL_FC HEURES_COMPL_FC, C_HEURES_COMPL_FC_MAJOREES HEURES_PRIMES, C_HEURES_COMPL_REFERENTIEL HEURES_COMPL_REFERENTIEL, STRUCTURE_CODE STRUCTURE_CODE FROM formule_test_volume_horaire "; if ($supprExistant) { echo "Vidage des tables FORMULE_TEST_VOLUME_HORAIRE & FORMULE_TEST_INTERVENANT\n"; $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE')->truncate(); $bddDev->getTable('FORMULE_TEST_INTERVENANT')->truncate(); } $formules = $bddDev->getTable('FORMULE')->select(null, ['key' => 'CODE']); $iTable = $bddDev->getTable('FORMULE_TEST_INTERVENANT'); $count = (int)$bdd->selectOne('SELECT count(*) C from FORMULE_TEST_INTERVENANT', [], 'C'); $i = 0; $r = $em->getConnection()->executeQuery($intervenantsSql); $bddDev->beginTransaction(); while ($d = $r->fetchAssociative()) { $d['FORMULE_ID'] = (int)$formules[$d['FORMULE_CODE']]['ID']; unset($d['FORMULE_CODE']); $bddDev->getTable('FORMULE_TEST_INTERVENANT')->insert($d); $iTable->insert($d); $i++; echo "Transfert des intervenants $i / $count\n"; } $bddDev->commitTransaction(); } $r = $em->getConnection()->executeQuery($volumesHorairesSql); while ($d = $r->fetchAssociative()) { if ($transfertVolumesHorairesDansNouvelleInfra) { $bddDevConfig = OseAdmin::instance()->config()->get('bdds')['local-dev']; $bddDev = new \Unicaen\BddAdmin\Bdd($bddDevConfig); $bddDev->setLogger(OseAdmin::instance()->console()); $volumesHorairesSql = " SELECT v.ID, v.INTERVENANT_TEST_ID FORMULE_INTERVENANT_TEST_ID, v.REFERENTIEL, v.SERVICE_STATUTAIRE, v.TAUX_FI, v.TAUX_FA, v.TAUX_FC, v.TYPE_INTERVENTION_CODE, v.PONDERATION_SERVICE_DU, v.PONDERATION_SERVICE_COMPL, v.PARAM_1, v.PARAM_2, v.PARAM_3, v.PARAM_4, v.PARAM_5, v.HEURES, COALESCE(v.C_SERVICE_FI,0) HEURES_ATTENDUES_SERVICE_FI, COALESCE(v.C_SERVICE_FA,0) HEURES_ATTENDUES_SERVICE_FA, COALESCE(v.C_SERVICE_FC,0) HEURES_ATTENDUES_SERVICE_FC, COALESCE(v.C_SERVICE_REFERENTIEL,0) HEURES_ATTENDUES_SERVICE_REFERENTIEL, COALESCE(v.C_HEURES_COMPL_FI,0) HEURES_ATTENDUES_COMPL_FI, COALESCE(v.C_HEURES_COMPL_FA,0) HEURES_ATTENDUES_COMPL_FA, COALESCE(v.C_HEURES_COMPL_FC,0) HEURES_ATTENDUES_COMPL_FC, COALESCE(v.C_HEURES_COMPL_FC_MAJOREES,0) HEURES_ATTENDUES_PRIMES, COALESCE(v.C_HEURES_COMPL_REFERENTIEL,0) HEURES_ATTENDUES_COMPL_REFERENTIEL, COALESCE(v.C_SERVICE_FI,0) HEURES_SERVICE_FI, COALESCE(v.C_SERVICE_FA,0) HEURES_SERVICE_FA, COALESCE(v.C_SERVICE_FC,0) HEURES_SERVICE_FC, COALESCE(v.C_SERVICE_REFERENTIEL,0) HEURES_SERVICE_REFERENTIEL, COALESCE(v.C_HEURES_COMPL_FI,0) HEURES_COMPL_FI, COALESCE(v.C_HEURES_COMPL_FA,0) HEURES_COMPL_FA, COALESCE(v.C_HEURES_COMPL_FC,0) HEURES_COMPL_FC, COALESCE(v.C_HEURES_COMPL_FC_MAJOREES,0) HEURES_PRIMES, COALESCE(v.C_HEURES_COMPL_REFERENTIEL,0) HEURES_COMPL_REFERENTIEL, v.STRUCTURE_CODE STRUCTURE_CODE FROM formule_test_volume_horaire v JOIN formule_test_intervenant i ON i.id = v.intervenant_test_id WHERE i.annee_id = :annee AND i.formule_id = :formuleId "; $sqlPrepa = " select i.annee_id, f.id formule_id, f.package_name formule, count(*) c from formule_test_intervenant i JOIN formule f ON f.id = i.formule_id group by annee_id, f.id, f.package_name ORDER BY annee_id, f.package_name "; if ($supprExistant) { echo "Vidage de la table FORMULE_TEST_VOLUME_HORAIRE\n"; $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE')->truncate(); } $zones = $bdd->select($sqlPrepa); $vhTable = $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE'); foreach ($zones as $zone) { $annee = (int)$zone['ANNEE_ID']; $formule = $zone['FORMULE']; $formuleId = $zone['FORMULE_ID']; $count = $zone['C']; echo "Transfert des volumes horaires, $annee, $formule\n"; $i = 0; $vhs = $bdd->select($volumesHorairesSql, ['annee' => $annee, 'formuleId' => $formuleId]); $bddDev->beginTransaction(); foreach ($vhs as $d) { $i++; $d['HEURES_ATTENDUES_NON_PAYABLE_FI'] = 0; $d['HEURES_ATTENDUES_NON_PAYABLE_FA'] = 0; $d['HEURES_ATTENDUES_NON_PAYABLE_FC'] = 0; Loading @@ -600,8 +637,17 @@ if ($transfertDansNouvelleInfra) { $d['HEURES_NON_PAYABLE_FC'] = 0; $d['HEURES_NON_PAYABLE_REFERENTIEL'] = 0; $d['NON_PAYABLE'] = 0; $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE')->insert($d); try { $vhTable->insert($d); OseAdmin::instance()->console()->msg("Injection des volumes horaires $i / $count", true); }catch(\Exception $e){ echo "Erreur ERREUR ERREUR $i / $count\n"; echo $e->getMessage(); die(); } } $bddDev->commitTransaction(); } } No newline at end of file Loading
code/test1.php +137 −91 Original line number Diff line number Diff line Loading @@ -28,9 +28,10 @@ $dataIntervenants = false; // OK $dataVolumesHoraires = false; // OK $dataStructures = false; // OK $calculTout = true; $calculTout = false; $peuplerAttendus = false; $transfertDansNouvelleInfra = false; $transfertIntervenantsDansNouvelleInfra = false; $transfertVolumesHorairesDansNouvelleInfra = true; $bdd = OseAdmin::instance()->getBdd(); Loading Loading @@ -170,12 +171,6 @@ if ($duplicationDonnees){ } if ($dataIntervenants) { $sql = " Loading Loading @@ -425,7 +420,6 @@ if ($dataStructures){ } // on calcule tout! /* * Exemples erreurs Loading Loading @@ -457,26 +451,16 @@ if ($calculTout) { $i = 0; $sql = "SELECT id FROM formule_test_intervenant WHERE id >= $min ORDER BY id"; $q = $bdd->select($sql); $bdd->beginTransaction(); foreach ($q as $fti) { $i++; try { if ($i % 100 == 0){ $bdd->commitTransaction(); echo "Transaction commit\n"; $bdd->beginTransaction(); } $calcSql = "BEGIN ose_formule.test(" . $fti['ID'] . "); END;"; //$bdd->beginTransaction(); $bdd->exec($calcSql); //$bdd->commitTransaction(); echo 'Calcul test id = ' . $fti['ID'] . " - $i / $count\n"; } catch (\Exception $e) { echo 'ERREUR ERREUR ERREUR ERREUR id = ' . $fti['ID'] . " - $i / $count " . $e->getMessage() . "\n"; } } $bdd->commitTransaction(); $serviceFormuleTest->calculerTout(); } if ($peuplerAttendus) { Loading @@ -499,8 +483,7 @@ if ($peuplerAttendus) { } } if ($transfertDansNouvelleInfra) { if ($transfertIntervenantsDansNouvelleInfra) { $bddDevConfig = OseAdmin::instance()->config()->get('bdds')['local-dev']; $bddDev = new \Unicaen\BddAdmin\Bdd($bddDevConfig); $bddDev->setLogger(OseAdmin::instance()->console()); Loading Loading @@ -533,64 +516,118 @@ if ($transfertDansNouvelleInfra) { JOIN formule f ON f.id = fti.FORMULE_ID "; $volumesHorairesSql = " SELECT ID, INTERVENANT_TEST_ID FORMULE_INTERVENANT_TEST_ID, REFERENTIEL, SERVICE_STATUTAIRE, TAUX_FI, TAUX_FA, TAUX_FC, TYPE_INTERVENTION_CODE, PONDERATION_SERVICE_DU, PONDERATION_SERVICE_COMPL, PARAM_1, PARAM_2, PARAM_3, PARAM_4, PARAM_5, HEURES, A_SERVICE_FI HEURES_ATTENDUES_SERVICE_FI, A_SERVICE_FA HEURES_ATTENDUES_SERVICE_FA, A_SERVICE_FC HEURES_ATTENDUES_SERVICE_FC, A_SERVICE_REFERENTIEL HEURES_ATTENDUES_SERVICE_REFERENTIEL, A_HEURES_COMPL_FI HEURES_ATTENDUES_COMPL_FI, A_HEURES_COMPL_FA HEURES_ATTENDUES_COMPL_FA, A_HEURES_COMPL_FC HEURES_ATTENDUES_COMPL_FC, A_HEURES_COMPL_FC_MAJOREES HEURES_ATTENDUES_PRIMES, A_HEURES_COMPL_REFERENTIEL HEURES_ATTENDUES_COMPL_REFERENTIEL, C_SERVICE_FI HEURES_SERVICE_FI, C_SERVICE_FA HEURES_SERVICE_FA, C_SERVICE_FC HEURES_SERVICE_FC, C_SERVICE_REFERENTIEL HEURES_SERVICE_REFERENTIEL, C_HEURES_COMPL_FI HEURES_COMPL_FI, C_HEURES_COMPL_FA HEURES_COMPL_FA, C_HEURES_COMPL_FC HEURES_COMPL_FC, C_HEURES_COMPL_FC_MAJOREES HEURES_PRIMES, C_HEURES_COMPL_REFERENTIEL HEURES_COMPL_REFERENTIEL, STRUCTURE_CODE STRUCTURE_CODE FROM formule_test_volume_horaire "; if ($supprExistant) { echo "Vidage des tables FORMULE_TEST_VOLUME_HORAIRE & FORMULE_TEST_INTERVENANT\n"; $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE')->truncate(); $bddDev->getTable('FORMULE_TEST_INTERVENANT')->truncate(); } $formules = $bddDev->getTable('FORMULE')->select(null, ['key' => 'CODE']); $iTable = $bddDev->getTable('FORMULE_TEST_INTERVENANT'); $count = (int)$bdd->selectOne('SELECT count(*) C from FORMULE_TEST_INTERVENANT', [], 'C'); $i = 0; $r = $em->getConnection()->executeQuery($intervenantsSql); $bddDev->beginTransaction(); while ($d = $r->fetchAssociative()) { $d['FORMULE_ID'] = (int)$formules[$d['FORMULE_CODE']]['ID']; unset($d['FORMULE_CODE']); $bddDev->getTable('FORMULE_TEST_INTERVENANT')->insert($d); $iTable->insert($d); $i++; echo "Transfert des intervenants $i / $count\n"; } $bddDev->commitTransaction(); } $r = $em->getConnection()->executeQuery($volumesHorairesSql); while ($d = $r->fetchAssociative()) { if ($transfertVolumesHorairesDansNouvelleInfra) { $bddDevConfig = OseAdmin::instance()->config()->get('bdds')['local-dev']; $bddDev = new \Unicaen\BddAdmin\Bdd($bddDevConfig); $bddDev->setLogger(OseAdmin::instance()->console()); $volumesHorairesSql = " SELECT v.ID, v.INTERVENANT_TEST_ID FORMULE_INTERVENANT_TEST_ID, v.REFERENTIEL, v.SERVICE_STATUTAIRE, v.TAUX_FI, v.TAUX_FA, v.TAUX_FC, v.TYPE_INTERVENTION_CODE, v.PONDERATION_SERVICE_DU, v.PONDERATION_SERVICE_COMPL, v.PARAM_1, v.PARAM_2, v.PARAM_3, v.PARAM_4, v.PARAM_5, v.HEURES, COALESCE(v.C_SERVICE_FI,0) HEURES_ATTENDUES_SERVICE_FI, COALESCE(v.C_SERVICE_FA,0) HEURES_ATTENDUES_SERVICE_FA, COALESCE(v.C_SERVICE_FC,0) HEURES_ATTENDUES_SERVICE_FC, COALESCE(v.C_SERVICE_REFERENTIEL,0) HEURES_ATTENDUES_SERVICE_REFERENTIEL, COALESCE(v.C_HEURES_COMPL_FI,0) HEURES_ATTENDUES_COMPL_FI, COALESCE(v.C_HEURES_COMPL_FA,0) HEURES_ATTENDUES_COMPL_FA, COALESCE(v.C_HEURES_COMPL_FC,0) HEURES_ATTENDUES_COMPL_FC, COALESCE(v.C_HEURES_COMPL_FC_MAJOREES,0) HEURES_ATTENDUES_PRIMES, COALESCE(v.C_HEURES_COMPL_REFERENTIEL,0) HEURES_ATTENDUES_COMPL_REFERENTIEL, COALESCE(v.C_SERVICE_FI,0) HEURES_SERVICE_FI, COALESCE(v.C_SERVICE_FA,0) HEURES_SERVICE_FA, COALESCE(v.C_SERVICE_FC,0) HEURES_SERVICE_FC, COALESCE(v.C_SERVICE_REFERENTIEL,0) HEURES_SERVICE_REFERENTIEL, COALESCE(v.C_HEURES_COMPL_FI,0) HEURES_COMPL_FI, COALESCE(v.C_HEURES_COMPL_FA,0) HEURES_COMPL_FA, COALESCE(v.C_HEURES_COMPL_FC,0) HEURES_COMPL_FC, COALESCE(v.C_HEURES_COMPL_FC_MAJOREES,0) HEURES_PRIMES, COALESCE(v.C_HEURES_COMPL_REFERENTIEL,0) HEURES_COMPL_REFERENTIEL, v.STRUCTURE_CODE STRUCTURE_CODE FROM formule_test_volume_horaire v JOIN formule_test_intervenant i ON i.id = v.intervenant_test_id WHERE i.annee_id = :annee AND i.formule_id = :formuleId "; $sqlPrepa = " select i.annee_id, f.id formule_id, f.package_name formule, count(*) c from formule_test_intervenant i JOIN formule f ON f.id = i.formule_id group by annee_id, f.id, f.package_name ORDER BY annee_id, f.package_name "; if ($supprExistant) { echo "Vidage de la table FORMULE_TEST_VOLUME_HORAIRE\n"; $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE')->truncate(); } $zones = $bdd->select($sqlPrepa); $vhTable = $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE'); foreach ($zones as $zone) { $annee = (int)$zone['ANNEE_ID']; $formule = $zone['FORMULE']; $formuleId = $zone['FORMULE_ID']; $count = $zone['C']; echo "Transfert des volumes horaires, $annee, $formule\n"; $i = 0; $vhs = $bdd->select($volumesHorairesSql, ['annee' => $annee, 'formuleId' => $formuleId]); $bddDev->beginTransaction(); foreach ($vhs as $d) { $i++; $d['HEURES_ATTENDUES_NON_PAYABLE_FI'] = 0; $d['HEURES_ATTENDUES_NON_PAYABLE_FA'] = 0; $d['HEURES_ATTENDUES_NON_PAYABLE_FC'] = 0; Loading @@ -600,8 +637,17 @@ if ($transfertDansNouvelleInfra) { $d['HEURES_NON_PAYABLE_FC'] = 0; $d['HEURES_NON_PAYABLE_REFERENTIEL'] = 0; $d['NON_PAYABLE'] = 0; $bddDev->getTable('FORMULE_TEST_VOLUME_HORAIRE')->insert($d); try { $vhTable->insert($d); OseAdmin::instance()->console()->msg("Injection des volumes horaires $i / $count", true); }catch(\Exception $e){ echo "Erreur ERREUR ERREUR $i / $count\n"; echo $e->getMessage(); die(); } } $bddDev->commitTransaction(); } } No newline at end of file