1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
|
<?php
include('./../../connect_sql.php');
// -------------------- Création du fichier Excel
set_time_limit(30);
// ----- référence à la bibliothèque de fonctions
require_once 'PHPExcel.php';
require_once './PHPExcel/IOFactory.php';
// ----- création des objets de base et initialisation des informations d'entête
$classeur = new PHPExcel;
$classeur->getProperties()->setCreator("CECSDB");
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
// ----- Mise en forme de cellules et texte
$feuille->getColumnDimension('A')->setWidth(34);
$feuille->getColumnDimension('B')->setWidth(8);
$feuille->getColumnDimension('C')->setWidth(5);
$feuille->getColumnDimension('D')->setWidth(34);
$feuille->getColumnDimension('E')->setWidth(8);
// ----- Mises en page
// ----- Ligne 1 - Titre
$array_titre = array(
'font' => array(
'name' => 'Verdana',
'size' => 20,
'bold' => true,
'color' => array(
'rgb' => '000000'
),
),
'borders' => array(
'outline' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN,
'color' => array('rgb' => '000000'),
),
),
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
),
);
// ----- Les catégories
$array_cat = array(
'font' => array(
'name' => 'Verdana',
'size' => 13,
'bold' => true,
'color' => array(
'rgb' => 'ffffff'
),
),
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'startcolor' => array(
'rgb' => '00000',
),
),
);
// ----- Les articles
$array_texte = array(
'font' => array(
'bold' => true,
),
);
// ----- Les prix
$array_prix = array(
'font' => array(
'bold' => true,
),
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
),
);
// ----- Erreurs de prix
$array_prix_erreur = array(
'font' => array(
'bold' => true,
),
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'startcolor' => array(
'rgb' => 'F5A9A9',
),
),
);
// ----- Ajout des données dans la feuille de calcul
$feuille->setTitle('Tarifs bar');
$feuille->mergeCells('A1:E1'); // ----- Fusion des colonnes
$classeur->getActiveSheet()->getStyle('A1:E1')->applyFromArray($array_titre); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(0, 1, 'Tarifs bar'); // ----- Affichage de la valeur
$row=2;
$coll=0;
// -------------------- Lecture de la db
$categorie_article='non';
$reponse_produit=mysqli_query($conn_cecs, "SELECT type_nom, prod_prix_mbr, stock_bar_type_nom, tva.data_tva_taux AS tauxTvaVente
FROM 07_stock_produit prod
INNER JOIN 07_stock_type type ON prod.id_type_prod=type.id_type
INNER JOIN 01_data_tva tva ON prod.id_tva_prod=tva.data_tva_id
INNER JOIN 01_data_tva tva2 ON prod.id_tva_achat_prod=tva2.data_tva_id
INNER JOIN 07_stock_bar_type cat ON prod.prod_bar_cat=cat.stock_bar_type_id
WHERE id_cat_prod='009' && prod_actif='oui'
ORDER BY stock_bar_type_id, type_nom") or die(mysqli_error($conn_cecs));
while ($in= mysqli_fetch_array($reponse_produit)) {
$article_nom=$in['type_nom'];
$article_htva=$in['prod_prix_mbr'];
$article_tva=$in['tauxTvaVente'];
$article_cat=$in['stock_bar_type_nom'];
$article_nom_afficher=str_replace('_',' ',$article_nom);
$article_tvac=sprintf("%.2f",$article_htva*(1+($article_tva/100)));
$coll ++;
if ($categorie_article!=$article_cat) { // ----- Affichage de la catégorie, 1 seule fois
if ($coll==2) { $row ++; $feuille->getRowDimension($row)->setRowHeight(6); }
else { $feuille->getRowDimension($row)->setRowHeight(6); }
$row ++;
$feuille->mergeCells('A'.$row.':E'.$row); // ----- Fusion des colonnes
$feuille->getRowDimension($row)->setRowHeight(22); // ----- Hauteur de la cellule
$classeur->getActiveSheet()->getStyle('A'.$row.':E'.$row)->applyFromArray($array_cat); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(0, $row, $article_cat); // ----- Affichage de la valeur
$row ++;
$feuille->getRowDimension($row)->setRowHeight(6); // ----- Hauteur de la cellule
$feuille->setCellValueByColumnAndRow(0, $row, ''); // ----- Affichage de la valeur
$categorie_article=$article_cat;
$row ++;
$coll=0;
}
if ($coll==1) {
$classeur->getActiveSheet()->getStyle('A'.$row)->applyFromArray($array_texte); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(0, $row, $article_nom_afficher); // ----- Affichage de la valeur
if ($article_tvac>0) {
$classeur->getActiveSheet()->getStyle('B'.$row)->applyFromArray($array_prix); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(1, $row, $article_tvac.' '); // ----- Affichage de la valeur
}
else {
$classeur->getActiveSheet()->getStyle('B'.$row)->applyFromArray($array_prix_erreur); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(1, $row, $article_tvac.' '); // ----- Affichage de la valeur
}
}
else if ($coll==2) {
$classeur->getActiveSheet()->getStyle('D'.$row)->applyFromArray($array_texte); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(3, $row, $article_nom_afficher); // ----- Affichage de la valeur
if ($article_tvac>0) {
$classeur->getActiveSheet()->getStyle('E'.$row)->applyFromArray($array_prix); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(4, $row, $article_tvac.' '); // ----- Affichage de la valeur
}
else {
$classeur->getActiveSheet()->getStyle('E'.$row)->applyFromArray($array_prix_erreur); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(4, $row, $article_tvac.' '); // ----- Affichage de la valeur
}
$coll=0;
$row ++;
}
else if ($coll==0) {
$classeur->getActiveSheet()->getStyle('A'.$row)->applyFromArray($array_texte); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(0, $row, $article_nom_afficher); // ----- Affichage de la valeur
if ($article_tvac>0) {
$classeur->getActiveSheet()->getStyle('B'.$row)->applyFromArray($array_prix); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(1, $row, $article_tvac.' '); // ----- Affichage de la valeur
}
else {
$classeur->getActiveSheet()->getStyle('B'.$row)->applyFromArray($array_prix_erreur); // ----- Appel mise en forme
$feuille->setCellValueByColumnAndRow(1, $row, $article_tvac.' '); // ----- Affichage de la valeur
}
$coll ++;
}
}
// ----- envoi du fichier au navigateur
header('content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Tarifs.xls"');
header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($classeur, 'Excel5');
$writer->save('php://output');
mysqli_close($conn_cecs);
?> |
Partager