diff --git a/app/Service/Informe/Contabilidad/Resumen.php b/app/Service/Informe/Contabilidad/Resumen.php index f004b85..85f53f8 100644 --- a/app/Service/Informe/Contabilidad/Resumen.php +++ b/app/Service/Informe/Contabilidad/Resumen.php @@ -4,6 +4,8 @@ namespace App\Service\Informe\Contabilidad; use DateTimeInterface; use DateTimeImmutable; use DateInterval; + +use App\Service\Informe\Informe; use Incoviba\old\Proyecto\Proyecto; use Incoviba\old\Venta\Venta; use Incoviba\old\Venta\Pago; @@ -137,7 +139,7 @@ class Resumen $haber -= $pago->valor; } } - $output []= implode($this->separator, ['', $haber, $debe]); + $output []= implode($this->separator, ['', '', $haber, $debe]); return $output; } @@ -150,7 +152,12 @@ class Resumen $output = array_merge($output, $this->buildLibro($venta, $up_to), [''], ['']); } - $filename = "Contabilidad - Resumen - {$ventas[0]->proyecto()->descripcion} - {$up_to->format('Y-m-d')}.csv"; + $filename = "Contabilidad - Resumen - {$ventas[0]->proyecto()->descripcion} - {$up_to->format('Y-m-d')}.xlsx"; + $informe = new Informe(); + $informe->createSpreadsheet() + ->addArray($output) + ->send($filename); + return; header("Content-Type: text/csv; charset=utf-8"); header('Content-Disposition: attachment; filename="' . $filename . '"'); diff --git a/app/Service/Informe/Informe.php b/app/Service/Informe/Informe.php new file mode 100644 index 0000000..fac7ad3 --- /dev/null +++ b/app/Service/Informe/Informe.php @@ -0,0 +1,29 @@ +spreadsheet = new Spreadsheet(); + return $this; + } + public function addArray(array $data, string $start = 'A1') + { + $this->spreadsheet->getActiveSheet()->fromArray($data, null, $start); + return $this; + } + public function send(string $filename) + { + header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + header("Content-Disposition: attachment;filename='{$filename}'"); + header('Cache-Control: max-age=0'); + + $writer = IOFactory::createWriter($this->spreadsheet, 'Xlsx'); + $writer->save('php://output'); + } +}