* * @folder /home/newsite-lepage-vivaces.com/CRON/ * @since 1.0 * @param db adodb object database * 0 champ : 422Conditionnement exemple : AGAPAFG8, AGAPAFC2, AGAPAFC3. 1 champ : Conditionnement. 2 champs : DISPONIBLE, EPUISE et INACTIF DISPONIBLE : plante avec des stocks dispo>0 (sauf lieu fournisseur) ou plantes avec des stocks <0 && stock réservé =0 && Statut =’’ (pour Laurent). EPUISE : Plante avec le statut EPUISE et NEGOCE. INACTIF : plante avec le statut INACTIF. 3 champs : Id Aquila. * * *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- */ require_once ('/home/ubuntu/pepiniere-bretagne.fr/ini.php'); // Database access functions ini_set('display_errors', 0); //error_reporting(E_ERROR); define('XMLVERBOSE',1); set_time_limit(0); set_time_limit(-1); $timestamp_debut = microtime(true); //$basename = 'test.xml'; $delais_cron=30; $basename = 'web-abelia.xml'; $log = ''; switch ($frm->action) { default : { $log .= '
################################################################################################################################################
'; $log .= 'IMPORT DE ' . $basename; $log .= '
################################################################################################################################################
'; $log .= "OUVERTURE DU REPERTOIRE " . REPIMPORT . "
"; // Ouvre un dossier bien connu, et liste l'ensemble des fichiers de passerelle pour import if ($dh = opendir(REPIMPORT)) { while (($file = readdir($dh)) !== false) { $log.= $basename.'--->'.$file.'
'; if ($file == $basename) { $log .= 'Lecture de ' . $basename . ' OK
'; $result = importxml($db, REPIMPORT . $basename,XMLVERBOSE, $delais_cron); //print_r($result); $liste_article = $result -> liste_article; $ctliste_article = count($liste_article); $liste_dispo = $result -> liste_dispo; $ctliste_dispo = count($liste_dispo); $liste_ref_conditionnement = $result -> liste_ref_conditionnement; $ct_liste_ref_conditionnement = count($liste_ref_conditionnement); $liste_ref_tarif = $result -> liste_ref_tarif; $ct_liste_ref_tarif = count($liste_ref_conditionnement); $liste_ref_couleur = $result -> ref_liste_couleur; $ct_liste_ref_couleur = count($liste_ref_couleur); $liste_produits = $result -> liste_produits; $ct_liste_produits = count($liste_produits); $log .= '' . $ctliste_article . 'plantes (' . $ctliste_dispo . ' disponibles) dans ' . $ct_liste_ref_conditionnement . ' conditionnements.
'; $log .= '
################################################################################################################################################
'; $log .= 'INSERT/UPDATE DES TABLE DE REFERENCE'; $log .= '
################################################################################################################################################
'; $log .= $result -> log; $log .= '
################################################################################################################################################
'; $log .= 'IMPORTATION EN BASE '; $log .= '
################################################################################################################################################
'; // $log .= xml_abelia_insert_update_CONDITIONNEMENT($db, $liste_ref_conditionnement); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'INSERT/UPDATE DES CONDITIONNEMENT '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; // $result = xml_abelia_insert_update_TARIF($db, $liste_ref_tarif); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'INSERT/UPDATE DES TARIFS '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; $log .= $result-> log; // $result = xml_abelia_insert_update_COULEUR($db, $liste_ref_couleur); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'INSERT/UPDATE DES COULEURS '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; $log .= $result -> log; xml_abelia_update_ARTICLE_inactive_by_list($db); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'DESACTIVATION DES ARTICLES '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; //Ne plus supprimer les conditionnements. //xml_abelia_delete_ARTICLE_EXISTER_CONDITIONNEMENT($db); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'SUPPRESSION DES LIAISONS ARTICLE_EXISTER_CONDITIONNEMENT '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; //$db->debug=true; $log .= '
************************************************************************************************************************************************
'; $log .= 'IMPORTATION ET MISE A JOUR IMAGES' . $difference_ms. 'ms - ' .$ctliste_article; $log .= '
************************************************************************************************************************************************
'; $existe = 0; for ($i = 0; $i < $ctliste_article; $i++) { $existe = 0; $sql = "select distinct ID_ARTICLE,CHAR_A_REFERENCE from ARTICLE where BE_A_DELETE<>1 order by ID_ARTICLE ASC "; $liste_articles_base = select_list($db, $sql); $ctliste_articles_base = count($liste_articles_base); $log .= "-------------------------------------------------------------------------------
"; for ($j = 0; $j < $ctliste_articles_base; $j++) { $existe = 0; //$log .= $liste_articles_base[$j]['CHAR_A_REFERENCE']." - ".$liste_article[$i]['CHAR_A_REFERENCE'].' - '.$liste_articles_base[$j]['ID_ARTICLE']."
"; if (trim(strtoupper($liste_articles_base[$j]['CHAR_A_REFERENCE'])) == trim(strtoupper($liste_article[$i]['CHAR_A_REFERENCE']))) { $existe = $liste_articles_base[$j]['ID_ARTICLE']; break; } } if ($existe > 0) { $ctimages = count($liste_article[$i]['PHOTO']); $log .= "-------------------------------------------------------------------------------
Article " . $liste_article[$i]['CHAR_A_REFERENCE'] . " ID " . $existe . "---> " . $ctimages . " images
"; for ($w = 0; $w < $ctimages; $w++) { if (trim($liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG']) != '' && file_exists(REP_PICT_IMPORT . $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'])) { if(XMLVERBOSE>1) $log .= REP_PICT_IMPORT.$liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'] . " existe en import - "; if (file_exists(REP_REC_IMPORT . $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'])) { if(XMLVERBOSE>1) $log .= '' .REP_REC_IMPORT. $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'] . " existe dans le site.--->"; //$newname = $CHAR_PH_ORIG; $timestampabelia = filemtime(REP_PICT_IMPORT . $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG']); $timestampsite = filemtime(REP_REC_IMPORT . $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG']); if(XMLVERBOSE>1)$log .= date('d/m/Y H:i:s', $timestampabelia) . ' - ' . date('d/m/Y H:i:s', $timestampsite) . ' ---> '; if ($timestampabelia > $timestampsite) { if(XMLVERBOSE>1)$log .= 'image importée plus rescente UPDATE
'; if(XMLVERBOSE>1)$log .= xml_abelia_update_img($db, $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'],$w,$liste_article[$i]); } else { if(XMLVERBOSE>1)$log .= 'image site plus récente --> vérification de la conformité SQL
'; if(XMLVERBOSE>1)$log .= xml_abelia_verifier_img($db, $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'], $existe,$w,$liste_article[$i]); } } else { if(XMLVERBOSE>1)$log .= REP_REC_IMPORT . $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'] . " n'existe pas dans le site---> CREATION.
"; if(XMLVERBOSE>1)$log .= xml_abelia_creer_img($db, $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'], $existe,$w,$liste_article[$i]); } } else { if (trim($liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG']) != '') { if(XMLVERBOSE>1)$log .= '' . $liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG'] . " : L'image n\'existe pas en import
"; } else { if(XMLVERBOSE>1)$log .= '' . " : Le champ image est vide.
"; } } } } } /* $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'NETTOYAGE DES IMAGES' . $difference_ms. 'ms - ' .$ctliste_article; $log .= '
************************************************************************************************************************************************
'; $existe = 0; for ($i = 0; $i < $ctliste_article; $i++) { $file_format=$liste_article[$i]['CHAR_A_REFERENCE']."*"; $listimageproduit = glob(REP_PICT_IMPORT.$file_format); $ctimages = count($liste_article[$i]['PHOTO']); if(XMLVERBOSE>1)$log .= 'Verification des images superflues du FTP pour '.$liste_article[$i]['CHAR_A_REFERENCE'].'
'; foreach ($listimageproduit as $imageproduit) { if(XMLVERBOSE>1)$log .= 'Image '.$liste_article[$i]['CHAR_A_REFERENCE'].'
'; for ($w = 0; $w < $ctimages; $w++) { if($liste_article[$i]['PHOTO'][$w]['CHAR_PH_ORIG']==$imageproduit ){ if(XMLVERBOSE>1)$log .= 'image dans le XML
'; } } } } */ // $db->debug=false; $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'IMPORTATION DE LA LISTE DES ARTICLES / PLANTES EN BASE début '. $difference_ms .' - ' .$ctliste_article; $log .= '
************************************************************************************************************************************************
'; $existe = 0; for ($i = 0; $i < $ctliste_article; $i++) { $existe = 0; $sql = "select distinct ID_ARTICLE,CHAR_A_REFERENCE from ARTICLE where BE_A_DELETE<>1 order by ID_ARTICLE ASC "; $liste_articles_base = select_list($db, $sql); $ctliste_articles_base = count($liste_articles_base); $log .= "-------------------------------------------------------------------------------
"; for ($j = 0; $j < $ctliste_articles_base; $j++) { $existe = 0; //$log .= $liste_articles_base[$j]['CHAR_A_REFERENCE']." - ".$liste_article[$i]['CHAR_A_REFERENCE'].' - '.$liste_articles_base[$j]['ID_ARTICLE']."
"; if (trim(strtoupper($liste_articles_base[$j]['CHAR_A_REFERENCE'])) == trim(strtoupper($liste_article[$i]['CHAR_A_REFERENCE']))) { $existe = $liste_articles_base[$j]['ID_ARTICLE']; break; } } if ($existe > 0) { $log .= "l'article " . $liste_article[$i]['CHAR_A_REFERENCE'] . " existe en ID " . $existe . " avec l'ID_ABELIA ".$liste_article[$i]['ID_AQUILA']."
"; //verifier que la plante n'a pas déja ete modifier if (!in_array($existe, $liste_modif)) { $log .= 'l\'enregistrement est en cours de modification
'; $log .= xml_abelia_update_ARTICLE($db, $liste_article[$i], $existe); //Ajouter à la liste des plantes modifiees $liste_modif[] = $existe; $log .= xml_abelia_delete_ARTICLE_APPARTENIR_COLLECTION($db, $liste_article[$i], $existe); $log .= xml_abelia_delete_PLANTE_AVOIR_REF_COULEUR_FLEUR($db, $liste_article[$i], $existe); $log .= xml_abelia_delete_PLANTE_AVOIR_REF_COULEUR_FEUILLE($db, $liste_article[$i], $existe); $log .= xml_abelia_delete_PERIODE_FLORAISON($db, $existe); $log .= xml_abelia_delete_PERIODE_FEUILLAISON($db, $existe); $log .= xml_abelia_delete_PERIODE_CUEILLETTE($db, $existe); $log .= xml_abelia_delete_PLANTE_POUSSER_REF_ZONE($db, $existe); $log .= xml_abelia_update_ARTICLE_APPARTENIR_COLLECTION($db, $liste_article[$i], $existe); $log .= xml_abelia_update_ARTICLE_EXISTER_CONDITIONNEMENT($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PLANTE_AVOIR_REF_COULEUR_FLEUR($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PLANTE_AVOIR_REF_COULEUR_FEUILLE($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PLANTE_POUSSER_REF_ZONE($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PERIODE_FLORAISON($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PERIODE_FEUILLAISON($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PERIODE_CUEILLETTE($db, $liste_article[$i], $existe); // $db->debug=true; //vérifier que l'enregistrement existe dans la table de recherche... potentiel défaut d'enregistrement //si oui $test_temp_table_article=test_temp_table_article($db,$existe); if($test_temp_table_article['COUNT(*)']>0){ $log .= dl_xml_abelia_update_temp_table_article_by_article($db,$liste_article[$i], $existe); }else{// si non $log .= 'ATTENTION TABLE TEMPORAIRE POTENTIELLEMENT DEFECTUEUSE !!! ---->RECREATION LIAISON
'; $log .= dl_xml_abelia_insert_temp_table_article_by_article($db,$liste_article[$i], $existe); } // $db->debug=false; } else { $log .= 'l\'enregistrement a déja été modifié - renvoi doublon ABELIA
'; $log .=xml_abelia_update_ARTICLE_EXISTER_CONDITIONNEMENT($db,$liste_article[$i],$existe); } } else { $log .= "l'article " . $liste_article[$i]['CHAR_A_REFERENCE'] . " n'existe pas---> insert en id " . $new_id . "
"; $rslt = xml_abelia_insert_ARTICLE($db, $liste_article[$i]); $log .= $rslt[0]; $existe = $rslt[1]; $liste_modif[] = $existe; $log .= xml_abelia_update_ARTICLE_APPARTENIR_COLLECTION($db, $liste_article[$i], $existe); $log .= xml_abelia_update_ARTICLE_EXISTER_CONDITIONNEMENT($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PLANTE_AVOIR_REF_COULEUR_FLEUR($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PLANTE_AVOIR_REF_COULEUR_FEUILLE($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PLANTE_POUSSER_REF_ZONE($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PERIODE_FLORAISON($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PERIODE_FEUILLAISON($db, $liste_article[$i], $existe); $log .= xml_abelia_update_PERIODE_CUEILLETTE($db, $liste_article[$i], $existe); // $db->debug=true; $log .= dl_xml_abelia_insert_temp_table_article_by_article($db,$liste_article[$i], $existe); //$db->debug=false; } } $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= $result -> log; $log .= '
************************************************************************************************************************************************
'; $log .= 'IMPORTATION DE LA LISTE DES ARTICLES / PLANTES EN BASE fin '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; } } closedir($dh); /*$log .= ' ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ECRASEMENT DES INFORMATIONS POUR TOUTES LES PLANTES VDL
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'; $log .= dl_xml_abelia_UPDATE_PLANTE_VIVACES_VDL_article($db,$liste_article); */ //$log .= $db($db); $log .= dl_CREATE_PLANTE_GENRE($db); $log .= dl_CREATE_PLANTE_PLEINETERRE($db); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= ' ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATION DE LA COLLECTION PLEINE TERRE & GENRE' . $difference_ms. 'ms
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'; //$log .= dl_xml_abelia_drop_temp_table_article($db); //$log .= dl_xml_abelia_create_temp_table_article($db); //$log .= dl_xml_abelia_update_TMP_ARTICLE_SEARCH_BE_A_INPROMO($db); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= ' ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MISE A JOUR DES TABLES TEMPORAIRES DE RECHERCHES DE CONDITIONNEMENTS' . $difference_ms. 'ms
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'; $log .= dl_xml_abelia_update_count_CONDITIONNEMENT($db); $log .= dl_xml_abelia_update_count_REF_FORME($db); $log .= dl_xml_abelia_update_count_REF_TARIF($db); $log .= dl_xml_abelia_update_count_COLLECTION($db); $log .= dl_xml_abelia_update_count_COLLECTION_GENRE($db); $log .= dl_xml_abelia_update_count_REF_COULEUR_FLEUR($db); $log .= dl_xml_abelia_update_count_REF_COULEUR_FEUILLE($db); $log .= dl_xml_abelia_update_count_REF_SITE($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_KEY($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_BE_A_ACTIVE($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_BE_A_DELETE($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_BE_A_UNE($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_BE_A_NEW($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_CONCAT_COLLECTION($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_CONCAT_TARIF($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_CONCAT_NOM_RECHERCHE($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_CONCAT_FLORAISON($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_CONCAT_COULEUR_FEUILLE($db); //$log .= dl_xml_abelia_alter_TMP_ARTICLE_SEARCH_INDEX_CONCAT_COULEUR_FLEUR($db); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= ' ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MISE A JOUR DES TOTAUX PAR CATEGORIES DE REFERENCE' . $difference_ms. 'ms
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'; } } } //maillog($log); ?> IMPORT XML V2 FICHIER CRON_MAJ_SITE BRETAGNE

Exécution du script : 1660440606.313 s.