Flux d’activité

Flux d’activité de Messages

  1. La fleur


    ouaip fais moi passer la page facture_pdf.php et invoice.php pour tracer le cadre

    Voila 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&eacute;es

    var $colonnes;

    var $format;

    var $angle=0;

    // fonctions priv&eacute;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&eacute;es de la soci&eacute;t&eacute;

    $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&egrave;glement (ch&egrave;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&eacute;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 ?

  2. noya_m


    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>

  3. La fleur


    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&eacute;termine la variable start (d&eacute;but de page)

    switch (vb script:return confirm('&ecirc;tes-vous s&ucirc;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&eacute;cifici&eacute; par $id. Il faut supprimer le produit

    * puis les entr&eacute;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 &eacute;t&eacute; effac&eacute; 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&eacute;termine la variable start (d&eacute;but de page)

    switch (vb script:return confirm('&ecirc;tes-vous s&ucirc;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&eacute;cifici&eacute; par $id. Il faut supprimer le produit

    * puis les entr&eacute;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 &eacute;t&eacute; effac&eacute; 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

  4. Willy


    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&eacute;gories par ordre alphab&eacute;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 &agrave; 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 &agrave; 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

  5. La fleur


    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 !

  6. 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

Twitter Advisto ecommerce

Facebook PEEL Shopping