src/Service/XmlGeneratorService.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\Cabecera;
  4. use App\Utils\Xml;
  5. use Symfony\Component\Filesystem\Filesystem;
  6. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  7. class XmlGeneratorService
  8. {
  9.     private $params;
  10.     private $filesystem;
  11.     private $xml;
  12.     public function __construct(ParameterBagInterface $paramsFilesystem $filesystemXml $xml)
  13.     {
  14.         $this->params $params;
  15.         $this->filesystem $filesystem;
  16.         $this->xml $xml;
  17.     }
  18.     public function generatorXML(Cabecera $cabecera)
  19.     {
  20.         // Construye el nombre del archivo basado en la lógica proporcionada
  21.         $datetime['fecha'] = $cabecera->getUpdatedAt()->format('dm');
  22.         $datetime['hora'] = $cabecera->getUpdatedAt()->format('His');
  23.         $filename substr($cabecera->getSucursal(), 03) . $datetime['fecha'] . $datetime['hora'] . '-' $cabecera->getId();
  24.         $filenameext $filename '.xml';
  25.         $numlineas 2;
  26.         foreach ($cabecera->getLineas() as $key => $linea) {
  27.             if ($linea->getParent() == null) {
  28.                 $numlineas++;
  29.             }
  30.         }
  31.         $xmlContent $this->xml->generarXml($cabecera$datetime$numlineas$filename);
  32.         // Define las rutas donde se guardarán los archivos
  33.         $path1 $this->params->get('kernel.project_dir') . '/public/uploads/' $filenameext;
  34.         $path2 $this->params->get('kernel.project_dir') . '/public/respaldoXML/' $filenameext;
  35.         // Usa Filesystem para guardar los archivos
  36.         $this->filesystem->dumpFile($path1$xmlContent);
  37.         $this->filesystem->dumpFile($path2$xmlContent);
  38.         return $filename;
  39.     }
  40. }