__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_client_livraison WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Enregistre l'objet en base de donnée * Si l'ID est renseigné ==> modification * Sinon ==> insertion * @access public */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); //si l'ID est renseigné, on modifie, sinon, on insere $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_client_livraison SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_client_livraison SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } /** * Supprime l'objet en base de donnée * @access public */ function supprimer() { $requete = "DELETE FROM boutique_obj_client_livraison WHERE ID='".$this->ID."';"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * Liste les clients * @access public */ function lister() { $requete = "SELECT * FROM boutique_obj_client_livraison ORDER BY ID ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_clientLivraison($ligne['ID']); } return ($resultats); } /** * Récupérer la livraison de la commande ID_commande pour le client ID_client * @access public */ function getLivraisonClient($ID_client, $ID_commande) { $requete = "SELECT * FROM boutique_obj_client_livraison WHERE ID_client = '".$ID_client."' AND ID_commande = '".$ID_commande."' ORDER BY ID DESC"; //echo $requete; $ligne = T_LAETIS_site::requeter($requete); $resultats = new Tbq_clientLivraison($ligne[0]['ID']); return $resultats; } // FIN function getLivraisonClient($ID_client, $ID_commande) function setCadeauPointsFidelite() { $client = new Tclient($this->ID_client); $points = new TpointsFidelite(); $this->cadeauPointsFidelite = $points->getCadeau($client->pointsFidelite); // On ajoute le cadeau fidélité en base $requete = "UPDATE boutique_obj_client_livraison SET cadeauPointsFidelite = '".$this->cadeauPointsFidelite."' WHERE ID='".$this->ID."';"; T_LAETIS_site::requeter($requete); } // FIN function setCadeauPointsFidelite() function enleverCadeauPointsFidelite() { // On enlève le cadeau fidélité en base $requete = "UPDATE boutique_obj_client_livraison SET cadeauPointsFidelite = '' WHERE ID='".$this->ID."';"; T_LAETIS_site::requeter($requete); } // FIN function setCadeauPointsFidelite() function exporterCSV($detailClientLivraison) { $nomFichier = dirname(__FILE__)."/../../admin/commandes/laposte/".$detailClientLivraison->ID_commande.".csv"; $fp = fopen($nomFichier,'w'); // écriture des entetes //$ligne = ''; //$ligne .= "ID;nomLivraison;adresseLivraison;adresseLivraison2;adresseLivraison3;codePostalLivraison;villeLivraison;telLivraison;messageLivraison;ID_pays"; //$ligne .= "\r\n"; //fwrite($fp,$ligne); /* $query="SELECT typ_pays.pays FROM typ_pays WHERE typ_pays.ID = '".$detailClientLivraison['ID_pays']."'"; $res=$this->query($query); $row=$res->fetchRow(DB_FETCHMODE_ASSOC); $res->free(DB_Result); */ $ligne = ''; $ligne .= $detailClientLivraison->ID.';'.$detailClientLivraison->civiliteLivraison.' '.$detailClientLivraison->nomLivraison.' '.$detailClientLivraison->prenomLivraison.';'.$detailClientLivraison->adresseLivraison.';'.$detailClientLivraison->adresseLivraison2.';'.';'.$detailClientLivraison->codePostalLivraison.';'.$detailClientLivraison->villeLivraison.';'.$detailClientLivraison->telLivraison.';'.$detailClientLivraison->messageLivraison.';'.$detailClientLivraison->ID_pays.';'; fwrite($fp,$ligne); fclose($fp); } // FIN function exporter() ///////// // Fonctions pour le CARNET D'ADRESSE //////// /** * Enregistre l'adresse dans le carnet d'adresse * Si existe ==> rien * Sinon ==> insertion * @access public */ function enregistrerCarnetAdresse($valeurs) { $requete = "SELECT * FROM boutique_obj_client_carnet_adresse WHERE ID_client = '".$valeurs['ID_client']."' AND afficherAdresse = 1 AND nomLivraison='".addslashes($valeurs['nomLivraison'])."' AND prenomLivraison='".addslashes($valeurs['prenomLivraison'])."' AND adresseLivraison='".addslashes($valeurs['adresseLivraison'])."' AND villeLivraison='".addslashes($valeurs['villeLivraison'])."' AND codePostalLivraison='".addslashes($valeurs['codePostalLivraison'])."' AND ID_pays='".$valeurs['ID_pays']."'"; $resultats = T_LAETIS_site::requeter($requete); // Si cette adresse n'est pas déjà présente if (! ($resultats[0]['ID']>0) ) { // C'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_client_carnet_adresse (`ID_client`, `civiliteLivraison`, `nomLivraison`, `prenomLivraison`, `adresseLivraison`, `adresseLivraison2`, `villeLivraison`, `codePostalLivraison`, `telLivraison` , `ID_pays`, `afficherAdresse`) VALUES ('".$valeurs['ID_client']."', '".$valeurs['civiliteLivraison']."', '".addslashes($valeurs['nomLivraison'])."', '".addslashes($valeurs['prenomLivraison'])."', '".addslashes($valeurs['adresseLivraison'])."', '".addslashes($valeurs['adresseLivraison2'])."', '".addslashes($valeurs['villeLivraison'])."', '".addslashes($valeurs['codePostalLivraison'])."', '".addslashes($valeurs['telLivraison'])."', '".$valeurs['ID_pays']."', '1')"; T_LAETIS_site::requeter($requete); } } // FIN function enregistrerCarnetAdresse($valeurs) /** * Liste les différentes adresses de livraison présentes dans le carnet d'adresse * pour un client dont l'ID est passé en paramètre * On affiche que celles dont afficherAdresse est a 1 * @access public * @param int $ID_client ID du client * @return Objets Tbq_clientLivraison correspondants */ function listerCarnetAdresseClient($ID_client) { $requete = "SELECT * FROM boutique_obj_client_carnet_adresse WHERE ID_client = '".$ID_client."' AND afficherAdresse = 1 ORDER BY adresseLivraison, villeLivraison ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { //$resultats[] = new Tbq_clientLivraison($ligne['ID']); $resultats[] = $ligne; } return ($resultats); } // FIN function listerCarnetAdresseClient($ID_client) /** * Liste les différentes adresses de livraison présentes dans la base client_livraison * pour un client dont l'ID est passé en paramètre * @access public * @param int $ID_client ID du client * @return Objets Tbq_clientLivraison correspondants */ function listerAdresseLivraison($ID_client) { $requete = "SELECT * FROM boutique_obj_client_livraison WHERE ID_client = '".$ID_client."' ORDER BY adresseLivraison, villeLivraison ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_clientLivraison($ligne['ID']); } return ($resultats); } // FIN function listerAdresseLivraison($ID_client) /** * Affecte la valeur 0 a afficherAdresse pour ne plus afficher cette adresse * de livraison * @access public */ function supprimerAdresseCarnet($ID_carnet) { $requete = "UPDATE boutique_obj_client_carnet_adresse SET afficherAdresse = '0' WHERE ID='".$ID_carnet."';"; T_LAETIS_site::requeter($requete); } // FIN function supprimerAdresseCarnet($ID_carnet) function traitementAdresse($adresseFacturation) { function split_words($string, $max = 35) { $words = preg_split('/\s/', $string); $lines = array(); $line = ''; foreach ($words as $k => $word) { $length = strlen($line . ' ' . $word); if ($length <= $max) { $line .= ' ' . $word; } else if ($length > $max) { if (!empty($line)) $lines[] = trim($line); $line = $word; } else { $lines[] = trim($line) . ' ' . $word; $line = ''; } } $lines[] = ($line = trim($line)) ? $line : $word; return $lines; } // FIN function split_words($string, $max = 35) $numligne=1; // nombre de ligne adresse renseignés for ($i=0;$i<2;$i++) // nom d'adresseFacturation traitées { $adresseFacturation2 = split_words($adresseFacturation[$i]); for($j = 0; $j < sizeof($adresseFacturation2); ++$j) { $adresse[$numligne++] = T_LAETIS_site::supprimerAccents($adresseFacturation2[$j]); } } return $adresse; } // FIN function traitementAdresse($adresseFacturation) function genererFichierExpeditor($detailClientLivraison) { $infoLivraison = $this->getLivraisonClient($detailClientLivraison["ID_client"], $detailClientLivraison["ID_commande"]); try { $requete = "UPDATE boutique_obj_commande SET genererFichierLivraison = 1 WHERE `ID` = '".$detailClientLivraison["ID_commande"]."'"; T_LAETIS_site::requeter($requete); // Sélection des informations sur le pays $requete = "SELECT boutique_typ_pays.* FROM `boutique_typ_pays` WHERE `ID` = '". $infoLivraison->ID_pays."' LIMIT 1"; $resultats = T_LAETIS_site::requeter($requete); $requete = "SELECT SUM(boutique_obj_article.poidsEmballe * boutique_obj_ligneCommande.quantite) AS totalPoidsEmballe FROM boutique_obj_article, boutique_obj_ligneCommande WHERE boutique_obj_article.ID=boutique_obj_ligneCommande.ID_article AND boutique_obj_ligneCommande.ID_commande ='". $detailClientLivraison["ID_commande"]."'"; $resultats2 = T_LAETIS_site::requeter($requete); $poidsColis = $resultats2[0]['totalPoidsEmballe']; } catch(Exception $e) { mysql_error_log( $e->getMessage() ); } // Fin de la sélection des informations sur le pays // Génération du code pour Expeditor $codeExpeditor = "EXP"; // Type d'enregistrement = Constante : « EXP » $codeExpeditor .= str_pad("BL".$infoLivraison->ID_commande, 35, " ", STR_PAD_RIGHT); // Référence du colis pour l'expéditeur (35 caractères) $codeExpeditor .= date("Ymd"); // Date d'edition de l'étiquette AAAAMMJJ (8 caractères) // Code produit (4 caractères) // COL Colissimo Expert France / COLI Colissimo Expert International / // DOS SO Colissimo Domicile avec Signature / DOM SO Colissimo sans Signature if ($infoLivraison->ID_pays==1): $codeExpeditor .= "COL "; else: $codeExpeditor .= "COLI"; endif; $codeExpeditor .= str_repeat(" ", 6); // Code Expéditeur (6 caractères) $codeExpeditor .= str_repeat(" ", 17); // Code Destinataire (17 caractères) $codeExpeditor .= strtoupper(str_pad(substr(T_LAETIS_site::supprimerAccents($infoLivraison->nomLivraison),0,35), 35, " ", STR_PAD_RIGHT)); // Nom du destinataire (35 caractères) $traitementAdresse = $this->traitementAdresse(array($infoLivraison->adresseLivraison, $infoLivraison->adresseLivraison2)); // Découpe des deux lignes d'adresses $codeExpeditor .= strtoupper(str_pad($traitementAdresse[1], 35, " ", STR_PAD_RIGHT)); // Adresse 1 du destinataire (35 caractères) $codeExpeditor .= strtoupper(str_pad($traitementAdresse[2], 35, " ", STR_PAD_RIGHT)); // Adresse 2 du destinataire (35 caractères) $codeExpeditor .= strtoupper(str_pad($traitementAdresse[3], 35, " ", STR_PAD_RIGHT)); // Adresse 3 du destinataire (35 caractères) $codeExpeditor .= strtoupper(str_pad(substr($infoLivraison->codePostalLivraison,0,9), 9, " ", STR_PAD_RIGHT)); // Code Postal du destinataire (9 caractères) $codeExpeditor .= strtoupper(str_pad(substr(T_LAETIS_site::supprimerAccents($infoLivraison->villeLivraison),0,35), 35, " ", STR_PAD_RIGHT)); // Commune du destinataire (35 caractères) $codeExpeditor .= strtoupper(str_pad($resultats[0]['iso2'], 3, " ", STR_PAD_RIGHT)); // Code Pays du destinataire (35 caractères) $codeExpeditor .= strtoupper(str_pad(substr($infoLivraison->messageLivraison,0,70), 70, " ", STR_PAD_RIGHT)); // Instructiopn de livraison du destinataire (70 caractères) $codeExpeditor .= str_repeat(" ", 12); // Filler non utilisé (12 caractères) // $detailClientLivraison["Poids"]*1000 $codeExpeditor .= str_pad(intval($poidsColis), 15, "0", STR_PAD_LEFT); // Code Pays du destinataire (35 caractères) $codeExpeditor .= str_repeat(" ", 15); // Montant CRBT (15 caractères) $codeExpeditor .= str_repeat(" ", 3); // Filler non utilisé (3 caractères) $codeExpeditor .= str_repeat(" ", 15); // Montant ADV (15 caractères) $codeExpeditor .= str_repeat(" ", 3); // Filler non utilisé (3 cractères) $codeExpeditor .= "N"; // Non Mécanisable (O ou N) $codeExpeditor .= str_repeat(" ", 17); // Filler non utilisé (17 caractères) $codeExpeditor .= str_pad(substr($infoLivraison->telLivraison,0,25), 25, " ", STR_PAD_RIGHT); // N° téléphone (25 caractères) $codeExpeditor .= str_repeat(" ", 4); // Filler non utilisé (4 caractères) $codeExpeditor .= "0"; // Recommandation (0, 1, 2 ou 3) $codeExpeditor .= "N"; // Avis de réception (O ou N) $codeExpeditor .= "N"; // Franc de taxes et de droits (O ou N) $codeExpeditor .= "2"; // Type de retour (2 économique) if($detailClientLivraison["emailFacturation"]!=''): $codeExpeditor .= str_pad(substr($detailClientLivraison["emailFacturation"],0,75), 75, " ", STR_PAD_RIGHT); // Email du destinataire (75 caractères) else: $codeExpeditor .= str_pad(substr("contact@jama.fr",0,75), 75, " ", STR_PAD_RIGHT); // Email du destinataire (75 caractères) endif; $codeExpeditor .= "4"; // Nature de l'envoi (4 envoi commercial) $codeExpeditor .= str_repeat(" ", 25); // Numéro de licence (25 cractères) $codeExpeditor .= str_repeat(" ", 25); // Numéro de certificat (25 cractères) $codeExpeditor .= str_repeat(" ", 25); // Numéro de facture (25 cractères) $codeExpeditor .= str_repeat(" ", 4); // Référence en douane (4 cractères) $codeExpeditor .= strtoupper(str_pad($traitementAdresse[4], 35, " ", STR_PAD_RIGHT)); // Adresse 4 du destinataire (35 caractères) $codeExpeditor .= str_repeat(" ", 35); // Numéro d'affaire (35 cractères) $codeExpeditor .= str_pad($detailClientLivraison["ID_commande"], 35, " ", STR_PAD_RIGHT); // str_repeat(" ", 35); // Numéro de commande (35 cractères) $codeExpeditor .= str_repeat(" ", 35); // Filler non utilisé (35 cractères) $codeExpeditor .= str_repeat(" ", 11); // BIC (11 cractères) $codeExpeditor .= str_repeat(" ", 27); // IBAN (27 cractères) if ($infoLivraison->civiliteLivraison=="M."): $civiliteLivraison="2"; elseif($infoLivraison->civiliteLivraison=="Mme"): $civiliteLivraison="3"; elseif($infoLivraison->civiliteLivraison=="Mlle"): $civiliteLivraison="4"; else: $civiliteLivraison=" "; endif; $codeExpeditor .= substr($civiliteLivraison,0,1); // Civilité du destinataire (1 caractères) if(empty($infoLivraison->prenomLivraison)): $infoLivraison->prenomLivraison = "."; endif; $codeExpeditor .= str_pad(substr(T_LAETIS_site::supprimerAccents($infoLivraison->prenomLivraison),0,29), 29, " ", STR_PAD_RIGHT); // Prénom du destinataire (29 caractères) $codeExpeditor .= str_repeat(" ", 38); // Raison Sociale du destinataire (38 cractères) $codeExpeditor .= str_repeat(" ", 10); // Portable du destinataire (10 caractères) "06".str_repeat("0", 8) $codeExpeditor .= str_repeat(" ", 8); // Code porte 1 du destinataire (8 cractères) $codeExpeditor .= str_repeat(" ", 8); // Code porte 2 du destinataire (8 cractères) $codeExpeditor .= str_repeat(" ", 30); // Interphone du destinataire (30 cractères) $codeExpeditor .= str_repeat(" ", 6); // Code point de retrait (6 cractères) $codeExpeditor .= str_repeat(" ", 1); // Filler non utilisé (1 cractères) $codeExpeditor .= str_pad("JAMA", 38, " ", STR_PAD_RIGHT); // Nom commercial de l'expéditeur (38 caractères) $codeExpeditor .= str_repeat(" ", 30); // Filler non utilisé (30 cractères) $codeExpeditor .= str_repeat(" ", 15); // Code Avoir/Promotion (15 caractères) return $codeExpeditor; } // FIN function genererFichierExpeditor($detailClientLivraison) } ?> array('FR' => 'En stock', 'EN' => 'Available', 'ES' => 'Disponible'), 'surCommande' => array('FR' => 'Sur commande', 'EN' => 'Order only', 'ES' => 'Solo en orden'), 'enReappro' => array('FR' => 'En réapprovisionnement', 'EN' => 'Not available', 'ES' => 'No disponible'), 'delais' => array('FR' => 'Délai de livraison', 'EN' => 'Delivery schedule', 'ES' => 'Plazos de envió'), 'dans' => array('FR' => 'dans', 'EN' => 'in', 'ES' => 'en'), 'jours' => array('FR' => 'jours', 'EN' => 'days', 'ES' => 'dias') ); /** * Constructeur * Constructeur PHP4 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function Tbq_commande($ID = 0) { $this->__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if ($ID > 0) { $requete = "SELECT * FROM boutique_obj_commande WHERE ID='" . $this->ID . "'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct() { } /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom => $valeur) { if (!in_array($nom, $champsNonEnregistres)) { $valeur = "\"" . addslashes($valeur) . "\""; $contenuRequete .= " ," . $nom . "=" . $valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete, 2); if ($this->ID > 0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_commande SET "; $requete .= $contenuRequete . " WHERE ID=" . $this->ID; $resSql = T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction enregistrer Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_commande SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_commande"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_commande($ligne['ID']); } return ($resultats); } /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function commandesAnneeMois($statut, $annee, $mois) { $resultats = array(); $requete = "SELECT COUNT(ID) as nb, SUM(montant) as somme FROM boutique_obj_commande WHERE statut = '" . $statut . "' AND YEAR(dateCommande) = " . $annee . " AND MONTH(dateCommande) = " . $mois . ";"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats['somme'] = $ligne['somme']; $resultats['nb'] = $ligne['nb']; } return ($resultats); } /** * Recherche des commandes selon le nom du client ou le numéro de commande * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function rechercher($valeurs) { $resultats = array(); $requeteR = '1'; if ($valeurs['motCle']) { if ($valeurs['champRecherche'] == "client") { $requeteR = "(boutique_obj_client.nomFacturation LIKE '%" . $valeurs['motCle'] . "%' OR boutique_obj_client_livraison.nomLivraison LIKE '%" . $valeurs['motCle'] . "%') "; } else if ($valeurs['champRecherche'] == "commande") { $requeteR = "(boutique_obj_commande.ID LIKE '%" . $valeurs['motCle'] . "%') "; } } $requete = "SELECT boutique_obj_commande.* FROM boutique_obj_commande, boutique_obj_client, boutique_obj_client_livraison WHERE " . $requeteR . " AND boutique_obj_commande.ID_client = boutique_obj_client.ID AND boutique_obj_commande.ID_client = boutique_obj_client_livraison.ID_client AND boutique_obj_commande.ID = boutique_obj_client_livraison.ID_commande GROUP BY boutique_obj_commande.ID ORDER BY boutique_obj_commande.ID DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_commande($ligne['ID']); } return ($resultats); } // FIN function rechercher($valeurs) /** * retourne l'année de la premiere commande * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function anneePremiereCommande() { $date = 0; $requete = "SELECT YEAR(dateCommande) as annee FROM boutique_obj_commande ORDER BY dateCommande LIMIT 0, 1"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $date = $ligne['annee']; } return ($date); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_commande WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); $requete = "DELETE FROM boutique_obj_ligneCommande WHERE ID_commande='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * private * Liste les commandes selon des critères de recherche * @param * @return La liste des commandes */ function listerSelonCriteres($criteres) { // MODIF 2010-12 // PAR DEFAUT, on n'affiche que les commandes non traitées et pas annulee $requeteStatut = "statut NOT IN ('expediee','annulee')"; //$requeteStatut='1'; $requeteAnnee = '1'; // Selon le/les statuts de la commande if ($criteres['statut'] == "payee") { $requeteStatut = "statut IN ('payee cb','payee cb paypal','payee cb 3 fois','payee cb 3 fois alma','payee en salon', 'validee cheque','validee fax','validee virement')"; } else if ($criteres['statut'] == "toutes") { $requeteStatut = "1"; } else if ($criteres['statut']) { $requeteStatut = "statut IN ('" . $criteres['statut'] . "')"; } // Selon l'année de la commande if (!$criteres['annee']) { $criteres['annee'] = date("Y"); } $requeteAnnee = "dateCommande LIKE '" . $criteres['annee'] . "%'"; $requete = "SELECT * FROM boutique_obj_commande WHERE 1 AND " . $requeteStatut . " AND " . $requeteAnnee . " AND statut != 'non validee' ORDER BY ID DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_commande($ligne['ID']); } return ($resultats); } /** * private * Supprime les commandes de la veille pour lesquelles l'adresse n'est pas renseignée * @param * @return */ function epurer() { $requete = "SELECT ID FROM boutique_obj_commande WHERE ID_client='0' AND dateCommande<'" . date("Y-m-d") . "';"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { /*$requete="DELETE FROM boutique_obj_commande WHERE ID='".$ligne['ID']."';"; T_LAETIS_site::requeter($requete); $requete="DELETE FROM obj_ligneCommande WHERE ID_commande='".$ligne['ID']."';"; T_LAETIS_site::requeter($requete);*/ } } /** * private * Pour la présentation d'un chiffre float * @param * @return le chiffre bien affiché */ function afficherFloat($chiffre) { return number_format($chiffre, 2, ',', ' '); } // FIN function afficherFloat($chiffre) /** * private * Sauver la liste des commandes dans l'espace d'administration * @param * @return */ function sauverListe($valeurs) { // On modifie le statut de la commande while (list ($ID_commande) = each($valeurs['statut'])) { $requete = "UPDATE boutique_obj_commande SET statut='" . $valeurs['statut'][$ID_commande] . "' WHERE ID='" . $ID_commande . "'"; T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction sauverListe Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } // FIN while(list ($ID_commande) = each ($valeurs['statut'])) if ($valeurs['supprimer']) { // On supprime la commande si elle a été cochée while (list ($ID_commande) = each($valeurs['supprimer'])) { if ($valeurs['supprimer'][$ID_commande] == '1') { $commande = new Tbq_commande($ID_commande); $commande->supprimer(); } // FIN if ($valeurs['supprimer'][$ID_commande]=='1') } // FIN while(list ($ID_commande) = each ($valeurs['supprimer'])) } //FIN if ($valeurs['supprimer']) } // FIN function sauverListe($valeurs) /** * private * Préparation d'une commande et décrémenter le stock * @param * @return */ public function preparerCommande($ID_commande) { $requete = "UPDATE boutique_obj_commande SET statut='enPreparation' WHERE ID = '" . $ID_commande . "'"; T_LAETIS_site::requeter($requete); /* LOG */ /*$logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction sauverListe Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp);*/ } // FIN function preparerCommande($ID_commande) /** * private * Recherche le nombre d'articles dans le panier * @param * @return le nombre d'articles */ function getNombreArticles() { if ($this->ID) { $requete = "SELECT SUM(quantite) AS nombreArticle FROM boutique_obj_ligneCommande WHERE ID_commande ='" . $this->ID . "'"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats[0]['nombreArticle']); } return 0; } // FIN function getNombreArticles() /** * private * Ajout de l'article dans la commande, crée la commande si n'existe pas * @param $valeurs Les champs POST de l'article qu'on veut ajouter * @return string $articlesAjoutes La liste des articles ajoutés, séparés par une virgule */ function ajouterArticle($valeurs) { // Ouverture de la commande si pas déjà ouverte if (!($this->ID > 0)): $requete = "INSERT INTO boutique_obj_commande (dateCommande, statut) VALUES (NOW(), 'non validee')"; T_LAETIS_site::requeter($requete); $_SESSION['ID_commande'] = T_LAETIS_site::last_insert_id(); $this->ID = T_LAETIS_site::last_insert_id(); // Si la commande a été payée ou on est arrivé au paiement elseif (($this->reglement == 'retourAutoPaiementAccepte') || ($this->statut == 'validee cheque') || ($this->statut == 'validee virement') || ($this->statut == 'validee fax') ): $requete = "INSERT INTO boutique_obj_commande (dateCommande, statut) VALUES (NOW(), 'non validee')"; T_LAETIS_site::requeter($requete); $_SESSION['ID_commande'] = T_LAETIS_site::last_insert_id(); $this->ID = T_LAETIS_site::last_insert_id(); // Si la commande est en appel du paiement elseif (($this->statut == 'appel cb') || ($this->statut == 'appel cb alma') || ($this->statut == 'appel cb 3 fois')): $ID_commandeDupliquee = $this->dupliquerCommande($this->ID); $_SESSION['ID_commande'] = $ID_commandeDupliquee; $this->ID = $ID_commandeDupliquee; endif; $articlesAjoutes = ""; $montant = 0; while (list($ID_article) = each($valeurs)) { if ($valeurs[$ID_article]['quantite'] > 0) { $articlesAjoutes .= $ID_article . ","; // Si cet article a des variantes if ($valeurs[$ID_article]['tabVariantes']) { // Mise du produit dans le panier $requete = "INSERT INTO boutique_obj_ligneCommande (ID_commande, ID_article, titre_article, quantite, tarif, tauxTVA) VALUES ('" . $this->ID . "', '" . $ID_article . "', '" . addslashes($valeurs[$ID_article]['titre']) . "', '" . $valeurs[$ID_article]['quantite'] . "','" . $valeurs[$ID_article]['tarif'] . "', '" . $valeurs[$ID_article]['tauxTVA'] . "')"; //echo $requete."
"; T_LAETIS_site::requeter($requete); $ID_ligneCommande = T_LAETIS_site::last_insert_id(); foreach ($valeurs[$ID_article]['tabVariantes'] as $ID_variante) { $valeursSql .= "('" . $ID_ligneCommande . "', '" . $ID_variante . "', '" . $valeurUtilisateur . "'), "; } $valeursSql = substr($valeursSql, 0, strlen($valeursSql) - 2); $requeteVariantes = "INSERT INTO boutique_rel_ligneCommande_variante (ID_ligneCommande, ID_variante, valeurUtilisateur) VALUES " . $valeursSql . ";"; //echo $requeteVariantes."
"; T_LAETIS_site::requeter($requeteVariantes); } // FIN if($valeurs[$ID_article]['tabVariantes']) else { // Est ce que l'article a déjà été ajouté dans le panier ? si oui on augmente la quantite en commande $requete = "SELECT ID, quantite, tarif FROM boutique_obj_ligneCommande WHERE ID_commande = '" . $this->ID . "' AND ID_article = '" . $ID_article . "'"; $resultats = T_LAETIS_site::requeter($requete); if (sizeof($resultats) > 0) { // Mise a jour de la quantité du produit $requete = "UPDATE boutique_obj_ligneCommande SET quantite = quantite + " . $valeurs[$ID_article]['quantite'] . " WHERE ID = '" . $resultats[0]['ID'] . "'"; T_LAETIS_site::requeter($requete); } // FIN if (sizeof($resultats)>0) else { // Mise du produit dans le panier $requete = "INSERT INTO boutique_obj_ligneCommande (ID_commande, ID_article, titre_article, quantite, tarif, tauxTVA) VALUES ('" . $this->ID . "', '" . $ID_article . "', '" . addslashes($valeurs[$ID_article]['titre']) . "', '" . $valeurs[$ID_article]['quantite'] . "','" . $valeurs[$ID_article]['tarif'] . "', '" . $valeurs[$ID_article]['tauxTVA'] . "')"; T_LAETIS_site::requeter($requete); } // FIN else } // FIN else } // FIN if ($valeurs[$ID_article]['quantite']>0) } // FIN while(list($ID_article) = each($valeurs)) $this->sauverMontant(); // On enlève la dernière virgule $articlesAjoutes = substr($articlesAjoutes, 0, strlen($articlesAjoutes) - 1); return $articlesAjoutes; } // FIN function ajouterArticle($valeurs) /** * private * Enregistre le montant total de la commande * @param * @return */ function sauverMontant() { // Calcul du montant de la commande $requete = "SELECT SUM(quantite*tarif) AS montant FROM boutique_obj_ligneCommande WHERE ID_commande = '" . $this->ID . "'"; $resultats = T_LAETIS_site::requeter($requete); $requete = "UPDATE boutique_obj_commande SET montant='" . $resultats[0]['montant'] . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); } // FIN function sauverMontant() /** * private * Enregistre le montant total de la commande avec les frais de port * @param * @return */ function sauverMontantAvecPort($totalCommandeTTC) { $requete = "UPDATE boutique_obj_commande SET montant='" . $totalCommandeTTC . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); } // FIN function sauverMontantAvecPort($totalCommandeTTC) /** * private * Enregistre le tarif de livraison choisi pour la commande * @param * @return */ function sauverTarifLivraison($valeurs) { $requete = "UPDATE boutique_obj_commande SET ID_tarifLivraison = '" . $valeurs['ID_tarifLivraison'] . "', typeLivraison = '" . $valeurs['transport'] . "', livraisonTTC = '" . $valeurs['tarif'] . "', ID_dpdPickup = '" . $valeurs['ID_dpdPickup'] . "', ID_colissimo = '" . $valeurs['ID_colissimo'] . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction sauverTarifLivraison Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } // FIN function sauverTarifLivraison($valeurs) /** * private * Modifier la quantite de la ligne de commande * @param $valeurs Champs passés en argument * @return */ function modifierQuantite($valeurs) { $requete = "UPDATE boutique_obj_ligneCommande SET quantite = quantite + " . $valeurs['modifier'] . " WHERE ID = '" . $valeurs['ID_ligneCommande'] . "'"; T_LAETIS_site::requeter($requete); // Suppression de la ligne de commande (si on a mis un article a 0) $requete = "DELETE FROM boutique_obj_ligneCommande WHERE quantite='0'"; T_LAETIS_site::requeter($requete); $this->sauverMontant(); } // FIN function modifierQuantite($valeurs) /** * private * Lister les lignes de la commande * @param * @return la liste des lignes de la commande */ function detaillerCommande() { $requete = "SELECT boutique_obj_ligneCommande.ID AS ID_ligneCommande, boutique_obj_ligneCommande.*, boutique_obj_article.*, boutique_obj_article.ID AS ID_article, IF ((boutique_obj_article.prixPromotion!='0'), prixPromotion, prixTTC) AS prix FROM boutique_obj_ligneCommande, boutique_obj_commande, boutique_obj_article WHERE boutique_obj_commande.ID='" . $this->ID . "' AND boutique_obj_commande.ID=boutique_obj_ligneCommande.ID_commande AND boutique_obj_ligneCommande.ID_article=boutique_obj_article.ID ORDER BY boutique_obj_article.titre ASC"; $resultats = T_LAETIS_site::requeter($requete); return $resultats; } // FIN function detaillerCommande() /** * private * Affecte le statut passé en argument a la commande * @param * ID_tarifLivraison=0 */ function setStatut($statut) { if ($this->statut != 'expediee'): $requete = "UPDATE boutique_obj_commande SET statut='" . $statut . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); /* LOG */ /*$logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction setStatut Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp);*/ endif; } // FIN function setStatut($statut) /** * private * Affecte le type de paiement passé en argument a la commande * @param * ID_tarifLivraison=0 */ function setTypePaiement($typePaiement) { $requete = "UPDATE boutique_obj_commande SET typePaiement='" . $typePaiement . "' WHERE ID='" . $this->ID . "'"; /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction setTypePaiement Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); T_LAETIS_site::requeter($requete); } // FIN function setTypePaiement($typePaiement) static function convertirTypePaiementPourAffichage($typeAffichage) { switch ($typeAffichage) { case "cartebancaire": $res = "Carte bancaire"; break; case "chequebancaire": $res = "Chèque bancaire"; break; case "monnaie": $res = "Monnaie"; break; case "chequecadeau": $res = "Chèque cadeau"; break; default: $res = ""; break; } return ($res); } // FIN static function convertirTypePaiementPourAffichage($typeAffichage) /** * private * Affecte le statut passé en argument a la commande * @param * ID_tarifLivraison=0 */ function setClient() { $requete = "UPDATE boutique_obj_commande SET ID_client='" . $_SESSION['ID_client'] . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); } // FIN function setClient() /** * private * Si la commande est un paiement direct * @param * ID_tarifLivraison=0 */ function setPaiementDirect() { $requete = "UPDATE boutique_obj_commande SET estPaiementDirect='1' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); } // FIN function setPaiementDirect() /** * private * Affecte le reglement passé en argument a la commande * @param * ID_tarifLivraison=0 */ function setReglement($reglement) { $requete = "UPDATE boutique_obj_commande SET reglement='" . $reglement . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction setReglement Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } // FIN function setReglement($reglement) /** * private * Verifie si la commande en cours a été payée * @param */ function getPayee($ID_commande) { $requete = "SELECT statut FROM boutique_obj_commande WHERE ID='" . $ID_commande . "'"; $resultats = T_LAETIS_site::requeter($requete); if (($resultats[0]['statut'] == "validee virement") || ($resultats[0]['statut'] == "validee cheque") || ($resultats[0]['statut'] == "expediee") || ($resultats[0]['statut'] == "payee cb") || ($resultats[0]['statut'] == "payee cb 3 fois") || ($resultats[0]['statut'] == "payee cb 3 fois alma") || ($resultats[0]['statut'] == "payee en salon") || ($resultats[0]['statut'] == "validee fax") || ($resultats[0]['statut'] == "payee cheque cadeau") ) { return true; } else { return false; } } // FIN function getPayee($ID_commande) function getCle() { $requete = "SELECT cle FROM boutique_typ_siteInternet WHERE ID = 1"; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['cle']; } // FIN function getCle() /** * private * Formate la date et l'heure de la commande * @return string Date et heure de la commande affichées de façon + humaine */ function afficherDate($dateCommande) { $dateCommande = explode(' ', $dateCommande); $heureCommande = $dateCommande[1]; $dateCommande = $dateCommande[0]; $dateCommande = explode('-', $dateCommande); $dateCommande = $dateCommande[2] . "/" . $dateCommande[1] . "/" . $dateCommande[0]; $heureCommande = explode(':', $heureCommande); $heureCommande = $heureCommande[0] . "h" . $heureCommande[1]; return ($dateCommande . '-' . $heureCommande); } // FIN function afficherDate() /** * private * Formate la date et l'heure de la commande * @return string Date et heure de la commande affichées de façon + humaine */ function calculerHT($montant) { if (date('Ymd') < '20140101') { return ($montant / 1.196); } else { return ($montant / 1.2); } } /** * private * Renvoie la TVA pour calcul sur un article * @return double Taux TVA pour calcul */ function getTVA($tauxTVA) { return (($tauxTVA / 100) + 1); } // FIN function getTVA($montant) /** * private * Enregistrer l'état du paiement en ligne * @param int ID_commande * @param string reglement Valeur du règlement * @return */ function reglementCB($reglement) { $requete = "UPDATE boutique_obj_commande SET reglement= '" . $reglement . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction reglementCB Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } /** * private * Liste toutes les commandes passées par le client ID_client * @param int $ID_client ID du client * @return array La liste des commandes */ function listerCommandesClient($ID_client) { $requete = "SELECT * FROM boutique_obj_commande WHERE ID_client = '" . $ID_client . "' ORDER BY dateCommande DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_commande($ligne['ID']); } return ($resultats); } // FIN function listerCommandesClient($ID_client) function dupliquerCommande($ID_commande) { // La commande $requete = "SELECT ID_client, statut, montant FROM boutique_obj_commande WHERE ID = '" . $ID_commande . "'"; $ligne = T_LAETIS_site::requeter($requete); $requete = "INSERT INTO boutique_obj_commande (dateCommande, ID_client, statut, montant) VALUES (NOW(), '" . $ligne[0]['ID_client'] . "', 'non validee', '" . $ligne[0]['montant'] . "')"; T_LAETIS_site::requeter($requete); $ID_nouvelleCommande = T_LAETIS_site::last_insert_id(); // Les lignes commandes $requete = "SELECT *, boutique_obj_ligneCommande.ID AS ID_ligneCommande FROM boutique_obj_ligneCommande, boutique_obj_article WHERE boutique_obj_ligneCommande.ID_commande = '" . $ID_commande . "' AND boutique_obj_article.ID = boutique_obj_ligneCommande.ID_article AND visible > 0"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne): $requete = "INSERT INTO boutique_obj_ligneCommande (ID_article, quantite, ID_commande, tarif, tauxTVA, titre_article) VALUES ('" . $ligne['ID_article'] . "', '" . $ligne['quantite'] . "', '" . $ID_nouvelleCommande . "', '" . $ligne['prixTTC'] . "', '" . $ligne['tauxTVA'] . "', '" . addslashes($ligne['titre']) . "')"; T_LAETIS_site::requeter($requete); $ID_ligneCommandeDupliquee = T_LAETIS_site::last_insert_id(); // Les lignes variantes $requeteV = "SELECT * FROM boutique_rel_ligneCommande_variante WHERE boutique_rel_ligneCommande_variante.ID_ligneCommande = '" . $ligne['ID_ligneCommande'] . "'"; $resSqlV = T_LAETIS_site::requeter($requeteV); foreach ($resSqlV as $ligneV): $requeteIV = "INSERT INTO boutique_rel_ligneCommande_variante (ID_ligneCommande, ID_variante, valeurUtilisateur) VALUES ('" . $ID_ligneCommandeDupliquee . "', '" . $ligneV['ID_variante'] . "', '" . $ligneV['valeurUtilisateur'] . "')"; T_LAETIS_site::requeter($requeteIV); endforeach; endforeach; // On récupère le montant total $requete = "SELECT SUM(quantite * tarif) AS montantTotal FROM boutique_obj_ligneCommande WHERE boutique_obj_ligneCommande.ID_commande = '" . $ID_nouvelleCommande . "'"; $resSql = T_LAETIS_site::requeter($requete); $requete = "UPDATE boutique_obj_commande SET montant = '" . $resSql[0]['montantTotal'] . "' WHERE ID = '" . $ID_nouvelleCommande . "'"; T_LAETIS_site::requeter($requete); return $ID_nouvelleCommande; } // FIN function dupliquerCommande($ID_commande) function enregistrerLivraison($valeurs) { $typeLivraisonEffective = ''; $infoLivraison = ''; if ($valeurs['ID_colissimo']): $typeLivraisonEffective = 'Colissimo'; $infoLivraison = $valeurs['ID_colissimo']; elseif ($valeurs['lettreSuivie']): $typeLivraisonEffective = 'LettreSuivie'; $infoLivraison = $valeurs['ID_lettreSuivie']; elseif ($valeurs['packagetypeUPS']): $typeLivraisonEffective = 'UPS'; elseif ($valeurs['DPD']): $typeLivraisonEffective = 'DPD'; $infoLivraison = $valeurs['ID_dpd']; elseif ($valeurs['Predict']): $typeLivraisonEffective = 'Predict'; $infoLivraison = $valeurs['ID_dpd']; endif; $requete = "UPDATE boutique_obj_commande SET dateExpedition = NOW(), statut= 'expediee', typeLivraisonEffective= '" . $typeLivraisonEffective . "', infoLivraison= '" . $infoLivraison . "', packagetypeUPS= '" . $valeurs['packagetypeUPS'] . "', nbColis= '" . $valeurs['nbColis'] . "', envoyerEmailLivraison= '" . $valeurs['envoyerEmailLivraison'] . "' WHERE ID='" . $this->ID . "'"; T_LAETIS_site::requeter($requete); $this->infoLivraison = $infoLivraison; $this->typeLivraisonEffective = $typeLivraisonEffective; $this->packagetypeUPS = $valeurs['packagetypeUPS']; $this->nbColis = $valeurs['nbColis']; $this->envoyerEmailLivraison = $valeurs['envoyerEmailLivraison']; /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction enregistrerLivraison Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } // FIN function enregistrerLivraison($valeurs) /** * private * Envoi par email login pass * @param * @return */ function envoyerLivraison() { $client = new Tbq_client($this->ID_client); $motDePasse = $client->getMotDePasse(); // Adresse de livraison $livraison = new Tbq_livraison($this->ID_tarifLivraison); if( ($livraison->transport == $this->LIVRAISON_DPD_PICKUP) ) { $dpd = new Tbq_dpd(); $infosDPD = $dpd->getSelonIDdpdPickup($this->ID, $this->ID_dpdPickup); $adresseLivraison = "".$infosDPD[0]['nom']."
".$infosDPD[0]['adresse1']."
".$infosDPD[0]['codePostal']." ".$infosDPD[0]['ville']."FRANCE"; } else if( ($livraison->transport == $this->RELAIS_COLISSIMO) ) { $dpd = new Tbq_colissimo(); $infosDPD = $dpd->getSelonIDColissimo($this->ID, $this->ID_colissimo); $adresseLivraison = "".$infosDPD[0]['nom']."
".$infosDPD[0]['adresse1']."
".$infosDPD[0]['codePostal']." ".$infosDPD[0]['ville']."FRANCE"; } else { $clientLivraison = new Tbq_clientLivraison(); $detailLivraison = $clientLivraison->getLivraisonClient($this->ID_client, $this->ID); $adresseLivraison = "".$detailLivraison->civiliteLivraison." ".$detailLivraison->nomLivraison." ".$detailLivraison->prenomLivraison."
".nl2br($detailLivraison->adresseLivraison); if ($detailLivraison->adresseLivraison2) { $adresseLivraison .= "
".nl2br($detailLivraison->adresseLivraison2); } $adresseLivraison .= "
".$detailLivraison->codePostalLivraison." ".$detailLivraison->villeLivraison; $adresseLivraison .= "
".$detailLivraison->paysLivraison; } // FIN else // Préparation du courrier if ($this->typeLivraisonEffective == 'UPS') { $pageSource = "/boutique/fr/emails/envoi-livraison-ups/envoi-livraison-ups.php"; } else if ($this->typeLivraisonEffective == 'DPD') { $pageSource = "/boutique/fr/emails/envoi-livraison-dpd/envoi-livraison-dpd.php"; } else if ($this->typeLivraisonEffective == 'Predict') { $pageSource = "/boutique/fr/emails/envoi-livraison-dpd/envoi-livraison-dpd.php"; } else if ($this->typeLivraisonEffective == 'LettreSuivie') { $pageSource = "/boutique/fr/emails/envoi-livraison-lettresuivie/envoi-livraison-lettresuivie.php"; } else { $pageSource = "/boutique/fr/emails/envoi-livraison/envoi-livraison.php"; } $post = "login=" . $client->emailFacturation . "&motDePasse=" . $motDePasse . "&email=" . $client->emailFacturation . "&ID_commande=" . $this->ID . "&infoLivraison=" . $this->infoLivraison . "&adresseLivraison=" . $adresseLivraison; $header = "POST " . $pageSource . " HTTP/1.0\r\n"; $header .= "Host: " . $_SERVER['HTTP_HOST'] . "\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($post) . "\r\n"; $header .= "\r\n"; $header .= $post . "\r\n"; $header .= "\r\n"; $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) )); $hostname = 'ssl://' . $_SERVER['HTTP_HOST'].':443'; $stream = stream_socket_client($hostname, $errno, $errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context); if (!$stream) { echo "$errstr ($errno)
\n"; exit($_SERVER[HTTP_HOST] . ' erreur socket fsockopen'); } else { $contenu = "emailFacturation . " Mot De Passe=" . $motDePasse . " Email=" . $client->emailFacturation . " Numero de commande=" . $this->ID . " Livraison=" . $this->infoLivraison; $dateCommande = explode(' ', $this->dateCommande); $sujet = "Expedition de votre commande numero " . $this->ID . " du " . T_LAETIS_site::convertirDate($dateCommande[0], '-', '/'); // Envoi du message include_once (rtrim($_SERVER['DOCUMENT_ROOT'],'/').'/lib/laetis/mailer/htmlMimeMail.php'); $obj_mail = new htmlMimeMail(); $obj_mail->setFrom('contact@jama.fr'); $obj_mail->setSubject($sujet); $obj_mail->setHtml($contenu, $contenuTexte, ''); // Envoi a l'utilisateur $obj_mail->send(array($client->emailFacturation), 'smtp'); //$obj_mail->send(array("christophe.raffy@laetis.fr"),'smtp'); } // FIN function envoyerLivraison() public function getClientsPourRelance() { $requete = " SELECT boutique_obj_commande.ID AS ID_commande, boutique_obj_client.ID AS ID_client, boutique_obj_client.civiliteFacturation, boutique_obj_client.nomFacturation, boutique_obj_client.emailFacturation, boutique_obj_client.ID_paysFacturation FROM `boutique_obj_commande`, `boutique_obj_client` WHERE boutique_obj_commande.dateCommande <= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND boutique_obj_commande.dateCommande > DATE_SUB(CURDATE(), INTERVAL 2 DAY) AND boutique_obj_client.emailFacturation != '' AND boutique_obj_commande.statut IN ('interrompue avant paiement', 'appel cb', 'appel cb 3 fois', 'appel cb paypal', 'appel cb alma') AND boutique_obj_commande.ID_client = boutique_obj_client.ID GROUP BY boutique_obj_client.emailFacturation ORDER BY boutique_obj_commande.ID ASC"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } // FIN function getClientsPourRelance() public function getProduitsPourRelance($ID_commande) { $requete = " SELECT boutique_obj_ligneCommande.ID_article FROM `boutique_obj_ligneCommande` WHERE boutique_obj_ligneCommande.ID_commande = ".$ID_commande.""; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } // FIN function getClientsPourRelance() /** * private * Envoi par email login pass * @param * @return */ public function envoyerEmailRelance() { $resultats = $this->getClientsPourRelance(); // Si il y a des clients à qui envoyer le message if(count($resultats) > 0) { foreach ($resultats as $ligne) { $produits = $this->getProduitsPourRelance($ligne['ID_commande']); $listeProduits = ""; if(count($produits) > 0) { foreach ($produits as $p) { $listeProduits .= $p["ID_article"].","; } $listeProduits = substr($listeProduits , 0, strlen($listeProduits)-1); } // Préparation du courrier // Si France ou Belgique if( ($ligne['ID_paysFacturation']==1) || ($ligne['ID_paysFacturation']==10)) { $sujet = 'Votre commande JAMA numéro '.$ligne['ID_commande'].' est "presque" validée'; $pageSource = "/boutique/fr/emails/envoi-relance/envoi-relance.php"; } // Si Espagne else if($ligne['ID_paysFacturation']==23) { $sujet = 'Su pedido JAMA número '.$ligne['ID_commande'].' está "casi" validado'; $pageSource = "/boutique/es/emails/envoi-relance/envoi-relance.php"; } else { $sujet = 'Your JAMA order number '.$ligne['ID_commande'].' is "almost" validated'; $pageSource = "/boutique/en/emails/envoi-relance/envoi-relance.php"; } $post = "ID_commande=" . $ligne['ID_commande'] . "&ID_client=" . $ligne['ID_client'] . "&civiliteFacturation=" . $ligne['civiliteFacturation'] . "&nomFacturation=" . $ligne['nomFacturation'] . "&listeIDProduits=" . $listeProduits; $header = "POST " . $pageSource . " HTTP/1.0\r\n"; $header.="Host: ".$_SERVER['HTTP_HOST']."\r\n"; $header.= "Content-Type: application/x-www-form-urlencoded\r\n"; $header.= "Content-Length: ".mb_strlen($post)."\r\n"; $header.= "\r\n"; $header.= $post."\r\n"; $header.= "\r\n"; $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) )); $hostname = 'ssl://' . $_SERVER['HTTP_HOST'].':443'; $stream = stream_socket_client($hostname, $errno, $errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context); if(!$stream) { echo "$errstr ($errno)
\n"; exit($_SERVER[HTTP_HOST].' erreur socket fsockopen'); } else { $contenu="setFrom("contact@jama.fr"); $obj_mail->setSubject($sujet); $obj_mail->setHtml($contenu, '', './'); // Envoi a l'utilisateur $obj_mail->send(array($ligne['emailFacturation']),'smtp'); //$obj_mail->send(array("march@jama.fr"),'smtp'); //$obj_mail->send(array("christophe.raffy@laetis.fr"),'smtp'); } // FIN foreach ($resultats as $ligne) } } // FIN function envoyerEmailRelance() /** * private * un fonction qui genere le hmtl qui sera envoyé dans l'email * et le stocke dans les archives * @param INT IDcommande * @return */ function genererEmailConfirmationCommande($pageSource) { // recup de l'ID_client $requete = "SELECT boutique_obj_commande.ID_client, boutique_obj_client.emailFacturation, boutique_obj_client.nomFacturation FROM boutique_obj_commande, boutique_obj_client WHERE boutique_obj_commande.ID='" . $this->ID . "' AND boutique_obj_commande.ID_client=boutique_obj_client.ID"; $resultats = T_LAETIS_site::requeter($requete); if ($resultats) { $get = "?provenance=fsock&ID_commande=" . $this->ID . "&ID_client=" . $resultats[0]['ID_client'] . "&code=" . Tbq_commande::crypter($resultats[0]['nomFacturation']); $header = "GET /" . $pageSource . $get . " HTTP/1.0\r\n"; $header .= "Host: " . $_SERVER['HTTP_HOST'] . "\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "\r\n"; $header .= "\r\n"; $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) )); $hostname = 'ssl://' . $_SERVER['HTTP_HOST'].':443'; $stream = stream_socket_client($hostname, $errno, $errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context); /*if ($_SERVER['HTTPS'] == 'on'): $stream = fsockopen('ssl://' . $_SERVER['HTTP_HOST'], 443, $errno, $errstr, 30); else: $stream = fsockopen($_SERVER['SERVER_ADDR'], 80, $errno, $errstr, 30); endif;*/ if (!$stream) { echo "$errstr ($errno)
\n"; exit($_SERVER['HTTP_HOST'] . ' erreur socket fsockopen'); } else { $contenu = "ID; // Envoi du message include_once (rtrim($_SERVER['DOCUMENT_ROOT'],'/').'/lib/laetis/mailer/htmlMimeMail.php'); $obj_mail = new htmlMimeMail(); $obj_mail->setFrom("contact@jama.fr"); $obj_mail->setSubject($sujet); $obj_mail->setHtml($contenu, '', './'); // Envoi de la notice en pièce jointe si elle existe $article = new Tbq_article(); if($resultatsNotice = $article->getNoticeEmail($this->ID)) { foreach ($resultatsNotice as $ligne) { $attachment = new fileAttachment(dirname(__FILE__)."/../../../".$article->repNoticesEmail.$ligne['url']."_A_FR.pdf", 'application/pdf'); $obj_mail->addAttachment($attachment); } } // Envoi au client $obj_mail->send(array($resultats[0]['emailFacturation']), 'smtp'); // Envoi a JAMA $obj_mail->send(array("contact@jama.fr"), 'smtp'); // Envoi a LAETIS $destinataire = array('christophe.raffy@laetis.fr'); $obj_mail->send($destinataire, 'smtp'); } // FIN } // FIN function genererEmailConfirmationCommande($pageSource) function getTotalPoidsCommande() { $requete = "SELECT SUM(boutique_obj_ligneCommande.quantite * boutique_obj_article.poidsNet) AS totalPoidsCommande FROM boutique_obj_ligneCommande, boutique_obj_article WHERE boutique_obj_ligneCommande.ID_commande = '" . $this->ID . "' AND boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID"; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['totalPoidsCommande']; } // FIN function getTotalPoidsCommande() function getTypeLivraison($ID_tarifLivraison) { $requete = "SELECT transport FROM boutique_obj_tarifLivraison WHERE ID = '" . $ID_tarifLivraison . "'"; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['transport']; } // FIN function getTypeLivraison($ID_tarifLivraison) function queDesProduitsAvecFraisDePortGratuit($ID_pays) { $produitAvecPortOffert = array(); $requete = "SELECT boutique_obj_article.ID FROM boutique_obj_article WHERE boutique_obj_article.fraisDePortOffert='1'"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne): $produitAvecPortOffert[] = $ligne['ID']; endforeach; if (!$produitAvecPortOffert): return false; endif; $requete = "SELECT boutique_obj_ligneCommande.ID FROM boutique_obj_ligneCommande WHERE boutique_obj_ligneCommande.ID_commande='" . $this->ID . "' AND boutique_obj_ligneCommande.ID_article NOT IN (" . implode(',', $produitAvecPortOffert) . ")"; $resultats = T_LAETIS_site::requeter($requete); if ($resultats[0]['ID']): return false; // Retourne l'ID tarifLivraison où le frais de port celui des chèques cadeaux soit 0 else: if ($ID_pays == 1): // France return $this->ID_tarifLivraisonProduitAvecPortGratuitFrance; else: return $this->ID_tarifLivraisonProduitAvecPortGratuitEurope; endif; endif; } // FIN function queDesProduitsAvecFraisDePortGratuit() /**************************************************/ /** CHEQUE CADEAU * /**************************************************/ /** * private * Applique le chèque cadeau à la commande * @param * @return array le numéro d'erreur */ function appliquerChequeCadeau($valeurs) { $retour = array(); $chequeCadeau = new Tbq_chequeCadeau(); // Si ce code n'a pas déja été utilisé if ($chequeCadeau->getNonUtilise($valeurs['chequeCadeau'])) { // S'il est valide $promoValideCC = $chequeCadeau->getValide($valeurs['chequeCadeau'], '1'); if (!$promoValideCC) { $retour['numErreur'] = 1; $retour['message'] = "Votre chèque cadeau est invalide, veuillez le ressaisir."; } // FIN if ($promoValideCC) else { // On affecte ce code a la commande $chequeCadeau->validerChequeCadeau($valeurs['chequeCadeau']); $this->affecterRemiseChequeCadeau(); $retour['numErreur'] = 99; $retour['message'] = "Votre chèque cadeau a bien été pris en compte."; } } // FIN if ($chequeCadeau->getNonUtilise($_POST['chequeCadeau'])) else { $retour['numErreur'] = 0; $retour['message'] = "Votre chèque cadeau a déjà été utilisé."; } return $retour; } // FIN function appliquerChequeCadeau($valeurs) function queDesChequesCadeaux() { $requete = "SELECT boutique_obj_ligneCommande.ID FROM boutique_obj_article, boutique_obj_ligneCommande WHERE boutique_obj_ligneCommande.ID_commande='" . $this->ID . "' AND boutique_obj_ligneCommande.ID_article=boutique_obj_article.ID AND boutique_obj_article.reference NOT LIKE 'CHOUETTE%'"; $resultats = T_LAETIS_site::requeter($requete); if ($resultats[0]['ID']) { return false; } // Retourne l'ID tarifLivraison où le frais de port celui des chèques cadeaux soit 0 else { return $this->ID_tarifLivraisonChequeCadeau; } } // FIN function queDesChequesCadeaux() function affecterRemiseChequeCadeau() { $totalCommandeTTC = $this->montant; $remise = 0; $requete = "SELECT SUM(boutique_obj_article.prixTTC) AS totalRemise, SUM(montantPersonnalise) AS montantPersonnalise FROM boutique_obj_chequeCadeau LEFT JOIN boutique_obj_article ON (boutique_obj_chequeCadeau.ID_article = boutique_obj_article.ID) WHERE ID_commande_utilise='" . $_SESSION['ID_commande'] . "'"; $ligne = T_LAETIS_site::requeter($requete); // Si l'utilisateur a bien entré un chèque cadeau if ($ligne[0]['totalRemise'] > 0): $remise = $ligne[0]['totalRemise']; elseif ($ligne[0]['montantPersonnalise'] > 0): $remise = $ligne[0]['montantPersonnalise']; endif; if ($remise > 0): $totalCommandeTTC = $totalCommandeTTC - $remise; if ($totalCommandeTTC < 0): $totalCommandeTTC = 0; endif; $requete = "UPDATE boutique_obj_commande SET remiseChequeCadeau = '" . $remise . "' WHERE ID='" . $_SESSION['ID_commande'] . "'"; T_LAETIS_site::requeter($requete); $this->remiseChequeCadeau = $remise; endif; return $totalCommandeTTC; } // FIN function affecterRemiseChequeCadeau() /** * private * Affiche une phrase bilan sur le récap de la commande * @param * @return string */ function afficherRecapChequeCadeau() { $message = ''; if ($this->remiseChequeCadeau) { $message = "Paiement par chèques cadeaux : " . number_format($this->remiseChequeCadeau, 2, ',', ' ') . " € "; } // FIN if ($this->remiseChequeCadeau) return $message; } // FIN function afficherRecapChequeCadeau() /** * private * Calcule le montant à payer * @param * @return double */ function calculerMontantApresChequeCadeau($totalCommandeTTC) { $totalCommandeApresReduction = $totalCommandeTTC; if ($this->remiseChequeCadeau) { $totalCommandeApresReduction = $totalCommandeTTC - $this->remiseChequeCadeau; } // FIN if ($this->remiseChequeCadeau) if ($totalCommandeApresReduction < 0) { $totalCommandeApresReduction = 0; } return $totalCommandeApresReduction; } // FIN function calculerMontantApresChequeCadeau($totalCommandeTTC) /**************************************************/ /** FIN CHEQUE CADEAU * /**************************************************/ /**************************************************/ /** CODE PROMO * /**************************************************/ /** * private * Applique le code promo à la commande * @param * @return array le numéro d'erreur */ function appliquerCodePromo($valeurs) { $retour = array(); // Le code promo est il valide ? $requete = "SELECT * FROM boutique_obj_offreSpeciale WHERE boutique_obj_offreSpeciale.dateDebut <='" . date("Y-m-d H:i:s") . "' AND boutique_obj_offreSpeciale.dateFin >='" . date("Y-m-d H:i:s") . "' AND boutique_obj_offreSpeciale.code = '" . $valeurs['code'] . "'"; $detailPromo = T_LAETIS_site::requeter($requete); // code promo n'existe pas ou n'est plus valide if (!$detailPromo[0]['ID']) { $retour['numErreur'] = 0; $retour['message'] = "Ce code promo n'est pas valable."; return $retour; } // FIN if (!$detailPromo[0]['ID']) // Code promo existe. // Test si un code promo a déjà été attribué à la commande $ristourne = $this->getDejaUtiliseUnCode(); if ($ristourne) { // Un code promo a déjà ete appliqué $retour['numErreur'] = 1; $retour['message'] = "Une offre est déjà appliquée à votre commande."; return $retour; } // FIN if ($ristourne) // On vérifie que le montant de la commande dépasse la limite du code promo if ($this->montant < $detailPromo[0]['limite']) { $retour['numErreur'] = 2; $retour['message'] = "Le montant minimum pour utiliser ce code promo est de " . $detailPromo[0]['limite'] . " €.
Pour ajouter d'autres produits dans votre panier, cliquez-ici."; return $retour; } // FIN if ($this->montant < $detailPromo[0]['limite']) // Vérifier si sur certains produits if ($detailPromo[0]['famillesEnPromo']) { $tabFamillesCommandees = $this->getIDFamillesArticlesEnCommande(); $tabFamillesEnPromo = explode(',', $detailPromo[0]['famillesEnPromo']); $comprisDansPromo = 0; foreach ($tabFamillesCommandees as $f) { if (in_array($f, $tabFamillesEnPromo)) { $comprisDansPromo = 1; } } if ($comprisDansPromo == 0) { $retour['numErreur'] = 3; $retour['message'] = "Cette offre n'est applicable que sur certaines catégories de produits.
"; $retour['message'] .= "Ces catégories sont:
"; foreach ($tabFamillesEnPromo as $f) { $fam = new Tbq_famille($f); $retour['message'] .= "- " . $fam->titre . "
"; } return $retour; } //FIN if ($comprisDansPromo==0) } // FIN if ($detailPromo[0]['famillesEnPromo']) // Vérifier si sur un article else if ($detailPromo[0]['articleEnPromo']) { $tabArticlesCommandes = $this->getIDArticlesEnCommande(); $comprisDansPromo = 0; if (in_array($detailPromo[0]['articleEnPromo'], $tabArticlesCommandes)) { $comprisDansPromo = 1; } if ($comprisDansPromo == 0) { $articlePromo = new Tbq_article($detailPromo[0]['articleEnPromo']); $retour['numErreur'] = 3; $retour['message'] = "Cette offre n'est applicable que sur un produit : ".$articlePromo->titre; return $retour; } //FIN if ($comprisDansPromo==0) } // FIN if ($detailPromo[0]['articleEnPromo']) // Tout est OK // le code promo existe et peut etre appliqué $requete = "UPDATE boutique_obj_commande SET promoCode = '" . $detailPromo[0]['code'] . "', promoID_typ = '" . $detailPromo[0]['ID_typPromo'] . "', promoMontant = '" . $detailPromo[0]['gain'] . "', promoFamilles = '" . $detailPromo[0]['famillesEnPromo'] . "' WHERE ID = '" . $_SESSION['ID_commande'] . "'"; T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction appliquerCodePromo Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); $this->promoCode = $detailPromo[0]['code']; $this->promoID_typ = $detailPromo[0]['ID_typPromo']; $this->promoMontant = $detailPromo[0]['gain']; $this->promoFamilles = $detailPromo[0]['famillesEnPromo']; $this->promoArticle = $detailPromo[0]['articleEnPromo']; $retour['numErreur'] = 99; $retour['message'] = "L'offre a été appliquée à votre commande."; return $retour; } // FIN function appliquerCodePromo($valeurs) /** * private * Vérifie si la personne a déjà entré un code promo ou pas * @param * @return bool true/false */ function getDejaUtiliseUnCode() { $requete = "SELECT ID FROM boutique_obj_commande WHERE ID='" . $_SESSION['ID_commande'] . "' AND promoMontant != '' AND promoMontant != 0"; $resultats = T_LAETIS_site::requeter($requete); // Un code existe if ($resultats[0]['ID']) { return true; } // Pas de code else { return false; } } // FIN function getDejaUtiliseUnCode() /** * private * Affiche une phrase bilan sur le récap de la commande * @param * @return string */ function afficherRecapPromotion() { $message = ''; switch ($this->promoID_typ) { case '1': $message = "Votre code promo vous fait bénéficier d'une réduction de : - " . number_format($this->promoMontant, 2, ',', ' ') . " €"; break; case '2': $message = "Votre code promo vous fait bénéficier d'une promotion de : - " . number_format($this->promoMontant, 2, ',', ' ') . " %"; break; case '3': $articleCadeau = new Tbq_article($this->promoMontant); $message = "Votre code promo vous fait bénéficier d'un cadeau:
" . $articleCadeau->titre . " d'un montant de " . $articleCadeau->prixTTC . " €"; break; default: } // FIN switch($this->promoID_typ) return $message; } // FIN function getDejaUtiliseUnCode() /** * private * Calcule le montant à payer * @param * @return double */ /*function calculerMontantApresReduction($totalCommandeTTC) { $totalCommandeApresReduction=$totalCommandeTTC; switch($this->promoID_typ) { case '1': $totalCommandeApresReduction = $totalCommandeTTC - $this->promoMontant; break; case '2': // On vérifie si la promo doit se faire sur des produits particuliers. // Si oui alors on applique la promotion qu'à ces articles if($this->promoFamilles) { $totalPrixArticlesComprisPromotion = $this->getSommeArticlesEnCommandeComprisDansPromotion($this->ID); $totalReduction = $totalPrixArticlesComprisPromotion * $this->promoMontant/100; $totalCommandeApresReduction = $totalCommandeTTC-$totalReduction; } else { $totalCommandeApresReduction = $totalCommandeTTC-($totalCommandeTTC * $this->promoMontant/100); } break; default: } // FIN switch($this->promoID_typ) return $totalCommandeApresReduction; } // FIN function calculerMontantApresReduction($totalCommandeTTC)*/ function calculerMontantApresReduction($totalCommandeTTC, $fraisPortTTC) { $totalCommandeApresReduction = $totalCommandeTTC; switch ($this->promoID_typ) { case '1': $totalCommandeApresReduction = $totalCommandeTTC - $this->promoMontant; $totalReduction = $this->promoMontant; break; case '2': // On vérifie si la promo doit se faire sur des produits particuliers. // Si oui alors on applique la promotion qu'à ces articles if ($this->promoFamilles) { $totalPrixArticlesComprisPromotion = $this->getSommeArticlesEnCommandeComprisDansPromotion($this->ID); //echo 'totalPrixArticlesComprisPromotion'.$totalPrixArticlesComprisPromotion; $totalReduction = $totalPrixArticlesComprisPromotion * $this->promoMontant / 100; $totalCommandeApresReduction = $totalCommandeTTC - $totalReduction; } else { // AJOUT CHR 2016-06 // On ne veut pas que les produits déjà en promotion entrent dans la réduction /*if ($this->promoCode == 'MOISGITZO'): $requete = "SELECT SUM(boutique_obj_ligneCommande.tarif * boutique_obj_ligneCommande.quantite) AS totalCommandeSansProduitsDejaSoldes FROM boutique_obj_ligneCommande, boutique_obj_article, boutique_obj_commande WHERE boutique_obj_ligneCommande.ID_commande = '" . $this->ID . "' AND boutique_obj_article.prixPromotion = '0' AND boutique_obj_ligneCommande.ID_commande = boutique_obj_commande.ID AND boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID AND boutique_obj_article.ID_fabricant IN (2)"; // - montantReductionTTC // AND boutique_obj_article.ID_fabricant NOT IN (2) // OR (boutique_rel_famille_article.ID_famille = 161) ) AND boutique_obj_article.ID = boutique_rel_famille_article.ID_article MARCHE PAS // echo $requete; $resultats = T_LAETIS_site::requeter($requete); $totalCommandeSansProduitsDejaSoldes = $resultats[0]['totalCommandeSansProduitsDejaSoldes']; $totalReduction = $totalCommandeSansProduitsDejaSoldes * $this->promoMontant / 100; $totalCommandeApresReduction = $totalCommandeTTC - $totalReduction; else:*/ // FIN AJOUT CHR 2016-06 $totalPrixArticlesHorsDejaEnPromotion = $this->getSommeArticlesEnCommandeHorsDejaEnPromotion($this->ID); $totalReduction = $totalPrixArticlesHorsDejaEnPromotion * $this->promoMontant / 100; $totalCommandeApresReduction = $totalCommandeTTC - $totalReduction; //$totalCommandeApresReduction = $totalCommandeTTC-($totalCommandeTTC * $this->promoMontant/100); //$totalReduction = $totalCommandeTTC * $this->promoMontant/100; //endif; } break; default: } // FIN switch($this->promoID_typ) // Tout est OK // le code promo existe et peut etre appliqué $requete = "UPDATE boutique_obj_commande SET montant = '" . Tbq_commande::convertirFloatPourMysql($totalCommandeApresReduction + $fraisPortTTC) . "', montantReductionTTC = '" . Tbq_commande::convertirFloatPourMysql($totalReduction) . "' WHERE ID = '" . $_SESSION['ID_commande'] . "'"; T_LAETIS_site::requeter($requete); /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction calculerMontantApresReduction Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); return $totalCommandeApresReduction; } // FIN function calculerMontantApresReduction($totalCommandeTTC, $fraisPortTTC) function calculerMontantApresOffreCdOffert($totalCommandeTTCHorsFP, $fraisPortTTC) { $totalCommandeApresReduction = $totalCommandeTTCHorsFP; $promoMontant = 0; // On vérifie qu'il y a des CD dans la commande $requete = "SELECT SUM(boutique_obj_ligneCommande.tarif * boutique_obj_ligneCommande.quantite) AS totalCommandeCD FROM boutique_obj_ligneCommande, boutique_obj_commande, boutique_obj_article, boutique_rel_famille_article WHERE boutique_obj_commande.ID = '" . $this->ID . "' AND boutique_obj_commande.typeLivraison = 'Colissimo' AND boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande AND boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID AND boutique_obj_article.ID = boutique_rel_famille_article.ID_article AND boutique_rel_famille_article.ID_famille IN (65,66,105,81,82,83,84,85,86,87)"; $resultats = T_LAETIS_site::requeter($requete); $totalCommandeSansProduitsDejaSoldes = $resultats[0]['totalCommandeCD']; if ($totalCommandeSansProduitsDejaSoldes > 0): $totalCommandeApresReduction = $totalCommandeTTCHorsFP; $totalReduction = $fraisPortTTC; $promoMontant = $fraisPortTTC; else: $totalCommandeApresReduction = $totalCommandeTTCHorsFP + $fraisPortTTC; $totalReduction = 0; $promoMontant = 0; endif; $montant = Tbq_commande::convertirFloatPourMysql($totalCommandeApresReduction); $montantReductionTTC = Tbq_commande::convertirFloatPourMysql($totalReduction); $requete = "UPDATE boutique_obj_commande SET montant = '" . $montant . "', montantReductionTTC = '" . $montantReductionTTC . "', promoMontant = '" . $promoMontant . "' WHERE ID = '" . $_SESSION['ID_commande'] . "'"; T_LAETIS_site::requeter($requete); $this->montant = $montant; $this->montantReductionTTC = $montantReductionTTC; $this->promoMontant = $promoMontant; /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction calculerMontantApresOffreCdOffert Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); return $totalCommandeApresReduction; } // FIN calculerMontantApresOffreCdOffert($totalCommandeTTCHorsFP, $fraisPortTTC) function afficherRecapOffreCdOffert() { $message = ''; if ($this->montantReductionTTC > 0) { $message = "Jama vous fait bénéficier d'une réduction de : " . number_format($this->montantReductionTTC, 2, ',', ' ') . " € "; } // FIN if ($this->montantReductionTTC > 0) return $message; } // FIN function afficherRecapOffreCdOffert() function verifierSiTragopan() { // On vérifie qu'il y a des Tragopan dans la commande $requete = "SELECT SUM(boutique_obj_ligneCommande.tarif * boutique_obj_ligneCommande.quantite) AS totalCommandeTragopan FROM boutique_obj_ligneCommande, boutique_obj_commande, boutique_obj_article WHERE boutique_obj_commande.ID = '" . $this->ID . "' AND boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande AND boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID AND boutique_obj_article.ID_fabricant = 65"; $resultats = T_LAETIS_site::requeter($requete); //echo $requete; return $resultats[0]['totalCommandeTragopan']; } // FIN verifierSiTragopan() function calculerMontantApresOffreTragopanOffert($totalCommandeTTCHorsFP, $fraisPortTTC, $totalProduitsTragopan) { $totalCommandeApresReduction = $totalCommandeTTCHorsFP; $promoMontant = 0; // Si total des produits Tragopan est supérieur à 100 euros on fait la réduc if ($totalProduitsTragopan > 100): $totalCommandeApresReduction = $totalCommandeTTCHorsFP; $totalReduction = $fraisPortTTC; $promoMontant = $fraisPortTTC; else: $totalCommandeApresReduction = $totalCommandeTTCHorsFP + $fraisPortTTC; $totalReduction = 0; $promoMontant = 0; endif; $montant = Tbq_commande::convertirFloatPourMysql($totalCommandeApresReduction); $montantReductionTTC = Tbq_commande::convertirFloatPourMysql($totalReduction); $requete = "UPDATE boutique_obj_commande SET montant = '" . $montant . "', montantReductionTTC = '" . $montantReductionTTC . "', promoMontant = '" . $promoMontant . "' WHERE ID = '" . $_SESSION['ID_commande'] . "'"; T_LAETIS_site::requeter($requete); $this->montant = $montant; $this->montantReductionTTC = $montantReductionTTC; $this->promoMontant = $promoMontant; return $totalCommandeApresReduction; /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction calculerMontantApresOffreTragopanOffert Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } // FIN calculerMontantApresOffreTragopanOffert($totalCommandeTTCHorsFP, $fraisPortTTC, $totalProduitsTragopan) function afficherRecapOffreTragopanOffert($langue='fr') { $message = ''; if ($this->montantReductionTTC > 0) { switch ($langue): case 'en': $message = "Tragopan offer: JAMA offers postage for an amount of : " . number_format($this->montantReductionTTC, 2, ',', ' ') . " € "; break; case 'es': $message = "Oferta tragopan: JAMA ofrece franqueo por un importe de : " . number_format($this->montantReductionTTC, 2, ',', ' ') . " € "; break; default: $message = "Offre Tragopan : JAMA vous offre les frais de port pour un montant de : " . number_format($this->montantReductionTTC, 2, ',', ' ') . " € "; endswitch; } // FIN if ($this->montantReductionTTC > 0) return $message; } // FIN function afficherRecapOffreCdOffert() function calculerMontantApresOffreTemporaire($totalCommandeTTCHorsFP, $fraisPortTTC) { $totalCommandeApresReduction = $totalCommandeTTCHorsFP; $promoMontant = 0; // On ne veut pas que les produits déjà en promotion entrent dans la réduction $requete = "SELECT SUM(boutique_obj_ligneCommande.tarif * boutique_obj_ligneCommande.quantite) - montantReductionTTC AS totalCommandeSansProduitsDejaSoldes FROM boutique_obj_ligneCommande, boutique_obj_article, boutique_obj_commande WHERE boutique_obj_ligneCommande.ID_commande = '" . $this->ID . "' AND boutique_obj_article.prixPromotion = '0' AND boutique_obj_ligneCommande.ID_commande = boutique_obj_commande.ID AND boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID"; // AND boutique_obj_article.ID_fabricant NOT IN (2) // OR (boutique_rel_famille_article.ID_famille = 161) ) AND boutique_obj_article.ID = boutique_rel_famille_article.ID_article MARCHE PAS $resultats = T_LAETIS_site::requeter($requete); $totalCommandeSansProduitsDejaSoldes = $resultats[0]['totalCommandeSansProduitsDejaSoldes']; // à partir de 850 euros d'achat : -10% if ($totalCommandeSansProduitsDejaSoldes >= 850): $totalCommandeApresReduction = $totalCommandeTTCHorsFP - ($totalCommandeSansProduitsDejaSoldes * 10 / 100); $totalReduction = $totalCommandeSansProduitsDejaSoldes * 10 / 100; $promoMontant = 10; // à partir de 500 euros d'achat : -7% elseif ($totalCommandeSansProduitsDejaSoldes >= 500): $totalCommandeApresReduction = $totalCommandeTTCHorsFP - ($totalCommandeSansProduitsDejaSoldes * 7 / 100); $totalReduction = $totalCommandeSansProduitsDejaSoldes * 7 / 100; $promoMontant = 7; // à partir de 200 euros d'achat : -7.5% /*elseif ($totalCommandeSansProduitsDejaSoldes >= 200): $totalCommandeApresReduction = $totalCommandeTTCHorsFP - ($totalCommandeSansProduitsDejaSoldes * 7.5 / 100); $totalReduction = $totalCommandeSansProduitsDejaSoldes * 7.5 / 100; $promoMontant = 7.5;*/ // à partir de 200 euros d'achat : -5% elseif ($totalCommandeSansProduitsDejaSoldes >= 200): $totalCommandeApresReduction = $totalCommandeTTCHorsFP - ($totalCommandeSansProduitsDejaSoldes * 5 / 100); $totalReduction = $totalCommandeSansProduitsDejaSoldes * 5 / 100; $promoMontant = 5; endif; $montant = Tbq_commande::convertirFloatPourMysql($totalCommandeApresReduction + $fraisPortTTC); $montantReductionTTC = Tbq_commande::convertirFloatPourMysql($totalReduction); $requete = "UPDATE boutique_obj_commande SET montant = '" . $montant . "', soldesReductionTTC = '" . $montantReductionTTC . "', soldesMontant = '" . $promoMontant . "' WHERE ID = '" . $_SESSION['ID_commande'] . "'"; T_LAETIS_site::requeter($requete); $this->montant = $montant; $this->soldesReductionTTC = $montantReductionTTC; $this->soldesMontant = $promoMontant; return $totalCommandeApresReduction; /* LOG */ $logfile="log-update-commande.txt"; $fp=fopen($_SERVER['DOCUMENT_ROOT']."/log/".$logfile, "a"); fwrite($fp, date('Y-m-d H:i:s')." : Fonction calculerMontantApresOffreTemporaire Tbq_commande\n"); fwrite($fp, $requete."\n"); fwrite($fp, "-------------------------------------------\n"); fclose($fp); } // FIN function calculerMontantApresOffreTemporaire($totalCommandeTTCHorsFP, $fraisPortTTC) function afficherRecapOffreTemporaire() { $message = ''; if ($this->soldesReductionTTC > 0) { $message = "Jama vous fait bénéficier d'une réduction de : " . $this->soldesMontant . "%, soit " . number_format($this->soldesReductionTTC, 2, ',', ' ') . " € "; } // FIN if ($this->montantReductionTTC > 0) return $message; } // FIN function afficherRecapOffreTemporaire() /** * private * Lister les familles de la commande * @param * @return la liste des familles de la commande */ function getIDFamillesArticlesEnCommande() { $requete = "SELECT boutique_rel_famille_article.ID_famille FROM boutique_obj_ligneCommande, boutique_rel_famille_article WHERE boutique_obj_ligneCommande.ID_commande='" . $_SESSION['ID_commande'] . "' AND boutique_obj_ligneCommande.ID_article=boutique_rel_famille_article.ID_article ORDER BY boutique_rel_famille_article.ID_famille ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne['ID_famille']; } return ($resultats); } // FIN function getIDFamillesArticlesEnCommande() /** * private * Lister les ID articles de la commande * @param * @return la liste des familles de la commande */ function getIDArticlesEnCommande() { $requete = "SELECT boutique_obj_ligneCommande.ID_article FROM boutique_obj_ligneCommande WHERE boutique_obj_ligneCommande.ID_commande='" . $_SESSION['ID_commande'] . "' ORDER BY boutique_obj_ligneCommande.ID_article ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne['ID_article']; } return ($resultats); } // FIN function getIDArticlesEnCommande() /** * private * Fait la somme du prix TTC des articles soumis à la promtion * @param * @return le prix TTC */ function getSommeArticlesEnCommandeComprisDansPromotion($ID_commande) { $requete = "SELECT boutique_obj_ligneCommande.tarif, boutique_obj_ligneCommande.quantite FROM boutique_obj_ligneCommande LEFT JOIN boutique_obj_article ON (boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID), boutique_rel_famille_article WHERE boutique_obj_ligneCommande.ID_commande='" . $ID_commande . "' AND boutique_obj_ligneCommande.ID_article=boutique_rel_famille_article.ID_article AND boutique_rel_famille_article.ID_famille IN (" . $this->promoFamilles . ") AND boutique_obj_article.`prixPromotion` = 0 AND boutique_obj_article.`occasion` = 0 AND boutique_obj_article.`surDemande` = 0 AND boutique_obj_article.`stock` != 2 GROUP BY boutique_obj_ligneCommande.ID"; //SUM(boutique_obj_ligneCommande.tarif * boutique_obj_ligneCommande.quantite) AS prixTotal //AND boutique_rel_famille_article.ID_famille NOT IN (212,364,397,425,426,427,428,430,431,390,358,420,405,408,213) //echo $requete; $resSql = T_LAETIS_site::requeter($requete); $prixTotal = 0; foreach ($resSql as $ligne) { $prixTotal += $ligne['tarif']*$ligne['quantite']; } return $prixTotal; //return ($resultats[0]['prixTotal']); } // FIN function getSommeArticlesEnCommandeComprisDansPromotion($ID_commande) /** * private * Fait la somme du prix TTC des articles soumis à la promotion * Ne pas prendre les produits de la marque "Swarovski Optik" soit ID_fabricant` != 37 * LEICA (154), KITE OPTICS (147), ZEISS (156) * @param * @return le prix TTC */ function getSommeArticlesEnCommandeHorsDejaEnPromotion($ID_commande) { $requete = "SELECT boutique_obj_ligneCommande.tarif, boutique_obj_ligneCommande.quantite FROM boutique_obj_ligneCommande LEFT JOIN boutique_obj_article ON (boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID) LEFT JOIN boutique_rel_famille_article ON (boutique_obj_ligneCommande.ID_article = boutique_rel_famille_article.ID_article) LEFT JOIN boutique_obj_famille ON (boutique_rel_famille_article.ID_famille = boutique_obj_famille.ID) WHERE boutique_obj_ligneCommande.ID_commande='" . $ID_commande . "' AND boutique_obj_famille.ID_gamme NOT IN (37,38,52) AND boutique_obj_article.`prixPromotion` = 0 AND boutique_obj_article.`occasion` = 0 AND boutique_obj_article.`surDemande` = 0 AND boutique_obj_article.`stock` != 2 AND boutique_obj_article.`ID_fabricant` NOT IN (37, 154, 147, 156) GROUP BY boutique_obj_ligneCommande.ID"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); $prixTotal = 0; foreach ($resSql as $ligne) { $prixTotal += $ligne['tarif']*$ligne['quantite']; } return $prixTotal; //return ($resultats[0]['prixTotal']); } // FIN function getSommeArticlesEnCommandeHorsDejaEnPromotion($ID_commande) /**************************************************/ /** FIN CODE PROMO * /**************************************************/ /**************************************************/ /** VARIANTES ARTICLES * /**************************************************/ /** * private * Générer la liste des variantes classées par groupe d'un article * @param * @return */ function genererTexteVariantes($ID_ligneCommande, $ID_article, $langue = "fr") { $langue = strtoupper($langue); $requete = "SELECT boutique_obj_variante.ID, boutique_obj_variante.titre" . $langue . " AS titreVariante, boutique_obj_variante_groupe.titre" . $langue . " AS titreVarianteGroupe, boutique_obj_variante_groupe.legende" . $langue . " AS legendeVarianteGroupe, IF(boutique_rel_article_variante.stock=1, '" . self::$tabTexteStock['enStock'][$langue] . "', IF(boutique_rel_article_variante.stock=-1, '" . self::$tabTexteStock['surCommande'][$langue] . "', '" . self::$tabTexteStock['enReappro'][$langue] . "')) AS texteStock FROM boutique_rel_ligneCommande_variante LEFT JOIN boutique_obj_variante ON (boutique_rel_ligneCommande_variante.ID_variante = boutique_obj_variante.ID) LEFT JOIN boutique_obj_variante_groupe ON (boutique_obj_variante.ID_varianteGroupe = boutique_obj_variante_groupe.ID), boutique_rel_article_variante WHERE boutique_rel_ligneCommande_variante.ID_ligneCommande = '" . $ID_ligneCommande . "' AND boutique_rel_article_variante.ID_article = '" . $ID_article . "' AND boutique_rel_ligneCommande_variante.ID_variante = boutique_rel_article_variante.ID_variante ORDER BY boutique_obj_variante.ID_varianteGroupe ASC, boutique_obj_variante.ID ASC"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); $texteVariantes = ""; for ($i = 0; $i < sizeof($resSql); $i++): $texteVariantes .= "

