|
@@ -147,7 +147,7 @@ class pdf_standard extends ModelePDFStock
|
|
|
if (!$this->emetteur->country_code) $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default if not defined
|
|
|
|
|
|
// Define position of columns
|
|
|
- $this->wref = 15;
|
|
|
+ $this->wref = 35;
|
|
|
$this->posxdesc = $this->marge_gauche + 1;
|
|
|
$this->posxlabel = $this->posxdesc + $this->wref;
|
|
|
$this->posxtva = 80;
|
|
@@ -189,7 +189,7 @@ class pdf_standard extends ModelePDFStock
|
|
|
* @param int $hideref Do not show ref
|
|
|
* @return int 1 if OK, <=0 if KO
|
|
|
*/
|
|
|
- public function write_file($object, $outputlangs, $srctemplatepath, $hidedetails = 0, $hidedesc = 0, $hideref = 0)
|
|
|
+ public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0)
|
|
|
{
|
|
|
// phpcs:enable
|
|
|
global $user, $langs, $conf, $mysoc, $db, $hookmanager;
|
|
@@ -284,29 +284,29 @@ class pdf_standard extends ModelePDFStock
|
|
|
$pdf->AddPage();
|
|
|
if (!empty($tplidx)) $pdf->useTemplate($tplidx);
|
|
|
$pagenb++;
|
|
|
- $this->_pagehead($pdf, $object, 1, $outputlangs);
|
|
|
+ $top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs);
|
|
|
$pdf->SetFont('', '', $default_font_size - 1);
|
|
|
$pdf->MultiCell(0, 3, ''); // Set interline to 3
|
|
|
$pdf->SetTextColor(0, 0, 0);
|
|
|
|
|
|
- $tab_top = 42;
|
|
|
- $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10);
|
|
|
+ $tab_top = 80 + $top_shift;
|
|
|
+ $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
|
|
+
|
|
|
$tab_height = 130;
|
|
|
- $tab_height_newpage = 150;
|
|
|
+
|
|
|
|
|
|
/* ************************************************************************** */
|
|
|
/* */
|
|
|
- /* Affichage de la liste des produits de l'entrepot */
|
|
|
+ /* Show list of product in warehouse */
|
|
|
/* */
|
|
|
/* ************************************************************************** */
|
|
|
|
|
|
- $nexY += 5;
|
|
|
- $nexY = $pdf->GetY();
|
|
|
- $nexY += 10;
|
|
|
-
|
|
|
$totalunit = 0;
|
|
|
$totalvalue = $totalvaluesell = 0;
|
|
|
|
|
|
+ $sortfield = 'p.ref';
|
|
|
+ $sortorder = 'ASC';
|
|
|
+
|
|
|
$sql = "SELECT p.rowid as rowid, p.ref, p.label as produit, p.tobatch, p.fk_product_type as type, p.pmp as ppmp, p.price, p.price_ttc, p.entity,";
|
|
|
$sql .= " ps.reel as value";
|
|
|
$sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps, ".MAIN_DB_PREFIX."product as p";
|
|
@@ -322,8 +322,14 @@ class pdf_standard extends ModelePDFStock
|
|
|
$num = $db->num_rows($resql);
|
|
|
$i = 0;
|
|
|
$nblines = $num;
|
|
|
+
|
|
|
+ $this->tabTitleHeight = 0;
|
|
|
+ $nexY = $tab_top + $this->tabTitleHeight;
|
|
|
+
|
|
|
for ($i = 0; $i < $nblines; $i++)
|
|
|
{
|
|
|
+ $curY = $nexY;
|
|
|
+
|
|
|
$objp = $db->fetch_object($resql);
|
|
|
|
|
|
// Multilangs
|
|
@@ -343,7 +349,6 @@ class pdf_standard extends ModelePDFStock
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $curY = $nexY;
|
|
|
$pdf->SetFont('', '', $default_font_size - 1); // Into loop to work with multipage
|
|
|
$pdf->SetTextColor(0, 0, 0);
|
|
|
|
|
@@ -418,7 +423,7 @@ class pdf_standard extends ModelePDFStock
|
|
|
|
|
|
// Label
|
|
|
$pdf->SetXY($this->posxlabel + 0.8, $curY);
|
|
|
- $pdf->MultiCell($this->posxqty - $this->posxlabel - 0.8, 3, $objp->produit, 0, 'L');
|
|
|
+ $pdf->MultiCell($this->posxqty - $this->posxlabel - 0.8, 3, dol_trunc($objp->produit, 24), 0, 'L');
|
|
|
|
|
|
// Quantity
|
|
|
$valtoshow = price2num($objp->value, 'MS');
|
|
@@ -427,6 +432,7 @@ class pdf_standard extends ModelePDFStock
|
|
|
$pdf->SetXY($this->posxqty, $curY);
|
|
|
$pdf->MultiCell($this->posxup - $this->posxqty - 0.8, 3, $towrite, 0, 'R');
|
|
|
|
|
|
+ // AWP
|
|
|
$totalunit += $objp->value;
|
|
|
|
|
|
$pdf->SetXY($this->posxup, $curY);
|
|
@@ -498,45 +504,50 @@ class pdf_standard extends ModelePDFStock
|
|
|
$db->free($resql);
|
|
|
|
|
|
/**
|
|
|
- * footer table
|
|
|
+ * Footer table
|
|
|
*/
|
|
|
$nexY = $pdf->GetY();
|
|
|
$nexY += 2;
|
|
|
$curY = $nexY;
|
|
|
|
|
|
- $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(220, 26, 26)));
|
|
|
- $pdf->line($this->marge_gauche, $curY - 1, $this->page_largeur - $this->marge_droite, $curY - 1);
|
|
|
- $pdf->SetLineStyle(array('dash'=>0));
|
|
|
+ if (! $object->specimen) {
|
|
|
+ $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(200, 200, 200)));
|
|
|
+ $pdf->line($this->marge_gauche, $curY - 1, $this->page_largeur - $this->marge_droite, $curY - 1);
|
|
|
+ $pdf->SetLineStyle(array('dash'=>0));
|
|
|
|
|
|
- $pdf->SetFont('', 'B', $default_font_size - 1);
|
|
|
- $pdf->SetTextColor(0, 0, 120);
|
|
|
+ $pdf->SetFont('', 'B', $default_font_size - 1);
|
|
|
+ $pdf->SetTextColor(0, 0, 120);
|
|
|
|
|
|
- // Ref.
|
|
|
- $pdf->SetXY($this->posxdesc, $curY);
|
|
|
- $pdf->MultiCell($this->wref, 3, $langs->trans("Total"), 0, 'L');
|
|
|
+ // Ref.
|
|
|
+ $pdf->SetXY($this->posxdesc, $curY);
|
|
|
+ $pdf->MultiCell($this->wref, 3, $langs->trans("Total"), 0, 'L');
|
|
|
|
|
|
- // Quantity
|
|
|
- $valtoshow = price2num($totalunit, 'MS');
|
|
|
- $towrite = empty($valtoshow) ? '0' : $valtoshow;
|
|
|
+ // Quantity
|
|
|
+ $valtoshow = price2num($totalunit, 'MS');
|
|
|
+ $towrite = empty($valtoshow) ? '0' : $valtoshow;
|
|
|
|
|
|
- $pdf->SetXY($this->posxqty, $curY);
|
|
|
- $pdf->MultiCell($this->posxup - $this->posxqty - 0.8, 3, $towrite, 0, 'R');
|
|
|
+ $pdf->SetXY($this->posxqty, $curY);
|
|
|
+ $pdf->MultiCell($this->posxup - $this->posxqty - 0.8, 3, $towrite, 0, 'R');
|
|
|
|
|
|
- // Total PMP
|
|
|
- $pdf->SetXY($this->posxunit, $curY);
|
|
|
- $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 3, price(price2num($totalvalue, 'MT'), 0, $outputlangs), 0, 'R');
|
|
|
+ // Total PMP
|
|
|
+ $pdf->SetXY($this->posxunit, $curY);
|
|
|
+ $pdf->MultiCell($this->posxdiscount - $this->posxunit - 0.8, 3, price(price2num($totalvalue, 'MT'), 0, $outputlangs), 0, 'R');
|
|
|
|
|
|
- // Price sell min
|
|
|
- if (empty($conf->global->PRODUIT_MULTIPRICES))
|
|
|
- {
|
|
|
- // Total sell min
|
|
|
- $pdf->SetXY($this->postotalht, $curY);
|
|
|
- $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 3, price(price2num($totalvaluesell, 'MT'), 0, $outputlangs), 0, 'R', 0);
|
|
|
+ // Price sell min
|
|
|
+ if (empty($conf->global->PRODUIT_MULTIPRICES))
|
|
|
+ {
|
|
|
+ // Total sell min
|
|
|
+ $pdf->SetXY($this->postotalht, $curY);
|
|
|
+ $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 3, price(price2num($totalvaluesell, 'MT'), 0, $outputlangs), 0, 'R', 0);
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
dol_print_error($db);
|
|
|
}
|
|
|
|
|
|
+ // Displays notes
|
|
|
+ $notetoshow = empty($object->note_public) ? '' : $object->note_public;
|
|
|
+
|
|
|
if ($notetoshow)
|
|
|
{
|
|
|
$substitutionarray = pdf_getSubstitutionArray($outputlangs, null, $object);
|
|
@@ -565,125 +576,7 @@ class pdf_standard extends ModelePDFStock
|
|
|
$curY = $tab_top + 7;
|
|
|
$nexY = $tab_top + 7;
|
|
|
|
|
|
- // Loop on each lines
|
|
|
- /*
|
|
|
- for ($i = 0 ; $i < $nblines ; $i++)
|
|
|
- {
|
|
|
- $curY = $nexY;
|
|
|
- $pdf->SetFont('','', $default_font_size - 1); // Into loop to work with multipage
|
|
|
- $pdf->SetTextColor(0,0,0);
|
|
|
-
|
|
|
- $pdf->setTopMargin($tab_top_newpage);
|
|
|
- $pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot); // The only function to edit the bottom margin of current page to set it.
|
|
|
- $pageposbefore=$pdf->getPage();
|
|
|
-
|
|
|
- // Description of stock line
|
|
|
- $curX = $this->posxdesc-1;
|
|
|
-
|
|
|
- $showpricebeforepagebreak=1;
|
|
|
-
|
|
|
- $pdf->startTransaction();
|
|
|
- pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,3,$curX,$curY,$hideref,$hidedesc);
|
|
|
- $pageposafter=$pdf->getPage();
|
|
|
- if ($pageposafter > $pageposbefore) // There is a pagebreak
|
|
|
- {
|
|
|
- $pdf->rollbackTransaction(true);
|
|
|
- $pageposafter=$pageposbefore;
|
|
|
- //print $pageposafter.'-'.$pageposbefore;exit;
|
|
|
- $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
|
|
- pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc);
|
|
|
- $pageposafter=$pdf->getPage();
|
|
|
- $posyafter=$pdf->GetY();
|
|
|
- if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text
|
|
|
- {
|
|
|
- if ($i == ($nblines-1)) // No more lines, and no space left to show total, so we create a new page
|
|
|
- {
|
|
|
- $pdf->AddPage('','',true);
|
|
|
- if (! empty($tplidx)) $pdf->useTemplate($tplidx);
|
|
|
- if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
|
|
|
- $pdf->setPage($pageposafter+1);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // We found a page break
|
|
|
- $showpricebeforepagebreak=0;
|
|
|
- }
|
|
|
- }
|
|
|
- else // No pagebreak
|
|
|
- {
|
|
|
- $pdf->commitTransaction();
|
|
|
- }
|
|
|
-
|
|
|
- $nexY = $pdf->GetY();
|
|
|
- $pageposafter=$pdf->getPage();
|
|
|
- $pdf->setPage($pageposbefore);
|
|
|
- $pdf->setTopMargin($this->marge_haute);
|
|
|
- $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it.
|
|
|
-
|
|
|
- // We suppose that a too long description is moved completely on next page
|
|
|
- if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) {
|
|
|
- $pdf->setPage($pageposafter); $curY = $tab_top_newpage;
|
|
|
- }
|
|
|
-
|
|
|
- $pdf->SetFont('','', $default_font_size - 1); // On repositionne la police par defaut
|
|
|
-
|
|
|
- // Quantity
|
|
|
- $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails);
|
|
|
- $pdf->SetXY($this->posxqty, $curY);
|
|
|
- // Enough for 6 chars
|
|
|
- $pdf->MultiCell($this->posxdiscount-$this->posxqty-0.8, 4, $qty, 0, 'R');
|
|
|
-
|
|
|
- // Add line
|
|
|
- if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblines - 1))
|
|
|
- {
|
|
|
- $pdf->setPage($pageposafter);
|
|
|
- $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
|
|
- //$pdf->SetDrawColor(190,190,200);
|
|
|
- $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
|
|
|
- $pdf->SetLineStyle(array('dash'=>0));
|
|
|
- }
|
|
|
-
|
|
|
- $nexY+=2; // Add space between lines
|
|
|
-
|
|
|
- // Detect if some page were added automatically and output _tableau for past pages
|
|
|
- while ($pagenb < $pageposafter)
|
|
|
- {
|
|
|
- $pdf->setPage($pagenb);
|
|
|
- if ($pagenb == 1)
|
|
|
- {
|
|
|
- $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
|
|
|
- }
|
|
|
- $this->_pagefoot($pdf,$object,$outputlangs,1);
|
|
|
- $pagenb++;
|
|
|
- $pdf->setPage($pagenb);
|
|
|
- $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it.
|
|
|
- if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
|
|
|
- }
|
|
|
- if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak)
|
|
|
- {
|
|
|
- if ($pagenb == 1)
|
|
|
- {
|
|
|
- $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
|
|
|
- }
|
|
|
- $this->_pagefoot($pdf,$object,$outputlangs,1);
|
|
|
- // New page
|
|
|
- $pdf->AddPage();
|
|
|
- if (! empty($tplidx)) $pdf->useTemplate($tplidx);
|
|
|
- $pagenb++;
|
|
|
- if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
|
|
|
- }
|
|
|
- }
|
|
|
- */
|
|
|
- $tab_top = $tab_top_newpage + 21;
|
|
|
+ $tab_top = $tab_top_newpage + 25 + $top_shift;
|
|
|
|
|
|
// Show square
|
|
|
if ($pagenb == 1)
|
|
@@ -783,8 +676,8 @@ class pdf_standard extends ModelePDFStock
|
|
|
// Output Rect
|
|
|
//$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect takes a length in 3rd parameter and 4th parameter
|
|
|
|
|
|
- $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(220, 26, 26)));
|
|
|
- $pdf->SetDrawColor(220, 26, 26);
|
|
|
+ $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(200, 200, 200)));
|
|
|
+ $pdf->SetDrawColor(200, 200, 200);
|
|
|
$pdf->line($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_droite, $tab_top);
|
|
|
$pdf->SetLineStyle(array('dash'=>0));
|
|
|
$pdf->SetDrawColor(128, 128, 128);
|
|
@@ -800,47 +693,47 @@ class pdf_standard extends ModelePDFStock
|
|
|
//$pdf->line($this->posxlabel-1, $tab_top, $this->posxlabel-1, $tab_top + $tab_height);
|
|
|
if (empty($hidetop))
|
|
|
{
|
|
|
- $pdf->SetXY($this->posxlabel - 3, $tab_top + 1);
|
|
|
- $pdf->MultiCell($this->posxqty - $this->posxlabel + 3, 2, $outputlangs->transnoentities("Label"), '', 'C');
|
|
|
+ $pdf->SetXY($this->posxlabel - 1, $tab_top + 1);
|
|
|
+ $pdf->MultiCell($this->posxqty - $this->posxlabel - 1, 2, $outputlangs->transnoentities("Label"), '', 'L');
|
|
|
}
|
|
|
|
|
|
//$pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height);
|
|
|
if (empty($hidetop))
|
|
|
{
|
|
|
$pdf->SetXY($this->posxqty - 1, $tab_top + 1);
|
|
|
- $pdf->MultiCell($this->posxup - $this->posxqty - 1, 2, $outputlangs->transnoentities("Units"), '', 'C');
|
|
|
+ $pdf->MultiCell($this->posxup - $this->posxqty - 1, 2, $outputlangs->transnoentities("Units"), '', 'R');
|
|
|
}
|
|
|
|
|
|
//$pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height);
|
|
|
if (empty($hidetop))
|
|
|
{
|
|
|
$pdf->SetXY($this->posxup - 1, $tab_top + 1);
|
|
|
- $pdf->MultiCell($this->posxunit - $this->posxup - 1, 2, $outputlangs->transnoentities("AverageUnitPricePMPShort"), '', 'C');
|
|
|
+ $pdf->MultiCell($this->posxunit - $this->posxup - 1, 2, $outputlangs->transnoentities("AverageUnitPricePMPShort"), '', 'R');
|
|
|
}
|
|
|
|
|
|
//$pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height);
|
|
|
if (empty($hidetop))
|
|
|
{
|
|
|
$pdf->SetXY($this->posxunit - 1, $tab_top + 1);
|
|
|
- $pdf->MultiCell($this->posxdiscount - $this->posxunit - 1, 2, $outputlangs->transnoentities("EstimatedStockValueShort"), '', 'C');
|
|
|
+ $pdf->MultiCell($this->posxdiscount - $this->posxunit - 1, 2, $outputlangs->transnoentities("EstimatedStockValueShort"), '', 'R');
|
|
|
}
|
|
|
|
|
|
//$pdf->line($this->posxdiscount-1, $tab_top, $this->posxdiscount-1, $tab_top + $tab_height);
|
|
|
if (empty($hidetop))
|
|
|
{
|
|
|
$pdf->SetXY($this->posxdiscount - 1, $tab_top + 1);
|
|
|
- $pdf->MultiCell($this->postotalht - $this->posxdiscount + 1, 2, $outputlangs->transnoentities("SellPriceMin"), '', 'C');
|
|
|
+ $pdf->MultiCell($this->postotalht - $this->posxdiscount + 1, 2, $outputlangs->transnoentities("SellPriceMin"), '', 'R');
|
|
|
}
|
|
|
|
|
|
//$pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height);
|
|
|
if (empty($hidetop))
|
|
|
{
|
|
|
$pdf->SetXY($this->postotalht - 1, $tab_top + 1);
|
|
|
- $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 2, $outputlangs->transnoentities("EstimatedStockValueSellShort"), '', 'C');
|
|
|
+ $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->postotalht, 2, $outputlangs->transnoentities("EstimatedStockValueSellShort"), '', 'R');
|
|
|
}
|
|
|
|
|
|
- $pdf->SetDrawColor(220, 26, 26);
|
|
|
- $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(220, 26, 26)));
|
|
|
+ $pdf->SetDrawColor(200, 200, 200);
|
|
|
+ $pdf->SetLineStyle(array('dash'=>'0', 'color'=>array(200, 200, 200)));
|
|
|
$pdf->line($this->marge_gauche, $tab_top + 11, $this->page_largeur - $this->marge_droite, $tab_top + 11);
|
|
|
$pdf->SetLineStyle(array('dash'=>0));
|
|
|
}
|
|
@@ -854,7 +747,7 @@ class pdf_standard extends ModelePDFStock
|
|
|
* @param int $showaddress 0=no, 1=yes
|
|
|
* @param Translate $outputlangs Object lang for output
|
|
|
* @param string $titlekey Translation key to show as title of document
|
|
|
- * @return void
|
|
|
+ * @return int Return topshift value
|
|
|
*/
|
|
|
protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "")
|
|
|
{
|
|
@@ -927,21 +820,20 @@ class pdf_standard extends ModelePDFStock
|
|
|
$pdf->SetXY($posx - 50, $posy);
|
|
|
$pdf->MultiCell(150, 3, $object->lieu, '', 'R');
|
|
|
|
|
|
-
|
|
|
- // Parent entrepot
|
|
|
$posy += 4;
|
|
|
$pdf->SetXY($posx, $posy);
|
|
|
$pdf->SetTextColor(0, 0, 60);
|
|
|
- $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ParentWarehouse").' :', '', 'R');
|
|
|
|
|
|
- $posy += 4;
|
|
|
- $pdf->SetXY($posx - 50, $posy);
|
|
|
+ // Parent entrepot
|
|
|
$e = new Entrepot($db);
|
|
|
- if (!empty($object->fk_parent) && $e->fetch($object->fk_parent) > 0)
|
|
|
- {
|
|
|
+ $hasparent = (!empty($object->fk_parent) && $e->fetch($object->fk_parent) > 0);
|
|
|
+
|
|
|
+ if ($hasparent) {
|
|
|
+ $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ParentWarehouse").' :', '', 'R');
|
|
|
+
|
|
|
+ $posy += 4;
|
|
|
+ $pdf->SetXY($posx - 50, $posy);
|
|
|
$pdf->MultiCell(150, 3, $e->label, '', 'R');
|
|
|
- } else {
|
|
|
- $pdf->MultiCell(150, 3, $outputlangs->transnoentities("None"), '', 'R');
|
|
|
}
|
|
|
|
|
|
// Description
|
|
@@ -991,78 +883,20 @@ class pdf_standard extends ModelePDFStock
|
|
|
$pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, '<b>'.$outputlangs->transnoentities("LastMovement").' : </b>'.$toWrite, 0, 1);
|
|
|
$nexY = $pdf->GetY();
|
|
|
|
|
|
-
|
|
|
- /*if ($object->ref_client)
|
|
|
- {
|
|
|
- $posy+=5;
|
|
|
- $pdf->SetXY($posx,$posy);
|
|
|
- $pdf->SetTextColor(0,0,60);
|
|
|
- $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
|
|
|
- }*/
|
|
|
-
|
|
|
- /*$posy+=4;
|
|
|
- $pdf->SetXY($posx,$posy);
|
|
|
- $pdf->SetTextColor(0,0,60);
|
|
|
- $pdf->MultiCell(100, 3, $outputlangs->transnoentities("OrderDate")." : " . dol_print_date($object->date,"%d %b %Y",false,$outputlangs,true), '', 'R');
|
|
|
- */
|
|
|
-
|
|
|
- // Get contact
|
|
|
- /*
|
|
|
- if (!empty($conf->global->DOC_SHOW_FIRST_SALES_REP))
|
|
|
- {
|
|
|
- $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
|
|
|
- if (count($arrayidcontact) > 0)
|
|
|
- {
|
|
|
- $usertmp=new User($this->db);
|
|
|
- $usertmp->fetch($arrayidcontact[0]);
|
|
|
- $posy+=4;
|
|
|
- $pdf->SetXY($posx,$posy);
|
|
|
- $pdf->SetTextColor(0,0,60);
|
|
|
- $pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
$posy += 2;
|
|
|
|
|
|
+ $top_shift = 0;
|
|
|
// Show list of linked objects
|
|
|
+ $current_y = $pdf->getY();
|
|
|
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size);
|
|
|
-
|
|
|
- if ($showaddress)
|
|
|
+ if ($current_y < $pdf->getY())
|
|
|
{
|
|
|
- /*
|
|
|
- // Sender properties
|
|
|
- $carac_emetteur = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty);
|
|
|
-
|
|
|
- // Show sender
|
|
|
- $posy=42;
|
|
|
- $posx=$this->marge_gauche;
|
|
|
- if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80;
|
|
|
- $hautcadre=40;
|
|
|
-
|
|
|
- // Show sender frame
|
|
|
- $pdf->SetTextColor(0,0,0);
|
|
|
- $pdf->SetFont('','', $default_font_size - 2);
|
|
|
- $pdf->SetXY($posx,$posy-5);
|
|
|
- $pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L');
|
|
|
- $pdf->SetXY($posx,$posy);
|
|
|
- $pdf->SetFillColor(230,230,230);
|
|
|
- $pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1);
|
|
|
- $pdf->SetTextColor(0,0,60);
|
|
|
-
|
|
|
- // Show sender name
|
|
|
- $pdf->SetXY($posx+2,$posy+3);
|
|
|
- $pdf->SetFont('','B', $default_font_size);
|
|
|
- $pdf->MultiCell(80, 4, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
|
|
|
- $posy=$pdf->getY();
|
|
|
-
|
|
|
- // Show sender information
|
|
|
- $pdf->SetXY($posx+2,$posy);
|
|
|
- $pdf->SetFont('','', $default_font_size - 1);
|
|
|
- $pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L');
|
|
|
- */
|
|
|
+ $top_shift = $pdf->getY() - $current_y;
|
|
|
}
|
|
|
|
|
|
$pdf->SetTextColor(0, 0, 0);
|
|
|
+
|
|
|
+ return $top_shift;
|
|
|
}
|
|
|
|
|
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|