Agregado PdfHelper para centralizar lógica de generación de pdfs

This commit is contained in:
Alejandro Tasistro 2025-05-12 19:10:16 -03:00
parent b8d1520c54
commit 250bfd8a33
2 changed files with 33 additions and 24 deletions

View file

@ -3,6 +3,7 @@
namespace App;
use App\Helpers\CsvHelper;
use App\Helpers\PdfHelper;
use App\Helpers\TransporteHelper;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
@ -105,17 +106,7 @@ class GrupoDeCompra extends Model
public function exportarPedidosAPdf()
{
$subpedidos = $this->pedidosAprobados();
//generar pdf
$mpdf = new Mpdf();
foreach ($subpedidos as $subpedido) {
$tabla = $subpedido->generarHTML();
// agregar la tabla al pdf en una nueva página
$mpdf->WriteHTML($tabla);
$mpdf->AddPage();
}
$filename = $this->nombre . '.pdf';
// imprimir el pdf
$mpdf->Output($filename, "D");
PdfHelper::exportarPedidos($this->nombre . '.pdf', $subpedidos);
}
function pedidoParaPdf(): array
@ -147,19 +138,8 @@ class GrupoDeCompra extends Model
public static function exportarPedidosBarrialesAPdf()
{
$barrios = GrupoDeCompra::barriosMenosPrueba()
->get();
$mpdf = new Mpdf();
foreach ($barrios as $barrio) {
$tabla = $barrio->generarHTML();
$mpdf->WriteHTML($tabla);
$mpdf->AddPage();
}
$filename = 'pedidos_por_barrio.pdf';
// imprimir el pdf
$mpdf->Output($filename, "D");
$barrios = GrupoDeCompra::barriosMenosPrueba()->get();
PdfHelper::exportarPedidos('pedidos_por_barrio.pdf', $barrios);
}
static function filaVacia(string $product, int $columns): array

29
app/Helpers/PdfHelper.php Normal file
View file

@ -0,0 +1,29 @@
<?php
namespace App\Helpers;
use Mpdf\Mpdf;
use Mpdf\MpdfException;
class PdfHelper
{
/**
* Requiere que el segundo argumento tenga definida la función generarHTML()
* para crear la tabla con los datos del pedido que se inserta en el pdf.
*
* @return void
* @throws MpdfException
*/
public static function exportarPedidos($filepath, $pedidos)
{
$mpdf = new Mpdf();
foreach ($pedidos as $pedido) {
$html = $pedido->generarHTML();
$mpdf->WriteHTML($html);
$mpdf->AddPage();
}
$mpdf->Output($filepath, 'D');
}
}