0
pièce jointe PDF facture avec mail en utilisant FPDF premier téléchargement fpdf d'ici « www.fpdf.org/en/download.php » et le dossier sur le copier sur votre lecteur où vous voulez pdfcréer facture pdf en utilisant fpdf
Invoice.php
<?php
require('../fpdf181/fpdf.php');
define('EURO', chr(128));
define('EURO_VAL', 6.55957);
class PDF_Invoice extends FPDF
{
// private variables
var $colonnes;
var $format;
var $angle=0;
// private functions
function RoundedRect($x, $y, $w, $h, $r, $style = '')
{
$k = $this->k;
$hp = $this->h;
if($style=='F')
$op='f';
elseif($style=='FD' || $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();
}
// public functions
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));
$res = 1 + floor($length/$largeur) ;
$nb_lines += $res;
}
return $nb_lines;
}
// Company
function addSociete($nom, $adresse)
{
$x1 = 10;
$y1 = 40;
//Positionnement en bas
$this->SetXY($x1, $y1);
$this->SetFont('Arial','B',12);
$length = $this->GetStringWidth($nom);
$this->Cell($length, 2, $nom);
$this->SetXY($x1, $y1 + 4);
$this->SetFont('Arial','',10);
$length = $this->GetStringWidth($adresse);
//Coordonnées de la société
$lignes = $this->sizeOfText($adresse, $length) ;
$this->MultiCell($length, 4, $adresse);
}
// Label and number of invoice/estimate
function fact_dev($libelle, $num)
{
$r1 = $this->w - 80;
$r2 = $r1 + 68;
$y1 = 6;
$y2 = $y1 + 2;
$mid = ($r1 + $r2)/2;
$texte = $libelle . " EN " . EURO . " N° : " . $num;
$szfont = 12;
$loop = 0;
while ($loop == 0)
{
$this->SetFont("Arial", "B", $szfont);
$sz = $this->GetStringWidth($texte);
if (($r1+$sz) > $r2)
$szfont --;
else
$loop ++;
}
$this->SetLineWidth(0.1);
$this->SetFillColor(192);
$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");
}
// Estimate
function addDevis($numdev)
{
$string = sprintf("DEV%04d",$numdev);
$this->fact_dev("Devis", $string);
}
// Invoice
function addFacture($numfact)
{
$string = sprintf("FA%04d",$numfact);
$this->fact_dev("Facture", $string);
}
function addDate($date)
{
$r1 = $this->w - 61;
$r2 = $r1 + 30;
$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("Arial", "B", 10);
$this->Cell(10,5, "DATE", 0, 0, "C");
$this->SetXY($r1 + ($r2-$r1)/2 - 5, $y1+9);
$this->SetFont("Arial", "", 10);
$this->Cell(10,5,$date, 0,0, "C");
}
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("Arial", "B", 10);
$this->Cell(10,5, "CLIENT", 0, 0, "C");
$this->SetXY($r1 + ($r2-$r1)/2 - 5, $y1 + 9);
$this->SetFont("Arial", "", 10);
$this->Cell(10,5,$ref, 0,0, "C");
}
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("Arial", "B", 10);
$this->Cell(10,5, "PAGE", 0, 0, "C");
$this->SetXY($r1 + ($r2-$r1)/2 - 5, $y1 + 9);
$this->SetFont("Arial", "", 10);
$this->Cell(10,5,$page, 0,0, "C");
}
// Client address
function addClientAdresse($nom, $adresse)
{
$r1 = $this->w - 80;
$r2 = $r1 + 68;
$y1 = 40;
/*$this->SetXY($r1, $y1);
$this->MultiCell(60, 4, $adresse);*/
//$x1 = 10;
//$y1 = 247;
//Positionnement en bas
$this->SetXY($r1, $y1);
$this->SetFont('Arial','B',12);
$length = $this->GetStringWidth($nom);
$this->Cell($length, 2, $nom);
$this->SetXY($r1, $y1 + 4);
$this->SetFont('Arial','',10);
$length = $this->GetStringWidth($adresse);
//Coordonnées de la société
$lignes = $this->sizeOfText($adresse, $length) ;
$this->MultiCell($length, 4, $adresse);
}
// Mode of payment
function addReglement($mode)
{
$r1 = 10;
$r2 = $r1 + 60;
$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("Arial", "B", 10);
$this->Cell(10,4, "BUYER NAME", 0, 0, "C");
$this->SetXY($r1 + ($r2-$r1)/2 -5 , $y1 + 5);
$this->SetFont("Arial", "", 10);
$this->Cell(10,5,$mode, 0,0, "C");
}
// Expiry date
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("Arial", "B", 10);
$this->Cell(10,4, "DATE", 0, 0, "C");
$this->SetXY($r1 + ($r2-$r1)/2 - 5 , $y1 + 5);
$this->SetFont("Arial", "", 10);
$this->Cell(10,5,$date, 0,0, "C");
}
// VAT number
function addNumTVA($tva)
{
$this->SetFont("Arial", "B", 10);
$r1 = $this->w - 80;
$r2 = $r1 + 70;
$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 + 16 , $y1+1);
$this->Cell(40, 4, "SHIPPING DATE", '', '', "C");
$this->SetFont("Arial", "", 10);
$this->SetXY($r1 + 16 , $y1+5);
$this->Cell(40, 5, $tva, '', '', "C");
}
function addReference($ref)
{
$this->SetFont("Arial", "", 10);
$length = $this->GetStringWidth("Références : " . $ref);
$r1 = 10;
$r2 = $r1 + $length;
$y1 = 92;
$y2 = $y1+5;
$this->SetXY($r1 , $y1);
$this->Cell($length,4, "Références : " . $ref);
}
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);
}
}
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;
}
// add a line to the invoice/estimate
/* $ligne = array("REFERENCE" => $prod["ref"],
"DESIGNATION" => $libelle,
"QUANTITE" => sprintf("%.2F", $prod["qte"]) ,
"P.U. HT" => sprintf("%.2F", $prod["px_unit"]),
"MONTANT H.T." => sprintf ("%.2F", $prod["qte"] * $prod["px_unit"]) ,
"TVA" => $prod["tva"]);
*/
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 addRemarque($remarque)
{
$this->SetFont("Arial", "", 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);
}
function addCadreTVAs()
{
$this->SetFont("Arial", "B", 8);
$r1 = 10;
$r2 = $r1 + 120;
$y1 = $this->h - 40;
$y2 = $y1+20;
$this->RoundedRect($r1, $y1, ($r2 - $r1), ($y2-$y1), 2.5, 'D');
$this->Line($r1, $y1+4, $r2, $y1+4);
$this->Line($r1+5, $y1+4, $r1+5, $y2); // avant BASES HT
$this->Line($r1+27, $y1, $r1+27, $y2); // avant REMISE
$this->Line($r1+43, $y1, $r1+43, $y2); // avant MT TVA
$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, "BASES HT");
$this->SetX($r1+29);
$this->Cell(10,4, "REMISE");
$this->SetX($r1+48);
$this->Cell(10,4, "MT TVA");
$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 - 8);
$this->Cell(6,0, "H.T. :");
$this->SetXY($r1+93, $y2 - 3);
$this->Cell(6,0, "T.V.A. :");
}
function addCadreEurosFrancs()
{
$r1 = $this->w - 70;
$r2 = $r1 + 60;
$y1 = $this->h - 40;
$y2 = $y1+20;
$this->RoundedRect($r1, $y1, ($r2 - $r1), ($y2-$y1), 2.5, 'D');
$this->Line($r1+20, $y1, $r1+20, $y2); // avant EUROS
$this->Line($r1+20, $y1+4, $r2, $y1+4); // Sous Euros & Francs
$this->Line($r1+38, $y1, $r1+38, $y2); // Entre Euros & Francs
$this->SetFont("Arial", "B", 8);
$this->SetXY($r1+22, $y1);
$this->Cell(15,4, "EUROS", 0, 0, "C");
$this->SetFont("Arial", "", 8);
$this->SetXY($r1+42, $y1);
$this->Cell(15,4, "FRANCS", 0, 0, "C");
$this->SetFont("Arial", "B", 6);
$this->SetXY($r1, $y1+5);
$this->Cell(20,4, "TOTAL TTC", 0, 0, "C");
$this->SetXY($r1, $y1+10);
$this->Cell(20,4, "ACOMPTE", 0, 0, "C");
$this->SetXY($r1, $y1+15);
$this->Cell(20,4, "NET A PAYER", 0, 0, "C");
}
// remplit les cadres TVA/Totaux et la remarque
// params = array("RemiseGlobale" => [0|1],
//"remise_tva" => [1|2...], // {la remise s'applique sur ce code TVA}
// "remise" => value, // {montant de la remise}
//"remise_percent" => percent, // {pourcentage de remise sur ce montant de TVA}
// "FraisPort" => [0|1],
// "portTTC" => value, // montant des frais de ports TTC
// // par defaut la TVA = 19.6 %
// "portHT" => value, // montant des frais de ports HT
// "portTVA" => tva_value, // valeur de la TVA a appliquer sur le montant HT
// "AccompteExige" => [0|1],
// "accompte" => value // montant de l'acompte (TTC)
// "accompte_percent" => percent // pourcentage d'acompte (TTC)
// "Remarque" => "texte" // texte
// tab_tva = array("1" => 19.6,
// "2" => 5.5, ...);
// invoice = array("px_unit" => value,
// "qte" => qte,
// "tva" => code_tva);
function addTVAs($params, $tab_tva, $invoice)
{
$this->SetFont('Arial','',8);
reset ($invoice);
$px = array();
while (list($k, $prod) = each($invoice))
{
$tva = $prod["tva"];
@ $px[$tva] += $prod["qte"] * $prod["px_unit"];
}
$prix = array();
$totalHT = 0;
$totalTTC = 0;
$totalTVA = 0;
$y = 261;
reset ($px);
natsort($px);
while (list($code_tva, $articleHT) = each($px))
{
$tva = $tab_tva[$code_tva];
$this->SetXY(17, $y);
$this->Cell(19,4, sprintf("%0.2F", $articleHT),'', '','R');
if ($params["RemiseGlobale"]==1)
{
if ($params["remise_tva"] == $code_tva)
{
$this->SetXY(37.5, $y);
if ($params["remise"] > 0)
{
if (is_int($params["remise"]))
$l_remise = $param["remise"];
else
$l_remise = sprintf ("%0.2F", $params["remise"]);
$this->Cell(14.5,4, $l_remise, '', '', 'R');
$articleHT -= $params["remise"];
}
else if ($params["remise_percent"] > 0)
{
$rp = $params["remise_percent"];
if ($rp > 1)
$rp /= 100;
$rabais = $articleHT * $rp;
$articleHT -= $rabais;
if (is_int($rabais))
$l_remise = $rabais;
else
$l_remise = sprintf ("%0.2F", $rabais);
$this->Cell(14.5,4, $l_remise, '', '', 'R');
}
else
$this->Cell(14.5,4, "ErrorRem", '', '', 'R');
}
}
$totalHT += $articleHT;
$totalTTC += $articleHT * (1 + $tva/100);
$tmp_tva = $articleHT * $tva/100;
$a_tva[ $code_tva ] = $tmp_tva;
$totalTVA += $tmp_tva;
$this->SetXY(11, $y);
$this->Cell(5,4, $code_tva);
$this->SetXY(53, $y);
$this->Cell(19,4, sprintf("%0.2F",$tmp_tva),'', '' ,'R');
$this->SetXY(74, $y);
$this->Cell(10,4, sprintf("%0.2F",$tva) ,'', '', 'R');
$y+=4;
}
if ($params["FraisPort"] == 1)
{
if ($params["portTTC"] > 0)
{
$pTTC = sprintf("%0.2F", $params["portTTC"]);
$pHT = sprintf("%0.2F", $pTTC/1.196);
$pTVA = sprintf("%0.2F", $pHT * 0.196);
$this->SetFont('Arial','',6);
$this->SetXY(85, 261);
$this->Cell(6 ,4, "HT : ", '', '', '');
$this->SetXY(92, 261);
$this->Cell(9 ,4, $pHT, '', '', 'R');
$this->SetXY(85, 265);
$this->Cell(6 ,4, "TVA : ", '', '', '');
$this->SetXY(92, 265);
$this->Cell(9 ,4, $pTVA, '', '', 'R');
$this->SetXY(85, 269);
$this->Cell(6 ,4, "TTC : ", '', '', '');
$this->SetXY(92, 269);
$this->Cell(9 ,4, $pTTC, '', '', 'R');
$this->SetFont('Arial','',8);
$totalHT += $pHT;
$totalTVA += $pTVA;
$totalTTC += $pTTC;
}
else if ($params["portHT"] > 0)
{
$pHT = sprintf("%0.2F", $params["portHT"]);
$pTVA = sprintf("%0.2F", $params["portTVA"] * $pHT/100);
$pTTC = sprintf("%0.2F", $pHT + $pTVA);
$this->SetFont('Arial','',6);
$this->SetXY(85, 261);
$this->Cell(6 ,4, "HT : ", '', '', '');
$this->SetXY(92, 261);
$this->Cell(9 ,4, $pHT, '', '', 'R');
$this->SetXY(85, 265);
$this->Cell(6 ,4, "TVA : ", '', '', '');
$this->SetXY(92, 265);
$this->Cell(9 ,4, $pTVA, '', '', 'R');
$this->SetXY(85, 269);
$this->Cell(6 ,4, "TTC : ", '', '', '');
$this->SetXY(92, 269);
$this->Cell(9 ,4, $pTTC, '', '', 'R');
$this->SetFont('Arial','',8);
$totalHT += $pHT;
$totalTVA += $pTVA;
$totalTTC += $pTTC;
}
}
$this->SetXY(114,266.4);
$this->Cell(15,4, sprintf("%0.2F", $totalHT), '', '', 'R');
$this->SetXY(114,271.4);
$this->Cell(15,4, sprintf("%0.2F", $totalTVA), '', '', 'R');
$params["totalHT"] = $totalHT;
$params["TVA"] = $totalTVA;
$accompteTTC=0;
if ($params["AccompteExige"] == 1)
{
if ($params["accompte"] > 0)
{
$accompteTTC=sprintf ("%.2F", $params["accompte"]);
if (strlen ($params["Remarque"]) == 0)
$this->addRemarque("Accompte de $accompteTTC Euros exigé à la commande.");
else
$this->addRemarque($params["Remarque"]);
}
else if ($params["accompte_percent"] > 0)
{
$percent = $params["accompte_percent"];
if ($percent > 1)
$percent /= 100;
$accompteTTC=sprintf("%.2F", $totalTTC * $percent);
$percent100 = $percent * 100;
if (strlen ($params["Remarque"]) == 0)
$this->addRemarque("Accompte de $percent100 % (soit $accompteTTC Euros) exigé à la commande.");
else
$this->addRemarque($params["Remarque"]);
}
else
$this->addRemarque("Drôle d'acompte !!! " . $params["Remarque"]);
}
else
{
if (strlen ($params["Remarque"]) > 0)
$this->addRemarque($params["Remarque"]);
}
$re = $this->w - 50;
$rf = $this->w - 29;
$y1 = $this->h - 40;
$this->SetFont("Arial", "", 8);
$this->SetXY($re, $y1+5);
$this->Cell(17,4, sprintf("%0.2F", $totalTTC), '', '', 'R');
$this->SetXY($re, $y1+10);
$this->Cell(17,4, sprintf("%0.2F", $accompteTTC), '', '', 'R');
$this->SetXY($re, $y1+14.8);
$this->Cell(17,4, sprintf("%0.2F", $totalTTC - $accompteTTC), '', '', 'R');
$this->SetXY($rf, $y1+5);
$this->Cell(17,4, sprintf("%0.2F", $totalTTC * EURO_VAL), '', '', 'R');
$this->SetXY($rf, $y1+10);
$this->Cell(17,4, sprintf("%0.2F", $accompteTTC * EURO_VAL), '', '', 'R');
$this->SetXY($rf, $y1+14.8);
$this->Cell(17,4, sprintf("%0.2F", ($totalTTC - $accompteTTC) * EURO_VAL), '', '', 'R');
}
// add a watermark (temporary estimate, DUPLICATA...)
// call this method first
function temporaire($texte)
{
$this->SetFont('Arial','B',35);
$this->SetTextColor(242,242,242);
$this->Rotate(45,55,190);
$this->Text(55,190,$texte);
$this->Rotate(0);
$this->SetTextColor(0,0,0,0.1);
}
}?>
PHP-Generator.php avec le code postal
<?php
include ('../../../../wp-load.php');
global $wpdb;
$order_id=$_POST['order_id'];
$selected_val=$_POST['selected_val'];
$dreason=$_POST['dreason'];
$product_name_semail=$_POST['product_name_semail'];
$order_price_semail=$_POST['order_price_semail'];
$species_name_semail=$_POST['species_name_semail'];
$finish_name_semail=$_POST['finish_name_semail'];
$order_date_semail=$_POST['order_date_semail'];
$table_name=$wpdb->prefix.'matched_order_details';
$order_table=$wpdb->prefix.'buyer_order_request';
$matched_table=$wpdb->prefix.'matched_order_details';
$query="SELECT * FROM $matched_table INNER JOIN $order_table ON $matched_table.id =$order_id";
$results=$wpdb->get_results($query);
$match_buyer_id=$results[0]->buyer_id;
$match_supplier_id=$results[0]->order_supplier_id;
$match_supplier_id;
$supplier_data=get_userdata($match_supplier_id);
$buyer_data=get_userdata($match_buyer_id);
$buyer_mail=$buyer_data->user_email;
$buyer_name=$buyer_data->user_login;
$supplier_mail=$supplier_data->user_email;
require('invoice.php');
$pdf = new PDF_Invoice('P', 'mm', 'A4');
$pdf->AddPage();
$reportName="Product Order Invoice";
$pdf->SetFont('Arial', '', 17);
$pdf->Cell(0, 15, $reportName, 0, 1, 'C');
$pdf->addSociete("MaSociete",
"MonAdresse\n" .
"75000 PARIS\n".
"R.C.S. PARIS B 000 000 007\n" .
"Capital : 18000 " . EURO);
$pdf->temporaire("Flatrock Technology Ecommerce");
$today = date('d/m/Y');
$pdf->SetFont('Arial','',12);
$pdf->addClientAdresse("MaSociete",
"MonAdresse\n" .
"75000 PARIS\n".
"R.C.S. PARIS B 000 000 007\n" .
"Capital : 18000 " . EURO);
$pdf->addReglement($buyer_name);
$pdf->addEcheance($today);
$pdf->addNumTVA("05/11/2004");
//$pdf->addReference("Devis ... du ....");
$cols=array("S.NO" => 9,
"PRODUCT NAME"=> 46,
"SPECIES NAME"=> 42,
"FINISH NAME"=> 38,
"ORDER DATE" => 30,
"PRICE"=> 25);
$pdf->addCols($cols);
$cols=array("S.NO" => "L",
"PRODUCT NAME"=> "C",
"SPECIES NAME"=> "C",
"FINISH NAME"=> "C",
"ORDER DATE" => "C",
"PRICE"=> "C");
$pdf->addLineFormat($cols);
$y = 109;
$line = array("S.NO" => "1",
"PRODUCT NAME" => $product_name_semail,
"SPECIES NAME" => $species_name_semail,
"FINISH NAME" => $finish_name_semail,
"ORDER DATE" => $order_date_semail,
"PRICE" =>$order_price_semail);
$size = $pdf->addLine($y, $line);
$y += $size + 2;
$pdf->SetXY(10, 247);
$pdf->Cell(165,8,'Total Price:',1,0,'R');
$pdf->Cell(25,8,$order_price_semail,1,1,'C');
$tot_prods = array(array ("px_unit" => 600, "qte" => 1, "tva" => 1),
array ("px_unit" => 10, "qte" => 1, "tva" => 1));
$tab_tva = array("1" => 19.6,
"2" => 5.5);
$params = array("RemiseGlobale" => 1,
"remise_tva" => 1, // {la remise s'applique sur ce code TVA}
"remise" => 0, // {montant de la remise}
"remise_percent" => 10, // {pourcentage de remise sur ce montant de TVA}
"FraisPort" => 1,
"portTTC" => 10, // montant des frais de ports TTC
// par defaut la TVA = 19.6 %
"portHT" => 0, // montant des frais de ports HT
"portTVA" => 19.6, // valeur de la TVA a appliquer sur le montant HT
"AccompteExige" => 1,
"accompte" => 0, // montant de l'acompte (TTC)
"accompte_percent" => 15, // pourcentage d'acompte (TTC)
"Remarque" => "Avec un acompte, svp...");
$filename="/home-path/plugins/plugin-name/folder-name/order-".$order_id.".pdf";
$opt=$pdf->Output($filename,'F');
$to = $buyer_mail;
$from = $supplier_mail;
$headers = "From: " . strip_tags($from) . "\r\n";
$headers.= "CC: [email protected]\r\n";
$headers.= "BCC: $from\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<table width="100%"; rules="all" style="border:1px solid #3A5896; padding-left:20px">';
$message .= '<span style="font-size: 14px;margin-bottom: 5px;padding: 7px 10px; background:#999999; color:#ffffff; float:left; margin-right:5px;">Order Confirmation </span>';
$message .= "<tr><td><h1>Dear $buyer_data->user_login,</h1><br /><br /><tr><td>We Are Heartly Thanks To You. You can Choose Me For Your Order.<br>Your Order Details Here</td></tr>";
$message .= "<tr><td style='font-size:14px;'>Product Details<br /><br /></td><tr><td style='width:20%'>Product Name: $product_name_semail</td></tr>";
$message.='<tr><td style="width:20%">Category: '. $species_name_semail.'</td></td>';
$message.='<tr><td style="width:20%">Size: '.$finish_name_semail.'</td>';
$message.="<tr><td style='width:20%'>Price: $order_price_semail</td>";
$message.="<tr><td style='width:20%'>Shipping Date: $order_date_semail</td>";
$attachments = array( WP_PLUGIN_DIR . '/plugin-name/folder-name/order-'.$order_id.'.pdf');
$message .= "<tr><td style='font-size:12px'><br><I>Thanks & Regards<br>$supplier_data->user_login</I></td><br><br></tr>";
$message .= "</table>";
$message .= "</body></html>";
wp_mail($to, 'test mail ', $message, $headers,$attachments);
?>
Ceci est plus une réponse à une question. –
Alors, quel est le problème exact que vous rencontrez? – codedge
je suis résolu ce problème et mettre mon code à un autre codeur qui phase ce type de problème –