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

Bienvenue invité ( Connexion | Inscription )

3 Pages V  < 1 2 3 >  
Reply to this topicStart new topic
> [resolu] Export des commandes sur exel
schwarzyz
posté 24 Nov 2007, 14:56
Message #26


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 22
Inscrit : 5-October 07
Lieu : FRANCE
Membre no 19293



Salut,

Effectivement il fallait y penser. tongue.gif

Merci beaucoup tom555 et à tous ceux qui on participé, maintenant c'est sur la compta c'est moins un souci.
Go to the top of the page
 
lusitain
posté 21 Dec 2007, 17:14
Message #27


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 41
Inscrit : 10-November 05
Membre no 7776



Attention au post de "Keuj", son code est bien mis à part qu'il y un bug qui peut vous couter cher... en effet, il oublie de multiplier son résutat sur les taxes par le nombre de produits achetés...

La bonne requête pour son QUERIES 9 est donc

$orders_products = tep_db_query("select sum(products_price*products_quantity) as total_ht, sum((products_price*products_tax/100)*products_quantity) as total_tva,products_tax as taux_tva from orders_products
where orders_id = " . $Orders_id. " group by products_tax order by taux_tva desc");


Go to the top of the page
 
farfads
posté 8 Jan 2008, 14:40
Message #28


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 276
Inscrit : 8-June 06
Lieu : la baule
Membre no 10700



Salut,

j'avance sur mon fichier mais je bloque pour avoir le prix HT,

je souhaites avoir :

$csv_output .= Order_total / 1.196

mais je bloque ! Help !


--------------------
MS2fr.

2 Sec pour une grande cause: UNITAID
Merci!
Go to the top of the page
 
farfads
posté 8 Jan 2008, 15:57
Message #29


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 276
Inscrit : 8-June 06
Lieu : la baule
Membre no 10700



Bon j'ai trouvé une solution si cela interesse certains:

j'ai travailler sur la Queries 7:

CITATION
// -------------------- QUERIES 7 ------------------------------------//
// Orders_Total
$orders_total = tep_db_query("select value/1.196 as total_ht, value/1.196*0.196 as total_tva, value from orders_total
where class = 'ot_total' and orders_id = " . $Orders_id);
// $row_orders_total = tep_db_fetch_array($orders_total);
while ($row_orders_total = mysql_fetch_array($orders_total)) {
// end //
$Order_Grand_Total = $row_orders_total["value"];
$Order_Ht = $row_orders_total["total_ht"];
$Order_Tva = $row_orders_total["total_tva"];
}


et j'appel les fonctions $Order_Ht et $Order_Tva dans les lignes souhaitées

c'est pas terrible mais cela marche blush.gif


--------------------
MS2fr.

2 Sec pour une grande cause: UNITAID
Merci!
Go to the top of the page
 
xawaks
posté 8 Jan 2008, 23:59
Message #30


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



CITATION(nadelo @ 27 Jun 2006, 16:33) [snapback]181747[/snapback]
Salut,

elle fonctionne aussi bien chez moi, reste que je n'ai pas trouvé comment faire ressortir mes 2 TVA (5.5% et 19.6%).
Il y en qu'une seule qui ressort avec à priori uniquement la 19.6 quand il y a les 2

je vais creuser avec ma pelle mais si jamais quelqu'un passe avec un tracto pelle, je suis preneur
biggrin.gif
gracias


Salut,

je suis entrain de mettre en place sur ma boutique cette contribution car mon expert comptable me menace d'une augmentation des tarifs vu la pile de facture papier que je lui dépose chaque mois ;o))

Cela marche pas mal, j'ai même rajouté le mode de paiment et les coupons de réductions, mais j'ai le même problème que Nadelo !

Le calcul de la TVA ne marche pas correctement.

Quand c'est que 19,6 c'est bon, lorqu'il y a les deux c'est bon aussi, mais si je n'ai rien ou uniquement 5,5 cela ne marche pas...

Pourquoi ? unsure.gif


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
tom555
posté 11 Jan 2008, 14:03
Message #31


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 357
Inscrit : 18-July 03
Membre no 1312



CITATION(farfads @ 8 Jan 2008, 14:40) [snapback]265319[/snapback]
Salut,

j'avance sur mon fichier mais je bloque pour avoir le prix HT,

je souhaites avoir :

$csv_output .= Order_total / 1.196

mais je bloque ! Help !


Suite à ton MP, voilà le bout de code qui me calcule le total HTVA.

CODE
// --------------------    QUERIES 2  ------------------------------------//
//Orders_subtotal
$orders_subtotal = tep_db_query("select value from orders_total
where class = 'ot_subtotal' and orders_id = " . $Orders_id);
//$row_orders_subtotal = tep_db_fetch_array($orders_subtotal);
while($row_orders_subtotal = mysql_fetch_array($orders_subtotal)) {
// end //
$Order_Subtotal = filter_text(round($row_orders_subtotal["value"] *100/115, 2));
}


Puis, plus bas dans le CSv output
CODE
$csv_output .= $Order_Subtotal;


Voilà






--------------------
MS2 - tva intracommunautaire - n° facture séquentiel (merci blanche neige!) - ticket support - programme d'affiliation - Ultimate SEO - header tag- discountplus.
Go to the top of the page
 
xawaks
posté 11 Jan 2008, 14:24
Message #32


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



Et pour mon soucis de différenciation des deux TVA (19,6 et 5,5) tu n'aurais pas une piste ?




--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
tom555
posté 11 Jan 2008, 17:16
Message #33


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 357
Inscrit : 18-July 03
Membre no 1312



je ne gère qu'un seul taux de TVA dans ma boutique.
Je n'ai jamais regardé à cela.

Les différents montants de TVA sont-ils présent dans la table "orders_total" ?


--------------------
MS2 - tva intracommunautaire - n° facture séquentiel (merci blanche neige!) - ticket support - programme d'affiliation - Ultimate SEO - header tag- discountplus.
Go to the top of the page
 
xawaks
posté 12 Jan 2008, 12:03
Message #34


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



oui et non

En fait ils sont dans la table orders_total mais avec la même variable ot_tax, donc impossible de faire la différence.

Donc j'ai utilisé la queries 9 de keuj que j'ai un peu adapté

CODE
// --------------------    QUERIES 9  ------------------------------------//
        $orders_products = tep_db_query("select sum(products_price*products_quantity) as total_ht, sum((products_price*products_tax/100)*products_quantity)
as total_tva,products_tax as taux_tva from orders_products
where orders_id = " . $Orders_id. " group by products_tax order by products_tax desc");
        $case ="19.6000";
        while ($row_orders_products = mysql_fetch_array($orders_products)) {

            if ($case == "19.6000") {
                if (tep_round($row_orders_products['taux_tva'],2) == "19.6000") {
                    $csv_output .= tep_round(filter_text($row_orders_products['total_ht']),2) . $CSV_SEPARATOR;
                    $csv_output .= tep_round(filter_text($row_orders_products['total_tva']),2) . $CSV_SEPARATOR;
                } else {
                    $csv_output .=  "0";
                    //$csv_output .= "0";
                }
                $case="5.5000";
                continue;
            }
            if ($case== "5.5000") {
                if (tep_round($row_orders_products['taux_tva'],2) == "5.5000") {
                    $csv_output .= tep_round(filter_text($row_orders_products['total_ht']),2) . $CSV_SEPARATOR;
                    $csv_output .= tep_round(filter_text($row_orders_products['total_tva']),2) . $CSV_SEPARATOR;
                } else {
                    $csv_output .=  "0";
                  //  $csv_output .= "0";
                }
                $case="0.0000";
                continue;
            }
            if ($case== "0.0000") {
                if (tep_round($row_orders_products['taux_tva'],2) == "0.0000") {
                    $csv_output .= tep_round(filter_text($row_orders_products['total_ht']),2) . $CSV_SEPARATOR;
                    //$csv_output .= tep_round(filter_text($row_orders_products['total_tva']),2) . $CSV_SEPARATOR;
                } else {
                    $csv_output .=  "0";
                    //$csv_output .= "0";
                }
            }
        }
        // --------------------------------------------------------------------------//
        $csv_output .= "\n";
    } // while loop main first


Et comme expliqué plus haut, le calcul de la TVA ne marche pas correctement.

Quand c'est que 19,6 c'est bon, lorqu'il y a les deux c'est bon aussi, mais si je n'ai rien ou uniquement 5,5 cela ne marche pas...

Alors une idée ?



--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
tom555
posté 12 Jan 2008, 15:05
Message #35


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 357
Inscrit : 18-July 03
Membre no 1312



Mes connaissances sont trop limitées pour débuguer ton bout de code mais si les 2 montants sont dans la table "orders_total", qu'est-ce qui t'empêche de filtrer sur le champ 'title' plutôt que 'class' ?
Les 2 champs 'title' des 2 montants TVA sont différents, genre "TVA:5.5" et "TVA:19.6", non?

CITATION
// -------------------- QUERIES 3 ------------------------------------//
//Orders_tax
$orders_tax = tep_db_query("select value from orders_total
where title = 'TVA:19.6' and orders_id = " . $Orders_id);
//$row_orders_tax = tep_db_fetch_array($orders_tax);
while($row_orders_tax = mysql_fetch_array($orders_tax)) {
// end //
$Order_Tax = filter_text(round($row_orders_tax["value"], 2));
}
// -------------------- QUERIES 3bis ------------------------------------//
//Orders_tax55
$orders_tax55 = tep_db_query("select value from orders_total
where title = 'TVA:5.5' and orders_id = " . $Orders_id);
//$row_orders_tax = tep_db_fetch_array($orders_tax);
while($row_orders_tax55 = mysql_fetch_array($orders_tax55)) {
// end //
$Order_Tax55 = filter_text(round($row_orders_tax55["value"], 2));
}


En rouge, faut bien sûr mettre la dénomination exacte qui est utilisée chez toi.

Puis dans ton csv output, tu fais sortir ces 2 montants où tu veux.
CITATION
$csv_output .= $Order_Tax;
$csv_output .= $Order_Tax55;


Je vois quelque chose dans ce genre là.
A tester, j'suis sûr de rien.

Ce message a été modifié par tom555 - 12 Jan 2008, 15:20.


--------------------
MS2 - tva intracommunautaire - n° facture séquentiel (merci blanche neige!) - ticket support - programme d'affiliation - Ultimate SEO - header tag- discountplus.
Go to the top of the page
 
xawaks
posté 12 Jan 2008, 17:06
Message #36


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



Merci de te pencher sur ce soucis.

Mais malheureusement cela ne marche pas confused.gif

C'est quand même étrange que depuis 2006, date à laquel Keuj a mis son code, personne n'est eu le soucis.

Personne n'a de double TVA sur son site question.gif

Je retourne dans mon bbedit faire des essais et je vous tiens au courant si je trouve le truc evil.gif

Ce message a été modifié par xawaks - 12 Jan 2008, 17:07.


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
Gnidhal
posté 12 Jan 2008, 17:49
Message #37


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9113
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



J'arrive un peu après la bataille mais bon, voilà le script que j'utilise :
Code
<?php
/*
  $Id: orders_compta.php,v 1.1 13/01/2008 09:48:11 fxm Mod $

  osCommerce, Open Source E-Commerce Solutions
  [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

  Copyright © 2003 osCommerce - 2007 WebEspace.fr

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

if ($_POST['export_x']){
              header ("Content-type: application/csv");
              header('Content-Disposition: attachment; filename="rapport_comptable.csv"');

              $rapport_ventes = base64_decode($_POST['ExportCSV']);
              $rapport_ventes = str_replace(".", ",", $rapport_ventes);
              echo $rapport_ventes;
              exit();
              tep_redirect(tep_href_link(FILENAME_SALES_COMPTA));
}

  function tep_date_day($raw_date) {
    if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false;

    $year = substr($raw_date, 0, 4);
    $month = (int)substr($raw_date, 5, 2);
    $day = (int)substr($raw_date, 8, 2);
    $hour = (int)substr($raw_date, 11, 2);
    $minute = (int)substr($raw_date, 14, 2);
    $second = (int)substr($raw_date, 17, 2);

    if (@date('Y', mktime($hour, $minute, $second, $month, $day, $year)) == $year) {
      $jour = date('w', mktime($hour, $minute, $second, $month, $day, $year));
    } else {
      $jour =  ereg_replace('2037' . '$', $year, date('w', mktime($hour, $minute, $second, $month, $day, 2037)));
    }
   $jours_semaine = array ('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
   $j_semaine = array ('D', 'L', 'M', 'M', 'J', 'V', 'S');

   return array($jour, $j_semaine[$jour], $jours_semaine[$jour]);
  }


  require(DIR_WS_CLASSES . 'currencies.php');
  $currencies = new currencies();
  include(DIR_WS_CLASSES . 'order.php');

    ////////////////////////////////////////////////////////////
    // calcul du total de vente pour une date ou une période donnée
    // $date doit $etre au format Y-m-d : Y donne un rapport annuel Y-m un rapport mensuel et Y-m-d le rapport du jour
    function get_order_total($date_in, $date_out = false) {
         $mois_array = array('01' => array('id' => '01', 'article' => 'de ', 'mois' => 'Janvier'),
                       '02' => array('id' => '02', 'article' => 'de ', 'mois' => 'Février'),
                       '03' => array('id' => '03', 'article' => 'de ', 'mois' => 'Mars'),
                       '04' => array('id' => '04', 'article' => 'd\'', 'mois' => 'Avril'),
                       '05' => array('id' => '05', 'article' => 'de ', 'mois' => 'Mai'),
                       '06' => array('id' => '06', 'article' => 'de ', 'mois' => 'Juin'),
                       '07' => array('id' => '07', 'article' => 'de ', 'mois' => 'Juillet'),
                       '08' => array('id' => '08', 'article' => 'd\'', 'mois' => 'Août'),
                       '09' => array('id' => '09', 'article' => 'de ', 'mois' => 'Septembre'),
                       '10' => array('id' => '10', 'article' => 'd\'', 'mois' => 'Octobre'),
                       '11' => array('id' => '11', 'article' => 'de ', 'mois' => 'Novembre'),
                       '12' => array('id' => '12', 'article' => 'de ', 'mois' => 'Décembre'));
        if ($date_out == false)  $query_orders = "SELECT orders_id, date_purchased FROM " . TABLE_ORDERS . " WHERE date_purchased LIKE \"$date_in%\"  ORDER by orders_id";
        if ($date_out && $date_in )  $query_orders = "SELECT distinct orders_id, date_purchased FROM " . TABLE_ORDERS . " WHERE date_purchased <= \"$date_out\" and date_purchased >= \"$date_in\" ORDER by orders_id";

        $orders_query = tep_db_query($query_orders);
        $i=0;
        $orders_list = array();
        while ($orders_array = tep_db_fetch_array($orders_query)) {
                    if ($i == 0) {
                      $first_id = $orders_array['orders_id'];
                      $first_date = $orders_array['date_purchased'];
                    }
                    $last_id = $orders_array['orders_id'];
                    $last_date = $orders_array['date_purchased'];
                    $i++;
               if (tep_not_null($orders_array['orders_id']) && is_string($orders_array['orders_id']) ) $orders_list[] =  $orders_array['orders_id'];
        }
        $nb_cmde = $i; // nombre de commandes listées

        foreach ( $orders_list as $o_id) {
        // Total des commandes facturées dans cette période
        $query_total = "SELECT value FROM " . TABLE_ORDERS_TOTAL . " WHERE orders_id = '".$o_id."' and class = 'ot_total' ";
        $total_query = tep_db_query($query_total);
         while ($total_array = tep_db_fetch_array($total_query)) {
          $order_ligne['total_ttc'] = $total_array['value'];
         }
           // Total Frais de ports facturés pour cette période
        $query_shipping = "SELECT value FROM " . TABLE_ORDERS_TOTAL . " WHERE orders_id = '".$o_id."' and class = 'ot_shipping' ";
        $shipping_query = tep_db_query($query_shipping);;
         while ($shipping_array = tep_db_fetch_array($shipping_query)) {
          $order_ligne['total_shipping_ttc'] = $shipping_array['value'];
          $order_ligne['total_shipping'] = $shipping_array['value'] / 1.196;
         }
         $order = new order($o_id);
         $order_ligne['id'] = $o_id;
         $order_ligne['jour'] = tep_date_day($order->info['date_purchased']);
         $order_ligne['mois'] = $mois_array[substr($order->info['date_purchased'], 5,2)];
         $order_ligne['date'] = tep_date_short($order->info['date_purchased']);
         $order_ligne['customer'] = $order->customer['name'];
         $order_ligne['payment'] = $order->info['payment_method'];
         $order_ligne['tva55'] = 0;
         $order_ligne['tva196'] = 0;
         $order_ligne['HT55'] = 0;
         $order_ligne['HT196'] = 0;
         $order_ligne['total_products'] = 0;
             for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
                   // TVA 5.5
                   if ( $order->products[$i]['tax'] == 5.5 ) {
                      $order_ligne['tva55'] +=  (($order->products[$i]['price'] *$order->products[$i]['qty'])*  $order->products[$i]['tax'] /100 );
                      $order_ligne['HT55'] +=  (($order->products[$i]['price'] *$order->products[$i]['qty']));
                   }
                   // TVA 19.6
                   if ( $order->products[$i]['tax'] == 19.6 ) {
                      $order_ligne['tva196'] +=  (($order->products[$i]['price'] *$order->products[$i]['qty'])*  $order->products[$i]['tax'] /100 );
                      $order_ligne['HT196'] +=  (($order->products[$i]['price'] *$order->products[$i]['qty']));
                   }
                   $order_ligne['total_products'] +=  $order->products[$i]['price'] *$order->products[$i]['qty'];
             }
             $order_ligne['HT196'] += $order_ligne['total_shipping'];
             $order_ligne['tva196'] += ($order_ligne['total_shipping_ttc'] - ($order_ligne['total_shipping']));
         $result[] = $order_ligne;
        }
       return $result;
    }
    ///////////////////////////////////////////////////
    
   $date_debut = ($_POST['date_debut'])
             ? $_POST['date_debut']
             : (date("d/m/Y", mktime(0,0,0, date("m") - 1 , 1 , date("Y"))));

   $date_fin = ($_POST['date_fin'])
             ? $_POST['date_fin']
             : (date("d/m/Y", mktime(0,0,0, date("m"), 0 , date("Y"))));


$date_in = (date("Y-m-d", mktime(0,0,0, substr($date_debut,3,2),  substr($date_debut,0,2) ,  substr($date_debut,6,4))));
$mk_in = mktime(0,0,0, substr($date_debut,3,2),  substr($date_debut,0,2) ,  substr($date_debut,6,4));
$mk_out = mktime(0,0,0, substr($date_fin,3,2),  substr($date_fin,0,2) ,  substr($date_fin,6,4));
$nb_jours = (($mk_out -  $mk_in) / 86400);

for ($i=$nb_jours;$i>=0;$i--){
   $result =  get_order_total(date("Y-m-d", mktime(0,0,0, substr($date_fin,3,2),  substr($date_fin,0,2) -$i ,  substr($date_fin,6,4) )));
   $resultat[] = $result;
}




?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo 'Rapport des ventes'; ?></title>
<link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
<style type="text/css">
/* <![CDATA[ */
table.petit {font-size:8px; background-color:#eeeeff;}
tr.TitreTable{background-color: #6666FF;color:#FFFFFF;font-weight:bold;}
tr.TotalTable{background-color: #D3605E;color:#FFFFFF;font-weight:bold;font-size:10px;}
tr.Totaux{background-color: #666666;color:#FFFFFF;font-weight:bold;font-size:12px; text-align:right;}
.warning {color:#990000; font-weight:bold;}
td.bright {border-right:2px solid silver;}
/* ]]> */
</style>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body>
<div id="spiffycalendar" class="text"></div>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
  <tr>
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
    </table></td>
<!-- body_text //-->
    <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
      <tr>
        <td width="100%">
<script type="text/javascript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
<script type="text/javascript"><!--
  var dateDebut = new ctlSpiffyCalendarBox("dateDebut", "formulaire_date", "date_debut","btnDate1","<?php echo $date_debut; ?>",scBTNMODE_CUSTOMBLUE);
  var dateFin = new ctlSpiffyCalendarBox("dateFin", "formulaire_date", "date_fin","btnDate2","<?php echo $date_fin; ?>",scBTNMODE_CUSTOMBLUE);
//--></script>
        <?php
            echo tep_draw_form('formulaire_date',FILENAME_SALES_COMPTA, '','post', 'enctype="multipart/form-data" onReset="return ResetCheck()" ');
?><table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td class="pageHeading"><?php echo 'Rapport commandes mensuel'; ?></td>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '24', '40') . '&nbsp;'; ?></td>
            <td colspan="2" align="right"></td>
          </tr>
          <tr>
            <td align="right" class="main">Date de début de période : </td>
            <td colspan="2" class="main"><script type="text/javascript">dateDebut.writeControl(); dateDebut.dateFormat="dd/MM/yyyy";</script></td>
            <td class="main">Par défaut le premier du mois dernier</td>
          </tr>
          <tr>
            <td align="right" class="main">Date de fin de période : </td>
            <td colspan="2" class="main"><script type="text/javascript">dateFin.writeControl(); dateFin.dateFormat="dd/MM/yyyy";</script></td>
            <td class="main">Par défaut le dernier jour du mois dernier</td>
          </tr>
          <tr>
            <td align="right" class="main"></td>
            <td colspan="2" class="main"></td>
            <td class="main"><?php echo tep_image_submit('button_send.gif', 'Envoyer'); ?></td>
          </tr>
        </table><?php echo '</form>'; ?></td>
      </tr>
      <tr>
        <td>
        <table border="1" width="100%" cellspacing="0" cellpadding="4" class="petit">
<?php
$ligne_titre = '    <tr class="TitreTable">
      <td class="bright">jour</td>
      <td class="bright">date</td>
      <td align="right" class="bright">Commande N°</td>
      <td align="center">Client</td>
      <td align="right" class="bright">Montant HT </td>
      <td align="right">Frais de port HT</td>
      <td align="right" class="bright">Total commande HT</td>
      <td align="right">HT de TVA 5.5%</td>
      <td align="right">TVA 5.5%</td>
      <td align="right">HT de TVA 19.6%</td>
      <td align="right">TVA 19.6%</td>
      <td align="right">Total TTC</td>
      <td align="right">Mode de paiement</td>
    </tr>'. "\n";
echo $ligne_titre;
$export_xl = "Jour; Date; N° Commande; Client; Produits HT; Port HT; Total Commande HT; Total HT sur TVA 5.50%; TVA 5.50%; Total HT sur TVA 19.60%; TVA 19.60%; Total TTC; Mode de paiement \n";
    $date_in = '';
    $date_out = '';
    $l=0;
     if (sizeof($resultat) < 1) {
       echo '<tr class="Totaux"><td colspan="11" align="center">Aucun résultat pour cette période '. "</tr>\n";
     } else {
     for ($i=0, $n=sizeof($resultat); $i<$n; $i++) {
     $lignes = $resultat[$i];
        if (tep_not_null($lignes)){
             foreach ( $lignes as $ligne) {
             if (!isset($mois)) $mois = $ligne['mois']['id'];

             $tva_55 = ($ligne['tva55'] > 0 ) ? $currencies->format($ligne['tva55']): "-";
             $HT_55 = ($ligne['HT55'] > 0 ) ? $currencies->format($ligne['HT55']): "-";
             $tva_196 = ($ligne['tva196'] > 0 ) ? $currencies->format($ligne['tva196']): "-";
             $HT_196 = ($ligne['HT196'] > 0 ) ? $currencies->format($ligne['HT196']): "-";
             $port_ht = ($ligne['total_shipping'] > 0) ? $currencies->format($ligne['total_shipping']) : "-";

             $style_day = ($ligne['jour'][0] == 6)? 'style="background-color:#D3E8FA;"':'';
             if ($ligne['jour'][0] == 0)$style_day =  'style="background-color:#BDD2E3;"';

                if ($ligne['mois']['id'] != $mois){
                   echo '<tr class="TotalTable">'."\n";
                   echo '<td colspan="4">Total '.$total['mois'].'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_products']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_shipping']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_HT']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['HT55']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['tva55']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['HT196']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['tva196']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_ttc']).'</td>'."\n";
                   echo '<td ></td>'."\n";
                   echo "</tr>\n";
                   $mois = $ligne['mois']['id'];
                   $total = array();
                   echo $ligne_titre;
                }
                       echo "<tr $style_day>\n";
                       echo "<td class=\"bright\">". $ligne['jour'][2] . '</td><td>'.$ligne['date'] . "</td>\n";
                       echo '<td align="right">'. $ligne['id']. "</td>\n";
                       echo '<td align="left">'. $ligne['customer']. "</td>\n";
                       echo '<td align="right" class="bright">'. $currencies->format($ligne['total_products']). "</td>\n";
                     $total['total_products'] += $ligne['total_products'];
                       echo '<td align="right" class="bright">'. $port_ht. "</td>\n";
                     $total['total_shipping'] += $ligne['total_shipping'];
                       echo '<td align="right"><b>'. $currencies->format($ligne['total_products']+$ligne['total_shipping']). "</b></td>\n";
                     $total['total_HT'] += ($ligne['total_products']+$ligne['total_shipping']);
                       echo '<td align="right">'. $HT_55. "</td>\n";
                     $total['HT55'] += $ligne['HT55'];
                       echo '<td align="right">'. $tva_55. "</td>\n";
                     $total['tva55'] += $ligne['tva55'];
                       echo '<td align="right">'. $HT_196. "</td>\n";
                     $total['HT196'] += $ligne['HT196'];
                       echo '<td align="right">'. $tva_196. "</td>\n";
                     $total['tva196'] += $ligne['tva196'];
                       echo '<td align="right"><b>'. $currencies->format($ligne['total_ttc']). "</b></td>\n";
                     $total['total_ttc'] += $ligne['total_ttc'];
                       echo '<td align="right">'. $ligne['payment']. "</td>\n";
                       echo "</tr>\n";
                     $total['mois'] = $ligne['mois']['article'] . $ligne['mois']['mois'];
                    
                    $export_xl .= $ligne['jour'][2] . ";";
                    $export_xl .= $ligne['date'] . ";";
                    $export_xl .= $ligne['id'] . ";";
                    $export_xl .= $ligne['customer'] . ";";
                    $export_xl .= $ligne['total_products'] . ";";
                    $export_xl .= $ligne['total_shipping'] . ";";
                    $export_xl .= $ligne['total_products']+$ligne['total_shipping'] . ";";
                    $export_xl .= $ligne['HT55'] . ";";
                    $export_xl .= $ligne['tva55'] . ";";
                    $export_xl .= $ligne['HT196'] . ";";
                    $export_xl .= $ligne['tva196'] . ";";
                    $export_xl .= $ligne['total_ttc'] . ";";
                    $export_xl .= $ligne['payment'] . ";";
                    $export_xl .= "\n";
            }
        }
    }
                   echo '<tr class="TotalTable">'."\n";
                   echo '<td colspan="4">Total '.$total['mois'].'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_products']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_shipping']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_HT']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['HT55']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['tva55']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['HT196']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['tva196']).'</td>'."\n";
                   echo '<td align="right">'.$currencies->format($total['total_ttc']).'</td>'."\n";
                   echo '<td ></td>'."\n";
                   echo "</tr>\n";
}
?>
        </table>
    </td></tr>
    <tr>
    <td align="center">
    <b>Télécharger le tableau au format Excel (CSV) &nbsp;</b>
    <?php
    echo tep_draw_form('export_csv', FILENAME_SALES_COMPTA);
    echo tep_draw_hidden_field('ExportCSV', base64_encode($export_xl));
    echo tep_image_submit('button_upload.gif', 'EXPORTER', 'name="export"');
    echo '</form>';
    ?>
    </td>
    </tr>
    </table></td>

<!-- body_text_eof //-->
  </tr>
</table>

<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
</body>
</html>

NB : il n'est pas localisé et fonctionne uniquement en français.
NB2 : pour qu'il fonctionne correctement, il faut penser à déclarer le nom du script en define dans includes/filename.php :
define('FILENAME_SALES_COMPTA', 'orders_compta.php');

Enfin, ce code n'est pas optimisé pour une utilisation intensive.
La méthode utilisée est très gourmande en ressources sql et pourrait être copieusement allégée.

il ne s'agit pas d'une contribution mais d'un script franco-français qui retourne une ligne par commande avec :
le jour, la date, le N° de cmde($order_id), le client, le montant HT, les frais de port HT, le HT de TVA5.5%, la TVA 5.5, le HT de TVA19.6%, la TVA 19.6, le total TTC et le mode de paiement.
Une ligne de total conclut le tableau et c'est exportable en csv (un bouton)
on peut choisir la date de début et la date de fin. (par défaut le mois dernier du 1 au 31)
Attention, pour un rapport annuel, ça peut demander plusieurs dizaines de secondes en fonction du nombre de commandes. Attention au timeout!
dernier point, je ne fais pas de SAV là dessus, mais c'est utilisable en l'état et ça peut servir de trame pour un script plus abouti.

Bon code wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
tom555
posté 12 Jan 2008, 19:12
Message #38


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 357
Inscrit : 18-July 03
Membre no 1312



CITATION(xawaks @ 12 Jan 2008, 17:06) [snapback]265721[/snapback]
Mais malheureusement cela ne marche pas confused.gif


y'a pas de raison, si les données sont là dans la table, tu dois pouvoir les faire resortir.
J'ai fait un essai sur une boutique de test en créant les 2 taux de TVA et l'export se fait sans problème en filtrant sur le champ "title".

Essaye le script de Gnidhal.

@+





--------------------
MS2 - tva intracommunautaire - n° facture séquentiel (merci blanche neige!) - ticket support - programme d'affiliation - Ultimate SEO - header tag- discountplus.
Go to the top of the page
 
xawaks
posté 13 Jan 2008, 09:40
Message #39


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



Merci les gars,

alors pour Tom555 : je sais c'est étrange mais cela me retourne à chaque fois 0 alors qu'ils y a des trucs dans la base. Je ne sais pas si c'est parce que mon champ title est complexe -> dont TVA à 19,6 %:
je vais encore faire des tests. Merci en tous les cas de t'être penché sur mon soucis wink.gif

Pour Gnidhal : Merci beaucoup pour ton fichier, mais je vais faire mon case cou*lles, cela vas moins bien que le fichiers de keuj. En fait dans le fichier de keuj, j'ai déjà fait pleins de modif, j'ai rajouté à l'export mon numéro de facture et la date de celle-ci, ainsi que la présence ou non de coupons de réductions. De plus elle permet d'avoir le total ht par type de tva ce que souhaite ma comptable.
Je vais tenter de faire un mix entre ton fichier et celui de keuj, ensuite je le mettrais ici afin de faire partager notre travail ;o)
Car visiblement le soucis se situe au niveau de la boucle de conditions, je vais essayer d'adapter la tienne lorsque j'aurais compris son fonctionnement.

Merci encore à vous deux, je pense que je suis sur la bonne voie, même si cela me fait rager d'être si proche et de ne pas y arriver evil.gif


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
Gnidhal
posté 13 Jan 2008, 10:07
Message #40


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9113
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



C'est pas idiot cette remarque sur les totaux HT TVA 5.5 et 19.6... tiens j'en ai modifié mon script plus haut wink.gif !
mais pour ce qui est du N° de commande, c'est toujours le N° Order_id ... s'il ne reste que ça tu devrais y arriver non ?


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
xawaks
posté 13 Jan 2008, 15:17
Message #41


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



merci !

Bon j'avance à grand pas aujourd'hui !!!

J'ai donc repris ton fichier Gnidhal et j'ai rajouté la date et le numéro de facture.

J'arrive également à recupérer les coupons de réductions, mais, ben oui il y a un mais, lors de l'affichage la variable ne se vide pas avant la nouvelle boucle.

En fait si pour la commande n°6100 j'ai 3 euros de coupons, ensuite je vais avoir 3 euros de coupons pour toutes les commandes de cette journée.

La variable n'est remise à zéro que lors du changement de jour, je voudrais quelle soit remise à zéro pour chaque commande.

Une idée ? blush.gif

Ce message a été modifié par xawaks - 13 Jan 2008, 15:17.


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
xawaks
posté 13 Jan 2008, 15:22
Message #42


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



bon je viens de tester un truc, c'est un peu violent, mais cela marche

CITATION
// Coupons
$query_coupons = "SELECT value FROM " . TABLE_ORDERS_TOTAL . " WHERE orders_id = '".$o_id."' and class = 'ot_coupon' ";
$coupons_query = tep_db_query($query_coupons);
$order_ligne['coupons'] = 0;
while ($coupons_array = tep_db_fetch_array($coupons_query)) {
$order_ligne['coupons'] = $coupons_array['value'] ;
}


A ton avis ? il y a plus simple, ou plus "correct" ?

Allez, je bidouille encore un peu et je mets ma version en ligne. rolleyes.gif


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
xawaks
posté 13 Jan 2008, 16:41
Message #43


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



Bon, je continue.

J'ai mis en place la contrib "edit order" et celle-ci me rajoute des options. Je l'utilise pour faire des reduction spécifique.

Dans ce cas, cela me mets dans la BDD une class "ot_custom"

J'ai modifié le fichier pour qu'il prenne en compte également cette class, mais comme la "value" de cette class est toujours négative, il ne m'affiche rien shock.gif

J'ai fait le test, si je mets un chiffre positif, c'est bon

C'est normal ça ?


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
Gnidhal
posté 13 Jan 2008, 23:42
Message #44


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9113
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



CITATION(xawaks @ 13 Jan 2008, 15:22) [snapback]265760[/snapback]
A ton avis ? il y a plus simple, ou plus "correct" ?

non, ça me semble bien.
D'ailleurs dans mon script je réinitialise ces variables de la même manière :
CODE
$order = new order($o_id);
$order_ligne['id'] = $o_id;
$order_ligne['jour'] = tep_date_day($order->info['date_purchased']);
$order_ligne['mois'] = $mois_array[substr($order->info['date_purchased'], 5,2)];
$order_ligne['date'] = tep_date_short($order->info['date_purchased']);
$order_ligne['customer'] = $order->customer['name'];
$order_ligne['payment'] = $order->info['payment_method'];
$order_ligne['tva55'] = 0;
$order_ligne['tva196'] = 0;
$order_ligne['HT55'] = 0;
$order_ligne['HT196'] = 0;
$order_ligne['total_products'] = 0;

car sinon on se retrouve avec la somme du jour à chaque commande et non pas la somme de la commande.
Ce script est une version de départ car il permet aussi que sortir la somme par jour puisque la boucle est quotidienne. ça peut avoir son intérêt. Reste à extraire ces info dans un format présentable.
Le système de boucle utilisé est très lourd mais il a le mérite de permettre toutes les sorties ( pour une journée ou pour une période au choix)

en ce qui concerne ta valeur négative le problème vient du fait que le champ value est de type "DECIMAL" or mysql stocke ces champs sous forme texte :
CITATION
Les valeurs de type DECIMAL et NUMERIC sont stockées sous forme de chaînes de caractères, plutôt que comme des nombres à virgule flottante, afin de préserver la précision décimale des valeurs. Un caractère est donc nécessaire pour chaque chiffre, plus la virgule (si scale > 0), et le signe moins ‘-’ (pour les nombres négatifs). Si scale vaut 0, les valeurs de type DECIMAL et NUMERIC ne comporteront pas de valeur décimale, ni de virgule.

(+ d'infos ici : http://dev.mysql.com/doc/refman/5.0/fr/numeric-types.html )
Donc pour les valeurs négatives il faut récupérer la valeur comme un float mais aussi extraire le potentiel caractère "-" au début de chaine pour utiliser un négatif
$value_num = floatval($value);
puis utiliser cette valeur avec une soustraction au lieu d'une addition si la condition suivante est vraie :
if (substr($value,0,1)=="-")
et hop wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
xawaks
posté 14 Jan 2008, 15:20
Message #45


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



Je touche au but, mais c'est pas encore ça...

Voic ma requete :
CODE
// Coupons
        $query_coupons = "SELECT value FROM " . TABLE_ORDERS_TOTAL . " WHERE orders_id = '".$o_id."' and class = 'ot_coupon' or 'ot_custom' or 'ot_custom_1' or 'ot_custom_2' or 'ot_custom_3' or 'ot_custom_4' or 'ot_custom_5' ";
        $coupons_query = tep_db_query($query_coupons);
        $order_ligne['coupons'] = 0;
                        
         while ($coupons_array = tep_db_fetch_array($coupons_query)) {
        
        $value_num = floatval($value);
                        
         if (substr($value_num,0,1)=="-") {
                                 
          $order_ligne['coupons'] =- $coupons_array['value_num'];
                  
         }        
          $order_ligne['coupons'] = $coupons_array['value'];
        
         }


Cela marche quand le signe est positif, mais cela ne marche toujours pas quand le signe est négatif mrgreen.gif


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
Gnidhal
posté 14 Jan 2008, 21:16
Message #46


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9113
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Ahem,
au regard de ce que tu avais codé jusque là, je te croyais un poil plus avancé smile.gif
je t'ai filé un code générique pas la soluce wink.gif

CODE
        while ($coupons_array = tep_db_fetch_array($coupons_query)) {
        
        $value_num = floatval($coupons_array['value']);
                        
         if (substr($coupons_array['value'],0,1)=="-") {
                                
          $order_ligne['coupons'] =- $value_num;
                  
         }  else  $order_ligne['coupons'] += $value_num;

Voilà qui est plus près de ta soluce


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
xawaks
posté 14 Jan 2008, 23:54
Message #47


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



CITATION(Gnidhal @ 14 Jan 2008, 21:16) [snapback]265841[/snapback]
Ahem,
au regard de ce que tu avais codé jusque là, je te croyais un poil plus avancé smile.gif
je t'ai filé un code générique pas la soluce wink.gif


blush.gif blush.gif

Ton code marche nickel, c'est moi le boulet !!!

Mille merci Môsieur !

Je vérifie dans tous les sens et si cela ne dérange personne je mets mon code ici...

Gnidhal, tu rejoins Xaglo sur son piédestal sur le mur de mon bureau wink.gif

Ce message a été modifié par xawaks - 15 Jan 2008, 00:15.


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 
Gnidhal
posté 15 Jan 2008, 07:46
Message #48


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9113
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



CITATION(xawaks @ 14 Jan 2008, 23:54) [snapback]265852[/snapback]
Gnidhal, tu rejoins Xaglo sur son piédestal sur le mur de mon bureau wink.gif

Rhaaa non alors !
Pas que la proximité de Xaglo me gêne, bien au contraire, mais j'ai horreur des piédestaux!
C'est comme tout espace réduit, ça ressemble bien trop à une prison.
Et puis, plus le singe monte haut, plus il montre son cul!
bon, c'était la minute de philosophie matinale laugh.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
concorde44
posté 21 Mar 2008, 17:27
Message #49


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 366
Inscrit : 31-December 03
Lieu : Nantes
Membre no 1780



Salut Xawaks,
marrant, je suis exactement dans le meme cas de figure que toi : tva différenciée, coupons de réduc,... et comptable qui n'en peux plus de tout saisir!
Pourrais-tu partager ton fichier pour à mon tour rendre mon comptable heureux ?
Merci d'avance.
Je devrais ensuite importer les données dans ciel compta...

Seb


--------------------
Osc 2.2 ms2 en prod : STS - Easy Populate - CSS Buttons - SEO - Email Invoice -MailingList 2.0 - Order editor - Wordlpay ...
Go to the top of the page
 
xawaks
posté 21 Mar 2008, 21:41
Message #50


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1308
Inscrit : 17-March 04
Lieu : Gard
Membre no 2145



un peu la bourre en ce moment, mais j'essaye de te mettre ça dans le week-end ;o))


--------------------
Pax Vobiscum

MS2 fr (merci sieur Delaballe) + collisimo + Administration access level V2.3 + Down for maintenance + payment cards infobox + Cybermut + catalog PDF + titre pages référencement thematrixisme + adaptation pop_up loup solitaire + Star products + no double clics by JeanLuc + Must agree to terms + Ship in cart V1.90 + personnal invoice number + vente croisée by Decad7 + loginbox + Flux RSS perso-Manmachine + Onglets perso + salemaker + product on order + tabs + CCGV + featured products + expeditor inet + numero tracking perso + edit order + box newsletter perso + intégration blog dotclear/boutique perso + popup perso pour adresse hotmail lors de la création de compte + export perso-gnidhal pour les factures en csv + stock tacking cost + reclamaposte + notifications rupture de stock perso
---------------------------------------
Le tout sur VDS1024 : Apache 1.3.41 + Linux 2.6.24-18-server + PHP 5.2.6 + MySQL 5.0.18
---------------------------------------
Et en local sous MAC OS X 10.5.8
Go to the top of the page
 

3 Pages V  < 1 2 3 >
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 : 25th May 2013 - 21:52
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)