FIX Bad adress of vendor in PDF for PDF of supplier payment

FIX dol_convertToWord() Bad conversion of number into a string
This commit is contained in:
Laurent Destailleur 2020-08-06 01:56:42 +02:00
parent 24a9a5ac2d
commit 1cf3422e05
3 changed files with 52 additions and 13 deletions

View File

@ -24,20 +24,20 @@
/**
* Function to return number in text.
* Function to return a number into a text.
* May use module NUMBERWORDS if found.
*
* @param float $num Number to convert
* @param float $num Number to convert (must be a numeric value, like reported by price2num())
* @param Translate $langs Language
* @param boolean $currency 0=number to translate | 1=currency to translate
* @param boolean $centimes 0=no centimes | 1=centimes to translate
* @param boolean $centimes 0=no cents/centimes | 1=there is cents/centimes to translate
* @return string|false Text of the number
*/
function dol_convertToWord($num, $langs, $currency = false, $centimes = false)
{
global $conf;
$num = str_replace(array(',', ' '), '', trim($num));
//$num = str_replace(array(',', ' '), '', trim($num)); This should be useless since $num MUST be a php numeric value
if (!$num) {
return false;
}
@ -56,6 +56,7 @@ function dol_convertToWord($num, $langs, $currency = false, $centimes = false)
$concatWords = $langs->getLabelFromNumber($num, $type);
return $concatWords;
} else {
$TNum = explode('.', $num);
$num = (int) $TNum[0];
$words = array();
@ -140,7 +141,11 @@ function dol_convertToWord($num, $langs, $currency = false, $centimes = false)
// If we need to write cents call again this function for cents
if (!empty($TNum[1])) {
if (!empty($currency)) $concatWords .= ' '.$langs->transnoentities('and');
$concatWords .= ' '.dol_convertToWord($TNum[1], $langs, $currency, true);
$decimalpart = $TNum[1];
$decimalpart = preg_replace('/0+$/', '', $decimalpart);
$concatWords .= ' '.dol_convertToWord($decimalpart, $langs, '', true);
if (!empty($currency)) $concatWords .= ' '.$langs->transnoentities('centimes');
}
return $concatWords;

View File

@ -223,7 +223,7 @@ class pdf_standard extends ModelePDFSuppliersPayments
}
}
$total = $object->montant;
$total = $object->amount;
// Definition of $dir and $file
if ($object->specimen)
@ -550,12 +550,12 @@ class pdf_standard extends ModelePDFSuppliersPayments
// Total payments
$pdf->SetXY($this->page_largeur - $this->marge_droite - 50, $posy);
$pdf->MultiCell(50, 4, price($object->montant), 0, 'R', 1);
$pdf->MultiCell(50, 4, price($object->amount), 0, 'R', 1);
$posy += 20;
// translate amount
$currency = $conf->currency;
$translateinletter = strtoupper(dol_convertToWord($object->montant, $outputlangs, $currency));
$translateinletter = strtoupper(dol_convertToWord($object->amount, $outputlangs, $currency));
$pdf->SetXY($this->marge_gauche + 50, $posy);
$pdf->MultiCell(90, 8, $translateinletter, 0, 'L', 1);
$posy += 8;
@ -565,10 +565,9 @@ class pdf_standard extends ModelePDFSuppliersPayments
$pdf->MultiCell(150, 4, $object->thirdparty->nom, 0, 'L', 1);
$pdf->SetXY($this->page_largeur - $this->marge_droite - 30, $posy);
$pdf->MultiCell(35, 4, str_pad(price($object->montant).' '.$currency, 18, '*', STR_PAD_LEFT), 0, 'R', 1);
$pdf->MultiCell(35, 4, str_pad(price($object->amount).' '.$currency, 18, '*', STR_PAD_LEFT), 0, 'R', 1);
$posy += 10;
// City
$pdf->SetXY($this->page_largeur - $this->marge_droite - 30, $posy);
$pdf->MultiCell(150, 4, $mysoc->town, 0, 'L', 1);
@ -608,9 +607,9 @@ class pdf_standard extends ModelePDFSuppliersPayments
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('', '', $default_font_size - 2);
$titre = strtoupper($mysoc->town).', le '.date("d").' '.$outputlangs->transnoentitiesnoconv(date("F")).' '.date("Y");
/*$titre = strtoupper($mysoc->town).' - '.dol_print_date(dol_now(), 'day', 'tzserver', $outputlangs);
$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3) - 60, $tab_top - 6);
$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);
$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);*/
$titre = $outputlangs->transnoentities("AmountInCurrency", $outputlangs->transnoentitiesnoconv("Currency".$currency));
$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top);
@ -774,7 +773,9 @@ class pdf_standard extends ModelePDFSuppliersPayments
$carac_client_name = pdfBuildThirdpartyName($thirdparty, $outputlangs);
$carac_client = pdf_build_address($outputlangs, $this->emetteur, $mysoc, ((!empty($object->contact)) ? $object->contact : null), $usecontact, 'target', $object);
$usecontact = 0;
$carac_client = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, ((!empty($object->contact)) ? $object->contact : null), $usecontact, 'target', $object);
// Show recipient
$widthrecbox = 90;

View File

@ -941,6 +941,39 @@ ShortThursday=T
ShortFriday=F
ShortSaturday=S
ShortSunday=S
one=one
two=two
three=three
four=four
five=five
six=six
seven=seven
eight=eight
nine=nine
ten=ten
eleven=eleven
twelve=twelve
thirteen=thirdteen
fourteen=fourteen
fifteen=fifteen
sixteen=sixteen
seventeen=seventeen
eighteen=eighteen
nineteen=nineteen
twenty=twenty
thirty=thirty
forty=forty
fifty=fifty
sixty=sixty
seventy=seventy
eighty=eighty
ninety=ninety
hundred=hundred
thousand=thousand
million=million
billion=billion
trillion=trillion
quadrillion=quadrillion
SelectMailModel=Select an email template
SetRef=Set ref
Select2ResultFoundUseArrows=Some results found. Use arrows to select.