Añadir extensión a PDFDocument.
Con los nuevos formularios de compras y ventas desde la versión 2022, varios plugins pueden añadir columnas y no hay problema en ello. Pero lo normal sería querer poder mostrar seguramente dichas columnas en el pdf al imprimir. Dichas columnas ahora mismo solo se podrían añadir con herencia sobre PDFDocument, por lo que otro plugin al realizar herencia sobre el mismo archivo estaría ocultando las otras columnas del otro plugin.
La actual forma de hacerlo ahora mismo con herencia sería este ejemplo:
use FacturaScripts\Core\Lib\PDF\PDFDocument as ParentPDF;
abstract class PDFDocument extends ParentPDF
{
protected function getLineHeaders(): array
{
$linesHeader = parent::getLineHeaders();
$this->setCustomLineHeader($linesHeader, 'long', ['type' => 'number', 'title' => $this->i18n->trans('long')], 2);
$this->setCustomLineHeader($linesHeader, 'width', ['type' => 'number', 'title' => $this->i18n->trans('width')], 3);
$this->setCustomLineHeader($linesHeader, 'height', ['type' => 'number', 'title' => $this->i18n->trans('height')], 4);
return $linesHeader;
}
function setCustomLineHeader(array &$linesHeader, string $colum, array $dataArray, int $position)
{
if ($position >= count($linesHeader)) {
$linesHeader[$colum] = $dataArray;
return;
}
if ($position < 0) {
$position = 0;
}
$newArray = array();
$cont = 0;
foreach ($linesHeader as $key => $value) {
if ($cont === $position) {
$newArray[$colum] = $dataArray;
}
$newArray[$key] = $value;
$cont++;
}
$linesHeader = $newArray;
}
}
Añadir un pipe('getLineHeaders', $lineHeaders) en la función getLineHeaders() del PDFDocument.php
De esta forma varios plugins pueden añadir líneas sin machacarse unos a otros.
Para entregar esta tarea haz un pull request con los cambios en
https://github.com/NeoRazorX/facturascripts
Puntos de soporte: +20
|
25-05-2022 10:29:46 prebac_1378 Ocurre algo similar con la función addModelPage del PDFExport.php:· https://github.com/NeoRazorX/facturascripts/blob/master/Core/Lib/Export/PDFExport.php#L139 |