PEEL Shopping
Open source ecommerce : PEEL Shopping
export_ventes.php
Go to the documentation of this file.
1 <?php
2 // This file should be in UTF8 without BOM - Accents examples: éèê
3 // +----------------------------------------------------------------------+
4 // | Copyright (c) 2004-2015 Advisto SAS, service PEEL - contact@peel.fr |
5 // +----------------------------------------------------------------------+
6 // | This file is part of PEEL Shopping 8.0.0, which is subject to an |
7 // | opensource GPL license: you are allowed to customize the code |
8 // | for your own needs, but must keep your changes under GPL |
9 // | More information: https://www.peel.fr/lire/licence-gpl-70.html |
10 // +----------------------------------------------------------------------+
11 // | Author: Advisto SAS, RCS 479 205 452, France, https://www.peel.fr/ |
12 // +----------------------------------------------------------------------+
13 // $Id: export_ventes.php 47004 2015-09-22 15:55:28Z sdelaporte $
14 define('IN_PEEL_ADMIN', true);
15 include("../../../configuration.inc.php");
17 necessite_priv("admin_sales,admin_webmastering");
18 
19 // On ne veut pas polluer le fichier exporté par un quelconque message d'erreur
20 error_reporting(0);
21 if (!empty($_GET['mode'])) {
22  $mode = $_GET['mode'];
23 } else {
24  $mode = '';
25 }
26 
27 if (!empty($_GET['encoding'])) {
28  $page_encoding = $_GET['encoding'];
29 } elseif (!empty($GLOBALS['site_parameters']['export_encoding'])) {
30  $page_encoding = $GLOBALS['site_parameters']['export_encoding'];
31 } else {
32  $page_encoding = 'utf-8';
33 }
34 $output = '';
35 if (!empty($_GET['mode']) && $_GET['mode']=="affiche_liste_clients_par_produit" && !empty($_GET['id'])) {
36  // Export des clients qui ont acheté le produit $_GET['id']
37  if (empty($GLOBALS['site_parameters']['cegid_order_export'])) {
38  $filename = "export_ventes_" . str_replace('/', '-', date($GLOBALS['date_basic_format_short'])) . ".csv";
39  } else {
40  $cegid_date = string::strtolower(String::substr(date('F', strtotime($_GET["dateadded1"])),0,4)).date('y', time());
41  $filename = "jdv_" . $cegid_date . ".csv";
42  }
44  $clients_array = affiche_liste_clients_par_produit($_GET['id'], true);
45  $output .= $GLOBALS['STR_LAST_NAME']."\t".$GLOBALS['STR_FIRST_NAME']."\t".$GLOBALS['STR_ADDRESS']."\t".$GLOBALS['STR_TOWN']."\t".$GLOBALS['STR_EMAIL']."\t".$GLOBALS['STR_TELEPHONE']."\r\n";
46  foreach($clients_array as $this_client) {
47  $output .= $this_client['nom_famille']."\t".$this_client['prenom']."\t".$this_client['adresse']."\t".$this_client['ville']."\t".$this_client['email']."\t". $this_client['telephone']."\r\n";
48  }
49 } else {
50  // export des ventes selon un filtre de date et de statut de paiement
51  $filename = "export_ventes_" . str_replace('/', '-', date($GLOBALS['date_basic_format_short'])) . ".csv";
53  if (empty($_GET["dateadded1"]) || empty($_GET["dateadded2"])) {
54  die();
55  }
56  if (!empty($_GET["id_statut_paiement"])) {
57  $extra_sql = "AND id_statut_paiement = '" . intval($_GET["id_statut_paiement"]) . "'";
58  } else {
59  $extra_sql = "";
60  }
61  $sqlC = "SELECT c.*
62  FROM peel_commandes c
63  WHERE " . get_filter_site_cond('commandes', 'c', true) . " AND c." . word_real_escape_string($_GET["date_field"]) . ">='" . nohtml_real_escape_string($_GET["dateadded1"]) . "' AND c." . word_real_escape_string($_GET["date_field"]) . "<='" . nohtml_real_escape_string($_GET["dateadded2"]) . "' " . $extra_sql . "
64  ORDER BY c." . word_real_escape_string($_GET["date_field"]) . "";
65 
66  $ensemble_cout_transport = $ensemble_total_ht = $ensemble_total_ttc = $super_total = 0;
67 
70  $total_ht = 0;
72  $total = 0;
74 
75  $ligne_total_produit_ht = $ligne_total_produit_ttc = 0;
76  $ligne_cout_transport_ht = $ligne_tva_cout_transport = $ligne_cout_transport = 0;
77  $ligne_tarif_paiement_ht = $ligne_tva_tarif_paiement = $ligne_tarif_paiement = 0;
78  if (empty($GLOBALS['site_parameters']['cegid_order_export'])) {
79  if ($mode != 'one_line_per_order') {
80  $output .= "Numéro commande\tDate de vente\tNom de l'acheteur\tAdresse\tVille\tCode postal\tPays\tArticle\tQuantité\tPrix unitaire HT\tTotal HT\tTaux TVA\tTVA\tTotal TTC\tFrais port HT\tTVA Frais de port\tFrais port TTC\tTarif paiement HT\tTVA Tarif paiement\tTarif paiement\tMode de paiement\r\n";
81  } else {
82  $output .= "Numéro commande\tNuméro de facture\tDate de vente\tNom de l'acheteur\tAdresse\tVille\tCode postal\tPays\tTotal HT\tTaux TVA\tTotal TTC\tAvoir client\tNet à payer\tFrais port HT\tTVA Frais de port\tFrais port TTC\tTarif paiement HT\tTVA Tarif paiement\tTarif paiement\tMode de paiement\tTotal HT des produits\tTVA des produits\tTotal des produits\r\n";
83  }
84  } else {
85  $output .= "Journal;Date;Général;Auxiliaire;Référence;Libellé;Crédit;Débit\r\n";
86  }
88 
89  while ($commande = fetch_assoc($resC)) {
90  $i = 0;
91 
92  $numero = $commande['id'];
93 
94  $date_vente = get_formatted_date($commande['o_timestamp'], 'short', 'long');
95  $nom_acheteur = String::htmlspecialchars_decode($commande['nom_bill'], ENT_QUOTES);
96  $adresse = String::htmlspecialchars_decode($commande['adresse_bill'], ENT_QUOTES);
97  $ville = String::htmlspecialchars_decode($commande['ville_bill'], ENT_QUOTES);
98  $code_postal = $commande['zip_bill'];
99  $pays = String::htmlspecialchars_decode($commande['pays_bill'], ENT_QUOTES);
100 
101  $total_transport += $commande['cout_transport'];
102  $total_transport_ht += $commande['cout_transport_ht'];
103  $total_tva += $commande['total_tva'];
104  $total_ht += $commande['montant_ht'];
105  $total += $commande['montant']+$commande['avoir'];
106  $netapayer += $commande['montant'];
107 
108  $vat_arrays[] = get_vat_array($commande['code_facture']);
109 
110  if ($mode != 'one_line_per_order') {
111  $product_infos_array = get_product_infos_array_in_order($commande['id'], $commande['devise'], $commande['currency_rate']);
112  foreach ($product_infos_array as $this_ordered_product) {
113  if ($this_ordered_product['quantite'] != 0) {
114  $article = $this_ordered_product['nom_produit'];
115 
116  $cout_transport = ($i == 0) ? $commande['cout_transport'] : "";
117  $cout_transport_ht = ($i == 0) ? $commande['cout_transport_ht'] : "";
118  $tva_cout_transport = $cout_transport - $cout_transport_ht;
119  $tarif_paiement = ($i == 0) ? $commande['tarif_paiement'] : "";
120  $tarif_paiement_ht = ($i == 0) ? $commande['tarif_paiement_ht'] : "";
121  $tva_tarif_paiement = $tarif_paiement - $tarif_paiement_ht;
122 
123  $ligne_total_produit_ttc += $this_ordered_product['total_prix'];
124  $ligne_total_produit_ht += $this_ordered_product['total_prix_ht'];
125  $ligne_cout_transport_ht += $cout_transport_ht;
126  $ligne_cout_transport += $cout_transport;
127  $ligne_tarif_paiement_ht += $tarif_paiement_ht;
128  $ligne_tarif_paiement += $tarif_paiement;
129  $ligne_tva_cout_transport += $tva_cout_transport;
130  $ligne_tva_tarif_paiement += $tva_tarif_paiement;
131 
132 
133  $i++;
134  if (empty($GLOBALS['site_parameters']['cegid_order_export'])) {
135  $output .= intval($commande['id']) . "\t" . filtre_csv($date_vente) . "\t" . filtre_csv($nom_acheteur) . "\t" . filtre_csv($adresse) . "\t" . filtre_csv($ville) . "\t" . filtre_csv($code_postal) . "\t" . filtre_csv($pays) . "\t" . filtre_csv($article) . "\t" . filtre_csv($this_ordered_product['quantite']) . "\t" . fxsl($this_ordered_product['prix_ht']) . "\t" . fxsl($this_ordered_product['total_prix_ht']) . "\t" . fxsl($this_ordered_product['tva_percent']) . "\t" . fxsl($this_ordered_product['total_prix'] - $this_ordered_product['total_prix_ht']) . "\t" . fxsl($this_ordered_product['total_prix']) . "";
136  $output .= "\t" . vb(fxsl($cout_transport_ht)) . "\t" . vb(fxsl($tva_cout_transport)) . "\t" . vb(fxsl($cout_transport)) . "";
137  $output .= "\t" . vb(fxsl($tarif_paiement_ht)) . "\t" . vb(fxsl($tva_tarif_paiement)) . "\t" . vb(fxsl($tarif_paiement)) . "";
138  $output .= "\t" . filtre_csv($commande['paiement']);
139  $output .= "\r\n";
140  } else {
141  $first_reference_caractere = String::substr($this_ordered_product['reference'],0,1);
142  $general = ($first_reference_caractere == 0)?'706100':'70710'.$first_reference_caractere;
143  $output .= "VEN;".get_formatted_date($commande['f_datetime'], 'short').";".filtre_csv($general).";;".intval($numero_facture).";".filtre_csv($commande['nom_bill']).";".fxsl($this_ordered_product['total_prix_ht']+$this_ordered_product['total_prix_attribut_ht']).";\r\n";
144  }
145  }
146  }
147  } else {
148  $output .= intval($commande['id']) . "\t" .filtre_csv($commande['numero']) . "\t" . filtre_csv($date_vente) . "\t" . filtre_csv($nom_acheteur) . "\t" . filtre_csv($adresse) . "\t" . filtre_csv($ville) . "\t" . filtre_csv($code_postal) . "\t" . filtre_csv($pays) . "\t" . filtre_csv($commande['montant_ht']) . "\t" . filtre_csv($commande['total_tva']) . "\t" . filtre_csv($commande['montant']+$commande['avoir']) ."\t" . filtre_csv($commande['avoir']) . "\t" . filtre_csv($commande['montant']) . "\t" . filtre_csv($commande['cout_transport_ht']) . "\t" . filtre_csv($commande['tva_cout_transport']) . "\t" . filtre_csv($commande['cout_transport']) ."\t" . filtre_csv($commande['tarif_paiement']) ."\t" . filtre_csv($commande['tva_tarif_paiement']) . "\t" . filtre_csv($commande['tarif_paiement_ht']) ."\t" . filtre_csv($commande['paiement']) . "\t" . filtre_csv($commande['total_produit_ht']) . "\t" . filtre_csv($commande['tva_total_produit']) . "\t" . filtre_csv($commande['total_produit']) ."\r\n";
149  }
150  }
151  if (empty($GLOBALS['site_parameters']['cegid_order_export'])) {
152  if ($mode != 'one_line_per_order') {
153  $output .= "\r\n\t\t\t\t\t\t\t\t\tTOTAUX :\t" . fxsl($ligne_total_produit_ht) . "\t\t" . fxsl($ligne_total_produit_ttc - $ligne_total_produit_ht) . "\t" . fxsl($ligne_total_produit_ttc) . "\t" . fxsl($ligne_cout_transport_ht) . "\t" . fxsl($ligne_tva_cout_transport) . "\t" . fxsl($ligne_cout_transport) . "\t" . fxsl($ligne_tarif_paiement_ht) . "\t" . fxsl($ligne_tva_tarif_paiement) . "\t" . fxsl($ligne_tarif_paiement) . "\r\n\r\n";
154 
155  $output .= "\t\t\t\t\t\t\t\t\tTOTAL HT tout compris :\t" . fxsl($ligne_total_produit_ht + $ligne_cout_transport_ht + $ligne_tarif_paiement_ht) . "\r\n";
156  $output .= "\t\t\t\t\t\t\t\t\tTVA tout compris :\t" . fxsl(($ligne_total_produit_ttc - $ligne_total_produit_ht) + $ligne_tva_cout_transport + $ligne_tva_tarif_paiement) . "\r\n";
157  $output .= "\t\t\t\t\t\t\t\t\tTOTAL TTC tout compris :\t" . fxsl($ligne_total_produit_ttc + $ligne_cout_transport + $ligne_tarif_paiement) . "\r\n";
158  }
159  }
160  echo String::convert_encoding($output, $page_encoding, GENERAL_ENCODING);
161 }
$output
static htmlspecialchars_decode($string, $style=ENT_COMPAT)
This function is String::htmlspecialchars_decode with php4 compatibility.
Definition: String.php:500
static convert_encoding($string, $new_encoding, $original_encoding=null)
Converts the character encoding of string $string to $new_encoding from optionally $original_encoding...
Definition: String.php:375
$netapayer
$ensemble_cout_transport
get_product_infos_array_in_order($order_id, $devise=null, $currency_rate=null, $order_by=null, $add_total_prix_attribut=false)
get_product_infos_array_in_order()
Definition: order.php:1469
get_vat_array($code_facture)
Fonction permettant l'affichage des taux de TVA dans les factures.
Definition: order.php:1272
word_real_escape_string($value)
Applique real_escape_string dans le cas où on n'insère qu'un seul mot, de moins de 30 caractères...
Definition: database.php:424
$resC
$mode
nohtml_real_escape_string($value, $allowed_tags=null)
Protège les données pour insertion dans MySQL ET supprime les tags HTML pour protéger de toute sorte ...
Definition: database.php:400
$total_transport
necessite_priv($priv, $demo_allowed=true, $configuration_modification=false)
Cette fonction vérifie si l'utilisateur a les privilèges de $priv.
Definition: fonctions.php:1575
get_filter_site_cond($table_technical_code, $table_alias=null, $use_strict_rights_if_in_admin=false, $specific_site_id=null, $exclude_public_items=false, $admin_force_multisite_if_allowed=false)
Retourne la condition SQL permettant de filtrer les données pour une table.
Definition: fonctions.php:4643
$ligne_cout_transport_ht
query($query, $die_if_error=false, $database_object=null, $silent_if_error=false, $security_sql_filter=true)
The query() function is meant to be called anywhere you want to make a query.
Definition: database.php:158
fxsl($number_string, $separator= ',')
Formatte un nombre pour insertion dans du CSV.
Definition: format.php:290
$total_ht
vb(&$var, $default=null)
Variable blanche if $var n'est pas défini, retourne $default, sinon retourne $var.
Definition: format.php:97
if(strlen($date2)== '10') if($type== 'users-by-age'&&a_priv('admin_users', true)) elseif($type== 'forums-count'&&a_priv('admin_content', true)) elseif($type== 'forums-categories'&&a_priv('admin_content', true)) elseif($type== 'users-count'&&a_priv('admin_users', true)) elseif($type== 'product-categories'&&a_priv('admin_products', true)) elseif($type== 'users-by-sex'&&a_priv('admin_users', true)) elseif($type== 'users-by-country'&&a_priv('admin_users', true)) elseif($type== 'sales'&&a_priv('admin_sales', true))
Definition: chart-data.php:160
necessite_identification()
Si l'utilisateur n'est pas connecté à un compte, on affiche une page d'identification et arrête le sc...
Definition: fonctions.php:1596
$total_transport_ht
filtre_csv($string, $separator="\t")
Formatte une chaine de caractère pour insertion dans du CSV.
Definition: format.php:277
$ligne_total_produit_ht
$ligne_tarif_paiement_ht
fetch_assoc($query_result)
fetch_assoc()
Definition: database.php:283
get_formatted_date($datetime_or_timestamp=null, $mode= 'short', $hour_minute=false)
Afficher une date formatée, en évitant les problèmes liés aux noms de mois sur les serveurs qui ne so...
Definition: format.php:440
affiche_liste_clients_par_produit($id, $array_output_mode=false)
affiche_liste_clients_par_produit()
$GLOBALS['page_columns_count']
if(!check_if_module_active('search')) $page_encoding
Definition: produit.php:23
$total
$filename
output_csv_http_export_header($filename, $type= 'excel', $page_encoding)
Génère les entêtes HTTP pour un fichier CSV.
Definition: format.php:802
$sqlC
static substr($string, $start, $length=null)
Returns the portion of string specified by the start and length parameters.
Definition: String.php:112
$total_tva

This documentation for Open ecommerce PEEL Shopping and PEEL.fr has been generated by Doxygen on Thu Oct 15 2015 14:41:29 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.