function lister_declinaisons($critere, $order) { $declinaison = new Declinaison(); $query = "select * from {$declinaison->table} order by {$critere} {$order}"; $resul = $declinaison->query($query); while ($resul && ($row = $declinaison->fetch_object($resul))) { $declinaisondesc = new Declinaisondesc(); $declinaisondesc->charger($row->id); $fond = "ligne_" . ($i++ % 2 ? "claire" : "fonce") . "_rub"; ?> <ul class="<?php echo $fond; ?> "> <li style="width:770px;"><span id="titredecli_<?php echo $row->id; ?> " class="texte_edit"><?php echo $declinaisondesc->titre; ?> </span></li> <li style="width:37px;"><a href="<?php echo "declinaison_modifier.php?id={$row->id}"; ?> "><?php echo trad('editer', 'admin'); ?> </a></li> <li style="width:71px;"> <div class="bloc_classement"> <div class="classement"><a href="declinaison_modifier.php?id=<?php echo $row->id; ?> &action=modclassement&type=M"><img src="gfx/up.gif" border="0" /></a></div> <div class="classement"><span id="classementdecli_<?php echo $row->id; ?> " class="classement_edit"><?php echo $row->classement; ?> </span></div> <div class="classement"><a href="declinaison_modifier.php?id=<?php echo $row->id; ?> &action=modclassement&type=D"><img src="gfx/dn.gif" border="0" /></a></div> </div> </li> <li style="width:37px; text-align:center;"><a onclick="return suppr_declinaison(<?php echo $row->id; ?> );" href="<?php echo "declinaison_modifier.php?id={$row->id}&action=supprimer"; ?> "><img src="gfx/supprimer.gif" width="9" height="9" border="0" /></a></li> </ul> <?php } }
function boucleDecval($texte, $args) { $article = lireTag($args, "article", "int"); $declinaison = lireTag($args, "declinaison", "int"); $ref = lireTag($args, "ref", "string"); if ($article == "") { return ""; } $res = ""; $tdeclinaison = new Declinaison(); $tdeclinaisondesc = new Declinaisondesc(); $tdeclidisp = new Declidisp(); $tdeclidispdesc = new Declidispdesc(); foreach ($_SESSION['navig']->panier->tabarticle[$article]->perso as $tperso) { if ($declinaison != "" && $declinaison != $tperso->declinaison) { continue; } $tdeclinaison->charger($tperso->declinaison); $tdeclinaisondesc->charger($tdeclinaison->id); // recup valeur declidisp ou string if ($tdeclinaison->isDeclidisp($tperso->declinaison)) { $tdeclidisp->charger($tperso->valeur); $tdeclidispdesc->charger_declidisp($tdeclidisp->id); $valeur = $tdeclidispdesc->titre; } else { $valeur = $tperso->valeur; } $temp = str_replace("#DECLITITRE", "{$tdeclinaisondesc->titre}", $texte); $temp = str_replace("#DECLINAISON", "{$tdeclinaison->id}", $temp); $temp = str_replace("#REF", "{$ref}", $temp); $temp = str_replace("#ARTICLE", "{$article}", $temp); $temp = str_replace("#VALEUR", "{$valeur}", $temp); $temp = str_replace("#DECLIDISP", "{$tdeclidisp->id}", $temp); $res .= $temp; } return $res; }
function ajouter($lang, $ref, $prix, $ecotaxe, $promo, $prix2, $rubrique, $nouveaute, $perso, $poids, $stock, $tva, $ligne, $titre, $chapo, $description, $postscriptum) { $ref = str_replace(" ", "", $ref); $ref = str_replace("/", "", $ref); $ref = str_replace("+", "", $ref); $ref = str_replace(".", "-", $ref); $ref = str_replace(",", "-", $ref); $ref = str_replace(";", "-", $ref); $ref = str_replace("'", "", $ref); $ref = str_replace("\n", "", $ref); $ref = str_replace("\"", "", $ref); $produit = new Produit(); $produit->charger($ref); if ($produit->id) { redirige("produit_modifier.php?rubrique={$rubrique}&existe=1"); } $produit = new Produit(); $prix = str_replace(",", ".", $prix); $produit->ref = $ref; $produit->datemodif = date("Y-m-d H:i:s"); $produit->prix = $prix; $produit->prix2 = $prix2; if ($produit->prix2 == "") { $produit->prix2 = $prix; } $produit->ecotaxe = $ecotaxe; $produit->rubrique = $rubrique; if ($promo == "on") { $produit->promo = 1; } else { $produit->promo = 0; } if ($nouveaute == "on") { $produit->nouveaute = 1; } else { $produit->nouveaute = 0; } if ($ligne == "on") { $produit->ligne = 1; } else { $produit->ligne = 0; } $produit->perso = $perso; $produit->poids = $poids; $produit->stock = $stock; $produit->tva = str_replace(",", ".", $tva); $lastid = $produit->add(); $produit->id = $lastid; $produitdesc = new Produitdesc(); $produitdesc->chapo = $chapo; $produitdesc->description = $description; $produitdesc->postscriptum = $postscriptum; $produitdesc->produit = $lastid; $produitdesc->lang = $lang; $produitdesc->titre = $titre; $produitdesc->chapo = str_replace("\n", "<br />", $produitdesc->chapo); $produitdesc->add(); $rubcaracteristique = new Rubcaracteristique(); $caracteristiquedesc = new Caracteristiquedesc(); $caracval = new Caracval(); $query = "select * from {$rubcaracteristique->table} where rubrique='" . $produit->rubrique . "'"; $resul = mysql_query($query); while ($row = mysql_fetch_object($resul)) { $caracval = new Caracval(); $deb = "caract"; $deb2 = "typecaract"; $val = $row->caracteristique; $var = $deb . $val; $var2 = $deb2 . $val; global ${$var}; global ${$var2}; $query2 = "delete from {$caracval->table} where produit='" . $produit->id . "' and caracteristique='" . $row->caracteristique . "'"; $resul2 = mysql_query($query2); if (${$var} != "") { if (${$var2} == "c") { foreach (${$var} as $selectval) { $caracval->produit = $lastid; $caracval->caracteristique = $row->caracteristique; $caracval->caracdisp = $selectval; $caracval->add(); } } else { $caracval->produit = $lastid; $caracval->caracteristique = $row->caracteristique; $caracval->valeur = ${$var}; $caracval->add(); } } } $rubdeclinaison = new Rubdeclinaison(); $declinaisondesc = new Declinaisondesc(); $declidisp = new Declidisp(); $declidispdesc = new Declidispdesc(); $query = "select * from {$rubdeclinaison->table} where rubrique='" . $rubrique . "'"; $resul = mysql_query($query); while ($row = mysql_fetch_object($resul)) { $declinaisondesc->charger($row->declinaison); $query2 = "select * from {$declidisp->table} where declinaison='{$row->declinaison}'"; $resul2 = mysql_query($query2); $nbres = mysql_num_rows($resul2); while ($row2 = mysql_fetch_object($resul2)) { $stock = new Stock(); $stock->declidisp = $row2->id; $stock->produit = $lastid; $stock->valeur = 0; $stock->surplus = 0; $stock->add(); } } $produitdesc->reecrire(); ActionsModules::instance()->appel_module("ajoutprod", $produit); redirige($_SERVER['PHP_SELF'] . "?ref=" . $produit->ref . "&rubrique=" . $produit->rubrique . "&lang=" . $lang); }
public function createOrder($facturation_raison, $facturation_entreprise, $facturation_nom, $facturation_prenom, $facturation_adresse1, $facturation_adresse2, $facturation_adresse3, $facturation_cpostal, $facturation_ville, $facturation_tel, $facturation_pays, $livraison_raison, $livraison_entreprise, $livraison_nom, $livraison_prenom, $livraison_adresse1, $livraison_adresse2, $livraison_adresse3, $livraison_cpostal, $livraison_ville, $livraison_tel, $livraison_pays, $type_paiement, $type_transport, $fraisport, $remise, $client_selected, $ref_client, $email, \Panier $panier, $applyClientDiscount, $callMail, $callPayment) { $client = new Client(); if ($client_selected == 1) { $clientOK = $client->charger_ref($ref_client); } else { if ($email != '' && $client->charger_mail($email)) { $existeDeja = 1; } elseif ($email != '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) { $badFormat = 1; } else { $client->email = $email; $client->raison = $facturation_raison; $client->entreprise = $facturation_entreprise; $client->prenom = $facturation_prenom; $client->nom = $facturation_nom; $client->adresse1 = $facturation_adresse1; $client->adresse2 = $facturation_adresse2; $client->adresse3 = $facturation_adresse3; $client->cpostal = $facturation_cpostal; $client->ville = $facturation_ville; $client->tel = $facturation_tel; $client->pays = $facturation_pays; $pass = genpass(8); $client->motdepasse = $pass; } } $facturationAddress = new Venteadr(); $facturationAddress->raison = $facturation_raison; $facturationAddress->entreprise = $facturation_entreprise; $facturationAddress->prenom = $facturation_prenom; $facturationAddress->nom = $facturation_nom; $facturationAddress->adresse1 = $facturation_adresse1; $facturationAddress->adresse2 = $facturation_adresse2; $facturationAddress->adresse3 = $facturation_adresse3; $facturationAddress->cpostal = $facturation_cpostal; $facturationAddress->ville = $facturation_ville; $facturationAddress->tel = $facturation_tel; $facturationAddress->pays = $facturation_pays; $livraisonAddress = new Venteadr(); $livraisonAddress->raison = $livraison_raison; $livraisonAddress->entreprise = $livraison_entreprise; $livraisonAddress->prenom = $livraison_prenom; $livraisonAddress->nom = $livraison_nom; $livraisonAddress->adresse1 = $livraison_adresse1; $livraisonAddress->adresse2 = $livraison_adresse2; $livraisonAddress->adresse3 = $livraison_adresse3; $livraisonAddress->cpostal = $livraison_cpostal; $livraisonAddress->ville = $livraison_ville; $livraisonAddress->tel = $livraison_tel; $livraisonAddress->pays = $livraison_pays; $order = new Commande(); $order->date = date("Y-m-d H:i:s"); $order->livraison = "L" . date("ymdHis") . strtoupper(ereg_caracspec(substr($client->prenom, 0, 3))); $order->transport = $type_transport; $order->paiement = $type_paiement; $order->statut = Commande::NONPAYE; $order->transaction = genid($order->id, 6); $module_paiement = new Modules(); $module_paiement->charger_id($type_paiement); if ($facturationAddress->raison != "" && $facturationAddress->prenom != "" && $facturationAddress->nom != "" && $facturationAddress->adresse1 != "" && $facturationAddress->cpostal != "" && $facturationAddress->ville != "" && $facturationAddress->pays != "" && $livraisonAddress->raison != "" && $livraisonAddress->prenom != "" && $livraisonAddress->nom != "" && $livraisonAddress->adresse1 != "" && $livraisonAddress->cpostal != "" && $livraisonAddress->ville != "" && $livraisonAddress->pays != "" && $order->transport != "" && is_numeric($fraisport) && $fraisport >= 0 && is_numeric($remise) && $remise >= 0 && $module_paiement->actif && $order->paiement != "" && $panier->nbart > 0 && ($clientOK || $client_selected != 1 && !$existeDeja && !$badFormat) && $email != '') { $facturationAddress->id = $facturationAddress->add(); $livraisonAddress->id = $livraisonAddress->add(); if (!$client->id) { $client->crypter(); $client->id = $client->add(); $client->ref = date("ymdHi") . genid($client->id, 6); $client->maj(); ClientAdmin::getInstance()->sendMailCreation($client, $pass); } $devise = ActionsDevises::instance()->get_devise_courante(); $order->adrfact = $facturationAddress->id; $order->adrlivr = $livraisonAddress->id; $order->client = $client->id; $order->devise = $devise->id; $order->taux = $devise->taux; $order->lang = ActionsLang::instance()->get_id_langue_courante(); $order->id = $order->add(); $order->ref = "C" . date("ymdHi") . genid($order->id, 6); $order->maj(); $total = 0; foreach ($panier->tabarticle as $pos => $article) { $venteprod = new Venteprod(); $dectexte = "\n"; $stock = new Stock(); foreach ($article->perso as $perso) { $declinaison = new Declinaison(); $declinaisondesc = new Declinaisondesc(); if (is_numeric($perso->valeur) && ActionsModules::instance()->instancier($module_paiement->nom)->defalqcmd) { // diminution des stocks de déclinaison si on est sur un module de paiement qui défalque de suite $stock->charger($perso->valeur, $article->produit->id); $stock->valeur -= $article->quantite; $stock->maj(); } $declinaison->charger($perso->declinaison); $declinaisondesc->charger($declinaison->id); // recup valeur declidisp ou string if ($declinaison->isDeclidisp($perso->declinaison)) { $declidisp = new Declidisp(); $declidispdesc = new Declidispdesc(); $declidisp->charger($perso->valeur); $declidispdesc->charger_declidisp($declidisp->id); $dectexte .= "- " . $declinaisondesc->titre . " : " . $declidispdesc->titre . "\n"; } else { $dectexte .= "- " . $declinaisondesc->titre . " : " . $perso->valeur . "\n"; } } // diminution des stocks classiques si on est sur un module de paiement qui défalque de suite $produit = new Produit($article->produit->ref); if (ActionsModules::instance()->instancier($module_paiement->nom)->defalqcmd) { $produit->stock -= $article->quantite; $produit->maj(); } $venteprod->quantite = $article->quantite; $venteprod->prixu = $article->produit->prix; $venteprod->ref = $article->produit->ref; $venteprod->titre = $article->produitdesc->titre . " " . $dectexte; $venteprod->chapo = $article->produitdesc->chapo; $venteprod->description = $article->produitdesc->description; $venteprod->tva = $article->produit->tva; $venteprod->commande = $order->id; $venteprod->id = $venteprod->add(); $correspondanceParent[] = $venteprod->id; // ajout dans ventedeclisp des declidisp associées au venteprod foreach ($article->perso as $perso) { $declinaison = new Declinaison(); $declinaison->charger($perso->declinaison); // si declidisp (pas un champs libre) if ($declinaison->isDeclidisp($perso->declinaison)) { $vdec = new Ventedeclidisp(); $vdec->venteprod = $venteprod->id; $vdec->declidisp = $perso->valeur; $vdec->add(); } } ActionsModules::instance()->appel_module("apresVenteprodAdmin", $venteprod, $pos); $total += $venteprod->prixu * $venteprod->quantite; } foreach ($correspondanceParent as $id_panier => $id_venteprod) { if ($panier->tabarticle[$id_panier]->parent >= 0) { $venteprod->charger($id_venteprod); $venteprod->parent = $correspondanceParent[$panier->tabarticle[$id_panier]->parent]; $venteprod->maj(); } } if ($client->pourcentage > 0 && $applyClientDiscount) { $order->remise = $total * $client->pourcentage / 100; } $order->remise += $remise; if ($order->remise > $total) { $order->remise = $total; } $order->port = $fraisport; $order->maj(); ActionsModules::instance()->appel_module("aprescommandeadmin", $order); if ($callMail) { ActionsModules::instance()->instancier($module_paiement->nom)->mail($order); } if ($callPayment) { ActionsModules::instance()->instancier($module_paiement->nom)->paiement($order); } else { self::getInstance($order->id)->redirect(); } } else { if ($existeDeja) { throw new TheliaAdminException("error creating order", TheliaAdminException::EMAIL_ALREADY_EXISTS); } if ($badFormat) { throw new TheliaAdminException("error creating order", TheliaAdminException::EMAIL_FORMAT_ERROR); } else { throw new TheliaAdminException("error creating order", TheliaAdminException::ORDER_ADD_ERROR); } } }
function ajouter($lang, $id, $titre, $chapo, $description, $tabdisp, $ajoutrub) { $json = new Services_JSON(); $tabdisp = stripslashes($tabdisp); $tabdisp = $json->decode($tabdisp); $declinaison = new Declinaison(); $declinaison->charger($id); if ($declinaison->id) { return; } $declinaison = new Declinaison(); $query = "select max(classement) as maxClassement from {$declinaison->table}"; $resul = $declinaison->query($query); $maxClassement = $resul ? $declinaison->get_result($resul, 0, "maxClassement") : 0; $declinaison->id = $id; $declinaison->classement = $maxClassement + 1; $lastid = $declinaison->add(); $declinaison->id = $lastid; $declinaisondesc = new Declinaisondesc(); $declinaisondesc->chapo = $chapo; $declinaisondesc->description = $description; $declinaisondesc->declinaison = $lastid; $declinaisondesc->lang = $lang; $declinaisondesc->titre = $titre; $declinaisondesc->chapo = str_replace("\n", "<br/>", $declinaisondesc->chapo); $declinaisondesc->description = str_replace("\n", "<br/>", $declinaisondesc->description); $declinaisondesc->add(); $declidisp = new Declidisp(); $declidispdesc = new Declidispdesc(); for ($i = 0; $i < count($tabdisp); $i++) { $declidisp->declinaison = $lastid; $lastidc = $declidisp->add(); $declidispdesc->declidisp = $lastidc; $declidispdesc->lang = $lang; $declidispdesc->titre = $tabdisp[$i]->texte; $declidispdesc->add(); } if (intval($ajoutrub) == 1) { $rubrique = new Rubrique(); $query = "select * from {$rubrique->table}"; $resul = $rubrique->query($query); while ($resul && ($row = $rubrique->fetch_object($resul))) { $rubdeclinaison = new Rubdeclinaison(); $rubdeclinaison->rubrique = $row->id; $rubdeclinaison->declinaison = $lastid; $rubdeclinaison->add(); } } ActionsModules::instance()->appel_module("ajdeclinaison", $declinaison); redirige($_SERVER['PHP_SELF'] . "?id=" . $lastid); }
/* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 3 of the License */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* */ /*************************************************************************************/ require_once __DIR__ . "/../pre.php"; require_once __DIR__ . "/../auth.php"; require_once __DIR__ . "/../../fonctions/divers.php"; if (!est_autorise("acces_configuration")) { exit; } header('Content-Type: text/html; charset=utf-8'); $data = explode('_', $_POST['id']); $modif = $data[0]; $id = intval($data[1]); if ($modif == "titredecli") { $objdesc = new Declinaisondesc(); if ($objdesc->charger($id)) { $objdesc->titre = $_POST['value']; $objdesc->maj(); echo $objdesc->titre; } }
public function ajouter($titre, $ajoutrub) { $this->classement = $this->getMaxRank() + 1; $this->id = $this->add(); $declinaisondesc = new Declinaisondesc(); $declinaisondesc->titre = $titre; $declinaisondesc->declinaison = $this->id; $declinaisondesc->lang = ActionsAdminLang::instance()->get_id_langue_courante(); $declinaisondesc->id = $declinaisondesc->add(); if (intval($ajoutrub) == 1) { $query = "select id from " . Rubrique::TABLE; foreach ($this->query_liste($query) as $row) { $rubdeclinaison = new Rubdeclinaison(); $rubdeclinaison->rubrique = $row->id; $rubdeclinaison->declinaison = $this->id; $rubdeclinaison->add(); } } ActionsModules::instance()->appel_module("ajdeclinaison", new Declinaison($this->id)); redirige("declinaison_modifier.php?id=" . $this->id . "&lang=" . ActionsAdminLang::instance()->get_id_langue_courante()); }
?> </tbody> </table> </div> <div class="span6"> <table class="table table-striped"> <caption> <h3><?php echo trad('GESTION_DECLINAISONS', 'admin'); ?> </h3> </caption> </table> <?php $declinaisondesc = new Declinaisondesc(); $declidispdesc = new Declidispdesc(); $query = "select rd.declinaison from " . Rubdeclinaison::TABLE . " rd left join " . Declinaison::TABLE . " d on rd.declinaison=d.id where rd.rubrique=" . $produit->rubrique . " order by d.classement"; foreach ($produit->query_liste($query) as $row) { $declinaisondesc->charger($row->declinaison); $query2 = "select d.* from " . Declidisp::TABLE . " d left join " . Declidispdesc::TABLE . " dd on dd.declidisp=d.id where dd.lang=" . $lang . " and declinaison=" . $row->declinaison . " order by dd.classement"; $resul2 = $produit->query($query2); ?> <table class="table table-striped"> <thead> <tr> <th><?php echo $declinaisondesc->titre; ?> </th> <th><?php
function paiement($type_paiement) { if (!$_SESSION['navig']->client->id || $_SESSION['navig']->panier->nbart < 1) { redirige(urlfond()); } $total = 0; $nbart = 0; $poids = 0; $unitetr = 0; ActionsModules::instance()->appel_module("avantcommande"); $modules = new Modules(); $modules->charger_id($type_paiement); if (!$modules->actif) { return 0; } try { $modpaiement = ActionsModules::instance()->instancier($modules->nom); $commande = new Commande(); $commande->transport = $_SESSION['navig']->commande->transport; $commande->client = $_SESSION['navig']->client->id; $commande->remise = 0; $devise = ActionsDevises::instance()->get_devise_courante(); $commande->devise = $devise->id; $commande->taux = $devise->taux; $client = new Client(); $client->charger_id($_SESSION['navig']->client->id); $adr = new Venteadr(); $adr->raison = $client->raison; $adr->entreprise = $client->entreprise; $adr->nom = $client->nom; $adr->prenom = $client->prenom; $adr->adresse1 = $client->adresse1; $adr->adresse2 = $client->adresse2; $adr->adresse3 = $client->adresse3; $adr->cpostal = $client->cpostal; $adr->ville = $client->ville; $adr->tel = $client->telfixe . " " . $client->telport; $adr->pays = $client->pays; $adrcli = $adr->add(); $commande->adrfact = $adrcli; $adr = new Venteadr(); $livraison = new Adresse(); if ($livraison->charger($_SESSION['navig']->adresse)) { $adr->raison = $livraison->raison; $adr->entreprise = $livraison->entreprise; $adr->nom = $livraison->nom; $adr->prenom = $livraison->prenom; $adr->adresse1 = $livraison->adresse1; $adr->adresse2 = $livraison->adresse2; $adr->adresse3 = $livraison->adresse3; $adr->cpostal = $livraison->cpostal; $adr->ville = $livraison->ville; $adr->tel = $livraison->tel; $adr->pays = $livraison->pays; } else { $adr->raison = $client->raison; $adr->entreprise = $client->entreprise; $adr->nom = $client->nom; $adr->prenom = $client->prenom; $adr->adresse1 = $client->adresse1; $adr->adresse2 = $client->adresse2; $adr->adresse3 = $client->adresse3; $adr->cpostal = $client->cpostal; $adr->ville = $client->ville; $adr->tel = $client->telfixe . " " . $client->telport; $adr->pays = $client->pays; } $adrlivr = $adr->add(); $commande->adrlivr = $adrlivr; $commande->facture = 0; $commande->statut = Commande::NONPAYE; $commande->paiement = $type_paiement; $commande->lang = ActionsLang::instance()->get_id_langue_courante(); $commande->id = $commande->add(); $pays = new Pays(); $pays->charger($adr->pays); $correspondanceParent = array(null); foreach ($_SESSION['navig']->panier->tabarticle as $pos => &$article) { $venteprod = new Venteprod(); $dectexte = "\n"; $produit = new Produit(); $stock = new Stock(); foreach ($article->perso as $perso) { $declinaison = new Declinaison(); $declinaisondesc = new Declinaisondesc(); if (is_numeric($perso->valeur) && $modpaiement->defalqcmd) { // diminution des stocks de déclinaison si on est sur un module de paiement qui défalque de suite $stock->charger($perso->valeur, $article->produit->id); $stock->valeur -= $article->quantite; $stock->maj(); } $declinaison->charger($perso->declinaison); $declinaisondesc->charger($declinaison->id); // recup valeur declidisp ou string if ($declinaison->isDeclidisp($perso->declinaison)) { $declidisp = new Declidisp(); $declidispdesc = new Declidispdesc(); $declidisp->charger($perso->valeur); $declidispdesc->charger_declidisp($declidisp->id); $dectexte .= "- " . $declinaisondesc->titre . " : " . $declidispdesc->titre . "\n"; } else { $dectexte .= "- " . $declinaisondesc->titre . " : " . $perso->valeur . "\n"; } } // diminution des stocks classiques si on est sur un module de paiement qui défalque de suite $produit = new Produit($article->produit->ref); if ($modpaiement->defalqcmd) { $produit->stock -= $article->quantite; $produit->maj(); } /* Gestion TVA */ $prix = $article->produit->prix; $prix2 = $article->produit->prix2; $tva = $article->produit->tva; if ($pays->tva != "" && (!$pays->tva || $pays->tva && $_SESSION['navig']->client->intracom != "" && !$pays->boutique)) { $prix = round($prix / (1 + $tva / 100), 2); $prix2 = round($prix2 / (1 + $tva / 100), 2); $tva = 0; } $venteprod->quantite = $article->quantite; if (!$article->produit->promo) { $venteprod->prixu = $prix; } else { $venteprod->prixu = $prix2; } $venteprod->ref = $article->produit->ref; $venteprod->titre = $article->produitdesc->titre . " " . $dectexte; $venteprod->chapo = $article->produitdesc->chapo; $venteprod->description = $article->produitdesc->description; $venteprod->tva = $tva; $venteprod->commande = $commande->id; $venteprod->id = $venteprod->add(); $correspondanceParent[] = $venteprod->id; // ajout dans ventedeclisp des declidisp associées au venteprod foreach ($article->perso as $perso) { $declinaison = new Declinaison(); $declinaison->charger($perso->declinaison); // si declidisp (pas un champs libre) if ($declinaison->isDeclidisp($perso->declinaison)) { $vdec = new Ventedeclidisp(); $vdec->venteprod = $venteprod->id; $vdec->declidisp = $perso->valeur; $vdec->add(); } } ActionsModules::instance()->appel_module("apresVenteprod", $venteprod, $pos); $total += $venteprod->prixu * $venteprod->quantite; $nbart++; $poids += $article->produit->poids; } foreach ($correspondanceParent as $id_panier => $id_venteprod) { if ($_SESSION['navig']->panier->tabarticle[$id_panier]->parent >= 0) { $venteprod->charger($id_venteprod); $venteprod->parent = $correspondanceParent[$_SESSION['navig']->panier->tabarticle[$id_panier]->parent]; $venteprod->maj(); } } $pays = new Pays($_SESSION['navig']->client->pays); if ($_SESSION['navig']->client->pourcentage > 0) { $commande->remise = $total * $_SESSION['navig']->client->pourcentage / 100; } $total -= $commande->remise; if ($_SESSION['navig']->promo->id != "") { $commande->remise += calc_remise($total); $_SESSION['navig']->promo->utilise = 1; if (!empty($commande->remise)) { $commande->remise = round($commande->remise, 2); } $commande->maj(); $temppromo = new Promo(); $temppromo->charger_id($_SESSION['navig']->promo->id); $temppromo->utilise++; $temppromo->maj(); $promoutil = new Promoutil(); $promoutil->commande = $commande->id; $promoutil->promo = $temppromo->id; $promoutil->code = $temppromo->code; $promoutil->type = $temppromo->type; $promoutil->valeur = $temppromo->valeur; $promoutil->add(); } if ($commande->remise > $total) { $commande->remise = $total; } $commande->port = port(); if (intval($commande->port) <= 0) { $commande->port = 0; } $_SESSION['navig']->promo = new Promo(); $_SESSION['navig']->commande = $commande; $commande->transaction = genid($commande->id, 6); $commande->maj(); $total = $_SESSION['navig']->panier->total(1, $_SESSION['navig']->commande->remise) + $_SESSION['navig']->commande->port; if ($total < $_SESSION['navig']->commande->port) { $total = $_SESSION['navig']->commande->port; } $_SESSION['navig']->commande->total = $total; ActionsModules::instance()->appel_module("aprescommande", $commande); // Appeler la méthode mail du plugin de paiement... $modpaiement->mail($commande); // ... et la méthode paiement $modpaiement->paiement($commande); } catch (Exception $e) { // FIXME: Echec de commande -> cas à traiter ? } }