" . $resSql[$i]['titreVarianteGroupe'] . " " . $resSql[$i]['legendeVarianteGroupe'] . " : " . $resSql[$i]['titreVariante'] . "

" . self::$tabTexteStock['delais'][$langue] . " : " . $resSql[$i]['texteStock'] . "

"; endfor; return $texteVariantes; } //FIN function genererTexteVariantes($ID_ligneCommande, $langue = "fr") function estPayeeOuValidee() { if (($this->statut == 'payee cb') || ($this->statut == 'payee cb paypal') || ($this->statut == 'payee cb 3 fois') || ($this->statut == 'payee cb 3 fois alma') || ($this->statut == 'payee en salon') || ($this->statut == 'payee') || ($this->statut == 'validee cheque') || ($this->statut == 'validee virement') ): return true; endif; return false; } // FIN function estPayeeOuValidee() /**************************************************/ /** PROTECTION DES COMMANDES * /**************************************************/ function crypter($nomClient) { return crypt($nomClient); } // FIN function crypter($nomClient) /** * private * Pour la présentation d'un chiffre float * @param * @return le chiffre bien affiché */ function convertirFloatPourMysql($chiffre) { return number_format($chiffre, '2', '.', ''); } // FIN function afficherFloat($chiffre) /** * private * Pour la présentation d'un chiffre float * @param * @return le chiffre bien affiché */ static function afficherEntier($chiffre) { return number_format($chiffre, 0, '', ' '); } // FIN function afficherEntier($chiffre) } ?> __construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_marque WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_marque SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); $this->reecrireUrl($attributs['url']); $this->reecrireUrl($attributs['urlEN'],'','EN'); $this->reecrireUrl($attributs['urlES'],'','ES'); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_marque SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); $this->reecrireUrl($attributs['url'],$this->ID); $this->reecrireUrl($attributs['urlEN'],$this->ID,'EN'); $this->reecrireUrl($attributs['urlES'],$this->ID,'ES'); } $this->lierVisuelsGamme($valeurs); // Gestion de l'ordre // L'ordre a changé if ($this->ordre!=$valeurs['ordreAncien']) { $this->traiterOrdreEnregistrer($valeurs); } } // FIN function enregistrer() /** * private * Remet les familles dans l'ordre * @param * @return */ function traiterOrdreEnregistrer($valeurs) { // Changements d'ordre if($valeurs['ordreAncien']) { $requete="UPDATE boutique_obj_marque SET ordre=ordre-1 WHERE ordre>'".$valeurs['ordreAncien']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } $requete="UPDATE boutique_obj_marque SET ordre=ordre+1 WHERE ordre >= '".$valeurs['ordre']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } /** * private * Remet les gammes dans l'ordre a cause de celui que l'on est en train de supprimer * @param * @return */ function traiterOrdreSupprimer() { $requete="UPDATE boutique_obj_marque SET ordre=ordre-1 WHERE ordre >'".$this->ordre."'"; T_LAETIS_site::requeter($requete); } /** * Liste les objets * @return array Tableau de Tbq_marque * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_marque WHERE visible = '1' ORDER BY ordre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_marque($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_marque * @author Christophe Raffy */ function listerAdmin() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_marque ORDER BY ordre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_marque($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $this->traiterOrdreSupprimer(); $requete = "DELETE FROM boutique_obj_marque WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * Réaffecte l'url de la famille pour le rewriting, selon la chaine $chaine * @param String $chaine (facultatif), nouvelle url * @param Int $ID (facultatif), identifiant de la famille * @author Pierre Carayol */ function reecrireUrl($chaine='',$ID='',$lang='') { $rewrite = new Tbq_reecritureUrl(); if($chaine=='')//IF chaine non renseignée, réecriture par défaut { $chaine = $this->{"titre$lang"}; $ID = $this->ID; }//FIN IF chaine non renseignée, réecriture par défaut $this->url = $rewrite->reecrireChaine($chaine,$ID); $requete = "UPDATE boutique_obj_marque SET url$lang = '".$this->{"url$lang"}."' WHERE ID = '".$this->ID."'"; T_LAETIS_site::requeter($requete); } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par d�faut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_gamme WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donn� un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent �tre remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array('tabReferencesImage', 'repPhotos'); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enl�ve l'espace et la virgule du d�but $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe d�j� en BD $requete = "UPDATE boutique_obj_gamme SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); $this->reecrireUrl($attributs['url']); $this->reecrireUrl($attributs['urlEN'],'','EN'); $this->reecrireUrl($attributs['urlES'],'','ES'); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_gamme SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); $this->reecrireUrl($attributs['titre'],$this->ID); $this->reecrireUrl($attributs['titreEN'],$this->ID,'EN'); $this->reecrireUrl($attributs['titreES'],$this->ID,'ES'); } $this->lierVisuelsGamme($valeurs); // Gestion de l'ordre // L'ordre a chang� if ($this->ordre!=$valeurs['ordreAncien']) { $this->traiterOrdreEnregistrer($valeurs); } } // FIN function enregistrer() /** * private * Remet les familles dans l'ordre * @param * @return */ function traiterOrdreEnregistrer($valeurs) { // Changements d'ordre if($valeurs['ordreAncien']) { $requete="UPDATE boutique_obj_gamme SET ordre=ordre-1 WHERE ordre>'".$valeurs['ordreAncien']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } $requete="UPDATE boutique_obj_gamme SET ordre=ordre+1 WHERE ordre >= '".$valeurs['ordre']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } /** * private * Remet les gammes dans l'ordre a cause de celui que l'on est en train de supprimer * @param * @return */ function traiterOrdreSupprimer() { $requete="UPDATE boutique_obj_gamme SET ordre=ordre-1 WHERE ordre >'".$this->ordre."'"; T_LAETIS_site::requeter($requete); } /** * Liste les objets * @return array Tableau de Tbq_gamme * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_gamme WHERE visible = '1' ORDER BY ordre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_gamme($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_gamme * @author Christophe Raffy */ function listerAdmin() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_gamme ORDER BY ordre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_gamme($ligne['ID']); } return ($resultats); } /** * private * Liste des gammes selon la marque dont l'ID est pass� en argument * @param ID_marque ID de la marque * @return La liste des gammes */ function listerParMarque($ID_marque) { $requete="SELECT * FROM boutique_obj_gamme WHERE ID_marque = '".$ID_marque."' AND visible = 1 ORDER BY ordre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_gamme($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $this->supprimerVisuelsAssocies(); $this->traiterOrdreSupprimer(); $requete = "DELETE FROM boutique_obj_gamme WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * private * Donn�es sur le visuel de la gamme * @param * @return */ function lierVisuelsGamme($valeurs) { // Traitement du nom du fichier visuel $nomVisuelBase='../../..'.$this->repPhotos.$this->ID.'_'; // Traitement des visuels for ($i=1; $itabReferencesImage); $i++) { $suppr='supprimerVisuel'.$i; if ($valeurs[$suppr]=='checked') { if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } } // FIN if ($valeurs[$suppr]=='checked') $image='visuel'.$i; // Traitement du visuel if (is_uploaded_file($_FILES['gamme']["tmp_name"][$image])) { // Enregistrement du fichier visuel move_uploaded_file($_FILES['gamme']["tmp_name"][$image], $nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } } // FIN for ($i=1; $i<=2; $i++) } // FIN function lierVisuelsGamme($valeurs) /** * private * Supprimer les visuels * @param * @return */ function supprimerVisuelsAssocies() { $nomVisuelBase = '../../..'.$this->repPhotos.$this->ID.'_'; for ($i=1; $itabReferencesImage); $i++) { if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } } // FIN for ($i=1; $itabReferencesImage); $i++) } // FIN function supprimerVisuelsAssocies() function reecrireUrl($chaine='',$ID='',$lang='') { $rewrite = new Tbq_reecritureUrl(); if(!$chaine)//IF chaine non renseign�e, r�ecriture par d�faut { $chaine = $this->{"titre$lang"}; $ID = $this->ID; }//FIN IF chaine non renseign�e, r�ecriture par d�faut $this->{"url$lang"} = $rewrite->reecrireChaine($chaine,$ID); $requete = "UPDATE boutique_obj_gamme SET url$lang = '".$this->{"url$lang"}."' WHERE ID = '".$this->ID."'"; //echo $requete.'
'; T_LAETIS_site::requeter($requete); } } ?>__construct($ID); }*/ /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_famille WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array('tabReferencesImage', 'repPhotos'); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_famille SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); $this->reecrireUrl($attributs['url']); $this->reecrireUrl($attributs['urlEN'],'','EN'); $this->reecrireUrl($attributs['urlES'],'','ES'); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_famille SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); $this->reecrireUrl($attributs['titre'],$this->ID); $this->reecrireUrl($attributs['titreEN'],$this->ID,'EN'); $this->reecrireUrl($attributs['titreES'],$this->ID,'ES'); } $this->lierVisuelsFamille($valeurs); // Gestion de l'ordre // La gamme n'a pas changé, mais l'ordre a changé if ( ($valeurs['gammeAncienne']==$this->ID_gamme) && ($this->ordre!=$valeurs['ordreAncien']) ) { $this->traiterOrdreEnregistrer($valeurs); } else { $this->traiterOrdreGamme($valeurs); } } // FIN function enregistrer() /** * private * Remet les familles dans l'ordre * @param * @return */ function traiterOrdreEnregistrer($valeurs) { // Changements d'ordre if($valeurs['ordreAncien']) { $requete="UPDATE boutique_obj_famille SET ordre=ordre-1 WHERE ID_gamme='".$this->ID_gamme."' AND ordre>'".$valeurs['ordreAncien']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } $requete="UPDATE boutique_obj_famille SET ordre=ordre+1 WHERE ID_gamme='".$this->ID_gamme."' AND ordre >= '".$valeurs['ordre']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } /** * private * Remet les articles dans l'ordre a cause de celui que l'on est en train de supprimer * @param * @return */ function traiterOrdreGamme($valeurs) { // Changement d'odre => remonte d'un cran pour la gamme qui vient de perdre un element $requete="UPDATE boutique_obj_famille SET ordre=ordre-1 WHERE ID_gamme='".$valeurs['gammeAncienne']."' AND ordre>'".$valeurs['ordreAncien']."'"; T_LAETIS_site::requeter($requete); $requete="UPDATE boutique_obj_famille SET ordre=ordre+1 WHERE ID_gamme='".$this->ID_gamme."' AND ordre >= '".$valeurs['ordre']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } /** * Liste les objets * @return array Tableau de Tbq_famille * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_famille ORDER BY ID_gamme ASC, ordre ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_famille($ligne['ID']); } return ($resultats); } /** * private * Liste des familles selon la gamme dont l'ID est passé en argument * @param ID_gamme ID de la gamme * @return Les infos sur la famille */ function listerParGamme($ID_gamme) { $requete="SELECT * FROM boutique_obj_famille WHERE ID_gamme='".$ID_gamme."' AND visible = '1' ORDER BY ordre"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_famille($ligne['ID']); } return ($resultats); } /** * private * Liste des familles selon la gamme dont l'ID est passé en argument * @param ID_gamme ID de la gamme * @return Les infos sur la famille */ function listerParGammeAdmin($ID_gamme) { $requete="SELECT * FROM boutique_obj_famille WHERE ID_gamme='".$ID_gamme."' ORDER BY ordre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_famille($ligne['ID']); } return ($resultats); } /** * Retourne la première famille de la gamme $ID_gamme * @param ID_gamme ID de la gamme * @return la première famille **/ function getPremiereFamilleGamme($ID_gamme) { $requete="SELECT * FROM boutique_obj_famille WHERE ID_gamme='".$ID_gamme."' AND visible = '1' ORDER BY ordre LIMIT 1"; $resSql = T_LAETIS_site::requeter($requete); $resultats = new Tbq_famille($resSql[0]['ID']); return ($resultats); } /** * private * Calcule le nombre d'articles présents dans cette famille * @param ID_famille l'ID de la famille * @return Le nombre d'articles présents dans cette famille */ function getNbArticles($ID_famille) { $requete="SELECT COUNT(ID_article) AS nbArticles FROM boutique_rel_famille_article WHERE ID_famille='".$ID_famille."' GROUP BY ID_famille"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats[0]['nbArticles']); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $this->supprimerVisuelsAssocies(); $requete = "DELETE FROM boutique_obj_famille WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $requete = "DELETE FROM boutique_rel_famille_article WHERE ID_famille = '".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * private * Données sur le visuel de la famille * @param * @return */ function lierVisuelsFamille($valeurs) { // Traitement du nom du fichier visuel $nomVisuelBase='../../..'.$this->repPhotos.$this->ID.'_'; // Traitement des visuels for ($i=1; $itabReferencesImage); $i++) { $suppr='supprimerVisuel'.$i; if ($valeurs[$suppr]=='checked') { if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } } // FIN if ($valeurs[$suppr]=='checked') $image='visuel'.$i; // Traitement du visuel if (is_uploaded_file($_FILES['famille']["tmp_name"][$image])) { // Enregistrement du fichier visuel move_uploaded_file($_FILES['famille']["tmp_name"][$image], $nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } } // FIN for ($i=1; $i<=2; $i++) } // FIN function lierVisuelsFamille($valvaleurs) /** * private * Supprimer les visuels * @param * @return */ function supprimerVisuelsAssocies() { $nomVisuelBase = '../../..'.$this->repPhotos.$this->ID.'_'; for ($i=1; $itabReferencesImage); $i++) { if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } if(file_exists($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg')) { unlink($nomVisuelBase.$this->tabReferencesImage[$i].'.jpg'); } } // FIN for ($i=1; $itabReferencesImage); $i++) } // FIN function supprimerVisuelsAssocies() /** * Réaffecte l'url de la famille pour le rewriting, selon la chaine $chaine * @param String $chaine (facultatif), nouvelle url * @param Int $ID (facultatif), identifiant de la famille * @author Pierre Carayol */ function reecrireUrl($chaine='',$ID='',$lang='') { $rewrite = new Tbq_reecritureUrl(); if($chaine=='')//IF chaine non renseignée, réecriture par défaut { $chaine = $this->{"titre$lang"}; $ID = $this->ID; }//FIN IF chaine non renseignée, réecriture par défaut $this->{"url$lang"} = $rewrite->reecrireChaine($chaine,$ID); $requete = "UPDATE boutique_obj_famille SET url$lang = '".$this->{"url$lang"}."' WHERE ID = '".$this->ID."'"; T_LAETIS_site::requeter($requete); } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par d�faut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_boitier WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donn� un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent �tre remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enl�ve l'espace et la virgule du d�but $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe d�j� en BD $requete = "UPDATE boutique_obj_boitier SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_boitier SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_boitier * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_boitier WHERE visible = '1' ORDER BY ordre, titre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_boitier($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_boitier * @author Christophe Raffy */ function listerAdmin() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_boitier ORDER BY ordre, titre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_boitier($ligne['ID']); } return ($resultats); } /** * private * Liste les boitiers appartient l'article en cours * @param $ID_article * @return La liste des variantes */ function listerIDBoitierParArticle($ID_article) { $requete = "SELECT boutique_rel_article_boitier.ID_boitier FROM boutique_rel_article_boitier WHERE boutique_rel_article_boitier.ID_article = '".$ID_article."' ORDER BY boutique_rel_article_boitier.ID_boitier ASC"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne['ID_boitier']; } return ($resultats); } // FIN function listerIDBoitierParArticle($ID_article) /** * private * Liste les boitiers appartient l'article en cours * @param $ID_article * @return La liste des variantes */ function listerBoitierParArticle($ID_article) { $requete = "SELECT boutique_rel_article_boitier.ID_boitier, boutique_obj_boitier.titre, boutique_obj_boitier.titreEN, boutique_obj_boitier.titreES FROM boutique_rel_article_boitier LEFT JOIN boutique_obj_boitier ON (boutique_rel_article_boitier.ID_boitier = boutique_obj_boitier.ID) WHERE boutique_rel_article_boitier.ID_article = '".$ID_article."' ORDER BY boutique_rel_article_boitier.ID_boitier ASC"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne; } return ($resultats); } // FIN function listerBoitierParArticle($ID_article) /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_boitier WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } } ?>modifierAttributs($_POST['livraison']); * $livraison->enregistrer(); */ /** * Constructeur * Constructeur PHP4 * * @param entier $ID Par d�faut 0 * @author Christophe Raffy */ function Tbq_livraison ($ID=0) { $this->__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par d�faut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_tarifLivraison WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); $requete = "SELECT boutique_typ_port.port, boutique_typ_port.detail, boutique_typ_port.delai FROM boutique_typ_port, boutique_obj_tarifLivraison WHERE boutique_obj_tarifLivraison.ID = '".$this->ID."' AND boutique_obj_tarifLivraison.ID_port=boutique_typ_port.ID"; $resultats = T_LAETIS_site::requeter($requete); $this->port = $resultats[0]['port']; } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donn� un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent �tre remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array("port"); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enl�ve l'espace et la virgule du d�but $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe d�j� en BD $requete = "UPDATE boutique_obj_tarifLivraison SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_tarifLivraison SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } // FIN function enregistrer() function getInfosLivraison($ID_tarifLivraison) { $requete = "SELECT boutique_obj_tarifLivraison.*, boutique_obj_tarifLivraison.ID AS ID_tarifLivraison FROM boutique_obj_tarifLivraison WHERE ID = '".$ID_tarifLivraison."'"; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]; } // FIN function getInfosLivraison($ID_tarifLivraison) /** * Liste les objets * @return array Tableau de Tbq_livraison * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_tarifLivraison"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_livraison($ligne['ID']); } return ($resultats); } /** * private * Liste des ports de la famille * @param * @return La liste des ports de la famille */ function listerTarifLivraison($ID_port) { $requete="SELECT * FROM boutique_obj_tarifLivraison WHERE ID_port='".$ID_port."' ORDER BY limiteTotal ASC, tarif ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_livraison($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_tarifLivraison WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * private * Liste des pays pour un port * @param * @return La liste des familles de port */ function listerPaysPort($ID_port) { $requete="SELECT boutique_rel_pays_port.* FROM boutique_rel_pays_port, boutique_typ_pays WHERE ID_port = '".$ID_port."' AND boutique_typ_pays.ID = ID_pays ORDER BY paysFR ASC"; $resSql=T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[]=$ligne; } return ($resultats); } /** * private * Lier les pays et les familles de port * @param * @return */ function lierPaysPort($valeurs) { // Initialisation $requete="DELETE FROM boutique_rel_pays_port WHERE ID_port = '".$valeurs['ID_port']."'"; T_LAETIS_site::requeter($requete); // Enregistrement while(list ($ID_pays) = each ($valeurs['pays'])) { $requete="INSERT INTO boutique_rel_pays_port (ID_pays,ID_port) VALUES ('".$ID_pays."','".$valeurs['ID_port']."')"; T_LAETIS_site::requeter($requete); } } // FIN function lierPaysPort($valeurs) /** * private * Liste des pays * @param * @return La liste des pays */ function listerPays() { $requete="SELECT * FROM boutique_typ_pays ORDER BY ordre ASC, paysFR ASC"; $resultat=T_LAETIS_site::requeter($requete); return $resultat; } /** * private * Donn�es sur le client * @param * @return le nom du pays */ function getPays($ID_pays) { $requete="SELECT * FROM boutique_typ_pays WHERE ID='".$ID_pays."'"; $resultat=T_LAETIS_site::requeter($requete); return $resultat[0]; } /** * private * Donn�es sur le client * @param * @return l'ID du pays */ function getPaysID($pays) { $requete="SELECT ID FROM boutique_typ_pays WHERE paysFR='".$pays."' OR paysES='".$pays."' OR paysEN='".$pays."'" ; $resultat=T_LAETIS_site::requeter($requete); $res = $resultat[0]['ID']; return $res ? $res : null; } /** * private * Les informations sur la livraison * @param * @return Les informations sur la livraison */ function getLivraison() { $requete=" SELECT boutique_typ_port.* FROM boutique_obj_tarifLivraison, boutique_typ_port WHERE boutique_obj_tarifLivraison.ID = '".$this->ID."' AND boutique_obj_tarifLivraison.ID_port=boutique_typ_port.ID"; $resultat=T_LAETIS_site::requeter($requete); return $resultat; } // FIN function getLivraison() /** * private * Liste des ports possibles pour le pays demande et le total de la commande * @param * @return Les informations sur la livraison */ function listerLivraisonsDisponibles($ID_pays, $totalCommande) { $requete="SELECT boutique_obj_tarifLivraison.ID AS ID_tarifLivraison, boutique_obj_tarifLivraison.ID_port, boutique_obj_tarifLivraison.transport FROM boutique_obj_tarifLivraison, boutique_rel_pays_port, boutique_typ_port WHERE boutique_rel_pays_port.ID_pays = '".$ID_pays."' AND boutique_obj_tarifLivraison.limiteTotal >= '".$totalCommande."' AND boutique_rel_pays_port.ID_port = boutique_obj_tarifLivraison.ID_port AND boutique_rel_pays_port.ID_port = boutique_typ_port.ID AND boutique_typ_port.visible = 1 ORDER BY boutique_obj_tarifLivraison.limiteTotal DESC"; $resSql=T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[$ligne['ID_port']]=$ligne['ID_tarifLivraison']; } while(list($ID_port)=each($resultats)) { $tabIDport[] = $ID_port; $tabIDtarifLivraison[] = $resultats[$ID_port]; } $requete=" SELECT boutique_obj_tarifLivraison.*, boutique_obj_tarifLivraison.ID AS ID_tarifLivraison, boutique_typ_port.*, IF(boutique_typ_port.facturation = 'HT', tarif, tarif/1.2) AS fraisPortHT, boutique_obj_tarifLivraison.tarif AS fraisPortTTC FROM boutique_obj_tarifLivraison, boutique_typ_port WHERE boutique_obj_tarifLivraison.ID IN (".implode(',', $tabIDtarifLivraison).") AND boutique_obj_tarifLivraison.ID_port IN (".implode(',', $tabIDport).") AND boutique_obj_tarifLivraison.ID_port = boutique_typ_port.ID ORDER BY boutique_obj_tarifLivraison.tarif ASC"; //echo $requete; $resultat=T_LAETIS_site::requeter($requete); return $resultat; } // FIN function listerLivraisonsDisponibles($ID_pays, $totalCommande) /** * private * Cherche le montant des frais de livraison * @param * @return le montant des frais de livraison */ function getFraisDePort($ID_pays, $totalCommande) { $requete="SELECT boutique_obj_tarifLivraison.*, boutique_obj_tarifLivraison.ID AS ID_tarifLivraison, boutique_typ_port.* FROM boutique_obj_tarifLivraison, boutique_rel_pays_port, boutique_typ_port WHERE boutique_rel_pays_port.ID_pays = '".$ID_pays."' AND boutique_obj_tarifLivraison.limiteTotal >= '".$totalCommande."' AND boutique_rel_pays_port.ID_port = boutique_obj_tarifLivraison.ID_port AND boutique_rel_pays_port.ID_port = boutique_typ_port.ID ORDER BY boutique_obj_tarifLivraison.limiteTotal ASC , boutique_obj_tarifLivraison.tarif ASC"; $resultat=T_LAETIS_site::requeter($requete); return $resultat[0]; } //FIN function getFraisDePort($ID_pays, $totalCommande) } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_typ_port WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_typ_port SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_typ_port SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } // Gestion de l'ordre $this->traiterOrdreEnregistrer($valeurs); } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_fraisDePort * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_typ_port WHERE visible = 1 ORDER BY ordre ASC, port ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_fraisDePort($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_fraisDePort * @author Christophe Raffy */ function listerAdmin() { $resultats = array(); $requete = "SELECT * FROM boutique_typ_port ORDER BY ordre ASC, port ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_fraisDePort($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $this->traiterOrdreSupprimer(); $requete="DELETE FROM boutique_obj_tarifLivraison WHERE ID_port='".$this->ID."';"; T_LAETIS_site::requeter($requete); $requete="DELETE FROM boutique_rel_pays_port WHERE ID_port='".$this->ID."';"; T_LAETIS_site::requeter($requete); $requete = "DELETE FROM boutique_typ_port WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * private * Remet les familles dans l'ordre * @param * @return */ function traiterOrdreEnregistrer($valeurs) { if ( ($valeurs['ordreAncien']) && ($valeurs['ordreAncien'] != $valeurs['ordre']) ) { // Changements d'ordre $requete="UPDATE boutique_typ_port SET ordre=ordre-1 WHERE ordre > '".$valeurs['ordreAncien']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); $requete="UPDATE boutique_typ_port SET ordre=ordre+1 WHERE ordre >= '".$valeurs['ordre']."' AND ID!='".$this->ID."'"; T_LAETIS_site::requeter($requete); } // FIN if ($valeurs['ordreAncien'] != $valeurs['ordre']) } /** * private * Remet les gammes dans l'ordre a cause de celui que l'on est en train de supprimer * @param * @return */ function traiterOrdreSupprimer() { $requete="UPDATE boutique_typ_port SET ordre=ordre-1 WHERE ordre >'".$this->ordre."'"; T_LAETIS_site::requeter($requete); } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_fabricant WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_fabricant SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); $this->reecrireUrl($attributs['url']); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_fabricant SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); $this->reecrireUrl($attributs['titre'],$this->ID); } } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_fabricant * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_fabricant ORDER BY titre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_fabricant($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_fabricant * @author Christophe Raffy */ function listerParID() { $resultats = array(); $requete = "SELECT ID, titre FROM boutique_obj_fabricant ORDER BY titre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = array('ID'=>$ligne['ID'], 'titre'=>$ligne['titre']); } return ($resultats); } /** * Liste les objets selon la marque * @return array Tableau de Tbq_fabricant * @author Christophe Raffy */ function listerParMarque($ID_marque) { $resultats = array(); $requete = "SELECT * FROM boutique_obj_fabricant WHERE ID_marque = '".$ID_marque."' ORDER BY titre"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_fabricant($ligne['ID']); } return ($resultats); } /** * private * Calcule le nombre d'articles présents dans cette famille * @param ID_famille l'ID de la famille * @return Le nombre d'articles présents dans cette famille */ function getNbArticles($ID_fabricant) { $requete="SELECT COUNT(ID) AS nbArticles FROM boutique_obj_article WHERE ID_fabricant='".$ID_fabricant."' GROUP BY ID_fabricant"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats[0]['nbArticles']); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_fabricant WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * Réaffecte l'url de la famille pour le rewriting, selon la chaine $chaine * @param String $chaine (facultatif), nouvelle url * @param Int $ID (facultatif), identifiant de la famille * @author Pierre Carayol */ function reecrireUrl($chaine='',$ID='',$lang='') { $rewrite = new Tbq_reecritureUrl(); if($chaine=='')//IF chaine non renseignée, réecriture par défaut { $chaine = $this->{"titre$lang"}; $ID = $this->ID; }//FIN IF chaine non renseignée, réecriture par défaut $this->{"url$lang"} = $rewrite->reecrireChaine($chaine,$ID); $requete = "UPDATE boutique_obj_fabricant SET url$lang = '".$this->{"url$lang"}."' WHERE ID = '".$this->ID."'"; T_LAETIS_site::requeter($requete); } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_avisConsommateur WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Enregistre l'objet en base de donnée * Si l'ID est renseigné ==> modification * Sinon ==> insertion * @access public */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); //si l'ID est renseigné, on modifie, sinon, on insere $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array( ); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_avisConsommateur SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_avisConsommateur SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } return $this->ID; } // FIN function enregistrer() /** * Supprime l'objet en base de donnée * @access public */ function supprimer() { $requete = "DELETE FROM boutique_obj_avisConsommateur WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * Liste les rubriques * @access public */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_avisConsommateur ORDER BY dateInscription DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_avisConsommateur($ligne['ID']); } return ($resultats); } /** * Liste les rubriques * @access public */ function listerSelonArticle($ID_article) { $resultats = array(); $requete = "SELECT * FROM boutique_obj_avisConsommateur WHERE ID_article = '".$ID_article."' AND visible = '1' ORDER BY dateInscription DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_avisConsommateur($ligne['ID']); } return ($resultats); } /** * Liste les rubriques * @access public */ function listerSelonArticleTous($ID_article) { $resultats = array(); $requete = "SELECT * FROM boutique_obj_avisConsommateur WHERE ID_article = '".$ID_article."' ORDER BY dateInscription DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_avisConsommateur($ligne['ID']); } return ($resultats); } /** * Liste les articles qui ont au moins un avis * @access public */ function listerArticlesAvecAvis() { $resultats = array(); $requete = "SELECT ID_article, titre, message FROM boutique_obj_avisConsommateur GROUP BY ID_article"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne; } return ($resultats); } /** * Liste les rubriques * @access public */ function noteMoyenne($ID_article) { $resultats = array(); $requete = "SELECT AVG(note) AS moyenne FROM boutique_obj_avisConsommateur WHERE ID_article = '".$ID_article."' AND visible = '1' ORDER BY dateInscription DESC"; $resultats = T_LAETIS_site::requeter($requete); return (round($resultats[0]['moyenne'])); } /** * Liste un article en fonction de son ID_articleGroupe * @access public */ function listerSelonArticleGroupe($ID_articleGroupe) { $resultats = array(); $requete = "SELECT * FROM boutique_obj_article WHERE boutique_obj_article.ID_articleGroupe = '".$ID_articleGroupe."' "; $resSql = T_LAETIS_site::requeter($requete); return ($resSql); } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_chequeCadeau WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array('codeCode1', 'codeCode2', 'codeNomFichierImage'); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_chequeCadeau SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_chequeCadeau SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } $this->lierImagesArticle(); } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_chequeCadeau * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_chequeCadeau ORDER BY ID ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_chequeCadeau($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_chequeCadeau WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * Liste les rubriques * @access public */ function listerGamme() { $requete = "SELECT * FROM boutique_obj_article WHERE reference LIKE 'CHOUETTE%' ORDER BY prixTTC ASC"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } // FIN function listerGamme() function ajouterEtEnvoyerChequeCadeau($valeurs) { $requete = "SELECT ID FROM boutique_obj_chequeCadeau WHERE ID_client='".$valeurs['ID_client']."' AND ID_commande='".$valeurs['ID_commande']."' AND ID_article='".$valeurs['ID_article']."' AND ID_ligneCommande='".$valeurs['ID_ligneCommande']."'"; $resultats = T_LAETIS_site::requeter($requete); // Ce chèque cadeau a déjà été ajouté pour ce client et cette commande if ($resultats[0]['ID']) { return false; } else { //Récupère la quantité de chèques cadeaux $requete = "SELECT quantite FROM boutique_obj_ligneCommande WHERE ID_article = '".$valeurs['ID_article']."' AND ID = '".$valeurs['ID_ligneCommande']."'"; $resQuantite = T_LAETIS_site::requeter($requete); for($i=0; $i<$resQuantite[0]['quantite']; $i++)//FOREACH pour chaque cheque cadeau commandé { //si l'ID est renseigné, on modifie, sinon, on insere $requete = "INSERT INTO boutique_obj_chequeCadeau (ID_client, ID_commande, ID_ligneCommande, ID_article, code1, code2) VALUES ('".$valeurs['ID_client']."', '".$valeurs['ID_commande']."', '".$valeurs['ID_ligneCommande']."', '".$valeurs['ID_article']."', AES_ENCRYPT('".rand(10000,99999)."', '".$this->codeCode1."'), AES_ENCRYPT('".rand(10000,99999)."', '".$this->codeCode2."'))"; T_LAETIS_site::requeter($requete); $valeurs['ID'] = T_LAETIS_site::last_insert_id(); $this->envoyerChequeCadeau($valeurs); }//FIN FOREACH } // FIN else } // FIN function ajouterEtEnvoyerChequeCadeau($valeurs) function envoyerChequeCadeau($valeurs) { $requete = "SELECT boutique_obj_chequeCadeau.ID, AES_DECRYPT(code1,'".$this->codeCode1."') AS code1, AES_DECRYPT(code2,'".$this->codeCode2."') AS code2, ROUND(boutique_obj_article.prixTTC) AS prix FROM boutique_obj_chequeCadeau, boutique_obj_article WHERE boutique_obj_chequeCadeau.ID_client='".$valeurs['ID_client']."' AND boutique_obj_chequeCadeau.ID_commande='".$valeurs['ID_commande']."' AND boutique_obj_chequeCadeau.ID_article='".$valeurs['ID_article']."' AND boutique_obj_chequeCadeau.ID_ligneCommande='".$valeurs['ID_ligneCommande']."' AND boutique_obj_article.ID = boutique_obj_chequeCadeau.ID_article AND boutique_obj_chequeCadeau.ID = '".$valeurs['ID']."'"; $resultats = T_LAETIS_site::requeter($requete); $src=imagecreatefromjpeg('../../uploads/chequesCadeaux/cheque-vierge-2.jpg'); $img=imagecreatetruecolor(500,369); imagecopyresized($img,$src,0,0,0,0,500,370,500,370); $textcolor = imagecolorallocate($img, 255, 142, 1); imagettftext($img, 16, 0, 100, 302, $textcolor, $_SERVER['DOCUMENT_ROOT'].'/boutique/admin/scripts/arial.ttf', $resultats[0]['code1'].'-'.$resultats[0]['code2']); imagettftext($img, 30, 0, 260, 230, $textcolor, $_SERVER['DOCUMENT_ROOT'].'/boutique/admin/scripts/arial.ttf', str_replace('.',',',$resultats[0]['prix']).' €'); /*$textcolorB = imagecolorallocate($img, 236, 229, 149); imagestring($img, 3, 180, 60, strftime("%d-%m-%Y", mktime(0,0,0,date('m'),date('d'),date('Y')+1)), $textcolorB);*/ $nomFichier=rand(10000,99999).'-'.rand(10000,99999); imagejpeg($img,'../../uploads/chequesCadeaux/'.$nomFichier.'.jpg',100); /*$f = fopen('text.txt','a+'); fwrite($f,'trace '.$resultats[0]['ID'].' code1 : '.$resultats[0]['code1'].' code2 : '.$resultats[0]['code2'].' nomFichier : '.$nomFichier); fclose($f);*/ $client=new Tbq_client($valeurs['ID_client']); $motDePasse = $client->getMotDePasse(); // Préparation du courrier if ($valeurs['langue']=='EN') { $pageSource = "/boutique/en/emails/envoi-chequesCadeaux/envoi-chequesCadeaux.php"; } else if ($valeurs['langue']=='ES') { $pageSource = "/boutique/es/emails/envoi-chequesCadeaux/envoi-chequesCadeaux.php"; } else { $pageSource = "/boutique/fr/emails/envoi-chequesCadeaux/envoi-chequesCadeaux.php"; } $post="nomFichier=".$nomFichier."&nom=".$client->nomFacturation."&prenom=".$client->prenomFacturation."&login=".$client->emailFacturation."&motDePasse=".$motDePasse; $header = "POST " . $pageSource . " HTTP/1.0\r\n"; $header .= "Host: " . $_SERVER['HTTP_HOST'] . "\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($post) . "\r\n"; $header .= "\r\n"; $header .= $post . "\r\n"; $header .= "\r\n"; $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) )); $hostname = 'ssl://' . $_SERVER['HTTP_HOST'].':443'; $stream = stream_socket_client($hostname, $errno, $errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context); if(!$stream) { echo "$errstr ($errno)
\n"; exit($_SERVER[HTTP_HOST].' erreur socket fsockopen'); } else { $contenu="setFrom("contact@jama.fr"); if ($valeurs['langue']=='EN') { $obj_mail->setSubject("Your gift vouchers JAMA.COM"); } else if ($valeurs['langue']=='ES') { $obj_mail->setSubject("Billete regalos JAMA.COM"); } else { $obj_mail->setSubject("Votre chèque cadeau JAMA.COM"); } $obj_mail->setHtml($contenu,$contenuTexte,'../../uploads/chequesCadeaux/'); $cheminFichier = $_SERVER['DOCUMENT_ROOT']."/boutique/uploads/chequesCadeaux/".$nomFichier.'.jpg'; $attachment = new fileAttachment($cheminFichier, "image/jpg"); $obj_mail->addAttachment($attachment); // Envoi a l'utilisateur $obj_mail->send(array($client->emailFacturation),'smtp'); // Envoi à l'admin $obj_mail->send(array("contact@jama.fr"),'smtp'); $obj_mail->send(array("christophe.raffy@laetis.fr"),'smtp'); $requete = "UPDATE boutique_obj_chequeCadeau SET nomFichierImage = AES_ENCRYPT('".$nomFichier."', '".$this->codeNomFichierImage."') WHERE ID ='".$resultats[0]['ID']."'"; T_LAETIS_site::requeter($requete); } // FIN function envoyerChequeCadeau($valeurs) function ajouterEtEnvoyerChequeCadeauPersonnalise($valeurs) { $requete = "INSERT INTO boutique_obj_chequeCadeau (ID_client, code1, code2, montantPersonnalise, dateCommandePersonnalise) VALUES ('".$valeurs['ID_client']."', AES_ENCRYPT('".rand(10000,99999)."', '".$this->codeCode1."'), AES_ENCRYPT('".rand(10000,99999)."', '".$this->codeCode2."'), '".$valeurs['montantPersonnalise']."', '".$valeurs['dateCommandePersonnalise']."')"; T_LAETIS_site::requeter($requete); $valeurs['ID'] = T_LAETIS_site::last_insert_id(); $this->envoyerChequeCadeauPersonnalise($valeurs); } // FIN function ajouterEtEnvoyerChequeCadeauPersonnalise($valeurs) function envoyerChequeCadeauPersonnalise($valeurs) { $requete = "SELECT boutique_obj_chequeCadeau.ID, AES_DECRYPT(code1,'".$this->codeCode1."') AS code1, AES_DECRYPT(code2,'".$this->codeCode2."') AS code2, montantPersonnalise FROM boutique_obj_chequeCadeau WHERE boutique_obj_chequeCadeau.ID = '".$valeurs['ID']."'"; $resultats = T_LAETIS_site::requeter($requete); // Définir la variable d'environnement pour GD putenv('GDFONTPATH=' . realpath('.')); $src=imagecreatefromjpeg('../../uploads/chequesCadeaux/cheque-vierge-2.jpg'); $img=imagecreatetruecolor(500,370); imagecopyresized($img,$src,0,0,0,0,500,370,500,370); $textcolor = imagecolorallocate($img, 255, 142, 1); imagettftext($img, 16, 0, 100, 302, $textcolor, $_SERVER['DOCUMENT_ROOT'].'/boutique/admin/scripts/arial.ttf', $resultats[0]['code1'].'-'.$resultats[0]['code2']); imagettftext($img, 30, 0, 260, 230, $textcolor, $_SERVER['DOCUMENT_ROOT'].'/boutique/admin/scripts/arial.ttf', str_replace('.',',',$resultats[0]['montantPersonnalise']).' €'); $nomFichier=rand(10000,99999).'-'.rand(10000,99999); imagejpeg($img,'../../uploads/chequesCadeaux/'.$nomFichier.'.jpg',100); $client = new Tbq_client($valeurs['ID_client']); // Préparation du courrier if ($valeurs['langue']=='EN') { $pageSource = "/boutique/en/emails/envoi-chequesCadeaux-personnalise/envoi-chequesCadeaux-personnalise.php"; } else if ($valeurs['langue']=='ES') { $pageSource = "/boutique/es/emails/envoi-chequesCadeaux-personnalise/envoi-chequesCadeaux-personnalise.php"; } else { $pageSource = "/boutique/fr/emails/envoi-chequesCadeaux-personnalise/envoi-chequesCadeaux-personnalise.php"; } $post="nomFichier=".$nomFichier."&nom=".$client->nomFacturation."&prenom=".$client->prenomFacturation."&login=".$client->emailFacturation; $header = "POST " . $pageSource . " HTTP/1.0\r\n"; $header.="Host: ".$_SERVER['HTTP_HOST']."\r\n"; $header.= "Content-Type: application/x-www-form-urlencoded\r\n"; $header.= "Content-Length: ".strlen($post)."\r\n"; $header.= "\r\n"; $header.= $post."\r\n"; $header.= "\r\n"; $context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) )); $hostname = 'ssl://' . $_SERVER['HTTP_HOST'].':443'; $stream = stream_socket_client($hostname, $errno, $errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context); if(!$stream) { echo "$errstr ($errno)
\n"; exit($_SERVER[HTTP_HOST].' erreur socket fsockopen'); } else { $contenu="setFrom("contact@jama.fr"); if ($valeurs['langue']=='EN') { $obj_mail->setSubject("Your gift vouchers JAMA.COM"); } else if ($valeurs['langue']=='ES') { $obj_mail->setSubject("Billete regalos JAMA.COM"); } else { $obj_mail->setSubject("Votre chèque cadeau JAMA.COM"); } $obj_mail->setHtml($contenu,$contenuTexte,'../../uploads/chequesCadeaux/'); $cheminFichier = $_SERVER['DOCUMENT_ROOT']."/boutique/uploads/chequesCadeaux/".$nomFichier.'.jpg'; $attachment = new fileAttachment($cheminFichier, "image/jpg"); $obj_mail->addAttachment($attachment); // Envoi a l'utilisateur $obj_mail->send(array($client->emailFacturation),'smtp'); // Envoi à l'admin $obj_mail->send(array("contact@jama.fr"),'smtp'); $obj_mail->send(array("christophe.raffy@laetis.fr"),'smtp'); $requete = "UPDATE boutique_obj_chequeCadeau SET nomFichierImage = AES_ENCRYPT('".$nomFichier."', '".$this->codeNomFichierImage."') WHERE ID ='".$resultats[0]['ID']."'"; T_LAETIS_site::requeter($requete); } // FIN function envoyerChequeCadeauPersonnalise($valeurs) // Retourne true si le code n'a pas été utilisé et est donc valide function getNonUtilise($chequeCadeau) { $tab=explode('-', $chequeCadeau); $requete="SELECT utilise FROM boutique_obj_chequeCadeau WHERE AES_DECRYPT(code1,'".$this->codeCode1."')='".$tab[0]."' AND AES_DECRYPT(code2,'".$this->codeCode2."')='".$tab[1]."'"; $resultats = T_LAETIS_site::requeter($requete); if (! $resultats[0]['utilise']) { return 1; } else { return 0; } } // FIN function getNonUtilise($chequeCadeau) // Retourne true si le code n'a pas été utilisé et est valide function getValide($chequeCadeau) { $tab=explode('-', $chequeCadeau); $requete="SELECT ID FROM boutique_obj_chequeCadeau WHERE AES_DECRYPT(code1,'".$this->codeCode1."')='".$tab[0]."' AND AES_DECRYPT(code2,'".$this->codeCode2."')='".$tab[1]."' AND utilise = 0"; $resultats = T_LAETIS_site::requeter($requete); if ($resultats[0]['ID']) { return true; } else { return false; } } // FIN function getValide($chequeCadeau) function validerChequeCadeau($chequeCadeau) { $tab=explode('-', $chequeCadeau); $requete="UPDATE boutique_obj_chequeCadeau SET ID_commande_utilise='".$_SESSION['ID_commande']."', utilise = '1' WHERE AES_DECRYPT(code1,'".$this->codeCode1."')='".$tab[0]."' AND AES_DECRYPT(code2,'".$this->codeCode2."')='".$tab[1]."' "; T_LAETIS_site::requeter($requete); } //FIN function validerChequeCadeau($chequeCadeau) function getCommandeChequesCadeaux($ID_commande) { $requete="SELECT boutique_obj_ligneCommande.ID as ID_ligneCommande, boutique_obj_ligneCommande.ID_article FROM boutique_obj_ligneCommande, boutique_obj_article WHERE boutique_obj_ligneCommande.ID_commande='".$ID_commande."' AND boutique_obj_article.reference LIKE 'CHOUETTE%' AND boutique_obj_ligneCommande.ID_article=boutique_obj_article.ID "; $resultats = T_LAETIS_site::requeter($requete); return $resultats; } // FIN function getCommandeChequesCadeaux($ID_commande) function getCommandeChequesCadeauxNonEnvoye($ID_commande) { $articles=$this->getCommandeChequesCadeaux($ID_commande); if ($articles) { $requete="SELECT ID FROM boutique_obj_chequeCadeau WHERE ID_ligneCommande = '".$articles[0]['ID_ligneCommande']."'"; $resultats = T_LAETIS_site::requeter($requete); if (! $resultats[0]['ID']) { return true; } } return false; } // FIN function getCommandeChequesCadeauxNonEnvoye($ID_commande) function getMontant() { $requete="SELECT prixTTC FROM boutique_obj_article, boutique_obj_chequeCadeau WHERE boutique_obj_chequeCadeau.ID = '".$this->ID."' AND boutique_obj_chequeCadeau.ID_article=boutique_obj_article.ID "; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['prixTTC']; } // FIN function getMontant() function getDateAchat() { $requete="SELECT dateCommande FROM boutique_obj_commande, boutique_obj_chequeCadeau WHERE boutique_obj_chequeCadeau.ID = '".$this->ID."' AND boutique_obj_chequeCadeau.ID_commande=boutique_obj_commande.ID "; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['dateCommande']; } // FIN function getDateAchat() function getIDClientUtilisateur() { $requete="SELECT boutique_obj_commande.ID_client FROM boutique_obj_commande, boutique_obj_chequeCadeau WHERE boutique_obj_chequeCadeau.ID = '".$this->ID."' AND boutique_obj_chequeCadeau.ID_commande_utilise=boutique_obj_commande.ID "; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['ID_client']; } // FIN function getIDClientUtilisateur() function getNomFichierImage() { $requete="SELECT AES_DECRYPT(nomFichierImage,'".$this->codeNomFichierImage."') AS nomFichierImage FROM boutique_obj_chequeCadeau WHERE boutique_obj_chequeCadeau.ID = '".$this->ID."' "; $resultats = T_LAETIS_site::requeter($requete); return $resultats[0]['nomFichierImage']; } // FIN function getNomFichierImage() /** * retourne l'année de la premiere commande * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function anneePremierChequeCadeau() { $date = 0; $requete = "SELECT YEAR(oc.dateCommande) as annee FROM boutique_obj_chequeCadeau cc, boutique_obj_commande oc WHERE cc.ID_commande = oc.ID ORDER BY oc.dateCommande LIMIT 0, 1"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $date = $ligne['annee']; } return ($date); } /** * Liste les objets * @return array Tableau de Tbq_chequeCadeau * @author Christophe Raffy */ function listerAnnee($annee) { $resultats = array(); $requete = "SELECT cc.ID, AES_DECRYPT(cc.code1,'".$this->codeCode1."') AS code1, AES_DECRYPT(cc.code2,'".$this->codeCode2."') AS code2 FROM boutique_obj_chequeCadeau cc, boutique_obj_commande oc WHERE cc.ID_commande = oc.ID AND YEAR(oc.dateCommande) = '".$annee."' GROUP BY cc.ID_client, cc.ID_commande ORDER BY cc.ID DESC"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_chequeCadeau * @author Christophe Raffy */ function listerCommande($utilise, $ID_commande) { $resultats = array(); $requete = "SELECT cc.ID FROM boutique_obj_chequeCadeau cc WHERE cc.utilise = '".$utilise."' AND cc.ID_commande = '".$ID_commande."' GROUP BY cc.ID_commande_utilise"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_chequeCadeau($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_chequeCadeau * @author Christophe Raffy */ function listerLigneCommande($utilise, $ID_commande) { $resultat = 0; $requete = "SELECT SUM(lc.tarif) as somme FROM boutique_obj_chequeCadeau cc, boutique_obj_ligneCommande lc WHERE cc.utilise = '".$utilise."' AND cc.ID_commande = '".$ID_commande."' AND cc.ID_ligneCommande = lc.ID ORDER BY cc.ID_ligneCommande ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultat = $ligne['somme']; } return ($resultat); } /** * Liste les objets * @return array Tableau de Tbq_chequeCadeau * @author Christophe Raffy */ function listerPersonnalise() { $resultats = array(); $requete = "SELECT boutique_obj_chequeCadeau.*, AES_DECRYPT(boutique_obj_chequeCadeau.code1,'".$this->codeCode1."') AS code1, AES_DECRYPT(boutique_obj_chequeCadeau.code2,'".$this->codeCode2."') AS code2, boutique_obj_client.* FROM boutique_obj_chequeCadeau LEFT JOIN boutique_obj_client ON (boutique_obj_chequeCadeau.ID_client = boutique_obj_client.ID) WHERE boutique_obj_chequeCadeau.montantPersonnalise > 0 ORDER BY boutique_obj_chequeCadeau.ID DESC"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } } ?> 5%) * @access private */ var $gain; /** * @var double $limite Limite de la r�duction (en euros) * @access private */ var $limite; /** * @var date $dateDebut Date de d�but de l'offre sp�ciale * @access private */ var $dateDebut; /** * @var date $dateFin Date de fin de l'offre sp�ciale * @access private */ var $dateFin; /** * @var string $famillesEnPromo Liste des familles * @access private */ var $famillesEnPromo; /** * @var string $articleEnPromo Un article en promo * @access private */ var $articleEnPromo; /** * Constructeur * Constructeur PHP4 * * @param entier $ID Par d�faut 0 * @author Christophe Raffy */ function Tbq_offreSpeciale ($ID=0) { $this->__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par d�faut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_offreSpeciale WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donn� un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent �tre remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enl�ve l'espace et la virgule du d�but $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe d�j� en BD $requete = "UPDATE boutique_obj_offreSpeciale SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_offreSpeciale SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_offreSpeciale * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_offreSpeciale"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_offreSpeciale($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_offreSpeciale * @author Christophe Raffy */ function listerAdmin() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_offreSpeciale"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_offreSpeciale * @author Christophe Raffy */ function listerAvecStats() { $resultats = array(); $requete = "SELECT boutique_obj_offreSpeciale.*, COUNT(boutique_obj_commande.ID) AS nbCommandesOffre, SUM(boutique_obj_commande.montant) AS totalCommandesOffre FROM boutique_obj_offreSpeciale LEFT JOIN boutique_obj_commande ON (boutique_obj_offreSpeciale.code = boutique_obj_commande.promoCode AND boutique_obj_offreSpeciale.ID_typPromo = boutique_obj_commande.promoID_typ AND boutique_obj_commande.statut IN ('payee cb','payee cb paypal','payee cb 3 fois','payee cb 3 fois alma','en préparation','expediee','validee cheque','validee fax','validee virement')) GROUP BY boutique_obj_offreSpeciale.ID ORDER BY dateDebut DESC, titre ASC"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_offreSpeciale WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * private * Liste des codes promos * @param * @return La liste des codes promos */ function getTypePromotion() { $requete="SELECT boutique_typ_promo.type FROM boutique_obj_offreSpeciale, boutique_typ_promo WHERE boutique_obj_offreSpeciale.ID = '".$this->ID."' boutique_typ_promo.ID = boutique_obj_offreSpeciale.ID_typPromo"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } // FIN function getTypePromotion() /** * private * Liste des types de codes promos * @param * @return La liste des types de codes promos */ function listerTypePromo() { $requete="SELECT * FROM boutique_typ_promo"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats); } /** * private * Existe-t-il une offre sp�ciale pour la date d'aujourd'hui ? * @param * @return boolean */ function verifierSiOffreSpeciale() { $requete="SELECT ID FROM boutique_obj_offreSpeciale WHERE dateDebut <= NOW() AND dateFin >= NOW();"; $resultat = T_LAETIS_site::requeter($requete); if ($resultat[0]['ID']) { return true; } return false; } // FIN function verifierSiOffreSpeciale() /** * private * Affecte les produits en promotions * @param * @return boolean */ function setFamillesEnPromo($valeurs) { // Pour tous les checkboxes existantes while(list ($ID_famille, $checked) = each ($valeurs['famillesEnPromo'])) { $familles[]=$ID_famille; } $famillesEnPromo=implode(',',$familles); $requete="UPDATE boutique_obj_offreSpeciale SET famillesEnPromo = '".$famillesEnPromo."' WHERE ID = '".$this->ID."'"; T_LAETIS_site::requeter($requete); } // FIN function setFamillesEnPromo($valeurs) /** * private * Affecte les produits en promotions * @param * @return boolean */ function setArticleEnPromo($ID_articleEnPromo) { $requete="UPDATE boutique_obj_offreSpeciale SET articleEnPromo = '".$ID_articleEnPromo."' WHERE ID = '".$this->ID."'"; T_LAETIS_site::requeter($requete); } // FIN function setArticleEnPromo($ID_articleEnPromo) } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct ($ID=0) { $this->ID = $ID; $this->initialiser(); } /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Initialisation de l'objet * L'initialisation se fait a partir de l'ID * * @author Christophe Raffy */ function initialiser() { if ( $this->ID>0 ) { // initialisation de l'objet $requete = "SELECT * FROM boutique_obj_pointsFidelite WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); foreach ($resultats[0] as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } } } // FIN function initialiser() /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array('coefficientParrainage'); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_pointsFidelite SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_pointsFidelite SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_pointsFidelite * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_pointsFidelite ORDER BY minNbPoints ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_pointsFidelite($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_pointsFidelite WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } /** * Liste les rubriques * @access public */ function getCadeau($nbPoints) { $requete = "SELECT cadeau FROM boutique_obj_pointsFidelite WHERE minNbPoints < '".$nbPoints."' AND maxNbPoints >= '".$nbPoints."'"; $resultat = T_LAETIS_site::requeter($requete); return $resultat[0]['cadeau']; } // FIN function getCadeau($nbPoints) /** * Renvoi le coefficient de Parrainage * @access public */ function getCoefficientParrainage() { return $this->coefficientParrainage; } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; } /** * Initialisation de l'objet * L'initialisation se fait à partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport à la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * fonction qui retourne les $limite articles les plus commandés * @param int $limite (facultatif) determine le nombre d'articles à retourner * @return ID articles, reference articles, titre articles, quantite articles * @access public */ function listerArticlesPlusVendus($limite = 0) { $requete = "SELECT boutique_obj_article.ID, boutique_obj_article.reference, boutique_obj_article.titre, SUM(boutique_obj_ligneCommande.quantite) AS quantite FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON (boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande) LEFT JOIN boutique_obj_article ON (boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID) WHERE boutique_obj_commande.statut = 'expediee' AND boutique_obj_article.ID != '' GROUP BY boutique_obj_article.ID ORDER BY quantite DESC"; if ($limite > 0): $requete .= " LIMIT 0," . $limite; endif; $resSql = T_LAETIS_site::requeter( $requete ); return ($resSql); } /** * fonction qui retourne les $limite articles les plus commandés * @param int $limite (facultatif) determine le nombre d'articles à retourner * @return ID articles, reference articles, titre articles, quantite articles * @access public */ function listerArticlesPlusVendusAnneeEnCours($limite = 0) { $requete = "SELECT boutique_obj_article.ID, boutique_obj_article.reference, boutique_obj_article.titre, SUM(boutique_obj_ligneCommande.quantite) AS quantite FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON (boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande) LEFT JOIN boutique_obj_article ON (boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID) WHERE boutique_obj_commande.statut = 'expediee' AND boutique_obj_article.ID != '' AND boutique_obj_commande.dateCommande BETWEEN CONCAT(YEAR(CURDATE()), '-01-01 00:00:00') AND CONCAT(YEAR(CURDATE()), '-12-31 23:59:59') GROUP BY boutique_obj_article.ID ORDER BY quantite DESC"; if ($limite > 0): $requete .= " LIMIT 0," . $limite; endif; $resSql = T_LAETIS_site::requeter( $requete ); return ($resSql); } // FIN listerArticlesPlusVendusAnneeEnCours($limite = 0) /** * fonction qui retourne les $limite clients qui ont le plus commandés * @param int $limite (facultatif) determine le nombre de clients à retourner * @return ID clients, nom clients, prenom client, civilite clients, somme des montants / clients, nombre de commandes / clients * @access public */ function listerClientsPlusCommande($limite = 0) { $requete = "SELECT boutique_obj_client.ID, boutique_obj_client.nomFacturation AS nom, boutique_obj_client.prenomFacturation AS prenom, boutique_obj_client.civiliteFacturation AS civilite, SUM(boutique_obj_commande.montant) AS sommeMontant, COUNT(boutique_obj_commande.ID) AS nbCom FROM boutique_obj_client, boutique_obj_commande WHERE boutique_obj_client.ID = boutique_obj_commande.ID_client AND boutique_obj_commande.statut = 'expediee' GROUP BY boutique_obj_client.ID ORDER BY sommeMontant DESC"; if ( $limite > 0 ) { $requete .= " LIMIT 0," . $limite; } $resSql = T_LAETIS_site::requeter( $requete ); return ($resSql); } /** * fonction qui retourne le nombre d'article entre 2 dates ($dateDebut et $dateFin) * @param string $dateDebut, string $dateFin * @return nbArticles * @access public */ function nombreCommandesTot($dateDebut, $dateFin) { $dateDebut = $dateDebut." 00:00:00"; $dateFin = $dateFin." 23:59:59"; $requete = "SELECT SUM(boutique_obj_ligneCommande.quantite) AS nbArticles FROM boutique_obj_commande, boutique_obj_ligneCommande WHERE boutique_obj_ligneCommande.ID_commande = boutique_obj_commande.ID AND boutique_obj_commande.dateCommande >= '$dateDebut' AND boutique_obj_commande.dateCommande <= '$dateFin' AND boutique_obj_commande.statut = 'expediee'"; $resSql = T_LAETIS_site::requeter( $requete ); return ($resSql); } /** * fonction qui retourne le chiffre d'affaire, le nombre d'articles pour une tva ($tva) entre 2 dates ($dateDebut et $dateFin) * @param string $dateDebut, string $dateFin, int $tva * @return sommeCATVA, nbArticles * @access public */ function recapitulatifVentesCATVA($dateDebut, $dateFin, $tva = 20) { $dateDebut = $dateDebut." 00:00:00"; $dateFin = $dateFin." 23:59:59"; $requete = "SELECT SUM(boutique_obj_ligneCommande.tarif*boutique_obj_ligneCommande.quantite) AS sommeCATVA, SUM(boutique_obj_ligneCommande.quantite) AS nbArticles FROM boutique_obj_commande, boutique_obj_article, boutique_obj_ligneCommande WHERE boutique_obj_article.ID = boutique_obj_ligneCommande.ID_article AND boutique_obj_ligneCommande.ID_commande = boutique_obj_commande.ID AND boutique_obj_commande.dateCommande >= '$dateDebut' AND boutique_obj_commande.dateCommande <= '$dateFin' AND boutique_obj_article.tauxTVA = '$tva' AND boutique_obj_commande.statut = 'expediee'"; $resSql = T_LAETIS_site::requeter( $requete ); return ($resSql); } /** * fonction qui retourne le nombre de commandes passées, la somme des frais de livraison, le montant total des commandes entre 2 dates ($dateDebut et $dateFin) * @param string $dateDebut, string $dateFin * @return nbCommandes, sommeTarifLivraison, montCom * @access public */ function recapitulatifVentesCATTC($dateDebut, $dateFin) { $dateDebut = $dateDebut." 00:00:00"; $dateFin = $dateFin." 23:59:59"; $requete = "SELECT COUNT(boutique_obj_commande.ID) AS nbCommandes, SUM(boutique_obj_tarifLivraison.tarif) AS sommeTarifLivraison, SUM(boutique_obj_commande.montant) AS montCom FROM boutique_obj_commande, boutique_obj_tarifLivraison WHERE boutique_obj_commande.dateCommande >= '$dateDebut' AND boutique_obj_commande.dateCommande <= '$dateFin' AND boutique_obj_commande.statut = 'expediee' AND boutique_obj_tarifLivraison.ID = boutique_obj_commande.ID_tarifLivraison"; $resSql = T_LAETIS_site::requeter( $requete ); return ($resSql); } /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function nbCommandesSelonCriteres($criteres) { $resultats = array(); $requeteC = ''; if($criteres['statut']) { $requeteC .= " AND statut = '".$criteres['statut']."'"; } if($criteres['annee']) { $requeteC .= " AND YEAR(dateCommande) = '".$criteres['annee']."'"; } if($criteres['prixMini'] >= 0) { $requeteC .= " AND montant >= '".$criteres['prixMini']."'"; } if($criteres['prixMaxi']) { $requeteC .= " AND montant < '".$criteres['prixMaxi']."'"; } $requete = "SELECT COUNT(ID) as nb, SUM(montant) as somme FROM boutique_obj_commande WHERE 1 ".$requeteC; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats['somme'] = $ligne['somme']; $resultats['nb'] = $ligne['nb']; } return ($resultats); } /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function nbCommandesSelonMontant($prixMini, $prixMaxi, $annee) { $resultats = array(); $requete = "SELECT COUNT(ID) as nb, SUM(montant) as somme FROM boutique_obj_commande WHERE YEAR(dateCommande) = '".$annee."' AND statut = 'expediee' AND montant >= '".$prixMini."' AND montant < '".$prixMaxi."'"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats['somme'] = $ligne['somme']; $resultats['nb'] = $ligne['nb']; } return ($resultats); } /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function commandesAnneeMoisGamme($statut, $annee, $mois, $ID_gamme) { $resultats = array(); $requete = "SELECT SUM(boutique_obj_ligneCommande.quantite) as nb, SUM(boutique_obj_ligneCommande.quantite * boutique_obj_ligneCommande.tarif) as somme FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON (boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande) LEFT JOIN boutique_rel_famille_article ON (boutique_obj_ligneCommande.ID_article = boutique_rel_famille_article.ID_article) LEFT JOIN boutique_obj_famille ON (boutique_rel_famille_article.ID_famille = boutique_obj_famille.ID) WHERE boutique_obj_commande.statut = '".$statut."' AND YEAR(boutique_obj_commande.dateCommande) = ".$annee." AND MONTH(boutique_obj_commande.dateCommande) = ".$mois." AND boutique_obj_famille.ID_gamme = '".$ID_gamme."'"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats['somme'] = $ligne['somme']; $resultats['nb'] = $ligne['nb']; } return ($resultats); } /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function commandesAnneeMoisProduit($statut, $annee, $mois, $ID_article) { $resultats = array(); $requete = "SELECT SUM(boutique_obj_ligneCommande.quantite) as nb, SUM(boutique_obj_ligneCommande.quantite * boutique_obj_ligneCommande.tarif) as somme FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON (boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande) WHERE boutique_obj_commande.statut = '".$statut."' AND YEAR(boutique_obj_commande.dateCommande) = ".$annee." AND MONTH(boutique_obj_commande.dateCommande) = ".$mois." AND boutique_obj_ligneCommande.ID_article = '".$ID_article."'"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats['somme'] = $ligne['somme']; $resultats['nb'] = $ligne['nb']; } return ($resultats); } /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function rechercheArticle($reference) { $resultats = array(); // Si c'est un chiffre alors peut être soit la référence soit l'ID if(is_numeric($reference)): $where = "boutique_obj_article.reference = '".$reference."' OR boutique_obj_article.ID = '".$reference."'"; else: $where = "boutique_obj_article.reference = '".$reference."'"; endif; $requete = "SELECT boutique_obj_article.ID FROM boutique_obj_article WHERE ".$where.""; $resultats = T_LAETIS_site::requeter($requete); return ($resultats[0]['ID']); } // FIN function rechercheArticle($reference) /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function statsSelonMarque() { $resultats = array(); $retour = array(); $requete = " SELECT YEAR(boutique_obj_commande.dateCommande) AS annee, boutique_obj_fabricant.ID AS ID_fabricant, boutique_obj_fabricant.titre, SUM(boutique_obj_ligneCommande.quantite) AS nbProduitsVendus, SUM(boutique_obj_ligneCommande.quantite * boutique_obj_ligneCommande.tarif) AS montantProduitsVendus FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON ( boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande ) LEFT JOIN boutique_obj_article ON ( boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID ) JOIN boutique_obj_fabricant ON ( boutique_obj_article.ID_fabricant = boutique_obj_fabricant.ID ) WHERE boutique_obj_commande.statut = 'expediee' GROUP BY boutique_obj_fabricant.ID, YEAR(boutique_obj_commande.dateCommande)"; $resultats = T_LAETIS_site::requeter($requete); foreach ($resultats as $ligne): $retour[$ligne['annee']][$ligne['ID_fabricant']]['nbProduitsVendus'] = $ligne['nbProduitsVendus']; $retour[$ligne['annee']][$ligne['ID_fabricant']]['montantProduitsVendus'] = $ligne['montantProduitsVendus']; endforeach; return ($retour); } // FIN function statsSelonMarque() /** * retourne le nombre de commandes et leur montant pour une année et un mois données * @return array Tableau de Tbq_commande * @author Christophe Raffy */ function statsSelonArticle() { $resultats = array(); $retour = array(); $requete = " SELECT YEAR(boutique_obj_commande.dateCommande) AS annee, boutique_obj_fabricant.ID AS ID_fabricant, boutique_obj_article.ID AS ID_article, SUM(boutique_obj_ligneCommande.quantite) AS nbProduitsVendus, SUM(boutique_obj_ligneCommande.quantite * boutique_obj_ligneCommande.tarif) AS montantProduitsVendus FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON ( boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande ) LEFT JOIN boutique_obj_article ON ( boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID ) JOIN boutique_obj_fabricant ON ( boutique_obj_article.ID_fabricant = boutique_obj_fabricant.ID ) WHERE boutique_obj_commande.statut = 'expediee' GROUP BY boutique_obj_article.ID, YEAR(boutique_obj_commande.dateCommande) ORDER BY nbProduitsVendus DESC"; $resultats = T_LAETIS_site::requeter($requete); foreach ($resultats as $ligne): $retour[$ligne['annee']][$ligne['ID_fabricant']][$ligne['ID_article']] = $ligne; endforeach; return ($retour); } // FIN function statsSelonArticle() /** * Liste les objets * @return array Tableau de Tbq_fabricant * @author Christophe Raffy */ function listerFabricantSelonVente($anneeD, $anneeF) { $resultats = array(); $requete = " SELECT boutique_obj_fabricant.ID, boutique_obj_fabricant.titre, SUM(boutique_obj_ligneCommande.quantite * boutique_obj_ligneCommande.tarif) AS montantProduitsVendus FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON ( boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande ) LEFT JOIN boutique_obj_article ON ( boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID ) JOIN boutique_obj_fabricant ON ( boutique_obj_article.ID_fabricant = boutique_obj_fabricant.ID ) WHERE YEAR(boutique_obj_commande.dateCommande) >= '".$anneeD."' AND YEAR(boutique_obj_commande.dateCommande) <= '".$anneeF."' AND boutique_obj_commande.statut = 'expediee' GROUP BY boutique_obj_fabricant.ID ORDER BY montantProduitsVendus DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach($resSql as $ligne) { $resultats[] = $ligne; } return ($resultats); } // FIN listerFabricantSelonVente($anneeD, $anneeF) /** * Liste les objets * @return array Tableau de Tbq_fabricant * @author Christophe Raffy */ function listerArticleSelonVente($anneeD, $anneeF) { $resultats = array(); $requete = " SELECT boutique_obj_article.ID AS ID_article, boutique_obj_article.titre, boutique_obj_fabricant.ID AS ID_fabricant, SUM(boutique_obj_ligneCommande.quantite * boutique_obj_ligneCommande.tarif) AS montantProduitsVendus FROM boutique_obj_commande LEFT JOIN boutique_obj_ligneCommande ON ( boutique_obj_commande.ID = boutique_obj_ligneCommande.ID_commande ) LEFT JOIN boutique_obj_article ON ( boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID ) JOIN boutique_obj_fabricant ON ( boutique_obj_article.ID_fabricant = boutique_obj_fabricant.ID ) WHERE YEAR(boutique_obj_commande.dateCommande) >= '".$anneeD."' AND YEAR(boutique_obj_commande.dateCommande) <= '".$anneeF."' AND boutique_obj_commande.statut = 'expediee' AND boutique_obj_article.ID_fabricant > 0 GROUP BY boutique_obj_article.ID ORDER BY montantProduitsVendus DESC"; $resSql = T_LAETIS_site::requeter($requete); foreach($resSql as $ligne) { $resultats[$ligne['ID_fabricant']][] = $ligne; } return ($resultats); } // FIN listerArticleSelonVente($anneeD, $anneeF) } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_variante_groupe WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_variante_groupe SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_variante_groupe SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_varianteGroupe * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_variante_groupe ORDER BY ID"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_varianteGroupe($ligne['ID']); } return ($resultats); } function listerSelonArticle($ID_article) { $resultats = array(); $requete = "SELECT boutique_obj_variante_groupe.* FROM boutique_obj_variante_groupe, boutique_rel_article_variante, boutique_obj_article, boutique_obj_variante WHERE boutique_obj_article.ID = '".$ID_article."' AND boutique_obj_article.ID = boutique_rel_article_variante.ID_article AND boutique_rel_article_variante.ID_variante = boutique_obj_variante.ID AND boutique_obj_variante.ID_varianteGroupe = boutique_obj_variante_groupe.ID GROUP BY boutique_obj_variante_groupe.ID ORDER BY boutique_obj_variante_groupe.ID"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_varianteGroupe($ligne['ID']); } return ($resultats); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_variante_groupe WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } } ?>__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_variante WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array(); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_variante SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_variante SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } } /** * Liste les objets * @return array Tableau de Tbq_variante * @author Christophe Raffy */ function lister() { $resultats = array(); $requete = "SELECT * FROM boutique_obj_variante ORDER BY ID_varianteGroupe ASC, ordre ASC, titreFR ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_variante($ligne['ID']); } return ($resultats); } /** * Liste les objets * @return array Tableau de Tbq_gpeVariante * @author Christophe Raffy */ function listerSousTitre($ID_variante, $ID_article) { $resultats = array(); $requete = "SELECT boutique_obj_variante.* FROM boutique_obj_variante, boutique_rel_article_variante WHERE boutique_rel_article_variante.ID_variante='".$ID_variante."' AND boutique_rel_article_variante.ID_article = '".$ID_article."' ORDER BY boutique_obj_variante.titreFR"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_gpeVariante($ligne['ID']); } return ($resultats); } /** * private * Liste des familles selon la gpeVariante dont l'ID est passé en argument * @param ID_varianteGroupe ID de la gpeVariante * @return Les infos sur la famille */ function listerParVariante($ID_variante) { $requete="SELECT boutique_obj_variante.* FROM boutique_obj_variante, boutique_rel_article_variante WHERE boutique_rel_article_variante.ID_variante='".$ID_variante."' ORDER BY boutique_obj_variante.titreFR"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_variante($ligne['ID']); } return ($resultats); } /** * private * Liste des familles selon la gpeVariante dont l'ID est passé en argument * @param ID_varianteGroupe ID de la gpeVariante * @return Les infos sur la famille */ function listerParVarianteGroupe($ID_varianteGroupe) { $requete="SELECT * FROM boutique_obj_variante WHERE ID_varianteGroupe = '".$ID_varianteGroupe."' ORDER BY ordre ASC, titreFR ASC"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_variante($ligne['ID']); } return ($resultats); } /** * private * Liste les familles variantes appartient l'article en cours * @param $ID_article * @param $ID_varianteGroupe, les variantes du groupe $ID_varianteGroupe pour l'article $ID_article * @return La liste des variantes */ function listerIDVarianteParArticle($ID_article) { $requete = "SELECT boutique_rel_article_variante.ID_variante FROM boutique_rel_article_variante WHERE boutique_rel_article_variante.ID_article = '".$ID_article."' ORDER BY boutique_rel_article_variante.ID_variante ASC"; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne['ID_variante']; } return ($resultats); } // FIN function listerArticleVariante($ID_article, $ID_varianteGroupe='') /** * private * Liste les familles variantes appartient l'article en cours * @param $ID_article * @param $ID_varianteGroupe, les variantes du groupe $ID_varianteGroupe pour l'article $ID_article * @return La liste des variantes */ function listerArticleVariante($ID_article, $ID_varianteGroupe='') { $orderby = "ORDER BY boutique_rel_article_variante.ID_variante ASC"; if($ID_varianteGroupe) { $from_gpeVariante = ", boutique_obj_variante"; $and_gpeVariante = "AND boutique_obj_variante.ID_varianteGroupe = '".$ID_varianteGroupe."' AND boutique_obj_variante.ID = boutique_rel_article_variante.ID_variante"; $orderby = "ORDER BY boutique_obj_variante.ordre ASC, boutique_obj_variante.titreFR ASC"; } $requete = "SELECT boutique_rel_article_variante.ID_variante, boutique_rel_article_variante.stock FROM boutique_rel_article_variante ".$from_gpeVariante." WHERE boutique_rel_article_variante.ID_article = '".$ID_article."' ".$and_gpeVariante." ".$orderby.""; //echo $requete; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = $ligne; } return ($resultats); } // FIN function listerArticleVariante($ID_article, $ID_varianteGroupe='') /** * private * Calcule le nombre d'articles présents dans cette famille * @param ID_variante l'ID de la famille * @return Le nombre d'articles présents dans cette famille */ function getNbArticles($ID_variante) { $requete="SELECT COUNT(ID_article) AS nbArticles FROM boutique_rel_article_variante WHERE ID_variante='".$ID_variante."' GROUP BY ID_variante"; $resultats = T_LAETIS_site::requeter($requete); return ($resultats[0]['nbArticles']); } /** * Supprime l'objet de la BD * @author Christophe Raffy */ function supprimer() { $requete = "DELETE FROM boutique_obj_variante WHERE ID='".$this->ID."'"; T_LAETIS_site::requeter($requete); $requete = "DELETE FROM boutique_rel_article_variante WHERE ID_variante = '".$this->ID."'"; T_LAETIS_site::requeter($requete); $this->ID = 0; } function afficherStock($stock, $langue='fr') { $retour = ""; switch($langue) { case 'fr': if($stock>0): $retour = "En stock"; elseif($stock==0): $retour = "En cours de réapprovisionnement"; else: $retour = "Sur commande"; endif; break; case 'en': if($stock>0): $retour = "In stock"; elseif($stock==0): $retour = "Currently out of stock"; else: $retour = "On order"; endif; break; case 'es': if($stock>0): $retour = "In stock"; elseif($stock==0): $retour = "Currently out of stock"; else: $retour = "En orden"; endif; break; default: if($stock>0): $retour = "En stock"; elseif($stock==0): $retour = "En cours de réapprovisionnement"; else: $retour = "Sur commande"; endif; } return $retour; } // FIN function afficherStock($stock, $langue='fr') } ?>'Monsieur', 'Mr.'=>'Monsieur', 'Sr.'=>'Monsieur', 'Mme'=>'Madame', 'Ms'=>'Madame', 'Sra.'=>'Madame', 'Société'=>'SARL', 'Company'=>'SARL', 'Empresa'=>'SARL'); /** * @const string REP_FICHIER_COMPTA_CLIENT Répertoire pour les fichiers compta * @access public */ const REP_FICHIER_COMPTA_CLIENT = '/boutique/admin/save/compta/client/'; /** * @const string REP_FICHIER_COMPTA_CLIENT Répertoire pour les fichiers compta * @access public */ const REP_FICHIER_COMPTA_FACTURE = '/boutique/admin/save/compta/facture/'; /** * Constructeur * Constructeur PHP4 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function Tbq_comptabilite($ID=0) { $this->__construct($ID); } /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ function __construct($ID = 0) { } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ function __destruct () {} /** * private * Générer le fichier TXT de la description d'une commande * @param * @return Le fichier */ public function genererFichierClient($ID_commande=0) { $texteComplet = ''; $sep = ';'; $sepLignes = "\r\n"; $texteComplet = "Code (tiers)".$sep; $texteComplet .= "Civilité".$sep; $texteComplet .= "Nom".$sep; //$texteComplet .= "Code Famille".$sep; //$texteComplet .= "Libellé".$sep; //$texteComplet .= "Code sous-famille client".$sep; //$texteComplet .= "Libellé sous-famille client".$sep; //$texteComplet .= "Personne physique".$sep; //$texteComplet .= "Statut".$sep; $texteComplet .= "Adresse 1 (facturation)".$sep; $texteComplet .= "Adresse 2 (facturation)".$sep; //$texteComplet .= "Adresse 3 (facturation)".$sep; //$texteComplet .= "Adresse 4 (facturation)".$sep; $texteComplet .= "Code postal (facturation)".$sep; $texteComplet .= "Ville (facturation)".$sep; $texteComplet .= "Département (facturation)".$sep; $texteComplet .= "Code Pays (facturation)".$sep; //$texteComplet .= "Site Web (facturation)".$sep; //$texteComplet .= "Civilité (contact) (facturation)".$sep; $texteComplet .= "Nom (contact) (facturation)".$sep; //$texteComplet .= "Prénom (facturation)".$sep; //$texteComplet .= "Fonction (facturation)".$sep; //$texteComplet .= "Service/Bureau (facturation)".$sep; $texteComplet .= "Téléphone fixe (facturation)".$sep; //$texteComplet .= "Téléphone portable (facturation)".$sep; //$texteComplet .= "Fax (facturation)".$sep; $texteComplet .= "E-mail (facturation)".$sep; $texteComplet .= "Civilité (adresse) (livraison)".$sep; $texteComplet .= "Nom (adresse) (livraison)".$sep; $texteComplet .= "Adresse 1 (livraison)".$sep; $texteComplet .= "Adresse 2 (livraison)".$sep; //$texteComplet .= "Adresse 3 (livraison)".$sep; //$texteComplet .= "Adresse 4 (livraison)".$sep; $texteComplet .= "Code postal (livraison)".$sep; $texteComplet .= "Ville (livraison)".$sep; $texteComplet .= "Département (livraison)".$sep; $texteComplet .= "Code Pays (livraison)".$sep; //$texteComplet .= "Site Web (livraison)".$sep; //$texteComplet .= "Civilité (contact) (livraison)".$sep; $texteComplet .= "Nom (contact) (livraison)".$sep; //$texteComplet .= "Prénom (livraison)".$sep; //$texteComplet .= "Fonction (livraison)".$sep; //$texteComplet .= "Service/Bureau (livraison)".$sep; $texteComplet .= "Téléphone fixe (livraison)".$sep; //$texteComplet .= "Téléphone portable (livraison)".$sep; //$texteComplet .= "Fax (livraison)".$sep; //$texteComplet .= "E-mail (livraison)".$sep; //$texteComplet .= "Compte comptable".$sep; //$texteComplet .= "% remise".$sep; //$texteComplet .= "Encours autorisé".$sep; //$texteComplet .= "Solde initial".$sep; //$texteComplet .= "Date de première facture".$sep; //$texteComplet .= "Code mode de règlement".$sep; //$texteComplet .= "Date de paiement".$sep; $texteComplet .= "Code territorialité".$sepLignes; if($ID_commande>0): $where = "AND boutique_obj_commande.ID = '".$ID_commande."' "; endif; $requete = "SELECT boutique_obj_commande.*, boutique_obj_commande.ID AS ID_commandeATraiter, boutique_obj_client.*, boutique_obj_client.ID AS ID_clientATraiter, boutique_obj_client_livraison.*, boutique_obj_tarifLivraison.transport FROM boutique_obj_commande LEFT JOIN boutique_obj_client ON (boutique_obj_commande.ID_client = boutique_obj_client.ID) LEFT JOIN boutique_obj_client_livraison ON (boutique_obj_client.ID = boutique_obj_client_livraison.ID_client) LEFT JOIN boutique_obj_tarifLivraison ON (boutique_obj_commande.ID_tarifLivraison = boutique_obj_tarifLivraison.ID) WHERE boutique_obj_commande.envoyeeEnCompta = 0 AND boutique_obj_commande.statut NOT IN ('non validee', 'interrompue avant coordonnees', 'interrompue avant coordonnees', 'appel cb', 'appel cb alma', 'appel cb 3 fois') AND boutique_obj_commande.ID = boutique_obj_client_livraison.ID_commande ".$where." GROUP BY boutique_obj_commande.ID"; //AND boutique_obj_commande.statut IN ('payee cb', 'payee cb 3 fois', 'validee cheque', 'validee virement', 'validee fax') //boutique_obj_commande.dateCommande > '2015-05-11' //AND boutique_obj_commande.reglement = 'retourAutoPaiementAccepte' $resSql = T_LAETIS_site::requeter($requete); foreach($resSql as $ligne): $requete = "SELECT boutique_typ_pays.countryCode FROM boutique_typ_pays WHERE ID = '".addslashes($ligne['ID_paysFacturation'])."'"; $resPaysFact = T_LAETIS_site::requeter($requete); // Si France alors on cherche le nom du département if($resPaysFact[0]['countryCode']=='FR'): $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($ligne['codePostalFacturation'],0,2)."'"; $resDepFact = T_LAETIS_site::requeter($requete); $territorialite = 'France'; else: $resDepFact[0]['nomDepartement']=''; //$territorialite = 'Importation/Exportation'; $territorialite = 'France'; endif; // Si ce client n'est pas déjà en compta //if($ligne['codeCompta']==''): // FACTURATION // code (tiers) = code postal + chiffre //$texte .= $ligne['codePostalFacturation'].'ID'.$ligne['ID_clientATraiter'].$sep; $texteComplet .= $ligne['codeCompta'].$sep; $texteComplet .= self::$civilite[$ligne['civiliteFacturation']].$sep; $texteComplet .= $ligne['nomFacturation'].' '.$ligne['prenomFacturation'].$sep; $texteComplet .= str_replace(';',' ',$ligne['adresseFacturation']).$sep; $texteComplet .= str_replace(';',' ',$ligne['adresseFacturation2']).$sep; $texteComplet .= $ligne['codePostalFacturation'].$sep; $texteComplet .= $ligne['villeFacturation'].$sep; $texteComplet .= $resDepFact[0]['nomDepartement'].$sep; $texteComplet .= $resPaysFact[0]['countryCode'].$sep; $texteComplet .= $ligne['nomFacturation'].' '.$ligne['prenomFacturation'].$sep; $texteComplet .= $ligne['telFacturation'].$sep; $texteComplet .= $ligne['emailFacturation'].$sep; // LIVRAISON // Si commande en Relais $commande = new Tbq_commande(); if( ($ligne['transport'] == $commande->LIVRAISON_DPD_PICKUP) ): $dpd = new Tbq_dpd(); $infosDPD = $dpd->getSelonIDdpdPickup($ligne['ID_commandeATraiter'], $ligne['ID_dpdPickup']); $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($infosDPD[0]['codePostal'],0,2)."'"; $resDepLiv = T_LAETIS_site::requeter($requete); $texteComplet .= $sep; $texteComplet .= $infosDPD[0]['nom'].$sep; $texteComplet .= str_replace(';',' ',$infosDPD[0]['adresse1']).$sep; $texteComplet .= $sep; $texteComplet .= $infosDPD[0]['codePostal'].$sep; $texteComplet .= $infosDPD[0]['ville'].$sep; $texteComplet .= $resDepLiv[0]['nomDepartement'].$sep; $texteComplet .= 'FR'.$sep; $texteComplet .= $infosDPD[0]['nom'].$sep; $texteComplet .= $sep; elseif ($ligne['ID_tarifLivraison'] == $commande->ID_RELAIS_COLISSIMO): $dpd = new Tbq_colissimo(); $infosDPD = $dpd->getSelonIDColissimo($ligne['ID_commandeATraiter'], $ligne['ID_colissimo']); $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($infosDPD[0]['codePostal'],0,2)."'"; $resDepLiv = T_LAETIS_site::requeter($requete); $texteComplet .= $sep; $texteComplet .= $infosDPD[0]['nom'].$sep; $texteComplet .= str_replace(';',' ',$infosDPD[0]['adresse1']).$sep; $texteComplet .= $sep; $texteComplet .= $infosDPD[0]['codePostal'].$sep; $texteComplet .= $infosDPD[0]['ville'].$sep; $texteComplet .= $resDepLiv[0]['nomDepartement'].$sep; $texteComplet .= 'FR'.$sep; $texteComplet .= $infosDPD[0]['nom'].$sep; $texteComplet .= $sep; else: $requete = "SELECT boutique_typ_pays.countryCode FROM boutique_typ_pays WHERE ID = '".addslashes($ligne['ID_pays'])."'"; $resPaysLiv = T_LAETIS_site::requeter($requete); // Si France alors on cherche le nom du département if($resPaysLiv[0]['countryCode']=='FR'): $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($ligne['codePostalLivraison'],0,2)."'"; $resDepLiv = T_LAETIS_site::requeter($requete); else: $resDepLiv[0]['nomDepartement']=''; endif; $texteComplet .= self::$civilite[$ligne['civiliteLivraison']].$sep; $texteComplet .= $ligne['nomLivraison'].' '.$ligne['prenomLivraison'].$sep; $texteComplet .= str_replace(';',' ',$ligne['adresseLivraison']).$sep; $texteComplet .= str_replace(';',' ',$ligne['adresseLivraison2']).$sep; $texteComplet .= $ligne['codePostalLivraison'].$sep; $texteComplet .= $ligne['villeLivraison'].$sep; $texteComplet .= $resDepLiv[0]['nomDepartement'].$sep; $texteComplet .= $resPaysLiv[0]['countryCode'].$sep; $texteComplet .= $ligne['nomFacturation'].' '.$ligne['prenomFacturation'].$sep; $texteComplet .= $ligne['telLivraison'].$sep; endif; $texteComplet .= $territorialite; $texteComplet .= $sepLignes; //endif; $requete = "UPDATE boutique_obj_commande SET envoyeeEnCompta = 2 WHERE ID = '".$ligne['ID_commandeATraiter']."'"; T_LAETIS_site::requeter($requete); endforeach; if($texteComplet): // Formatage du nom de fichier $nomFichier = 'exportEBPClient-'.date('Y-m-d-H-i-s'); // CREATION DU FICHIER TXT //@unlink($_SERVER['DOCUMENT_ROOT'].self::REP_FICHIER_COMPTA_CLIENT.$nomFichier.".txt"); if ($fp = fopen($_SERVER['DOCUMENT_ROOT'].self::REP_FICHIER_COMPTA_CLIENT.$nomFichier.".txt", "w")): fputs($fp, $texteComplet); fclose($fp); endif; endif; return $nomFichier.".txt"; } // FIN function genererFichierClient() /** * private * Générer le fichier TXT de la description d'une commande * @param * @return Le fichier */ public function genererFichierFacture($ID_commande=0) { $facture = new Tbq_facture(); $texteComplet = $texteCommande = $texteLigneCommande = $textePremiereLigneCommande = $texteTroisiemeLigneCommande = $texteQuatriemeLigneCommande = ''; $sep = ';'; $sepLignes = "\r\n"; /* EN TETE */ //$texteComplet = "Document - Utiliser le numéro du document d'origine".$sep; $texteComplet = "Document - Préfixe du numéro".$sep; $texteComplet .= "Document - Suffixe du numéro".$sep; $texteComplet .= "Document - Numéro du document".$sep; $texteComplet .= "Document - Date".$sep; $texteComplet .= "Document - Code client".$sep; $texteComplet .= "Document - Civilité".$sep; $texteComplet .= "Document - Nom du client".$sep; $texteComplet .= "Document - Adresse 1 (facturation)".$sep; $texteComplet .= "Document - Adresse 2 (facturation)".$sep; $texteComplet .= "Document - Adresse 3 (facturation)".$sep; $texteComplet .= "Document - Adresse 4 (facturation)".$sep; $texteComplet .= "Document - Code postal (facturation)".$sep; $texteComplet .= "Document - Ville (facturation)".$sep; $texteComplet .= "Document - Département (facturation)".$sep; $texteComplet .= "Document - Code Pays (facturation)".$sep; $texteComplet .= "Document - Nom (contact) (facturation)".$sep; $texteComplet .= "Document - Prénom (facturation)".$sep; $texteComplet .= "Document - Téléphone fixe (facturation)".$sep; $texteComplet .= "Document - Téléphone portable (facturation)".$sep; $texteComplet .= "Document - Fax (facturation)".$sep; $texteComplet .= "Document - E-mail (facturation)".$sep; $texteComplet .= "Document - Nom (adresse) (livraison)".$sep; $texteComplet .= "Document - Civilité (adresse) (livraison)".$sep; $texteComplet .= "Document - Adresse 1 (livraison)".$sep; $texteComplet .= "Document - Adresse 2 (livraison)".$sep; $texteComplet .= "Document - Adresse 3 (livraison)".$sep; $texteComplet .= "Document - Adresse 4 (livraison)".$sep; $texteComplet .= "Document - Code postal (livraison)".$sep; $texteComplet .= "Document - Ville (livraison)".$sep; $texteComplet .= "Document - Département (livraison)".$sep; $texteComplet .= "Document - Code Pays (livraison)".$sep; $texteComplet .= "Document - Nom (contact) (livraison)".$sep; $texteComplet .= "Document - Prénom (livraison)".$sep; $texteComplet .= "Document - Téléphone fixe (livraison)".$sep; $texteComplet .= "Document - Téléphone portable (livraison)".$sep; $texteComplet .= "Document - Fax (livraison)".$sep; $texteComplet .= "Document - E-mail (livraison)".$sep; $texteComplet .= "Document - Territorialité".$sep; $texteComplet .= "Document - Numéro de TVA intracommunautaire".$sep; $texteComplet .= "Document - % remise".$sep; $texteComplet .= "Document - Montant de la remise".$sep; $texteComplet .= "Document - % escompte".$sep; $texteComplet .= "Document - Montant de l'escompte".$sep; $texteComplet .= "Document - Code frais de port".$sep; $texteComplet .= "Document - Frais de port HT".$sep; $texteComplet .= "Document - Taux de TVA port".$sep; $texteComplet .= "Document - Code TVA port".$sep; $texteComplet .= "Document - Port non soumis à escompte".$sep; $texteComplet .= "Document - Total Brut HT".$sep; $texteComplet .= "Document - Total TTC".$sep; $texteComplet .= "Document - Notes".$sep; $texteComplet .= "Document - Code commercial/collaborateur".$sep; $texteComplet .= "Document - Code mode de règlement".$sep; $texteComplet .= "Ligne - Code ligne de document".$sep; $texteComplet .= "Ligne - Code article".$sep; $texteComplet .= "Ligne - Description".$sep; $texteComplet .= "Ligne - Date de livraison".$sep; $texteComplet .= "Ligne - Quantité".$sep; $texteComplet .= "Ligne - Taux de TVA".$sep; $texteComplet .= "Ligne - Code TVA".$sep; $texteComplet .= "Ligne - Type de ligne".$sep; $texteComplet .= "Ligne - Quantité (série/lot)".$sep; $texteComplet .= "Ligne - PV HT".$sep; $texteComplet .= "Ligne - PV TTC".$sep; $texteComplet .= "Ligne - % remise unitaire cumulé".$sep; $texteComplet .= "Ligne - Montant de remise unitaire HT cumulé".$sep; $texteComplet .= "Ligne - Montant Net HT".$sep; $texteComplet .= "Ligne - Montant Net TTC".$sep; $texteComplet .= "Ligne - Code commercial/collaborateur".$sep; $texteComplet .= "Ligne - Codes des lignes de commandes".$sep; $texteComplet .= "Ligne - Codes des commandes".$sep; $texteComplet .= "Ligne - Quantités à livrer".$sep; $texteComplet .= $sepLignes; if($ID_commande>0): $where = "AND boutique_obj_commande.ID = '".$ID_commande."' "; endif; $requete = "SELECT boutique_obj_commande.*, boutique_obj_commande.ID AS ID_commandeATraiter, boutique_obj_client.*, boutique_obj_client.ID AS ID_clientATraiter, boutique_obj_client_livraison.*, boutique_obj_tarifLivraison.transport FROM boutique_obj_commande LEFT JOIN boutique_obj_client ON (boutique_obj_commande.ID_client = boutique_obj_client.ID) LEFT JOIN boutique_obj_client_livraison ON (boutique_obj_client.ID = boutique_obj_client_livraison.ID_client) LEFT JOIN boutique_obj_tarifLivraison ON (boutique_obj_commande.ID_tarifLivraison = boutique_obj_tarifLivraison.ID) WHERE boutique_obj_commande.envoyeeEnCompta = 2 AND boutique_obj_commande.statut NOT IN ('non validee', 'interrompue avant coordonnees', 'interrompue avant coordonnees', 'appel cb', 'appel cb alma', 'appel cb 3 fois') AND boutique_obj_commande.ID = boutique_obj_client_livraison.ID_commande ".$where." GROUP BY boutique_obj_commande.ID"; //AND boutique_obj_commande.statut IN ('payee cb', 'payee cb 3 fois', 'validee cheque', 'validee virement', 'validee fax') //boutique_obj_commande.dateCommande > '2015-05-11' //AND boutique_obj_commande.ID = 1123222 //AND boutique_obj_commande.reglement = 'retourAutoPaiementAccepte' $resSql = T_LAETIS_site::requeter($requete); $cptDocument = 1; foreach($resSql as $ligne): $ID_facture = $facture->facturer($ligne['ID_commandeATraiter']); $requete = "SELECT boutique_typ_pays.countryCode FROM boutique_typ_pays WHERE ID = '".addslashes($ligne['ID_paysFacturation'])."'"; $resPaysFact = T_LAETIS_site::requeter($requete); // Si France alors on cherche le nom du département if($resPaysFact[0]['countryCode']=='FR'): $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($ligne['codePostalFacturation'],0,2)."'"; $resDepFact = T_LAETIS_site::requeter($requete); $territorialite = 'France'; else: $resDepFact[0]['nomDepartement']=''; //$territorialite = 'Importation/Exportation'; $territorialite = 'France'; endif; // Si ce client n'est pas déjà en compta //if($ligne['codeCompta']==''): // FACTURATION // code (tiers) = code postal + chiffre //$texteCommande .= $ligne['codePostalFacturation'].'ID'.$ligne['ID_clientATraiter'].$sep; //$texteCommande = $sep; // Document - Utiliser le numéro du document d'origine $texteCommande = $sep; // Document - Préfixe du numéro $texteCommande .= $sep; // Document - Suffixe du numéro $texteCommande .= $cptDocument.$sep; // Document - Numéro du document //$texteCommande .= Tbq_comptabilite::traiterDateCommande($ligne['dateCommande']).$sep; // Document - Date jj/mm/yyyy $texteCommande .= date("d/m/Y").$sep; // Document - Date jj/mm/yyyy $texteCommande .= $ligne['codeCompta'].$sep; // Document - Code client $texteCommande .= self::$civilite[$ligne['civiliteFacturation']].$sep; // Document - Civilité $texteCommande .= strtoupper($ligne['nomFacturation']).' '.$ligne['prenomFacturation'].$sep; // Document - Nom du client $texteCommande .= str_replace(';',' ',$ligne['adresseFacturation']).$sep; // Document - Adresse 1 (facturation) $texteCommande .= str_replace(';',' ',$ligne['adresseFacturation2']).$sep; // Document - Adresse 2 (facturation) $texteCommande .= $sep; // Document - Adresse 3 (facturation) $texteCommande .= $sep; // Document - Adresse 4 (facturation) $texteCommande .= $ligne['codePostalFacturation'].$sep; // Document - Code postal (facturation) $texteCommande .= $ligne['villeFacturation'].$sep; // Document - Ville (facturation) $texteCommande .= $resDepFact[0]['nomDepartement'].$sep; // Document - Département (facturation) $texteCommande .= $resPaysFact[0]['countryCode'].$sep; // Document - Code Pays (facturation) $texteCommande .= strtoupper($ligne['nomFacturation']).' '.$ligne['prenomFacturation'].$sep; // Document - Nom (contact) (facturation) $texteCommande .= $sep; // Document - Prénom (facturation) $texteCommande .= $ligne['telFacturation'].$sep; // Document - Téléphone fixe (facturation) $texteCommande .= $sep; // Document - Téléphone portable (facturation) $texteCommande .= $sep; // Document - Fax (facturation) $texteCommande .= $ligne['emailFacturation'].$sep; // Document - E-mail (facturation) // LIVRAISON // Si commande en Relais $commande = new Tbq_commande(); $nomLivraisonRelai = ''; if( ($ligne['transport'] == $commande->LIVRAISON_DPD_PICKUP) ): $dpd = new Tbq_dpd(); $infosDPD = $dpd->getSelonIDdpdPickup($ligne['ID_commandeATraiter'], $ligne['ID_dpdPickup']); $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($infosDPD[0]['codePostal'],0,2)."'"; $resDepLiv = T_LAETIS_site::requeter($requete); $civiliteLivraison = ''; $nomLivraison = $nomLivraisonRelai = $infosDPD[0]['nom']; $adresseLivraison = str_replace(';',' ',$infosDPD[0]['adresse1']); $adresseLivraison2 = ''; $codePostalLivraison = $infosDPD[0]['codePostal']; $villeLivraison = $infosDPD[0]['ville']; $nomDepartement = $resDepLiv[0]['nomDepartement']; $countryCode = 'FR'; $telLivraison = ''; elseif($ligne['ID_tarifLivraison'] == $commande->ID_RELAIS_COLISSIMO): $dpd = new Tbq_colissimo(); $infosDPD = $dpd->getSelonIDColissimo($ligne['ID_commandeATraiter'], $ligne['ID_colissimo']); $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($infosDPD[0]['codePostal'],0,2)."'"; $resDepLiv = T_LAETIS_site::requeter($requete); $civiliteLivraison = ''; $nomLivraison = $nomLivraisonRelai = $infosDPD[0]['nom']; $adresseLivraison = str_replace(';',' ',$infosDPD[0]['adresse1']); $adresseLivraison2 = ''; $codePostalLivraison = $infosDPD[0]['codePostal']; $villeLivraison = $infosDPD[0]['ville']; $nomDepartement = $resDepLiv[0]['nomDepartement']; $countryCode = 'FR'; $telLivraison = ''; else: $requete = "SELECT boutique_typ_pays.countryCode FROM boutique_typ_pays WHERE ID = '".addslashes($ligne['ID_pays'])."'"; $resPaysLiv = T_LAETIS_site::requeter($requete); // Si France alors on cherche le nom du département if($resPaysLiv[0]['countryCode']=='FR'): $requete = "SELECT UPPER(boutique_typ_departement.nomDepartement) AS nomDepartement FROM boutique_typ_departement WHERE codeDepartement = '".substr($ligne['codePostalLivraison'],0,2)."'"; $resDepLiv = T_LAETIS_site::requeter($requete); else: $resDepLiv[0]['nomDepartement']=''; endif; $civiliteLivraison = self::$civilite[$ligne['civiliteLivraison']]; $nomLivraison = $ligne['nomLivraison'].' '.$ligne['prenomLivraison']; $adresseLivraison = str_replace(';',' ',$ligne['adresseLivraison']); $adresseLivraison2 = str_replace(';',' ',$ligne['adresseLivraison2']); $codePostalLivraison = $ligne['codePostalLivraison']; $villeLivraison = $ligne['villeLivraison']; $nomDepartement = $resDepLiv[0]['nomDepartement']; $countryCode = $resPaysLiv[0]['countryCode']; $telLivraison = $ligne['telLivraison']; endif; $texteCommande .= $nomLivraison.$sep; // Document - Nom (adresse) (livraison) $texteCommande .= $civiliteLivraison.$sep; // Document - Civilité (adresse) (livraison) $texteCommande .= $adresseLivraison.$sep; // Document - Adresse 1 (livraison) $texteCommande .= $adresseLivraison2.$sep; // Document - Adresse 2 (livraison) $texteCommande .= $sep; // Document - Adresse 3 (livraison) $texteCommande .= $sep; // Document - Adresse 4 (livraison) $texteCommande .= $codePostalLivraison.$sep; // Document - Code postal (livraison) $texteCommande .= $villeLivraison.$sep; // Document - Ville (livraison) $texteCommande .= $nomDepartement.$sep; // Document - Département (livraison) $texteCommande .= $countryCode.$sep; // Document - Code Pays (livraison) $texteCommande .= $nomLivraison.$sep; // Document - Nom (contact) (livraison) $texteCommande .= $sep; // Document - Prénom (livraison) $texteCommande .= $telLivraison.$sep; // Document - Téléphone fixe (livraison) $texteCommande .= $sep; // Document - Téléphone portable (livraison) $texteCommande .= $sep; // Document - Fax (livraison) $texteCommande .= $sep; // Document - E-mail (livraison) $texteCommande .= $territorialite.$sep; // Document - Territorialité $remise = 0; if($ligne['montantReductionTTC']>0): $remise = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligne['montantReductionTTC'], 20)); endif; $tauxTVA = 20; if($resPaysFact[0]['countryCode']=='CH'): $tauxTVA = 0; endif; /* COMMANDE */ $texteCommande .= $sep; // Document - Numéro de TVA intracommunautaire $texteCommande .= $sep; // Document - % remise $texteCommande .= $remise.$sep; // Document - Montant de la remise $texteCommande .= $sep; // Document - % escompte $texteCommande .= $sep; // Document - Montant de l'escompte $texteCommande .= $sep; // Document - Code frais de port $texteCommande .= Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligne['livraisonTTC'], 20)).$sep; // Document - Frais de port HT $texteCommande .= $tauxTVA.$sep; // Document - Taux de TVA port $texteCommande .= $sep; // Document - Code TVA port $texteCommande .= $sep; // Document - Port non soumis à escompte $texteCommande .= $sep; // Document - Total Brut HT $texteCommande .= Tbq_comptabilite::afficherFloat($ligne['montant']).$sep; // Document - Total TTC $texteCommande .= $sep; // Document - Notes $texteCommande .= $sep; // Document - Code commercial/collaborateur if($ligne['typePaiement']=='cb'): $p = 'CBC'; elseif($ligne['typePaiement']=='cheque'): $p = 'CH'; elseif($ligne['typePaiement']=='virement'): $p = 'VIRT'; elseif($ligne['typePaiement']=='fax'): $p = 'CH'; else: $p = 'CBC'; endif; $texteCommande .= $p.$sep; // Document - Code mode de règlement /* 1ERE LIGNE = NUMERO DE COMMANDE */ $textePremiereLigneCommande = $sep; // Ligne - Code ligne de document $textePremiereLigneCommande .= $sep; // Ligne - Code article $textePremiereLigneCommande .= "Commande ".$ligne['ID_commandeATraiter'].$sep; // Ligne - Description $textePremiereLigneCommande .= $sep; // Ligne - Date de livraison $textePremiereLigneCommande .= $sep; // Ligne - Quantité $textePremiereLigneCommande .= $sep; // Ligne - Taux de TVA $textePremiereLigneCommande .= $sep; // Ligne - Code TVA $textePremiereLigneCommande .= '4'.$sep; // Ligne - Type de ligne $textePremiereLigneCommande .= $sep; // Ligne - Quantité (série/lot) $textePremiereLigneCommande .= $sep; // Ligne - PV HT $textePremiereLigneCommande .= $sep; // Ligne - PV TTC $textePremiereLigneCommande .= $sep; // Ligne - % remise unitaire cumulé $textePremiereLigneCommande .= $sep; // Ligne - Montant de remise unitaire HT cumulé $textePremiereLigneCommande .= $sep; // Ligne - Montant Net HT $textePremiereLigneCommande .= $sep; // Ligne - Montant Net TTC $textePremiereLigneCommande .= $sep; // Ligne - Code commercial/collaborateur $textePremiereLigneCommande .= $sep; // Ligne - Codes des lignes de commandes $textePremiereLigneCommande .= $sep; // Ligne - Codes des commandes $textePremiereLigneCommande .= $sep; // Ligne - Quantités à livrer // 1ère ligne totale $texteComplet .= $texteCommande.$textePremiereLigneCommande.$sepLignes; $requeteLigneCommande = " SELECT boutique_obj_ligneCommande.*, boutique_obj_article.reference, boutique_obj_article.prixTTC AS prixTTCNormalHorsPromo FROM boutique_obj_ligneCommande LEFT JOIN boutique_obj_article ON (boutique_obj_ligneCommande.ID_article = boutique_obj_article.ID) WHERE boutique_obj_ligneCommande.ID_commande = '".$ligne['ID_commandeATraiter']."'"; $resSqlLigneCommande = T_LAETIS_site::requeter($requeteLigneCommande); /* LIGNES PRODUITS */ foreach($resSqlLigneCommande as $ligneCommande): if($resPaysFact[0]['countryCode']=='CH'): // Si le produit est en promotion, alors on affiche le prix "normal" et la remise if($ligneCommande['prixTTCNormalHorsPromo'] > $ligneCommande['tarif']): $montantLigneTTC = $montantLigneHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['prixTTCNormalHorsPromo'], $ligneCommande['tauxTVA'])); $montantRemiseUnitaireHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['prixTTCNormalHorsPromo'] - $ligneCommande['tarif'])); // Calcul : (Montant de la remise*100)/prix initial. $pourcentageRemiseUnitaire = Tbq_comptabilite::afficherFloat((Tbq_comptabilite::calculerHT($ligneCommande['prixTTCNormalHorsPromo'] - $ligneCommande['tarif']) * 100) / $ligneCommande['prixTTCNormalHorsPromo']); else: $montantLigneTTC = $montantLigneHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['tarif'], $ligneCommande['tauxTVA'])); $pourcentageRemiseUnitaire = 0; $montantRemiseUnitaireHT = 0; endif; $montantTotalLigneTTC = $montantTotalLigneHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['tarif'], $ligneCommande['tauxTVA']) * $ligneCommande['quantite']); $ligneCommande['tauxTVA'] = '0'; else: // Si le produit est en promotion, alors on affiche le prix "normal" et la remise if($ligneCommande['prixTTCNormalHorsPromo'] > $ligneCommande['tarif']): $montantLigneHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['prixTTCNormalHorsPromo'], $ligneCommande['tauxTVA'])); $montantLigneTTC = Tbq_comptabilite::afficherFloat($ligneCommande['prixTTCNormalHorsPromo']); $montantRemiseUnitaireHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['prixTTCNormalHorsPromo'] - $ligneCommande['tarif'])); // Calcul : (Montant de la remise*100)/prix initial. $pourcentageRemiseUnitaire = Tbq_comptabilite::afficherFloat((Tbq_comptabilite::calculerHT($ligneCommande['prixTTCNormalHorsPromo'] - $ligneCommande['tarif']) * 100) / $ligneCommande['prixTTCNormalHorsPromo']); else: $montantLigneHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['tarif'], $ligneCommande['tauxTVA'])); $montantLigneTTC = Tbq_comptabilite::afficherFloat($ligneCommande['tarif']); $pourcentageRemiseUnitaire = 0; $montantRemiseUnitaireHT = 0; endif; $montantTotalLigneHT = Tbq_comptabilite::afficherFloat(Tbq_comptabilite::calculerHT($ligneCommande['tarif'], $ligneCommande['tauxTVA']) * $ligneCommande['quantite']); $montantTotalLigneTTC = Tbq_comptabilite::afficherFloat($ligneCommande['tarif'] * $ligneCommande['quantite']); endif; $texteLigneCommande = $sep; // Ligne - Code ligne de document $texteLigneCommande .= $ligneCommande['reference'].$sep; // Ligne - Code article $texteLigneCommande .= str_replace(';', '-', $ligneCommande['titre_article']).$sep; // Ligne - Description $texteLigneCommande .= $sep; // Ligne - Date de livraison $texteLigneCommande .= $ligneCommande['quantite'].$sep; // Ligne - Quantité $texteLigneCommande .= Tbq_comptabilite::afficherFloat($ligneCommande['tauxTVA']).$sep; // Ligne - Taux de TVA $texteLigneCommande .= $sep; // Ligne - Code TVA $texteLigneCommande .= '2'.$sep; // Ligne - Type de ligne $texteLigneCommande .= $sep; // Ligne - Quantité (série/lot) $texteLigneCommande .= $montantLigneHT.$sep; // Ligne - PV HT $texteLigneCommande .= $montantLigneTTC.$sep; // Ligne - PV TTC $texteLigneCommande .= $pourcentageRemiseUnitaire.$sep; // Ligne - % remise unitaire cumulé $texteLigneCommande .= $montantRemiseUnitaireHT.$sep; // Ligne - Montant de remise unitaire HT cumulé $texteLigneCommande .= $montantTotalLigneHT.$sep; // Ligne - Montant Net HT $texteLigneCommande .= $montantTotalLigneTTC.$sep; // Ligne - Montant Net TTC $texteLigneCommande .= $sep; // Ligne - Code commercial/collaborateur $texteLigneCommande .= $sep; // Ligne - Codes des lignes de commandes $texteLigneCommande .= $sep; // Ligne - Codes des commandes $texteLigneCommande .= $sep; // Ligne - Quantités à livrer // ligne totale $texteComplet .= $texteCommande.$texteLigneCommande.$sepLignes; endforeach; /* 3IEME LIGNE = BLANCHE*/ $texteTroisiemeLigneCommande = $sep; // Ligne - Code ligne de document $texteTroisiemeLigneCommande .= $sep; // Ligne - Code article $texteTroisiemeLigneCommande .= $sep; // Ligne - Description $texteTroisiemeLigneCommande .= $sep; // Ligne - Date de livraison $texteTroisiemeLigneCommande .= $sep; // Ligne - Quantité $texteTroisiemeLigneCommande .= $sep; // Ligne - Taux de TVA $texteTroisiemeLigneCommande .= $sep; // Ligne - Code TVA $texteTroisiemeLigneCommande .= '0'.$sep; // Ligne - Type de ligne $texteTroisiemeLigneCommande .= $sep; // Ligne - Quantité (série/lot) $texteTroisiemeLigneCommande .= $sep; // Ligne - PV HT $texteTroisiemeLigneCommande .= $sep; // Ligne - PV TTC $texteTroisiemeLigneCommande .= $sep; // Ligne - % remise unitaire cumulé $texteTroisiemeLigneCommande .= $sep; // Ligne - Montant de remise unitaire HT cumulé $texteTroisiemeLigneCommande .= $sep; // Ligne - Montant Net HT $texteTroisiemeLigneCommande .= $sep; // Ligne - Montant Net TTC $texteTroisiemeLigneCommande .= $sep; // Ligne - Code commercial/collaborateur $texteTroisiemeLigneCommande .= $sep; // Ligne - Codes des lignes de commandes $texteTroisiemeLigneCommande .= $sep; // Ligne - Codes des commandes $texteTroisiemeLigneCommande .= $sep; // Ligne - Quantités à livrer // 3ieme ligne totale $texteComplet .= $texteCommande.$texteTroisiemeLigneCommande.$sepLignes; /* 4IEME LIGNE = INFO LIVRAISON */ $texteQuatriemeLigneCommande = $sep; // Ligne - Code ligne de document $texteQuatriemeLigneCommande .= $sep; // Ligne - Code article $texteQuatriemeLigneCommande .= $ligne['typeLivraison'].' '.$nomLivraisonRelai.$sep; // Ligne - Description $texteQuatriemeLigneCommande .= $sep; // Ligne - Date de livraison $texteQuatriemeLigneCommande .= $sep; // Ligne - Quantité $texteQuatriemeLigneCommande .= $sep; // Ligne - Taux de TVA $texteQuatriemeLigneCommande .= $sep; // Ligne - Code TVA $texteQuatriemeLigneCommande .= '4'.$sep; // Ligne - Type de ligne $texteQuatriemeLigneCommande .= $sep; // Ligne - Quantité (série/lot) $texteQuatriemeLigneCommande .= $sep; // Ligne - PV HT $texteQuatriemeLigneCommande .= $sep; // Ligne - PV TTC $texteQuatriemeLigneCommande .= $sep; // Ligne - % remise unitaire cumulé $texteQuatriemeLigneCommande .= $sep; // Ligne - Montant de remise unitaire HT cumulé $texteQuatriemeLigneCommande .= $sep; // Ligne - Montant Net HT $texteQuatriemeLigneCommande .= $sep; // Ligne - Montant Net TTC $texteQuatriemeLigneCommande .= $sep; // Ligne - Code commercial/collaborateur $texteQuatriemeLigneCommande .= $sep; // Ligne - Codes des lignes de commandes $texteQuatriemeLigneCommande .= $sep; // Ligne - Codes des commandes $texteQuatriemeLigneCommande .= $sep; // Ligne - Quantités à livrer // 1ère ligne totale $texteComplet .= $texteCommande.$texteQuatriemeLigneCommande.$sepLignes; $requete = "UPDATE boutique_obj_commande SET envoyeeEnCompta = 1 WHERE ID = '".$ligne['ID_commandeATraiter']."'"; T_LAETIS_site::requeter($requete); $cptDocument++; endforeach; if($texteComplet): // Formatage du nom de fichier $nomFichier = 'exportEBP-'.date('Y-m-d-H-i-s'); // CREATION DU FICHIER TXT //@unlink($_SERVER['DOCUMENT_ROOT'].self::REP_FICHIER_COMPTA_CLIENT.$nomFichier.".txt"); if ($fp = fopen($_SERVER['DOCUMENT_ROOT'].self::REP_FICHIER_COMPTA_FACTURE.$nomFichier.".txt", "w")): fputs($fp, $texteComplet); fclose($fp); endif; endif; return $nomFichier.".txt"; } // FIN function genererFichierClient() static function traiterDateCommande($mysqlDateHeure) { list($date, $heure) = explode(" ", $mysqlDateHeure); list($year, $month, $day) = explode("-", $date); return $day.'/'.$month.'/'.$year; } // FIN function traiterDateCommande($mysqlDateHeure) /** * private * Formate la date et l'heure de la commande * @return string Date et heure de la commande affichées de façon + humaine */ static function calculerHT($montant, $tauxTVA=20) { return($montant/(($tauxTVA/100)+1)); } // FIN static function calculerHT($montant, $tauxTVA=20) /** * private * Pour la présentation d'un chiffre float * @param * @return le chiffre bien affiché */ static function afficherFloat($chiffre) { return number_format($chiffre, 2, ',', ' '); } // FIN function afficherFloat($chiffre) } ?> "janvier", "02"=>"février", "03"=>"mars", "04"=>"avril", "05"=>"mai", "06"=>"juin", "07"=>"juillet", "08"=>"août", "09"=>"septembre", "10"=>"octobre", "11"=>"novembre", "12"=>"décembre"); /** * @const string REP_SAVE_FICHIERS_FACTURES Répertoire pour les factures * @access public */ const REP_SAVE_FICHIERS_FACTURES = "/boutique/uploads/facture/"; /** * @const string REP_SAVE_FICHIERS_BONS_LIVRAISON Répertoire pour les bons de livraison * @access public */ const REP_SAVE_FICHIERS_BONS_LIVRAISON = "/boutique/uploads/bonLivraison/"; /** * Constructeur * Constructeur PHP5 * * @param entier $ID Par défaut 0 * @author Christophe Raffy */ public function __construct($ID = 0) { $this->ID = $ID; if($ID>0) { $requete = "SELECT * FROM boutique_obj_facture WHERE ID='".$this->ID."'"; $resultats = T_LAETIS_site::requeter($requete); $this->initialiser($resultats[0]); } } /** * Initialisation de l'objet * L'initialisation se fait a partir du tableau des attributs * * @author Christophe Raffy */ public function initialiser($enregistrement) { // Si on a donné un parametre, on instancie par rapport a la base foreach ($enregistrement as $nomChamp => $valeur) { $this->$nomChamp = stripslashes($valeur); } return $this; } // FIN function initialiser($enregistrement) /** * Destructeur * @author Christophe Raffy */ public function __destruct () {} /** * Enregistre l'objet en BD * Les attributs doivent être remplis * * @author Christophe Raffy */ public function enregistrer($valeurs) { T_LAETIS_site::modifierAttributs($valeurs); $attributs = get_object_vars($this); // on donne les champs a mettre a jour (meme syntaxe pour le UPDATE et le INSERT) $contenuRequete = ""; $champsNonEnregistres = array('mois'); foreach ($attributs as $nom=>$valeur) { if ( !in_array( $nom, $champsNonEnregistres ) ) { $valeur = "\"".addslashes($valeur)."\""; $contenuRequete .= " ,".$nom."=".$valeur; } } // on enlève l'espace et la virgule du début $contenuRequete = substr($contenuRequete,2); if ($this->ID>0) { // c'est un objet qui existe déjà en BD $requete = "UPDATE boutique_obj_facture SET "; $requete .= $contenuRequete." WHERE ID=".$this->ID; $resSql = T_LAETIS_site::requeter($requete); } else { // c'est un objet qui n'existe pas en BD $requete = "INSERT INTO boutique_obj_facture SET "; $requete .= $contenuRequete; T_LAETIS_site::requeter($requete); $this->ID = T_LAETIS_site::last_insert_id(); } return $this->ID; } // FIN function enregistrer() /** * Liste les objets * @return array Tableau de Tbq_facture * @author Christophe Raffy */ public function lister() { $requete = "SELECT * FROM boutique_obj_facture ORDER BY ID ASC"; $resSql = T_LAETIS_site::requeter($requete); foreach ($resSql as $ligne) { $resultats[] = new Tbq_gamme($ligne['ID']); } return ($resultats); } public function facturer($ID_commande, $afficher = 0) { $ID_facture = ''; $resultats = T_LAETIS_site::requeter(" SELECT ID FROM boutique_obj_facture WHERE ID_commande = ". addslashes( $ID_commande ).""); if(! $resultats[0]['ID']): $numero = $this->getProchainNumeroFacture(date("Y")); T_LAETIS_site::requeter(" INSERT INTO boutique_obj_facture (ID_commande, factureCode, factureNumero, annee, date_facturation) VALUES (". addslashes( $ID_commande ).", 'FA', ". addslashes( $numero ).", YEAR(CURDATE()), NOW() )"); $ID_facture = T_LAETIS_site::last_insert_id(); endif; return $ID_facture; //$this->genererFacture($ID_commande, $afficher); } // FIN function facturer() /* Renvoie le numéro de facture libre à insérer */ public function getProchainNumeroFacture($annee) { $resultats = T_LAETIS_site::requeter(" SELECT MAX(factureNumero)+1 AS numFacture FROM `boutique_obj_facture` WHERE boutique_obj_facture.annee = ". addslashes( $annee ) .""); // A RETIRER if(! $resultats[0]['numFacture']): $resultats[0]['numFacture'] = 1; endif; return($resultats[0]['numFacture']); } // FIN function getProchainNumeroFacture($annee) public function afficherNumeroFacture($ID_commande) { $resultats = T_LAETIS_site::requeter(" SELECT CONCAT(factureCode, annee, '-', factureNumero) AS numFacture FROM `boutique_obj_facture` WHERE boutique_obj_facture.ID_commande = ". addslashes( $ID_commande ) ." AND factureNumero != 0 "); return($resultats[0]['numFacture']); } // FIN function afficherNumeroFacture($ID_commande) public function getNumeroFactureSelonCommande($ID_commande) { $resultats = T_LAETIS_site::requeter(" SELECT factureNumero FROM boutique_obj_facture WHERE ID_commande = ". addslashes( $ID_commande ).""); return ($resultats[0]['factureNumero']); } // FIN function getNumeroFactureSelonCommande($ID_commande) function importerFactureEBP() { $contenu = array(); // ouverture du fichier if($FILE = fopen($_SERVER['DOCUMENT_ROOT']."/boutique/admin/traitements/factures-ebp-TRAITE.csv", "r")): $cpt = 0; // lire ligne par ligne et coupe colonne par colonne while($ligne = fgetcsv($FILE, 2024, ';')): $contenu[$cpt]['numeroF'] = $ligne[0]; $contenu[$cpt]['date'] = $ligne[1]; $contenu[$cpt]['codeClient'] = $ligne[2]; $contenu[$cpt]['numeroC'] = $ligne[3]; $cpt++; endwhile; fclose($FILE); else: echo "ERREUR !! Impossible d'ouvrir ce fichier .CSV !!"; endif; foreach($contenu as $c): $c['numeroF'] = str_replace('FA2015', '', $c['numeroF']); list($day, $month, $year) = explode("/", $c['date']); $c['date'] = $year.'-'.$month.'-'.$day.' 00:00:00'; $requete = "INSERT INTO `boutique_obj_facture` (ID_commande, factureCode, factureNumero, annee, date_facturation, envoyeeEnCompta) VALUES ('".$c['numeroC']."', 'FA', '".$c['numeroF']."', '2015', '".$c['date']."', '1')"; echo $requete.'
'; //T_LAETIS_site::requeter($requete); endforeach; } // FIN function importerCodeClientEBP() } ?>