Files
le-matelot/client/plugins/colissimoexpert/Colissimoexpert.class.php
2020-01-27 08:56:08 +01:00

166 lines
6.5 KiB
PHP

<?php
include_once( realpath( dirname( __FILE__ ) ) . "/../../../classes/PluginsTransports.class.php" );
include_once( realpath( dirname( __FILE__ ) ) . "/../../../classes/Message.class.php" );
include_once( realpath( dirname( __FILE__ ) ) . "/../../../classes/Messagedesc.class.php" );
include_once( realpath( dirname( __FILE__ ) ) . "/../../../classes/Variable.class.php" );
include_once( realpath( dirname( __FILE__ ) ) . "/Tarifcolissimoexpert.class.php" );
class ColissimoExpert extends PluginsTransports {
public function __construct() {
parent::__construct( "colissimoexpert" );
}
public function init() {
$this->ajout_desc("Chronopost avec signature", "Livraison par Chronopost National et International avec signature", "", 1);
// Création de la table tarifcolissimoexpert
$cnx = new Cnx();
$sql = "CREATE TABLE `tarifcolissimoexpert` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `poidsmax` FLOAT NOT NULL , tarif` FLOAT NOT NULL , `zone` INT NOT NULL)";
$resultat = mysql_query( $sql , $cnx->link );
// Ajout d'une ligne dans la table variable
$listeZones = $this->getZones();
foreach ( $listeZones as $zone ) {
$variable = new Variable();
if ( !$variable->charger( 'colissimoexpert_tarifmax' . $zone->id ) ) {
$objVariableTarifMax = new Variable();
$variable->nom = 'colissimoexpert_tarifmax' . $zone->id ;
$variable->valeur = 0;
$variable->protege = 0;
$variable->cache = 0;
$variable->add();
}
}
// Message de livraison
$messageExiste = new Message();
if ( !$messageExiste->charger( "colissimoexpert" ) ) {
$message = new Message();
$message->nom = "colissimoexpert";
$lastid = $message->add();
$messagedesc = new Messagedesc();
$messagedesc->message = $lastid;
$messagedesc->lang = 1;
$messagedesc->titre = "Chronopost avec signature";
$messagedesc->description = "__RAISON__ __NOM__ __PRENOM__,\n\nNous vous remercions de votre commande sur notre site __URLSITE__\n\nUn colis concernant votre commande __COMMANDE__ du __DATE__ __HEURE__ a quitté nos entrepôts pour être pris en charge par Chronopost le __DATEDJ__.\n\nSon numéro de suivi est le suivant : __COLIS__\nIl vous permet de suivre votre colis en ligne sur le site de Chronopost : www.chronopost.fr\n\nNous restons à votre disposition pour toute information complémentaire.\nCordialement";
$messagedesc->add();
}
}
public function calcule() {
$listeTarifs = $this->getTarifs( $this->zone );
$fin = $_SESSION['navig']->panier->nbart;
for ($i = 0; $i < $fin; $i++) {
$totalpanier = & $_SESSION['navig']->panier->tabarticle[$i]->produit->prix;
$quantitepanier = & $_SESSION['navig']->panier->tabarticle[$i]->quantite;
$aupanier += $totalpanier*$quantitepanier;
}
foreach ( $listeTarifs as $ligneTarif ) {
if ( $this->poids <= $ligneTarif->poidsmax ) {
if($this->zone == 1 && $aupanier > 30){
return $ligneTarif->tarif = 0.00;
}elseif($this->zone != 1 && $aupanier > 300){
return $ligneTarif->tarif = 0.00;
}else{
return $ligneTarif->tarif;
}
}
}
return $this->getTarifMax( $this->zone );
}
function statut( $commande ) {
if ( $commande->statut == "4" ) {
if ( !$commande->colis ) {
return;
}
$modTransport = new Modules();
$modTransport->charger( 'colissimoexpert' );
if ( $modTransport->id != $commande->transport ) {
return;
}
$message = new Message();
$message->charger( "colissimoexpert" );
$messagedesc = new Messagedesc();
$messagedesc->charger( $message->id );
$client = new Client();
$client->charger_id( $commande->client );
$tabRaisons = array(
"1" => "Madame" ,
"2" => "Mademoiselle" ,
"3" => "Monsieur"
);
if ( isset( $tabRaisons[$client->raison] ) ) {
$raison = $tabRaisons[$client->raison];
}
$urlsite = new Variable();
$urlsite->charger("urlsite");
$emailcontact = new Variable();
$emailcontact->charger("emailcontact");
$jour = substr($commande->date, 8, 2);
$mois = substr($commande->date, 5, 2);
$annee = substr($commande->date, 0, 4);
$heure = substr($commande->date, 11, 2);
$minute = substr($commande->date, 14, 2);
$seconde = substr($commande->date, 17, 2);
$messagedesc->description = str_replace("__RAISON__", "$raison", $messagedesc->description);
$messagedesc->description = str_replace("__NOM__", $client->nom, $messagedesc->description);
$messagedesc->description = str_replace("__PRENOM__", $client->prenom, $messagedesc->description);
$messagedesc->description = str_replace("__URLSITE__", $urlsite->valeur, $messagedesc->description);
$messagedesc->description = str_replace("__COMMANDE__", $commande->ref, $messagedesc->description);
$messagedesc->description = str_replace("__DATE__", $jour . "/" . $mois . "/" . $annee, $messagedesc->description);
$messagedesc->description = str_replace("__HEURE__", $heure . ":" . $minute . ":" . $seconde, $messagedesc->description);
$messagedesc->description = str_replace("__DATEDJ__", date("d") . "/" . date("m") . "/" . date("Y"), $messagedesc->description);
$messagedesc->description = str_replace("__COLIS__", $commande->colis, $messagedesc->description);
mail($client->email, $messagedesc->titre, $messagedesc->description, "From: " . $emailcontact->valeur);
}
}
public function getTarifs( $zone = 1 ) {
$listeTarifs = array();
$sql = "SELECT * FROM tarifcolissimoexpert WHERE zone = " . intval( $zone ) . " ORDER BY poidsmax";
$cnx = new Cnx();
$resultat = mysql_query( $sql , $cnx->link );
while ( $ligneTarif = mysql_fetch_object( $resultat ) ) {
$listeTarifs[] = $ligneTarif;
}
return $listeTarifs;
}
public function getZones() {
$listeZones = array();
$sql = "SELECT * FROM zone ORDER BY id";
$cnx = new Cnx();
$resultat = mysql_query( $sql , $cnx->link );
while ( $ligneZone = mysql_fetch_object( $resultat ) ) {
$listeZones[] = $ligneZone;
}
return $listeZones;
}
public function getTarifMax( $zone = 1 ) {
$objVariable = new Variable( 'colissimoexpert_tarifmax' . intval( $zone ) );
$valeur = $objVariable->valeur;
if ( !$valeur ) {
$valeur = 0;
}
return $valeur;
}
public function majTarifMax( $nouveauTarifMax , $zone ) {
$objVariable = new Variable( 'colissimoexpert_tarifmax' . intval( $zone ) );
$objVariable->valeur = $nouveauTarifMax;
$objVariable->maj();
}
}
?>