Flux d’activité
Flux d’activité de Messages
-
-
Pour répondre à LaFleur
il s'avère effectivement que les codes sont corrects, en effet il y a un souci je pense au niveau de la conversion de certains caractères AINSI et UNICODE dans le forum
car j'ai mis tout cela sur un fichier texte et avec un simple copier/coller tout fonctionne
-
En gros je voudrais celui affichant les catégories et sous catégories car j'ai trop de produits donc la liste est trop longue
Merci
-
je suis nul, j'ai effectivement le lien, désolé pour le dérangement :)Pas de soucis, je ne savais même pas que ca existait, merci a vous !
-
-
-
ouaip fais moi passer la page facture_pdf.php et invoice.php pour tracer le cadreVoila dans l'ordre demandé en plus !
<?php
// © PEEL.FR
define('FPDF_FONTPATH','../lib/class/pdf/font/');
include("../configuration.inc.php");
require("invoice.php");
if (!empty($_GET['timestamp']) && !empty($_GET['id']) && !empty($_GET['mode'])) {
// Chargement des variables pour afficher facture ou bons de commande
$timestamp = urldecode(htmlspecialchars($_GET['timestamp']));
$id = intval($_GET['id']);
$mode = htmlspecialchars($_GET['mode']);
$qid_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '$id' AND o_timestamp = '$timestamp'");
if (mysql_num_rows($qid_commande) > 0) {
$commande = mysql_fetch_object($qid_commande);
$qid_items = mysql_query("
SELECT
p.reference
,oi.nom_produit
,p.prix AS curr_prix
,oi.prix AS purchase_prix
,oi.quantite
,oi.tva
,oi.promotion
,oi.prix * oi.quantite AS total
,oi.comment
,oi.couleur
,oi.taille
,oi.option_prix
,oi.delivery_stock
FROM peel_commandes_articles oi
LEFT JOIN peel_produits p ON (oi.produit_id = p.id)
WHERE commande_id = '$id'
");
switch ($_GET['mode']) {
case "proforma" :
$libelle = PROFORMA;
$numero = $id;
$pdf_date = return_date_fr($commande->o_timestamp);
break;
case "invoice" :
$libelle = INVOICE;
$numero = $commande->numero;
if ($commande->a_timestamp != "" && $commande->a_timestamp != "0000-00-00" ) {$pdf_date = return_date_fr($commande->a_timestamp);} else {$pdf_date = date("d-m-Y");}
break;
}
// $pdf_logo = "logopeel.jpg";
$qid = mysql_query("SELECT * FROM peel_societe");
if ($qid) {
if (mysql_num_rows($qid) > 0) {
$ligne = mysql_fetch_object($qid);
if (!empty($ligne->societe)) { $pdf_societe = filtre_pdf($ligne->societe) ;} else {$pdf_societe = "" ;}
if (!empty($ligne->adresse)) { $pdf_adresse = filtre_pdf($ligne->adresse) ;} else {$pdf_adresse = "" ;}
if (!empty($ligne->code_postal)) { $pdf_codepostal = $ligne->code_postal ;} else {$pdf_codepostal = "" ;}
if (!empty($ligne->ville)) { $pdf_ville = filtre_pdf($ligne->ville) ;} else {$pdf_ville = "" ;}
if (!empty($ligne->pays)) { $pdf_pays = filtre_pdf($ligne->pays) ;} else {$pdf_pays = "" ;}
if (!empty($ligne->tel)) { $pdf_tel = $ligne->tel ;} else {$pdf_tel = "" ;}
if (!empty($ligne->fax)) { $pdf_fax = $ligne->fax ;} else {$pdf_fax = "" ;}
if (!empty($ligne->siren)) { $pdf_siret = "R.C.S. : ".$ligne->siren ;} else {$pdf_siret = "" ;}
if (!empty($ligne->tvaintra)) { $pdf_tvaintra = $ligne->tvaintra ;} else {$pdf_tvaintra = "" ;}
}
}
$pdf_numerodevis = $numero;
$pdf_client1 = filtre_pdf($commande->client_info1);
$pdf_client2 = filtre_pdf($commande->client_info2);
$pdf_paiement = filtre_pdf($commande->paiement);
$pdf_transport = filtre_pdf($commande->transport);
$pdf_tarif_paiement = $commande->tarif_paiement;
$transport = $commande->transport;
$pdf_expedition = $commande->cout_transport;
$pdf = new INVOICE( 'P', 'mm', 'A4' );
$pdf->Open();
$pdf->AddPage();
$pdf->addSociete( $pdf_societe."\n" .$pdf_adresse."\n" .$pdf_codepostal." ".$pdf_ville."\n".
$pdf_siret."\n"
);
if ($_GET['mode'] == "proforma") {
$pdf->fact_dev( "BDC ", $numero );
$pdf->temporaire( "Bon de commande" );
} else {
$pdf->fact_dev( "FACTURE ", $numero );
}
$pdf->addDate( $pdf_date);
$pdf->addClientAdresseFacturation($pdf_client1);
$pdf->addClientAdresseExpedition($pdf_client2);
$pdf->addReglement($pdf_paiement);
$pdf->addNumTVA($pdf_tvaintra);
$cols=array( "REFERENCE" => 23,
"DESIGNATION" => 78,
"QUANTITE" => 22,
"PU_TTC" => 26,
"MONTANT_TTC" => 30,
"TVA" => 11 );
$pdf->addCols( $cols);
$cols=array( "REFERENCE" => "L",
"DESIGNATION" => "L",
"QUANTITE" => "C",
"PU_TTC" => "R",
"MONTANT_TTC" => "R",
"TVA" => "C" );
$pdf->addLineFormat( $cols);
$pdf->addLineFormat($cols);
$y = 109;
$pdf_total_ttc = 0;
$pdf_total_ht = 0;
if ($qid_items) {
if (mysql_num_rows($qid_items)) {
while ($prod = mysql_fetch_array($qid_items)) {
if ($prod['couleur'] !=') {$couleur = "\n\r".COLOR." : ".stripslashes($prod['couleur]);} else {$couleur = "";}
if ($prod['taille'] !=') {$taille = "\n\r".SIZE." : ".stripslashes($prod['taille]);} else {$taille = "";}
if ($prod['delivery_stock'] !=') {$delivery = "\n\r".DELIVERY_STOCK." : ".stripslashes($prod['delivery_stock]);} else {$delivery = "";}
if ($prod['comment'] !=') {$comment = "\n\r".COMMENT." : ".stripslashes($prod['comment]);} else {$comment = "";}
if ($prod['option_prix'] !=0) {$perso = "\n\r".OPTION_PRIX." : ".$prod['option_prix']." EUR";} else {$perso = "";}
$line = array(
"REFERENCE" => $prod["reference"],
"DESIGNATION" => filtre_pdf($prod["nom_produit"]).vb($couleur).vb($taille).vb($delivery).vb($comment).vb($perso),
"QUANTITE" => $prod["quantite"],
"PU_TTC" => fprix($prod["purchase_prix"]),
"MONTANT_TTC" => fprix($prod["total"]),
"TVA" => number_format($prod["tva"],1)
);
$size = $pdf->addLine( $y, $line );
$pdf_total_ttc += $prod['total'];
$pdf_total_ht += $prod['total'] / (1+$prod['tva']/100);
$y += $size + 2;
}
}
}
$pdf_tva = $pdf_total_ttc - $pdf_total_ht;
$params = array(
"TotalHt" => $pdf_total_ht,
"TVA" => $pdf_tva,
"TotalTtc" => $pdf_total_ttc,
"portTTC" => $pdf_expedition,
"tarifPaiement" => $pdf_tarif_paiement,
);
if ($_GET['mode'] == "proforma") {
$pdf->addCadreSignature();
}
$pdf->addTVAs($params);
$pdf->addCadreEurosFrancs();
$pdf->Output();
} else {
echo "NO HACKING (-:!";
}
} else {
echo "NO HACKING (-:!";
}
?>
Invoice maintenant
<?php
define('EURO', chr(128) );
define('EURO_VAL', 6.55957 );
class INVOICE extends FPDF
{
// variables privées
var $colonnes;
var $format;
var $angle=0;
// fonctions privées
function RoundedRect($x, $y, $w, $h, $r, $style = '')
{
$k = $this->k;
$hp = $this->h;
if($style=='F')
$op='f';
elseif($style=='FD' or $style=='DF')
$op='B';
else
$op='S';
$MyArc = 4/3 * (sqrt(2) - 1);
$this->_out(sprintf('%.2f %.2f m',($x+$r)*$k,($hp-$y)*$k ));
$xc = $x+$w-$r ;
$yc = $y+$r;
$this->_out(sprintf('%.2f %.2f l', $xc*$k,($hp-$y)*$k ));
$this->_Arc($xc + $r*$MyArc, $yc - $r, $xc + $r, $yc - $r*$MyArc, $xc + $r, $yc);
$xc = $x+$w-$r ;
$yc = $y+$h-$r;
$this->_out(sprintf('%.2f %.2f l',($x+$w)*$k,($hp-$yc)*$k));
$this->_Arc($xc + $r, $yc + $r*$MyArc, $xc + $r*$MyArc, $yc + $r, $xc, $yc + $r);
$xc = $x+$r ;
$yc = $y+$h-$r;
$this->_out(sprintf('%.2f %.2f l',$xc*$k,($hp-($y+$h))*$k));
$this->_Arc($xc - $r*$MyArc, $yc + $r, $xc - $r, $yc + $r*$MyArc, $xc - $r, $yc);
$xc = $x+$r ;
$yc = $y+$r;
$this->_out(sprintf('%.2f %.2f l',($x)*$k,($hp-$yc)*$k ));
$this->_Arc($xc - $r, $yc - $r*$MyArc, $xc - $r*$MyArc, $yc - $r, $xc, $yc - $r);
$this->_out($op);
}
function _Arc($x1, $y1, $x2, $y2, $x3, $y3)
{
$h = $this->h;
$this->_out(sprintf('%.2f %.2f %.2f %.2f %.2f %.2f c ', $x1*$this->k, ($h-$y1)*$this->k,
$x2*$this->k, ($h-$y2)*$this->k, $x3*$this->k, ($h-$y3)*$this->k));
}
function Rotate($angle,$x=-1,$y=-1)
{
if($x==-1)
$x=$this->x;
if($y==-1)
$y=$this->y;
if($this->angle!=0)
$this->_out('Q');
$this->angle=$angle;
if($angle!=0)
{
$angle*=M_PI/180;
$c=cos($angle);
$s=sin($angle);
$cx=$x*$this->k;
$cy=($this->h-$y)*$this->k;
$this->_out(sprintf('q %.5f %.5f %.5f %.5f %.2f %.2f cm 1 0 0 1 %.2f %.2f cm',$c,$s,-$s,$c,$cx,$cy,-$cx,-$cy));
}
}
function _endpage()
{
if($this->angle!=0)
{
$this->angle=0;
$this->_out('Q');
}
parent::_endpage();
}
// fonctions publiques
function sizeOfText( $texte, $largeur )
{
$index = 0;
$nb_lines = 0;
$loop = TRUE;
while ( $loop )
{
$pos = strpos($texte, "\n");
if (!$pos)
{
$loop = FALSE;
$ligne = $texte;
}
else
{
$ligne = substr( $texte, $index, $pos);
$texte = substr( $texte, $pos+1 );
}
$length = floor( $this->GetStringWidth( $ligne ) );
if ($largeur != 0) {$res = 1 + floor( $length / $largeur) ;} else {$res = 1 + floor( $length);}
$nb_lines += $res;
}
return $nb_lines;
}
// Cette fonction affiche en haut, a gauche,
// le nom de la societe dans la police Arial-12-Bold
// les coordonnees de la societe dans la police Arial-10
function addSociete( $adresse )
{
$x1 = 10;
$y1 = 8;
//Positionnement en bas
//$this->Image($logo,$x1,$y1,24);
//$this->SetXY( $x1, $y1 + 10);
$this->SetFont('Arial','B',12);
//$length = $this->GetStringWidth( $nom );
//$this->Cell( $length, 2, $nom);
$this->SetXY( $x1, $y1 + 12 );
$this->SetFont('Arial','',10);
$length = $this->GetStringWidth( $adresse );
//Coordonnées de la société
$lignes = $this->sizeOfText( $adresse, $length) ;
$this->MultiCell($length, 4, $adresse);
}
// Affiche en haut, a droite le libelle
// (FACTURE, DEVIS, Bon de commande, etc...)
// et son numero
// La taille de la fonte est auto-adaptee au cadre
function fact_dev( $libelle, $num )
{
$r1 = $this->w - 80;
$r2 = $r1 + 68;
$y1 = 6;
$y2 = $y1 + 2;
$mid = ($r1 + $r2 ) / 2;
$texte = $libelle . " N∞ : " . $num;
$szfont = 12;
$loop = 0;
while ( $loop == 0 )
{
$this->SetFont( "Helvetica", "B", $szfont );
$sz = $this->GetStringWidth( $texte );
if ( ($r1+$sz) > $r2 )
$szfont --;
else
$loop ++;
}
$this->SetLineWidth(0.1);
$this->SetFillColor(154, 154, 204);
$this->RoundedRect($r1, $y1, ($r2 - $r1), $y2, 2.5, 'DF');
$this->SetXY( $r1+1, $y1+2);
$this->Cell($r2-$r1 -1,5, $texte, 0, 0, "C" );
}
// Genere automatiquement un numero de devis
function addDevis( $numdev )
{
$string = sprintf("DEV%04d",$numdev);
$this->fact_dev( "Devis", $string );
}
// Genere automatiquement un numero de facture
function addFacture( $numfact )
{
$string = sprintf("FA%04d",$numfact);
$this->fact_dev( "Facture", $string );
}
// Affiche un cadre avec la date de la facture / devis
// (en haut, a droite)
function addDate( $date )
{
$r1 = $this->w - 80;
$r2 = $r1 + 68;
$y1 = 17;
$y2 = $y1 ;
$mid = $y1 + ($y2 / 2);
$this->Rect($r1, $y1, ($r2 - $r1), $y2, 'D');
$this->Line( $r1, $mid, $r2, $mid);
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1+3 );
$this->SetFont( "Helvetica", "B", 10);
$this->Cell(15,5, "DATE", 0, 0, "C");
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1+9 );
$this->SetFont( "Helvetica", "", 10);
$this->Cell(15,5,$date, 0,0, "C");
}
// Affiche un cadre avec les references du client
// (en haut, a droite)
function addClient( $ref )
{
$r1 = $this->w - 31;
$r2 = $r1 + 19;
$y1 = 17;
$y2 = $y1;
$mid = $y1 + ($y2 / 2);
$this->RoundedRect($r1, $y1, ($r2 - $r1), $y2, 3.5, 'D');
$this->Line( $r1, $mid, $r2, $mid);
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1+3 );
$this->SetFont( "Helvetica", "B", 10);
$this->Cell(10,5, "CLIENT", 0, 0, "C");
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1 + 9 );
$this->SetFont( "Helvetica", "", 10);
$this->Cell(10,5,$ref, 0,0, "C");
}
// Affiche un cadre avec un numero de page
// (en haut, a droite)
function addPageNumber( $page )
{
$r1 = $this->w - 80;
$r2 = $r1 + 19;
$y1 = 17;
$y2 = $y1;
$mid = $y1 + ($y2 / 2);
$this->RoundedRect($r1, $y1, ($r2 - $r1), $y2, 3.5, 'D');
$this->Line( $r1, $mid, $r2, $mid);
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1+3 );
$this->SetFont( "Helvetica", "B", 10);
$this->Cell(10,5, "PAGE", 0, 0, "C");
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1 + 9 );
$this->SetFont( "Helvetica", "", 10);
$this->Cell(10,5,$page, 0,0, "C");
}
// Affiche l'adresse du client
// (en haut, a droite)
function addClientAdresseFacturation( $pdf_facturation )
{
$r1 = $this->w - 200;
$r2 = $r1 + 68;
$y1 = 40;
$y2 = $y1+38;
$this->Rect($r1, $y1, ($r2 - $r1), ($y2-$y1), 'D');
$this->SetXY( $r1, $y1);
$this->MultiCell( 60, 4, "Adresse de facturation :\n".$pdf_facturation);
}
function addClientAdresseExpedition( $pdf_facturation2 )
{
$r1 = $this->w - 80;
$r2 = $r1 + 68;
$y1 = 40;
$y2 = $y1+38;
$this->Rect($r1, $y1, ($r2 - $r1), ($y2-$y1), 'D');
$this->SetXY( $r1, $y1);
$this->MultiCell( 60, 4, "Adresse d'expÈdition :\n".$pdf_facturation2);
}
// Affiche un cadre avec le règlement (chèque, etc...)
// (en haut, a gauche)
function addReglement( $mode )
{
$r1 = 10;
$r2 = $r1 + 68;
$y1 = 80;
$y2 = $y1+10;
$mid = $y1 + (($y2-$y1) / 2);
$this->Rect($r1, $y1, ($r2 - $r1), ($y2-$y1), 'D');
$this->Line( $r1, $mid, $r2, $mid);
$this->SetXY( $r1 + ($r2-$r1)/2 -5 , $y1+1 );
$this->SetFont( "Helvetica", "B", 10);
$this->Cell(10,4, "MODE DE REGLEMENT", 0, 0, "C");
$this->SetXY( $r1 + ($r2-$r1)/2 -5 , $y1 + 5 );
$this->SetFont( "Helvetica", "", 10);
$this->Cell(10,5,$mode, 0,0, "C");
}
// Affiche un cadre avec la date d'echeance
// (en haut, au centre)
function addEcheance( $date )
{
$r1 = 80;
$r2 = $r1 + 40;
$y1 = 80;
$y2 = $y1+10;
$mid = $y1 + (($y2-$y1) / 2);
$this->RoundedRect($r1, $y1, ($r2 - $r1), ($y2-$y1), 2.5, 'D');
$this->Line( $r1, $mid, $r2, $mid);
$this->SetXY( $r1 + ($r2 - $r1)/2 - 5 , $y1+1 );
$this->SetFont( "Helvetica", "B", 10);
$this->Cell(10,4, "DATE D'ECHEANCE", 0, 0, "C");
$this->SetXY( $r1 + ($r2-$r1)/2 - 5 , $y1 + 5 );
$this->SetFont( "Helvetica", "", 10);
$this->Cell(10,5,$date, 0,0, "C");
}
// Affiche un cadre avec le numero de la TVA
// (en haut, au droite)
function addNumTVA($tva)
{
$this->SetFont( "Helvetica", "B", 10);
$r1 = $this->w - 80;
$r2 = $r1 + 68;
$y1 = 80;
$y2 = $y1+10;
$mid = $y1 + (($y2-$y1) / 2);
$this->Rect($r1, $y1, ($r2 - $r1), ($y2-$y1), 'D');
$this->Line( $r1, $mid, $r2, $mid);
$this->SetXY( $r1 + 16 , $y1+1 );
$this->Cell(40, 4, "TVA Intracommunautaire", '', '', "C");
$this->SetFont( "Helvetica", "", 10);
$this->SetXY( $r1 + 16 , $y1+5 );
$this->Cell(40, 5, $tva, '', '', "C");
}
// Affiche une ligne avec des reference
// (en haut, a gauche)
function addReference($ref)
{
$this->SetFont( "Helvetica", "", 10);
$length = $this->GetStringWidth( "References : " . $ref );
$r1 = 10;
$r2 = $r1 + $length;
$y1 = 92;
$y2 = $y1+5;
$this->SetXY( $r1 , $y1 );
$this->Cell($length,4, "Reference : " . $ref);
}
// trace le cadre des colonnes du devis/facture
function addCols( $tab )
{
global $colonnes;
$r1 = 10;
$r2 = $this->w - ($r1 * 2) ;
$y1 = 100;
$y2 = $this->h - 50 - $y1;
$this->SetXY( $r1, $y1 );
$this->Rect( $r1, $y1, $r2, $y2, "D");
$this->Line( $r1, $y1+6, $r1+$r2, $y1+6);
$colX = $r1;
$colonnes = $tab;
while ( list( $lib, $pos ) = each ($tab) )
{
$this->SetXY( $colX, $y1+2 );
$this->Cell( $pos, 1, $lib, 0, 0, "C");
$colX += $pos;
$this->Line( $colX, $y1, $colX, $y1+$y2);
}
}
// mémorise le format (gauche, centre, droite) d'une colonne
function addLineFormat( $tab )
{
global $format, $colonnes;
while ( list( $lib, $pos ) = each ($colonnes) )
{
if ( isset( $tab["$lib"] ) )
$format[ $lib ] = $tab["$lib"];
}
}
function lineVert( $tab )
{
global $colonnes;
reset( $colonnes );
$maxSize=0;
while ( list( $lib, $pos ) = each ($colonnes) )
{
$texte = $tab[ $lib ];
$longCell = $pos -2;
$size = $this->sizeOfText( $texte, $longCell );
if ($size > $maxSize)
$maxSize = $size;
}
return $maxSize;
}
function addLine( $ligne, $tab )
{
global $colonnes, $format;
$ordonnee = 10;
$maxSize = $ligne;
reset( $colonnes );
while ( list( $lib, $pos ) = each ($colonnes) )
{
$longCell = $pos -2;
$texte = $tab[ $lib ];
$length = $this->GetStringWidth( $texte );
$tailleTexte = $this->sizeOfText( $texte, $length );
$formText = $format[ $lib ];
$this->SetXY( $ordonnee, $ligne-1);
$this->MultiCell( $longCell, 4 , $texte, 0, $formText);
if ( $maxSize < ($this->GetY() ) )
$maxSize = $this->GetY() ;
$ordonnee += $pos;
}
return ( $maxSize - $ligne );
}
function addTotalHt( $total_ht )
{
$r1 = $this->w - 31;
$r2 = $r1 + 19;
$y1 = 100;
$y2 = $y1;
$mid = $y1 + ($y2 / 2);
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1+3 );
$this->SetFont( "Helvetica", "B", 10);
$this->Cell(10,5, "Total H.T.", 0, 0, "C");
$this->SetXY( $r1 + ($r2-$r1)/2 - 5, $y1 + 9 );
$this->SetFont( "Helvetica", "", 10);
$this->Cell(10,5,$total_ht."Ä H.T.", 0,0, "C");
}
// Ajoute une remarque (en bas, a gauche)
function addRemarque($remarque)
{
$this->SetFont( "Helvetica", "", 10);
$length = $this->GetStringWidth( "Remarque : " . $remarque );
$r1 = 10;
$r2 = $r1 + $length;
$y1 = $this->h - 45.5;
$y2 = $y1+5;
$this->SetXY( $r1 , $y1 );
$this->Cell($length,4, "Remarque : " . $remarque);
}
// trace le cadre des TVAs
function addCadreTVAs()
{
$this->SetFont( "Arial", "B", 8);
$r1 = 10;
$r2 = $r1 + 20;
$y1 = $this->h;
$y2 = $y1+5;
$this->Line( $r1, $y1+4, $r2, $y1+4);
$this->Line( $r1+5, $y1+4, $r1+5, $y2); // avant BASE HT
$this->Line( $r1+27, $y1, $r1+27, $y2); // avant REMISE
$this->Line( $r1+63, $y1, $r1+63, $y2); // avant % TVA
$this->Line( $r1+75, $y1, $r1+75, $y2); // avant PORT
$this->Line( $r1+91, $y1, $r1+91, $y2); // avant TOTAUX
$this->SetXY( $r1+9, $y1);
$this->Cell(10,4, "TOTAL HT");
$this->SetX( $r1+63 );
$this->Cell(10,4, "TVA");
$this->SetX( $r1+78 );
$this->Cell(10,4, "PORT");
$this->SetX( $r1+100 );
$this->Cell(10,4, "TOTAUX");
$this->SetFont( "Arial", "B", 6);
$this->SetXY( $r1+93, $y2 - 13 );
$this->Cell(6,0, "T.T.C :");
$this->SetXY( $r1+93, $y2 - 8 );
$this->Cell(6,0, "H.T. :");
$this->SetXY( $r1+93, $y2 - 3 );
$this->Cell(6,0, "T.V.A. :");
}
function addCadreSignature()
{
$this->SetFont( "Arial", "B", 10);
$r1 = 10;
$r2 = $r1 + 60;
$y1 = $this->h - 45;
$y2 = $y1+30;
$this->RoundedRect($r1, $y1, ($r2 - $r1), ($y2-$y1), 2.5, 'D');
$this->Line( $r1, $y1+4, $r2, $y1+4);
$this->SetXY( $r1+5, $y1);
$this->Cell(10,4, "ACCORD POUR COMMANDE");
$this->SetFont( "Arial", "B", 6);
$this->SetXY( $r1+5, $y2 - 23 );
$this->Cell(6,0, "Date :");
$this->SetXY( $r1+5, $y2 - 18 );
$this->Cell(6,0, "Mention (Bon pour accord) :");
$this->SetXY( $r1+5, $y2 - 13 );
$this->Cell(6,0, "Signature :");
}
// trace le cadre des totaux
function addCadreEurosFrancs()
{
$r1 = $this->w - 60;
$r2 = $r1 + 50;
$y1 = $this->h - 45;
$y2 = $y1+30;
$this->RoundedRect($r1, $y1, ($r2 - $r1), ($y2-$y1), 2.5, 'D');
}
function addTVAs( $params )
{
$this->SetFont('Arial','',6);
$prix = array();
$totalHT = $params["TotalHt"];
$totalTVA = $params['TVA'] ;
$totalTTC = $params['TotalTtc'];
$tarifPaiement = $params['tarifPaiement'];
$y = 261;
$pTTC = sprintf("%0.2f", $params["portTTC"]);
$totalTTC = $totalHT + $totalTVA +$pTTC + $tarifPaiement;
$re = $this->w - 52;
$rf = $this->w - 26;
$y1 = $this->h - 40;
$this->SetFont( "Arial", "B", 6);
$this->SetXY( $re, $y1-5 );
$this->Cell( 17,4, "TOTAL HT :");
$this->Cell( 17,4, sprintf("%0.2f",$totalHT)." Ä", '', '', 'R');
$this->SetXY( $re, $y1 );
$this->Cell( 17,4, "TVA :");
$this->Cell( 17,4, sprintf("%0.2f", $totalTVA)." Ä", '', '', 'R');
$this->SetXY( $re, $y1+5 );
$this->Cell( 17,4, "Frais de port:");
$this->Cell( 17,4, sprintf("%0.2f", $pTTC)." Ä", '', '', 'R');
$this->SetXY( $re, $y1+10 );
$this->Cell( 17,4, "SupplÈment paiement:");
$this->Cell( 17,4, sprintf("%0.2f", $tarifPaiement)." Ä", '', '', 'R');
$this->SetXY( $re, $y1+15 );
$this->Cell( 17,4, "Net ‡ payer :");
$this->Cell( 17,4, sprintf("%0.2f", $totalTTC)." Ä", '', '', 'R');
}
// Permet de rajouter un commentaire (Devis temporaire, REGLE, DUPLICATA, ...)
// en sous-impression
// ATTENTION: APPELER CETTE FONCTION EN PREMIER
function temporaire( $texte )
{
$this->SetFont('Arial','B',50);
$this->SetTextColor(203,203,203);
$this->Rotate(45,55,190);
$this->Text(55,190,$texte);
$this->Rotate(0);
$this->SetTextColor(0,0,0);
}
}
?>
Voila et avec ça on doit arriver à faire qque chose ?
-
-
Dans quel sitemap ?
Le vrai sitemap que vous soumettez à Google ou le plan du site pour les visiteurs ?
Willy
-
Maintenant un peu plus dur :) :
avec le sitemap d'origine les sous categories ne s'affichent pas
comment faire pour les afficher aussi
-
le script est disp oen téléchargement sur le site cité au dessus.Oui j'ai vu, mais c'est l'intégration dans la page qui pose soucis apparement.
Willy
-
mettre ceci :
<a class="normal" href="achat/produit_details.php?id=<? echo $cat['id'] ?>" ><? echo html_entity_decode($cat['nom_'.$_SESSION['langue'].''])?> (<?php echo $Count[0] ?>)</a>
ou lieu de
<a class="normal" href="achat/index.php?catid=<? echo $cat['id'] ?>"><? echo html_entity_decode($cat['nom_'.$_SESSION['langue'].''])?> (<?php echo $Count[0] ?>)</a>
-
-
-
Bonjour willy,Je ne connais pas cette page suis je censé l'avoir avec ma version 2.9?
Question :
Comment faire pour que le textarea de mes commande soit repris dans les factures PDF ?
Moi dans le textarea ils inscrivent la date de livraison souhaité et un message
Lorsqu'ils impriment la facture en PDF ils n'ont pas confirmation de la date de livraison
Y a t il un moyen ?
PS : J'ai un PR de deux et tout seul SVP !
La page positions.php
<?
include("../configuration.inc.php");
necessite_identification();
necessite_priv("admin");
$DOC_TITLE = "Gestion des positions";
include("modeles/haut.php");
$start = vn($_REQUEST['start']);// Détermine la variable start (début de page)
switch (vb script:return confirm('êtes-vous sûr de vouloir supprimer la position ?');" title="Supprimer <?=$ligne['nom_'.$_SESSION['langue'].''] ?>" href=<?=$_SERVER['PHP_SELF]?>?mode=suppr&id=<?=$ligne['id'] ?>"><img src="images/b_drop.png" alt="drop" border="0"></a></td>
<td class=petit><a class=petit title="Modifier ce position" href="<?=$_SERVER['PHP_SELF']?>?mode=modif&id=<?=$ligne['id'] ?>"><?=$ligne['nom_'.$_SESSION['langue'].''] ?></a></td>
<td class=petit>
<?php
if ($ligne['image'] != "") {echo "<img src=.$repertoire_images.$ligne['image]." width=\"100\" />";}
?>
</td>
<td align=center class=petit><?=$ligne['ordre'] ?></td>
<td align=center>
<?php
$query_lang = mysql_query("SELECT * FROM peel_langues WHERE etat = '1' AND lang <> '".$_SESSION['langue']."' GROUP BY lang");
if($query_lang) {
if (mysql_num_rows($query_lang)) {
echo "<select name=\"langue\" class=\"formulaire1\" onChange=\"gototraduire(this.options[this.selectedIndex].value)\">";
echo "<option value=\"\">Choisir la langue :</option>";
while($res_lang = mysql_fetch_array($query_lang)) {
echo "<option value=\"mode=traduire&id=".$ligne['id']."&langue=.$res_lang['lang]."\">".stripslashes($res_lang['nom_'.$_SESSION['langue'].''])."</option>";
}
echo "</select>";
}
}
?>
</td>
</tr>
<?
$i++;
}
}
echo "</table>";
}
function supprime_fichier($id, $file) {
/* Supprime le produit spécificié par $id. Il faut supprimer le produit
* puis les entrées correspondantes de la table produits_categories. */
global $the_path ;
/* Charge les infos du produit. */
switch($file) {
case "image" :
$sql = "SELECT image FROM peel_positions WHERE id = '$id'";
$res = mysql_query($sql);
$file = mysql_fetch_row($res);
mysql_query("UPDATE peel_positions SET image = '' WHERE id = '$id'");
break;
}
@unlink($the_path.$file[0]);
?>
<div class="normal">
Le fichier <b><?=$file[0]?> </b>a été effacé du serveur.
</div>
<?
}
?>
En espérant qu'elle vous sera utile sinon je la remets ...
La fleurs
oui tu parles des commentaires/instructions spéciales ?bravo pour ton pr au bout de combien de temps l'as tu obtenu
Pourquoi parler des choses qui fachent Paulana !!!!
La page positions.php<?
include("../configuration.inc.php");
necessite_identification();
necessite_priv("admin");
$DOC_TITLE = "Gestion des positions";
include("modeles/haut.php");
$start = vn($_REQUEST['start']);// Détermine la variable start (début de page)
switch (vb script:return confirm('êtes-vous sûr de vouloir supprimer la position ?');" title="Supprimer <?=$ligne['nom_'.$_SESSION['langue'].''] ?>" href=<?=$_SERVER['PHP_SELF]?>?mode=suppr&id=<?=$ligne['id'] ?>"><img src="images/b_drop.png" alt="drop" border="0"></a></td>
<td class=petit><a class=petit title="Modifier ce position" href="<?=$_SERVER['PHP_SELF']?>?mode=modif&id=<?=$ligne['id'] ?>"><?=$ligne['nom_'.$_SESSION['langue'].''] ?></a></td>
<td class=petit>
<?php
if ($ligne['image'] != "") {echo "<img src=.$repertoire_images.$ligne['image]." width=\"100\" />";}
?>
</td>
<td align=center class=petit><?=$ligne['ordre'] ?></td>
<td align=center>
<?php
$query_lang = mysql_query("SELECT * FROM peel_langues WHERE etat = '1' AND lang <> '".$_SESSION['langue']."' GROUP BY lang");
if($query_lang) {
if (mysql_num_rows($query_lang)) {
echo "<select name=\"langue\" class=\"formulaire1\" onChange=\"gototraduire(this.options[this.selectedIndex].value)\">";
echo "<option value=\"\">Choisir la langue :</option>";
while($res_lang = mysql_fetch_array($query_lang)) {
echo "<option value=\"mode=traduire&id=".$ligne['id']."&langue=.$res_lang['lang]."\">".stripslashes($res_lang['nom_'.$_SESSION['langue'].''])."</option>";
}
echo "</select>";
}
}
?>
</td>
</tr>
<?
$i++;
}
}
echo "</table>";
}
function supprime_fichier($id, $file) {
/* Supprime le produit spécificié par $id. Il faut supprimer le produit
* puis les entrées correspondantes de la table produits_categories. */
global $the_path ;
/* Charge les infos du produit. */
switch($file) {
case "image" :
$sql = "SELECT image FROM peel_positions WHERE id = '$id'";
$res = mysql_query($sql);
$file = mysql_fetch_row($res);
mysql_query("UPDATE peel_positions SET image = '' WHERE id = '$id'");
break;
}
@unlink($the_path.$file[0]);
?>
<div class="normal">
Le fichier <b><?=$file[0]?> </b>a été effacé du serveur.
</div>
<?
}
?>
En espérant qu'elle vous sera utile sinon je la remets ...
La fleurs
Pourquoi parler des choses qui fachent Paulana !!!!
Ah oui je parle des instructions spéciales c'est ça
Y a t il une solution ?
La fleur
-
paulana, je ne comprends vraiment pas pourquoi mais j utilise a la lettre ton code, je peux ajouter des produits en stock, pas de probleme mais uniquement via la fiche produit. lorsque je le fais par la fiche "speciale" stock, il y a bien ajouter 1 et enlever 1 mais quoi que je fasse cela ne fonctionne pas. a ton avis que se passe t il?
-
Le bon code est donc pour les intéressés:
<? include("configuration.inc.php"); $DOC_TITLE = "[PEEL.FR]"; include("$repertoire_modele/haut.php"); print_alpha(); include("$repertoire_modele/bas.php"); /****************************************************************************** * FUNCTIONS *****************************************************************************/ function print_alpha() { /* Affiche la liste des catégories par ordre alphabétique */ global $wwwroot, $repertoire_modele, $repertoire_images; $alpha = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); echo "<table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"100%\">"; echo "<tr><td colspan=\"2\" class=\"entete\">".SITEMAP."</td></tr>"; foreach ($alpha as $value) { $sqlCat = "SELECT c.id, c.nom_".$_SESSION['langue'].", c.alpha FROM peel_produits c WHERE c.etat = '1' AND c.alpha = '".$value."'"; $resCat = mysql_query($sqlCat) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); echo "<tr><td class=\"titre\" colspan=\"2\">".$value."</td></tr>"; if (mysql_num_rows($resCat) > 0) { while ($cat = mysql_fetch_array($resCat)) { $sqlCount = "SELECT COUNT(*) FROM peel_produits p, peel_produits_categories pc, peel_categories c WHERE p.id = pc.produit_id AND p.id = '".intval($cat['id'])."' AND c.id = pc.categorie_id"; $resCount = mysql_query($sqlCount); if ($resCount) { $Count = mysql_fetch_row($resCount) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); } echo "<tr valign=\"top\"><td class=\"normal\">"; ?> <a class="normal" href="achat/produit_details.php?id=<? echo $cat['id'] ?>" ><? echo html_entity_decode($cat['nom_'.$_SESSION['langue'].''])?> (<?php echo $Count[0] ?>)</a> <?php echo "</td></tr>"; } } } echo "</table>"; } ?>
Willy
-
oui tu parles des commentaires/instructions spéciales ?
bravo pour ton pr au bout de combien de temps l'as tu obtenu
-
-
En effet apparement on peut, mais j'ai une belle erreur 404 et je n'ais pas la page "/administrer/positions.php" sur mon site :)Quelqu'un a le code de cette page pour moi.
Willy
Bonjour willy,
Je ne connais pas cette page suis je censé l'avoir avec ma version 2.9?
Question :
Comment faire pour que le textarea de mes commande soit repris dans les factures PDF ?
Moi dans le textarea ils inscrivent la date de livraison souhaité et un message
Lorsqu'ils impriment la facture en PDF ils n'ont pas confirmation de la date de livraison
Y a t il un moyen ?
PS : J'ai un PR de deux et tout seul SVP !
-
Une erreur de connexion à la base s est produite 32.Champ 'c.image' inconnu dans field list
enlevez c.image de la requete.
Willy
-
-
En effet apparement on peut, mais j'ai une belle erreur 404 et je n'ais pas la page "/administrer/positions.php" sur mon site :)
Quelqu'un a le code de cette page pour moi.
Willy
-
-
En fait le problème semble provenir du taux de TVA des produits :le calcul de la TVA de la remise code promo se fait sur un taux à 19,6 hors mes produits sont à 5.5% d'ou l'erreur.
fichier lib/class/caddie.php
/* On défalque la remise par code promotionnel */ $this->total_remise_code = $this->total_produit * vn($this->remise_code_percent) /100; $tva_remise_code = $this->total_remise_code * 0.196 / 1.196;
Il n'y a pas moyen de trouver le code tva à cet endroit et de remplacer 19.6 par ton code tva ?
Willy
prob catégories
dans Module PEEL Premium pour PEEL SHOPPING
Paul
Posté(e) · Signaler ce message
problème résolu , merci encore willy