osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

2 Pages V  < 1 2  
Reply to this topicStart new topic
> [Contrib] Proposer une date de livraison selon un produit ou/et le module de livraison, Loi Chatel. Afficher la date de livraison dans modules de livraisons
AlexKid
posté 20 Dec 2009, 18:10
Message #26


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 8
Inscrit : 10-December 09
Membre no 26688



bonsoir,

J'ai trouvé un peu de temps pour mettre à jour le module collissimo V1,8

Code
<?php
/*
  A partir de colissimoR1.php... Francois Pons

  The Exchange Project - Community Made Shopping!
  [url="http://www.theexchangeproject.org"]http://www.theexchangeproject.org[/url]

  Copyright (c) 2000,2001 The Exchange Project

  Released under the GNU General Public License

    adaptation Stéphane GUIBOUD-RIBAUD <[email="devteam@e-network.fr"]devteam@e-network.fr[/email]>
            xaglo <[email="xaglo@free.fr"]xaglo@free.fr[/email]>
      
MAJ v1.4.2 by fram 05/10/2003
MAJ v1.5 by lepoissonrouge 19/06/2005
MAJ v1.5.2 by lepoissonrouge 20/11/2005
MAJ v1.5.2 by bacri 01/02/2007
MAJ V1.6 by THEROTH 19/04/2008
MAJ V1.7 by THEROTH 20/04/2008
MAJ V1.8 by Nekosign 05/03/2009


[url="http://www.oscommerce-fr.info"]www.oscommerce-fr.info[/url]
*/


  class colissimo {
    var $code, $title, $description, $icon, $enabled;

// class constructor
    function colissimo()
{
      $this->code = 'colissimo';
      $this->title = MODULE_SHIPPING_COLISSIMO_TEXT_TITLE;
      $this->description = MODULE_SHIPPING_COLISSIMO_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_SHIPPING_COLISSIMO_SORT_ORDER;
      $this->icon = DIR_WS_ICONS . 'shipping_colissimo.gif';
      $this->tax_class = MODULE_SHIPPING_COLISSIMO_TAX_CLASS;
      $this->enabled = MODULE_SHIPPING_COLISSIMO_STATUS;
      $this->num_international = 4; //Nbr de zone International
// disable the module if the order only weight > 30
      global $PHP_SELF;
        if (basename($PHP_SELF) != FILENAME_MODULES) {
      global $cart , $order;
        if ($this->enabled == true) {
/*        $dest_country = $order->delivery['country']['iso_code_2'];
        if (($dest_country != 'FR') && ($dest_country != 'FX') && ($dest_country != 'GP') && ($dest_country != 'MQ') && ($dest_country != 'GF') && ($dest_country != 'RE') && ($dest_country != 'YT') && ($dest_country != 'PM')  && ($dest_country != 'NC') && ($dest_country != 'PF') && ($dest_country != 'WF') && ($dest_country != 'TF')) {
         $this->enabled = false;
        }*/
        if ($cart->show_weight() > '30') {
     $this->enabled = false;
        }
        }
        }
}

    // delai_livraison BOC
    function getDelai() {
        global $order;
    
        $delai = array();
        $totOuvrables = 0;
        $delai_order = (int)$order->info['delaiMax'];
        // Le délai minimum remplace le délai max des produits si celui ci est plus grand
        if (MODULE_SHIPPING_COLISSIMO_DELAI_MINI > $delai_order) {
            $delai_order = MODULE_SHIPPING_COLISSIMO_DELAI_MINI;
        }
        $time = time();
        $heure = (int)date("H", $time);
        // Départ de la livraison le jour même ou le lendemain selon l'heure (12h00)
        $date_depart = ($heure > 12) ? $time + 86400: $time;
        $date_livraison = $date_depart + $delai_order;
        // Comptabilise le nombre de jours ouvrables entre la période de livraison
        $with_saterday = false; // Comptabilise pas les samedis
        $with_sunday = true; // Comptabilise les dimanches
        $verif_jour_livraison = true; // Vérifie si le jour de livraison est un jour ouvrable (si oui -> 1 jours de plus)
        $totOuvrables = get_jours_ouvrables($date_depart, $date_livraison, $with_saterday, $with_sunday, $verif_jour_livraison);
        // On ajoute les jour ouvrables : Timestamp du jour de livraison
        $date_livraison += $totOuvrables * 86400;
        //
        $delai['delai'] = $delai_order / 86400;
        $delai['date_liv'] = date(DATE_FORMAT, $date_livraison);
        return $delai;
    }
    // delai_livraison EOC

// class methods
    function quote($method = '')
{
      global $order, $cart, $shipping_weight;
      
      $dest_country = $order->delivery['country']['iso_code_2'];
      
if (($dest_country == 'FR') OR ($dest_country == 'FX') OR ($dest_country == 'MC')) {


      $delai = $this->getDelai();
   $this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_COLISSIMO_TEXT_TITLE . ' NATIONAL (' . $shipping_weight .' Kg)');
   $methods = array();
  
      if (tep_not_null($this->icon))
$this->quotes['icon'] = tep_image($this->icon, $this->title);


$auto= constant('MODULE_SHIPPING_COLISSIMO_R1R5');
$total = $cart->show_total();

$cost = constant('MODULE_SHIPPING_COLISSIMO_NATIONAL');
$cost1 = constant('MODULE_SHIPPING_COLISSIMOR1_NATIONAL');
$cost2 = constant('MODULE_SHIPPING_COLISSIMOR2_NATIONAL');
$cost3 = constant('MODULE_SHIPPING_COLISSIMOR3_NATIONAL');
$cost4 = constant('MODULE_SHIPPING_COLISSIMOR4_NATIONAL');
$cost5 = constant('MODULE_SHIPPING_COLISSIMOR5_NATIONAL');
$table = split("[:,]" , $cost);
    $table1 = split("[:,]" , $cost1);
    $table2 = split("[:,]" , $cost2);
    $table3 = split("[:,]" , $cost3);
    $table4 = split("[:,]" , $cost4);
    $table5 = split("[:,]" , $cost5);

    $j="0";
    $k="0";
    for ($i = 0; $i < sizeof($table); $i+=2) {
      
if ($shipping_weight > $table[$i])
   continue;
  if (($shipping_weight < $table[$i]) && ($j== '0')) {
   if($auto=="True"){
  
    if(($total<=50)&&($k=="0")){
    $methods[] = array('id' => "R1",
           'delai' => sprintf(MODULE_SHIPPING_ITEM_DELAI, $delai['delai'], $delai['date_liv']),
           'title' => MODULE_SHIPPING_COLISSIMOR1_TEXT_TITLE,
           'cost' => $table1[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>50) && ($total<=200)&&($k=="0")){
    $methods[] = array('id' => "R2", 'title' => MODULE_SHIPPING_COLISSIMOR2_TEXT_TITLE, 'cost' => $table2[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>200) && ($total<=400)&&($k=="0")){
    $methods[] = array('id' => "R3", 'title' => MODULE_SHIPPING_COLISSIMOR3_TEXT_TITLE, 'cost' => $table3[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>400) && ($total<=600)&&($k=="0")){
    $methods[] = array('id' => "R4", 'title' => MODULE_SHIPPING_COLISSIMOR4_TEXT_TITLE, 'cost' => $table4[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>600)&&($k=="0")){
    $methods[] = array('id' => "R5", 'title' => MODULE_SHIPPING_COLISSIMOR5_TEXT_TITLE, 'cost' => $table5[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }
   }else{
    if ( $method == '' || $method == "R0" ) {
    $methods[] = array('id' => "R0",
           'delai' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']),
           'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE,
           'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "R1" ) {
    $methods[] = array('id' => "R1", 'title' => MODULE_SHIPPING_COLISSIMOR1_TEXT_TITLE, 'cost' => $table1[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "R2" ) {
    $methods[] = array('id' => "R2", 'title' => MODULE_SHIPPING_COLISSIMOR2_TEXT_TITLE, 'cost' => $table2[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "R3" ) {
    $methods[] = array('id' => "R3", 'title' => MODULE_SHIPPING_COLISSIMOR3_TEXT_TITLE, 'cost' => $table3[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "R4" ) {
    $methods[] = array('id' => "R4", 'title' => MODULE_SHIPPING_COLISSIMOR4_TEXT_TITLE, 'cost' => $table4[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "R5" ) {
    $methods[] = array('id' => "R5", 'title' => MODULE_SHIPPING_COLISSIMOR5_TEXT_TITLE, 'cost' => $table5[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }
    $j="2";
   }
  }

    }
      
      
$this->quotes['methods'] = $methods;
    return $this->quotes;
    
    
    
    }elseif(($dest_country == 'GP') OR ($dest_country == 'MQ') OR ($dest_country == 'GF') OR ($dest_country == 'RE') OR ($dest_country == 'YT') OR ($dest_country == 'PM')) {
     if(constant('MODULE_SHIPPING_COLISSIMO_DOM_STATUS')=="True"){  
    
    
    $delai = $this->getDelai();
$this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_COLISSIMO_TEXT_TITLE . ' DOM (' . $shipping_weight .' Kg)');
   $methods = array();
  
      if (tep_not_null($this->icon))
$this->quotes['icon'] = tep_image($this->icon, $this->title);


$auto= constant('MODULE_SHIPPING_COLISSIMO_R1R5');
$total = $cart->show_total();

$cost = constant('MODULE_SHIPPING_COLISSIMO_DOM');
$cost1 = constant('MODULE_SHIPPING_COLISSIMOR1_DOM');
$cost2 = constant('MODULE_SHIPPING_COLISSIMOR2_DOM');
$cost3 = constant('MODULE_SHIPPING_COLISSIMOR3_DOM');
$cost4 = constant('MODULE_SHIPPING_COLISSIMOR4_DOM');
$cost5 = constant('MODULE_SHIPPING_COLISSIMOR5_DOM');
$table = split("[:,]" , $cost);
    $table1 = split("[:,]" , $cost1);
    $table2 = split("[:,]" , $cost2);
    $table3 = split("[:,]" , $cost3);
    $table4 = split("[:,]" , $cost4);
    $table5 = split("[:,]" , $cost5);

    $j="0";
    $k="0";
    for ($i = 0; $i < sizeof($table); $i+=2) {
      
if ($shipping_weight > $table[$i])
   continue;
  if (($shipping_weight < $table[$i]) && ($j== '0')) {
   if($auto=="True"){
  
    if(($total<=50)&&($k=="0")){
    $methods[] = array('id' => "DOMR1",
           'delai' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']),
           'title' => MODULE_SHIPPING_COLISSIMOR1_TEXT_TITLE,
           'cost' => $table1[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>50) && ($total<=200)&&($k=="0")){
    $methods[] = array('id' => "DOMR2", 'title' => MODULE_SHIPPING_COLISSIMOR2_TEXT_TITLE, 'cost' => $table2[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>200) && ($total<=400)&&($k=="0")){
    $methods[] = array('id' => "DOMR3", 'title' => MODULE_SHIPPING_COLISSIMOR3_TEXT_TITLE, 'cost' => $table3[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>400) && ($total<=600)&&($k=="0")){
    $methods[] = array('id' => "DOMR4", 'title' => MODULE_SHIPPING_COLISSIMOR4_TEXT_TITLE, 'cost' => $table4[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>600)&&($k=="0")){
    $methods[] = array('id' => "DOMR5", 'title' => MODULE_SHIPPING_COLISSIMOR5_TEXT_TITLE, 'cost' => $table5[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }
   }else{
    if ( $method == '' || $method == "DOMR0" ) {
    $methods[] = array('id' => "DOMR0",
           'delai' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']),
           'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE,
           'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "DOMR1" ) {
    $methods[] = array('id' => "DOMR1", 'title' => MODULE_SHIPPING_COLISSIMOR1_TEXT_TITLE, 'cost' => $table1[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "DOMR2" ) {
    $methods[] = array('id' => "DOMR2", 'title' => MODULE_SHIPPING_COLISSIMOR2_TEXT_TITLE, 'cost' => $table2[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "DOMR3" ) {
    $methods[] = array('id' => "DOMR3", 'title' => MODULE_SHIPPING_COLISSIMOR3_TEXT_TITLE, 'cost' => $table3[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "DOMR4" ) {
    $methods[] = array('id' => "DOMR4", 'title' => MODULE_SHIPPING_COLISSIMOR4_TEXT_TITLE, 'cost' => $table4[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "DOMR5" ) {
    $methods[] = array('id' => "DOMR5", 'title' => MODULE_SHIPPING_COLISSIMOR5_TEXT_TITLE, 'cost' => $table5[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }
    $j="2";
   }
  }

    }
      
      
$this->quotes['methods'] = $methods;
    return $this->quotes;
    
    }
    
    }elseif(($dest_country == 'NC') OR ($dest_country == 'PF') OR ($dest_country == 'WF') OR ($dest_country == 'TF')) {
    
    if(constant('MODULE_SHIPPING_COLISSIMO_TOM_STATUS')=="True"){
    
$delai = $this->getDelai();
$this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_COLISSIMO_TEXT_TITLE . ' TOM (' . $shipping_weight .' Kg)');
   $methods = array();
  
      if (tep_not_null($this->icon))
$this->quotes['icon'] = tep_image($this->icon, $this->title);


$auto= constant('MODULE_SHIPPING_COLISSIMO_R1R5');
$total = $cart->show_total();

$cost = constant('MODULE_SHIPPING_COLISSIMO_TOM');
$cost1 = constant('MODULE_SHIPPING_COLISSIMOR1_TOM');
$cost2 = constant('MODULE_SHIPPING_COLISSIMOR2_TOM');
$cost3 = constant('MODULE_SHIPPING_COLISSIMOR3_TOM');
$cost4 = constant('MODULE_SHIPPING_COLISSIMOR4_TOM');
$cost5 = constant('MODULE_SHIPPING_COLISSIMOR5_TOM');
$table = split("[:,]" , $cost);
    $table1 = split("[:,]" , $cost1);
    $table2 = split("[:,]" , $cost2);
    $table3 = split("[:,]" , $cost3);
    $table4 = split("[:,]" , $cost4);
    $table5 = split("[:,]" , $cost5);

    $j="0";
    $k="0";
    for ($i = 0; $i < sizeof($table); $i+=2) {
      
if ($shipping_weight > $table[$i])
   continue;
  if (($shipping_weight < $table[$i]) && ($j== '0')) {
   if($auto=="True"){
  
    if(($total<=50)&&($k=="0")){
    $methods[] = array('id' => "TOMR1",
           'delai' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']),
           'title' => MODULE_SHIPPING_COLISSIMOR1_TEXT_TITLE,
           'cost' => $table1[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>50) && ($total<=200)&&($k=="0")){
    $methods[] = array('id' => "TOMR2", 'title' => MODULE_SHIPPING_COLISSIMOR2_TEXT_TITLE, 'cost' => $table2[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>200) && ($total<=400)&&($k=="0")){
    $methods[] = array('id' => "TOMR3", 'title' => MODULE_SHIPPING_COLISSIMOR3_TEXT_TITLE, 'cost' => $table3[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>400) && ($total<=600)&&($k=="0")){
    $methods[] = array('id' => "TOMR4", 'title' => MODULE_SHIPPING_COLISSIMOR4_TEXT_TITLE, 'cost' => $table4[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }elseif(($total>600)&&($k=="0")){
    $methods[] = array('id' => "TOMR5", 'title' => MODULE_SHIPPING_COLISSIMOR5_TEXT_TITLE, 'cost' => $table5[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    $k++;
    }
   }else{
    if ( $method == '' || $method == "TOMR0" ) {
    $methods[] = array('id' => "TOMR0",
           'delai' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']),
           'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE,
           'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "TOMR1" ) {
    $methods[] = array('id' => "TOMR1", 'title' => MODULE_SHIPPING_COLISSIMOR1_TEXT_TITLE, 'cost' => $table1[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "TOMR2" ) {
    $methods[] = array('id' => "TOMR2", 'title' => MODULE_SHIPPING_COLISSIMOR2_TEXT_TITLE, 'cost' => $table2[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "TOMR3" ) {
    $methods[] = array('id' => "TOMR3", 'title' => MODULE_SHIPPING_COLISSIMOR3_TEXT_TITLE, 'cost' => $table3[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "TOMR4" ) {
    $methods[] = array('id' => "TOMR4", 'title' => MODULE_SHIPPING_COLISSIMOR4_TEXT_TITLE, 'cost' => $table4[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }if ( $method == '' || $method == "TOMR5" ) {
    $methods[] = array('id' => "TOMR5", 'title' => MODULE_SHIPPING_COLISSIMOR5_TEXT_TITLE, 'cost' => $table5[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
    }
    $j="2";
   }
  }

    }
      
      
$this->quotes['methods'] = $methods;
    return $this->quotes;
    }
    
    }elseif(constant('MODULE_SHIPPING_COLISSIMO_INT_STATUS')=="True"){
    
    $this->icon = DIR_WS_ICONS . 'shipping_colissimoINT.gif';
    $delai = $this->getDelai();
    $this->quotes = array('id'      => $this->code,
                            'module'  => MODULE_SHIPPING_COLISSIMO_TEXT_TITLE . ' International (' . $shipping_weight .' Kg)',
                            'methods' => array());

      if (tep_not_null($this->icon))
$this->quotes['icon'] = tep_image($this->icon, $this->title);

      if ($this->tax_class > 0)
        $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);

      $dest_country = $order->delivery['country']['iso_code_2'];
      $dest_zone = 0;
      for ($i = 1; $i <= $this->num_international; $i ++) {
$countries_table = constant('MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_' . $i);
$country = split("[, ]", $countries_table);
if ( in_array($dest_country, $country ) ) {
   $dest_zone = $i;
   break;
}
      }
      if ($dest_zone == 0) {
$this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INT_INVALID_ZONE;
return $this->quotes;
      }

      $table = split("[:,]" , constant('MODULE_SHIPPING_COLISSIMO_INT_COST_' . $dest_zone));
      $cost = -1;
      for ($i = 0, $n = sizeof($table); $i < $n; $i+=2) {
if ($shipping_weight <= $table[$i]) {
   $cost = $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING + SHIPPING_HANDLING;
   break;
}
      }

      if ($cost == -1) {
$this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INT_UNDEFINED_RATE;
return $this->quotes;
      }

      $this->quotes['methods'][] = array('id'    => $this->code,
           'title' => MODULE_SHIPPING_COLISSIMO_INT_TEXT_WAY . ' ' . $order->delivery['country']['title'],
            'delai' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']),
           'cost'  => $cost + MODULE_SHIPPING_COLISSIMO_HANDLING + SHIPPING_HANDLING);

      return $this->quotes;
    
    
    }



}
    function check() {
      $check = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_COLISSIMO_STATUS'");
      $check = tep_db_num_rows($check);

      return $check;
    }
    

    function install() {
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Activer Module Colissimo', 'MODULE_SHIPPING_COLISSIMO_STATUS', 'True', 'Activer / Désactiver Colissimo sans perdre les valeurs changés', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Frais fixes', 'MODULE_SHIPPING_COLISSIMO_HANDLING', '0', 'Frais fixes (emballage) pour colissimo', '6', '0', now())");
     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Classe de taxe', 'MODULE_SHIPPING_COLISSIMO_TAX_CLASS', '0', 'Appliquer le taux de taxe suivant sur les frais de livraison.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())");
   tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ordre de tri', 'MODULE_SHIPPING_COLISSIMO_SORT_ORDER', '0', 'Ordre de tri pour l\'affichage (Le plus petit nombre est montré en premier).', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo', 'MODULE_SHIPPING_COLISSIMO_NATIONAL', '0.500:5.50, 1:6.70, 2:7.65, 3:8.60, 5:10.50, 7:12.40, 10:15.25, 15:17.25, 30:23.25', 'Tarif TTC Colissimo sans assurance', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo R1', 'MODULE_SHIPPING_COLISSIMOR1_NATIONAL', '0.500:7.80, 1:9.00, 2:9.95, 3:10.90, 5:12.80, 7:14.70, 10:17.55, 15:19.55, 30:25.55', 'Tarif TTC Colissimo R1.', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo R2', 'MODULE_SHIPPING_COLISSIMOR2_NATIONAL', '0.500:8.70, 1:9.90, 2:10.85, 3:11.80, 5:13.70, 7:15.60, 10:18.45, 15:20.45, 30:26.45', 'Tarif TTC Colissimo R2', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo R3', 'MODULE_SHIPPING_COLISSIMOR3_NATIONAL', '0.500:9.90, 1:11.10, 2:12.05, 3:13.00, 5:14.90, 7:16.80, 10:19.65, 15:21.65, 30:27.65', 'Tarif TTC Colissimo R3', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo R4', 'MODULE_SHIPPING_COLISSIMOR4_NATIONAL', '0.500:11.10, 1:12.30, 2:13.25, 3:14.20, 5:16.10, 7:18.00, 10:20.85, 15:22.85, 30:28.85', 'Tarif TTC Colissimo R4', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo R5', 'MODULE_SHIPPING_COLISSIMOR5_NATIONAL', '0.500:12.30, 1:13.50, 2:14.45, 3:15.40, 5:17.30, 7:19.20, 10:22.05, 15:24.05, 30:30.05', 'Tarif TTC Colissimo R5', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Activer Colissimo DOM', 'MODULE_SHIPPING_COLISSIMO_DOM_STATUS', 'True', 'Activer / Désactiver Colissimo dans les DOM', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo DOM', 'MODULE_SHIPPING_COLISSIMO_DOM', '0.500:8.35, 1:12.55, 2:17.15, 3:21.75, 4:26.35, 5:30.95, 6:35.55, 7:40.15, 8:44.75, 9:49.35, 10:53.95, 15:76.95, 20:99.95, 25:122.95, 30:145.95', 'Tarif TTC Colissimo DOM sans assurance', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo DOM R1', 'MODULE_SHIPPING_COLISSIMOR1_DOM', '0.500:10.65, 1:14.85, 2:19.45, 3:24.05, 4:28.65, 5:33.25, 6:37.85, 7:42.45, 8:47.05, 9:51.65, 10:56.25, 15:79.25, 20:102.25, 25:125.25, 30:148.25', 'Tarif TTC Colissimo DOM R1', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo DOM R2', 'MODULE_SHIPPING_COLISSIMOR2_DOM', '0.500:11.55, 1:15.75, 2:20.35, 3:24.95, 4:29.55, 5:34.15, 6:38.75, 7:43.35, 8:47.95, 9:52.55, 10:57.15, 15:80.15, 20:103.14, 25:126.15, 30:149.15', 'Tarif TTC Colissimo DOM R2', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo DOM R3', 'MODULE_SHIPPING_COLISSIMOR3_DOM', '0.500:12.75, 1:16.95, 2:21.55, 3:26.15, 4:30.75, 5:35.35, 6:39.95, 7:44.55, 8:49.15, 9:53.75, 10:58.35, 15:81.35, 20:104.35, 25:127.35, 30:150.35', 'Tarif TTC Colissimo DOM R3', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo DOM R4', 'MODULE_SHIPPING_COLISSIMOR4_DOM', '0.500:13.95, 1:18.15, 2:22.75, 3:27.35, 4:31.95, 5:36.55, 6:41.15, 7:45.75, 8:50.35, 9:54.95, 10:59.55, 15:82.55, 20:105.55, 25:128.55, 30:151.55', 'Tarif TTC Colissimo DOM R4', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo DOM R5', 'MODULE_SHIPPING_COLISSIMOR5_DOM', '0.500:15.15, 1:19.35, 2:23.95, 3:28.55, 4:33.15, 5:37.75, 6:42.35, 7:46.95, 8:51.55, 9:56.15, 10:60.75, 15:83.75, 20:106.75, 25:129.75, 30:152.75', 'Tarif TTC Colissimo DOM R5', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Activer Colissimo TOM', 'MODULE_SHIPPING_COLISSIMO_TOM_STATUS', 'True', 'Activer / Désactiver Colissimo dans les TOM', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo TOM', 'MODULE_SHIPPING_COLISSIMO_TOM', '0.500:10.00, 1:15.00, 2:26.50, 3:38.00, 4:49.50, 5:61.00, 6:72.50, 7:84.00, 8:95.50, 9:107.00, 10:118.50, 15:176.50, 20:234.50, 25:292.50, 30:350.50', 'Tarif TTC Colissimo TOM sans assurance', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo TOM R1', 'MODULE_SHIPPING_COLISSIMOR1_TOM', '0.500:12.30, 1:17.30, 2:28.80, 3:40.30, 4:51.80, 5:63.30, 6:74.80, 7:86.30, 8:97.80, 9:109.30, 10:120.80, 15:178.80, 20:236.80, 25:294.80, 30:352.80', 'Tarif TTC Colissimo TOM R1', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo TOM R2', 'MODULE_SHIPPING_COLISSIMOR2_TOM', '0.500:13.20, 1:18.20, 2:29.70, 3:41.20, 4:52.70, 5:64.20, 6:75.70, 7:87.20, 8:98.70, 9:110.20, 10:121.70, 15:179.70, 20:237.70, 25:295.70, 30:353.70', 'Tarif TTC Colissimo TOM R2', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo TOM R3', 'MODULE_SHIPPING_COLISSIMOR3_TOM', '0.500:14.40, 1:19.40, 2:30.90, 3:42.40, 4:53.90, 5:65.40, 6:76.90, 7:88.40, 8:99.90, 9:111.40, 10:122.90, 15:180.90, 20:238.90, 25:296.90, 30:354.90', 'Tarif TTC Colissimo TOM R3', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo TOM R4', 'MODULE_SHIPPING_COLISSIMOR4_TOM', '0.500:15.60, 1:20.60, 2:32.10, 3:43.60, 4:55.10, 5:66.60, 6:78.10, 7:89.60, 8:101.10, 9:112.60, 10:124.10, 15:182.10, 20:240.10, 25:298.10, 30:356.10', 'Tarif TTC Colissimo TOM R4', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo TOM R5', 'MODULE_SHIPPING_COLISSIMOR5_TOM', '0.500:16.80, 1:21.80, 2:33.30, 3:44.80, 4:56.30, 5:67.80, 6:79.30, 7:90.80, 8:102.30, 9:113.80, 10:125.30, 15:183.30, 20:241.30, 25:299.30, 30:357.30', 'Tarif TTC Colissimo TOM R5', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Activer Colissimo International', 'MODULE_SHIPPING_COLISSIMO_INT_STATUS', 'True', 'Activer / Désactiver Colissimo dans International', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone A (pays)', 'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_1', 'AT, AD, AX, BE, BG, BL, CH, CY, CZ, DE, DK, ES, EE, FI, GB, GF, GI, GP, GR, HU, IE, IT, LT, LU, LV, MF, MQ, MT, NL, PL, PT, RE, RO, SE, SI, SK', 'Insérer une virgule entre 2 codes ISO de pays qui font partie de la mme zone', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone A (poids:tarifs)', 'MODULE_SHIPPING_COLISSIMO_INT_COST_1', '1:15.90, 2:17.45, 3:21.05, 4:24.65, 5:28.25, 6:31.85, 7:35.45, 8:39.05, 9:42.65, 10:46.25, 15:53.25, 20:60.25, 25:67.25, 30:74.25', 'Tarifs Colissimo international pour les destinations de la Zone A. ', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone B (pays)', 'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_2', 'AL, DZ, BY, BA, BG, HR, CZ', 'Insérer une virgule entre 2 codes ISO de pays qui font partie de la même zone', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone B (poids:tarifs)', 'MODULE_SHIPPING_COLISSIMO_INT_COST_2', '1:19.20, 2:21.10, 3:25.50, 4:29.90, 5:34.30, 6:38.70, 7:43.10, 8:47.50, 9:51.90, 10:56.30, 15:66.40, 20:76.50, 25:86.60, 30:96.70', 'Tarifs Colissimo international pour les destinations de la Zone B. ', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone C (pays)', 'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_3', 'AF, AO, AI, AG, AM, AZ, BJ, BM, BW, BF, BI, CM, CA, CV, CF, TD, CG, CI, CY, CJ, US, UM', 'Insérer une virgule entre 2 codes ISO de pays qui font partie de la même zone', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone C (poids:tarifs)', 'MODULE_SHIPPING_COLISSIMO_INT_COST_3', '1:22.10, 2:29.50, 3:38.70, 4:47.90, 5:57.10, 6:66.30, 7:75.50, 8:84.70, 9:93.90, 10:103.10, 15:126.10, 20:149.10, 25:172.10, 30:195.10', 'Tarifs Colissimo international pour les destinations de la Zone C. ', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone D (pays)', 'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_4', 'AS, AQ, AR, AW, AU, BS, BH, BD, BB, BZ, BT, BO, BV, BR, IO, BN, KH, KY, CL, CN, CX, CC, CO, KM, CK, CR, CU, DO', 'Insérer une virgule entre 2 codes ISO de pays qui font partie de la même zone', '6', '0', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Colissimo Zone D (poids:tarifs)', 'MODULE_SHIPPING_COLISSIMO_INT_COST_4', '1:24.40, 2:36.60, 3:48.80, 4:61.00, 5:73.20, 6:85.40, 7:97.60, 8:109.80, 9:122.00, 10:134.20, 15:158.60, 20:183.00, 25:231.80, 30:280.60', 'Tarifs Colissimo international pour les destinations de la Zone D. ', '6', '0', now())");
   tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Selection Automatique du R1 à R5', 'MODULE_SHIPPING_COLISSIMO_R1R5', 'True', 'Selon le montant du panier, il choisit le bon recommandé', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
      // Délai_minimum BOC (L'ordre des positions sont redéfini -> sort_order)
      // Ajout constante -> MODULE_SHIPPING_COLISSIMO_DELAI_MINI
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Délai minimum', 'MODULE_SHIPPING_COLISSIMO_DELAI_MINI', '172800', 'Délai minimum de jours ouvrés de livraison', '6', '2', 'tep_get_delai_title', 'tep_cfg_pull_down_delai(', now())");
      // Délai_minimum EOC
}

    function remove() {
      tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array('MODULE_SHIPPING_COLISSIMO_STATUS',  
  'MODULE_SHIPPING_COLISSIMO_HANDLING',
  'MODULE_SHIPPING_COLISSIMO_DELAI_MINI',
  'MODULE_SHIPPING_COLISSIMO_TAX_CLASS',
  'MODULE_SHIPPING_COLISSIMO_R1R5',
  'MODULE_SHIPPING_COLISSIMO_NATIONAL',
  'MODULE_SHIPPING_COLISSIMOR1_NATIONAL',
  'MODULE_SHIPPING_COLISSIMOR2_NATIONAL',
  'MODULE_SHIPPING_COLISSIMOR3_NATIONAL',
  'MODULE_SHIPPING_COLISSIMOR4_NATIONAL',
  'MODULE_SHIPPING_COLISSIMOR5_NATIONAL',
  'MODULE_SHIPPING_COLISSIMO_DOM_STATUS',
  'MODULE_SHIPPING_COLISSIMO_DOM',
  'MODULE_SHIPPING_COLISSIMOR1_DOM',
  'MODULE_SHIPPING_COLISSIMOR2_DOM',
  'MODULE_SHIPPING_COLISSIMOR3_DOM',
  'MODULE_SHIPPING_COLISSIMOR4_DOM',
  'MODULE_SHIPPING_COLISSIMOR5_DOM',
  'MODULE_SHIPPING_COLISSIMO_TOM_STATUS',
  'MODULE_SHIPPING_COLISSIMO_TOM',
  'MODULE_SHIPPING_COLISSIMOR1_TOM',
  'MODULE_SHIPPING_COLISSIMOR2_TOM',
  'MODULE_SHIPPING_COLISSIMOR3_TOM',
  'MODULE_SHIPPING_COLISSIMOR4_TOM',
  'MODULE_SHIPPING_COLISSIMOR5_TOM',
  'MODULE_SHIPPING_COLISSIMO_INT_STATUS',
  'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_1',
  'MODULE_SHIPPING_COLISSIMO_INT_COST_1',
  'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_2',
  'MODULE_SHIPPING_COLISSIMO_INT_COST_2',
  'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_3',
  'MODULE_SHIPPING_COLISSIMO_INT_COST_3',
  'MODULE_SHIPPING_COLISSIMO_INT_COUNTRIES_4',
  'MODULE_SHIPPING_COLISSIMO_INT_COST_4',
  'MODULE_SHIPPING_COLISSIMO_SORT_ORDER',);
    }

    // delai_livraison BOC
    function confirmation() {
        $delai = $this->getDelai();
        $fields[] = array('title' => HEADING_SHIPPING_DATE, 'field' => sprintf(MODULE_SHIPPING_COLISSIMO_DELAI, $delai['delai'], $delai['date_liv']));
        return array('title' => HEADING_SHIPPING_INFORMATION,
                        'fields' => $fields);
    }
    // delai_livraison EOC

  }
?>

Je pense que çà vous ferra gagner un peu de temps
Cordialement
Alex

Go to the top of the page
 
ThaPL
posté 22 Jan 2010, 14:40
Message #27


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 5
Inscrit : 17-September 09
Membre no 26150



Salut,

@ AlexKid, j'ai utiliser ton fichier colissimo, en effet cela m'a fait gagner pas mal de temps (vu mon niveau de debutant), mais par contre lord de la selection du mode de livraison, la date de livraison estimer n'est pas afficher alors que pour les autres modules elle est bien visible.

Sinon j'ai ajouter l'estimation de la date de livraison a la contrib French Lettermax v4, tout semble ok, donc je vous met le fichier meme si c'est pas un exploit en soit, ca fera encore gagner du temps a d'autre.

/catalog/includes/modules/shipping/lettermax.php:

Code
<?php
/*
   $Id: lettermax.php,v 1.40 2003/02/05 22:41:52 hpdl Exp $

   osCommerce, Open Source E-Commerce Solutions
   http://www.oscommerce.com

   Copyright (c) 2003 osCommerce

   Released under the GNU General Public License

   LETTERMAX
*/

class lettermax {
     var $code;
     var $title;
     var $description;
     var $icon;
     var $enabled;
     //
     var $prods;       // Liste des produits (quantités éliminé)
     var $totalProds;  // Nombre total de produits (réel : sans les quantités)
     var $weightProds; // Poids total des produits (du panier) -> Poids au Kg
     //
     var $nbMax;       // Nombre total de model de lettre Max (checké ou pas)
     var $checkMax;    // Etat du model (true ou false) : Pour le proposer ou pas
     var $indiceMax;   // Indice (ou la clé) du format Lettre Max sélectionné
     //
     var $models;      // Les modèles de LettreMax
                       //   name : Model de lettre MAX (MAX20g, MAX50g, MAX1, MAX2, MAX3, MAX4)
                       // length : Longueur maxi du format lettre -> mm
                       //  width : Largeur maxi du format lettre -> mm
                       // height : Hauteur maxi du format lettre -> mm
                       // weight : (Poids maxi du format lettre - Poids de la tare d'emballage) -> Kg
                       //   cost : Tarif du format lettre
                       // Tarif de l'indemnisation (assurance) du format lettre
     //
    
     // class constructor
     function lettermax() {
         global $PHP_SELF;
        
         $this->code = 'lettermax';
         $this->title = MODULE_SHIPPING_LETTERMAX_TEXT_TITLE;
         $this->description = MODULE_SHIPPING_LETTERMAX_TEXT_DESCRIPTION;
         $this->sort_order = MODULE_SHIPPING_LETTERMAX_SORT_ORDER;
         $this->icon = 'lettermax.gif';
         $this->tax_class = MODULE_SHIPPING_LETTERMAX_TAX_CLASS;
         $this->enabled = ((MODULE_SHIPPING_LETTERMAX_STATUS == 'True') ? true : false);
         //
         $this->prods = array();
         $this->totalProds = 0;
         $this->weightProds = 0;
         $this->nbMax = 0;
         $this->indiceMax = null;
         $this->models = array();
         //
        
         if (basename($PHP_SELF) != FILENAME_MODULES) {
             global $order;
            
             if ($this->enabled == true && (int)MODULE_SHIPPING_LETTERMAX_ZONE > 0) {
                 $check_flag = false;
                 $check_query = tep_db_query("select zone_id from ".TABLE_ZONES_TO_GEO_ZONES." where geo_zone_id = '".MODULE_SHIPPING_LETTERMAX_ZONE."' and zone_country_id = '".$order->delivery['country']['id']."' order by zone_id");
                 while ($check = tep_db_fetch_array($check_query)) {
                     if ($check['zone_id'] < 1) {
                         $check_flag = true;
                         break;
                     }
                     elseif ($check['zone_id'] == $order->delivery['zone_id']) {
                         $check_flag = true;
                         break;
                     }
                 }
                
                 if ($check_flag == false) {
                     $this->enabled = false;
                 }
             }
            
             // Construction du tableau des produits
             $this->initLetterMax();
             //
             if ($this->enabled === true) {
                 // Calcul/vérifie le volume/les dimensions/le poids des produits
                 $this->enabled = $this->verifLettreMax();
             }
         }
     }
    
     // Construit le tableau des produits
     // Elimine les quantité de produits
     function initLetterMax() {
         global $cart, $order;
        
         // Récupère les modèles de LettreMax :
         // -> correspond à la zone de livraison
         // -> dont le statut est valide
         $letter_query = tep_db_query("SELECT COUNT(letter_id) AS total
             FROM ".TABLE_LETTERMAX."
             WHERE letter_zone_country_id = '".(int)$order->delivery['country']['id']."'
             AND letter_status = '1'");
         $total = tep_db_fetch_array($letter_query);
         //
         $letter_zone_country_id = 0;
         if ((int)$total['total'] > 0) {
             $letter_zone_country_id = (int)$order->delivery['country']['id'];
         }
         //
         $letter_query = tep_db_query("SELECT letter_name, letter_length, letter_width,
             letter_height, letter_max_weight, letter_empty_weight, letter_cost,
             (letter_length * letter_width * letter_height) AS volume
             FROM ".TABLE_LETTERMAX."
             WHERE letter_zone_country_id = '".(int)$letter_zone_country_id."'
             AND letter_status = '1'
             ORDER BY letter_max_weight, volume");
         $this->nbMax = tep_db_num_rows($letter_query);
         //
         if ((int)$this->nbMax > 0) {
             while ($model_max = tep_db_fetch_array($letter_query)) {
                 // Soustrait le poids maxi du poids de la tare d'emballage
                 // -> poids de la lettreMax + renforts éventuels
                 $this->models[] = array('name' => $model_max['letter_name'],
                                                 'length' => $model_max['letter_length'],
                                                 'width' => $model_max['letter_width'],
                                                 'height' => $model_max['letter_height'],
                                                 'weight' => $model_max['letter_max_weight'] - $model_max['letter_empty_weight'],
                                                 'cost' => $model_max['letter_cost']);
             }
             //
             $length = array();
             $width = array();
             $height = array();
             $prods = array();
             $cpt = 0;
             // Boucle sur les produits du panier pour obtenir les dimensions
             for ($i = 0, $n = count($order->products); $i < $n; $i++) {
                 $length[$i] = $order->products[$i]['length'];
                 $width[$i] = $order->products[$i]['width'];
                 $height[$i] = $order->products[$i]['height'];
                 //
                 if ((int)$order->products[$i]['qty'] > 1) {
                     // Elimine les quantités
                     // Rajoute autant de produits que de quantité
                     for ($q = 0; $q < $order->products[$i]['qty']; $q++) {
                         $prods[$cpt] = array($length[$i], $width[$i], $height[$i]);
                         asort($prods[$cpt], SORT_NUMERIC); // ordre décroissant
                         $this->prods[] = array('length' => $prods[$cpt][0], 'width' => $prods[$cpt][1], 'height' => $prods[$cpt][2]);
                         $cpt++;
                     }
                 }
                 else {
                     $prods[$cpt] = array($length[$i], $width[$i], $height[$i]);
                     asort($prods[$cpt], SORT_NUMERIC); // ordre décroissant
                     $this->prods[] = array('length' => $prods[$cpt][0], 'width' => $prods[$cpt][1], 'height' => $prods[$cpt][2]);
                     $cpt++;
                 }
             }
             //
             $this->totalProds = count($this->prods);
             //
             // Poids des produits (du panier)
             $weight = $cart->show_weight();
             if ($weight > 0) $this->weightProds = $weight;
         }
     }
    
     //
     function verifLettreMax() {
         $dimension = false;
         $volumeTotal = 0;
         for ($i = 0; $i < $this->totalProds; $i++) {
             $volumeTotal += $this->prods[$i]['length'] * $this->prods[$i]['width'] * $this->prods[$i]['height'];
         }
         //
         for ($ind=0; $ind < $this->nbMax; $ind++) {
             $this->indiceMax = null;
             // Vérifie les volumes des produits avec le modèle en court
             $verif_dimension = $this->verifDimensions($ind);
             // Vérifie le poids des produits avec le modèle en court
             $verif_weight = $this->verifWeight($ind);
             // Calcul du volume du modèle de LettreMax
             $volumeLettreMax = $this->models[$ind]['length'] * $this->models[$ind]['width'] * $this->models[$ind]['height'];
             //
             if ($volumeTotal > $volumeLettreMax || $verif_dimension == false || $verif_weight == false) continue;
             //
             $this->indiceMax = $ind;
             return true;
         }
         //
         return false;
     }
    
     function verifDimensions($ind) {
         for ($i = 0; $i < $this->totalProds; $i++) {
             if ($this->prods[$i]['length'] > $this->models[$ind]['length'] ||
                 $this->prods[$i]['width'] > $this->models[$ind]['width'] ||
                 $this->prods[$i]['height'] > $this->models[$ind]['height']) {
                 //
                 return false;
                 break;
             }
         }
         return true;
     }
    
     //
     function verifWeight($ind) {
         if ($this->weightProds > $this->models[$ind]['weight']) return false;
         return true;
     }
    
     // class methods
     function quote($method = '') {
         global $order, $shipping_weight;
        
         $shipping_weight = $this->weightProds;
// Délai_minimum BOC
         $delai = $this->getDelai();
         $this->quotes = array('id' => $this->code,
                                     'module' => MODULE_SHIPPING_LETTERMAX_TEXT_TITLE,
                                     'methods' => array());
        
         if ($this->enabled == true && is_null($this->indiceMax) === false) {
             $this->quotes['methods'][] = array('id' => $this->code,
                                                             'title' => MODULE_SHIPPING_LETTERMAX_TEXT_WAY,
                                                             'delai' => sprintf(MODULE_SHIPPING_LETTERMAX_DELAI, $delai['delai'], $delai['date_liv']),
                                                             'cost' => $this->models[$this->indiceMax]['cost'] + MODULE_SHIPPING_LETTERMAX_HANDLING);
// Délai_minimum EOC
             if ($this->tax_class > 0) {
                 $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
             }
             //
         }
         else {
             $this->quotes['error'] = MODULE_SHIPPING_LETTERMAX_TOO_HEAVY;
         }
         //
         if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image(DIR_WS_ICONS.$this->icon, $this->title);
         return $this->quotes;
     }
    
     // delai_livraison BOC
     function getDelai() {
         global $order;
    
         $delai = array();
         $totOuvrables = 0;
         $delai_order = (int)$order->info['delaiMax'];
         // Le délai minimum remplace le délai max des produits si celui ci est plus grand
         if (MODULE_SHIPPING_LETTERMAX_DELAI_MINI > $delai_order) {
             $delai_order = MODULE_SHIPPING_LETTERMAX_DELAI_MINI;
         }
         $time = time();
         $heure = (int)date("H", $time);
         // Départ de la livraison le jour même ou le lendemain selon l'heure (12h00)
         $date_depart = ($heure > 12) ? $time + 86400: $time;
         $date_livraison = $date_depart + $delai_order;
         // Comptabilise le nombre de jours ouvrables entre la période de livraison
         $with_saterday = false; // Comptabilise pas les samedis
         $with_sunday = true; // Comptabilise les dimanches
         $verif_jour_livraison = true; // Vérifie si le jour de livraison est un jour ouvrable (si oui -> 1 jours de plus)
         $totOuvrables = get_jours_ouvrables($date_depart, $date_livraison, $with_saterday, $with_sunday, $verif_jour_livraison);
         // On ajoute les jour ouvrables : Timestamp du jour de livraison
         $date_livraison += $totOuvrables * 86400;
         //
         $delai['delai'] = $delai_order / 86400;
         $delai['date_liv'] = date(DATE_FORMAT, $date_livraison);
         return $delai;
     }
     //
     function confirmation() {
         $delai = $this->getDelai();
         $fields[] = array('title' => HEADING_SHIPPING_DATE, 'field' => sprintf(MODULE_SHIPPING_LETTERMAX_DELAI, $delai['delai'], $delai['date_liv']));
         return array('title' => HEADING_SHIPPING_INFORMATION,
                      'fields' => $fields);
     }
     // delai_livraison EOC

     function check() {
         if (!isset($this->_check)) {
             $check_query = tep_db_query("select configuration_value from ".TABLE_CONFIGURATION." where configuration_key = 'MODULE_SHIPPING_LETTERMAX_STATUS'");
             $this->_check = tep_db_num_rows($check_query);
         }
         return $this->_check;
     }
    
     function install() {
// Délai_minimum BOC (L'ordre des positions sont redéfini -> sort_order)
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Autoriser La gamme Lettre Max', 'MODULE_SHIPPING_LETTERMAX_STATUS', 'True', 'Voulez vous autoriser la gamme de la Lettre Max (format lettre) ?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
// Ajout constante -> MODULE_SHIPPING_LETTERMAX_DELAI_MINI
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Délai minimum', 'MODULE_SHIPPING_LETTERMAX_DELAI_MINI', '172800', 'Délai minimum de jours ouvrés de livraison', '6', '2', 'tep_get_delai_title', 'tep_cfg_pull_down_delai(', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Frais fixes', 'MODULE_SHIPPING_LETTERMAX_HANDLING', '0', 'Frais fixes (emballage) de la lettreMax', '6', '3', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('TVA applicable', 'MODULE_SHIPPING_LETTERMAX_TAX_CLASS', '0', 'Sélectionnez la TVA applicable sur le montant de la livraison.', '6', '4', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Zone de livraison', 'MODULE_SHIPPING_LETTERMAX_ZONE', '0', 'Permettre seulement cette méthode de livraison pour la zone choisie.', '6', '5', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");
         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ordre de tri', 'MODULE_SHIPPING_LETTERMAX_SORT_ORDER', '0', 'Ordre d\'affichage du module de livraison', '6', '6', now())");
// Délai_minimum EOC
     }
    
     function remove() {
         tep_db_query("DELETE FROM ".TABLE_CONFIGURATION."
             WHERE configuration_key IN ('".implode("', '", $this->keys())."')");
     }
    
     function keys() {
         return array('MODULE_SHIPPING_LETTERMAX_STATUS',
                         'MODULE_SHIPPING_LETTERMAX_DELAI_MINI',    
                         'MODULE_SHIPPING_LETTERMAX_HANDLING',
                         'MODULE_SHIPPING_LETTERMAX_TAX_CLASS',
                         'MODULE_SHIPPING_LETTERMAX_ZONE',
                         'MODULE_SHIPPING_LETTERMAX_SORT_ORDER');
     }
}
?>


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR v3 + FCK HTML Editor 2.7 Install for OSC2.2.1.2 + Big_Images 1.25 - 2.2MS2 + Simple Template System 4.5.9 + HeaderTags SEO V3.1.8 + TVA Intra communautaire V5.1 + customer Must Accept Terms and Conditions v2.3.1 (MATC) + FAQ System 2.1 + country based shipping contrib + colissimo_v1.8 + Order Logging 3.1.1 + French Lettermax v4 + Tracking Colissimo/UPS 1.0.2 (modif UPS en Lettre Max) + AJAX-AttributeManager-V2.8.7 + Delivery Date V1
Go to the top of the page
 
mistermmabner
posté 5 Mar 2010, 23:49
Message #28


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 7
Inscrit : 19-November 09
Membre no 26562



Bonjour,
j'ai instalé cette contribution que je trouve super pratique. Mais j'ai un souci car j'aimerai indiqué que le samedi et le dimanche ne sont pas comptés mais impossible à chaque fois un des jours est comptabilisé. selon le délai j'ai des date prévu pour le dimanche !
comment faire pour fixer ça et faire en sorte que le samedi et le dimache soit exclue du calcule ?
merci d'avance pour votre aide
Go to the top of the page
 
figaro
posté 2 May 2011, 09:39
Message #29


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 11-January 08
Membre no 20351



Bonjour Shoprun,

Merci pour cette contrib qui est vraiment pratique !!
Je l'ai installé et j'aimerais faire apparaitre l'estimation de la date de livraison des produits dans product_info.php, il y a un bout de code dans le fil de cette discussion, mais il n'est apparemment pas adapté a la contrib ?
Aurais tu déjà rajouté cette option ?

Merci pour ta réponse.

Figaro
Go to the top of the page
 
dark perles
posté 8 Jul 2011, 10:55
Message #30


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 131
Inscrit : 2-July 06
Membre no 10999



Bonjour,

Est-il possible de faire l'estimation de la date de livraison en fonction de l'heure ?
Car je livre en début d'après midi et les commande après 13 ou 14h sont pour le lendemain.

La question de Figaro m'interésse aussi pour mettre l'information de livraison dans la page product_info.php



--------------------
MS 2.2FR - CenterShop V1.5 - More Pics 6 V1.2 - Ultimate Seo URL 2.1.d - Automatic Thumbnail - Googlexmlsitemap V1.3 - Header Tags V2.5.9.1 - Visible Countries V1.2 - User Tracking with admin 1.4.2 - OderCheck V2 - products on order V1.2 - Who's online turbo V1.1 - Shop by price V2.5 - Send html mail V2 - Paybox_MS2_V2 - Newsletter_products_V2_3 - Discount_coupon_code_V3.3 - Reclamaposte V2.3
Go to the top of the page
 
mickael34
posté 8 Jul 2011, 11:24
Message #31


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 181
Inscrit : 3-January 08
Membre no 20263



Je n'utilise pas la contrib mais dans mon product_info j'ai ça :

Code
<?php

$heure2 = date("H:i" ); //Heure actuelle du serveur
$heure = "12:00"; // Heure limite de commande pour une livraison sous 48h00
$jour=date("w"); // Variable du jour

//0 (pour dimanche) à 6 (pour samedi)

if ($jour == '0') // Si le jour est dimanche
{
echo date("d/m/Y", time()+72*3600); // le délai de livraison est de 72h00
}
else if ($jour == '6') // Si le jour est samedi
{
echo date("d/m/Y", time()+96*3600); // le délai de livraison est de 96h00
}
else if ($jour == '5' && ($heure2)<=($heure)) // Si le jour est vendredi avant 12h00
{
echo date("d/m/Y", time()+72*3600); // le délai de livraison est de 72h00
}
else if ($jour == '5' && ($heure2)>=($heure)) // Si le jour est vendredi et après 12h00
{
echo date("d/m/Y", time()+120*3600); // le délai de livraison est de 120h00
}
else if ($jour == '4' && ($heure2)<=($heure)) // Si le jour est jeudi avant 12h00
{
echo date("d/m/Y", time()+48*3600); // le délai de livraison est de 48h00
}
else if ($jour == '4' && ($heure2)>=($heure)) // Si le jour est jeudi et après 12h00
{
echo date("d/m/Y", time()+96*3600); // le délai de livraison est de 96h00
}

else if (($heure2)<=($heure)) //Pour les autres jours de la semaine, si la commande est passée avant 12h00
{
echo date("d/m/Y", time()+48*3600); // le délai de livraison est de 48h00
  
}
else
{
echo date("d/m/Y", time()+72*3600); // Pour les autres cas (commande passée après 12h00) le délai de livraison est de 72h00
}
?>


Code que j'avais trouvé un jour sur le forum et que j'ai bidouillé.
Pour commandes avant ou après 12h00 (on peut changer évidemment).

Selon le jour et l'heure, les délais sont ok. Testé et approuvé !
Par contre ça ne tient pas compte des jours fériés.

Si ça peut vous aider...


--------------------
Sur OsCommerce 2.2
Go to the top of the page
 
dark perles
posté 8 Jul 2011, 17:31
Message #32


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 131
Inscrit : 2-July 06
Membre no 10999



Merci beaucoup mickael34, ton code est impeccable.
Juste quelques modification à faire mais super bien wub.gif


--------------------
MS 2.2FR - CenterShop V1.5 - More Pics 6 V1.2 - Ultimate Seo URL 2.1.d - Automatic Thumbnail - Googlexmlsitemap V1.3 - Header Tags V2.5.9.1 - Visible Countries V1.2 - User Tracking with admin 1.4.2 - OderCheck V2 - products on order V1.2 - Who's online turbo V1.1 - Shop by price V2.5 - Send html mail V2 - Paybox_MS2_V2 - Newsletter_products_V2_3 - Discount_coupon_code_V3.3 - Reclamaposte V2.3
Go to the top of the page
 
Juliettta
posté 9 Jul 2011, 08:35
Message #33


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 148
Inscrit : 30-April 08
Lieu : Nimes
Membre no 21642



Chapeau!!

Cette installations semble pas mal du tout!!!
J'en aurait bien eu besoin l'année dernière.
Maintenant il calcule visiblement les jours ouvrables => pas mal, mais je n'ai rien vu en ce qui concerne les stocks.

Et bien oui le délai peut être différent après avoir épuisé le dernier produit en stock.
En exemple j'ai deux produits X ici et je peux donc expédier ces deux produits en 24H aujourd'hui, mais si hier il m'en a été commandé 3 je ne vois pas de distinction possible avec ce code pour le 3eme client qui aura commandé et qui devra attendre alors que je me réapprovisionne.


Pour ma part, j'ai plus besoin de cela=> une gestion par article en fonction du stock de ce délai.
J'ai installé le limited by article et un champs product_on-order qui se charge de dire quand le stock = 0 alors le délai du champs qui est libre (on rentre le chiffre) ce n'est pas un délai comme dans ce module...
Une petite modification du panier, du pad_multiple_dropdows et le tour est joué. Le champs d'indication est présent dans la fiche produit et dans le panier.
En gros quand le produits n'est plus en stock le client est averti.

La ce qui me dérange c'est qu'en fait cela ne répond au stock.... mais au module et au produit.
Je sais je viens comme un cheveux sur la soupe critiquer une contrib qui en soit n'est pas mal du tout et même génial soit pour les e commerces qui travaillent sans aucun stock, soit pour les structures qui ne travaillent uniquement sur stock. Et encore quand on travaille tout sur stock le délais est en fonction du module de paiement donc reste juste à ajouter une phrase bateau dans le chaque module expédition (livraison sous 2 jours ouvrables) Alors oui c'est plus chic quand ca indique une date mais ne répond pas aux problème de stock... Qui est primordial dans un éventuel délai de livraison.

Lol bon voilà je vous ai mis un bon travail supplémentaire de développement utile à la fin ce ne sera plus une contrib.... biggrin.gif . Mais une moitié de site à ajouter.... biggrin.gif

C'est déjà Super bien et Bravo pour toute cette technique de calcul savant de jours Férié.... MDR Euh dans cette contrib on peut y ajouter nos vacances quand on en prend??? MDR

Bon codage à tous.

Ce message a été modifié par Juliettta - 9 Jul 2011, 08:42.


--------------------
Juliettta allias bloness

oscommerce-2.2RC1-FR-w3c CONTRIB => Advanced search attributies fullpackage AJAX-AttributeManager-V2.8.3 B2B Product Listing Columns Bbi_v2 CL_summary_info_v1.1 Colissimo_1_2_3_4_5_1 Contrib ExU-1 Dynamic_sitemap_v4.0 Fckeditor-oscommerce_v2.2.1 Featured_products_v1.5.5_1 Header-tags-4-novices-v3.01 InvoicePDF1.5_ LettreMax etDistingo More_Pics_Sur_FCKeditor_1_2_3 Newsletter_report_v1.1_full On-fire-osc PayPal_IPN_v2.3.4.5 Ot discount coupon codes fr PRODUCT QUICK EDIT V2.0 _ Queries_debug-v1.7 Ultimate_SEO_URLs_v2-2.2e virementbancaire1.3 mvs_shipestimator_v1.1a subcategory_textboxes_v2.0.3 Products_Short_Descriptions_V2_1 Graphical Borders & Individual Boxes Holiday_1 Loginbox_Best_Complete_1 Products_Short_Descriptions_V2_1 multiorders update V2-1 Opti_Print_v1.0.2-1 order_editor_5_0_9 ot_lotalty_discount v1.5 Produit vendu Send HTML Email Who's Online Enhancement v3_5_1
Plus d'autres petites améliorations par ci par la...Travaillée pour rester validé W3c Après toutes ces installations.
Go to the top of the page
 

2 Pages V  < 1 2
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 16th April 2024 - 06:10
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)