<?php
namespace App\Controller;
use App\Entity\ParTipoSuministro;
use App\Entity\RFSolicitudSuministro;
use App\Entity\RFSolicitudTipoSuministro;
use App\Form\RFSolicitudSuministroType;
use App\Repository\RFSolicitudSuministroRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Dompdf\Dompdf;
#[Route('/rf/solicitud/suministro')]
class RFSolicitudSuministroController extends AbstractController {
private $responseHandler;
private $documentHandler;
private $mailerCore;
private $code = 0;
private $msj = "";
private $url = "";
private $html = "";
public function __construct(\App\Services\ResponseHandler $responseHandler, \App\Services\DocumentHandler $documentHandler, \App\Services\MailerCore $mailerCore) {
$this->responseHandler = $responseHandler;
$this->mailerCore = $mailerCore;
$this->documentHandler = $documentHandler;
}
#[Route('/', name: 'rf_solicitud_suministro', methods: ['GET'])]
public function index(RFSolicitudSuministroRepository $rFSolicitudSuministroRepository): Response {
if ($this->getUser()->getPersona()->getPerfilCargo()->getParProceso()->getId() != 6) {
$entities = $rFSolicitudSuministroRepository->getAll($this->getUser()->getPersona()->getId());
} else {
$entities = $rFSolicitudSuministroRepository->getAll();
}
return $this->render('rf_solicitud_suministro/index.html.twig', [
'entities' => $entities,
]);
}
#[Route('/new', name: 'rf_solicitud_suministro_new', methods: ['GET', 'POST'])]
public function new(Request $request, EntityManagerInterface $entityManager): Response {
// $rFSolicitudSuministro = new RFSolicitudSuministro();
//
// if ($solicitudSuministro->getEstado() != null ) {
// $this->code = 'info';
// $this->msj = "Imposible continuar, el registro ya se encuentra procesado .";
// return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
//
// }
$rFSolicitudTipoSuministro = new \App\Entity\RFSolicitudTipoSuministro();
$defaultData = ['message' => 'Solicitud Suministro'];
$form = $this->createFormBuilder($defaultData, ['method' => 'POST', 'action' => $this->generateUrl($request->attributes->get('_route'))])
->add('cantidadCajas', \Symfony\Component\Form\Extension\Core\Type\IntegerType::class, ['label' => 'Cantidad de Cajas', 'required' => false])
->add('cantidadCarpetas', \Symfony\Component\Form\Extension\Core\Type\IntegerType::class, ['label' => 'Cantidad de Carpetas', 'required' => false,])
->add('cantidadGanchos', \Symfony\Component\Form\Extension\Core\Type\IntegerType::class, ['label' => 'Cantidad de Ganchos', 'required' => false,])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$procObj = null;
$colaborador = $this->getUser()->getPersona();
if ($colaborador->getPerfilCargo()) {
//$cargo = $colaborador->getPerfilCargo()->getCargo()->getNombre();
$procObj = $colaborador->getPerfilCargo()->getParProceso();
}
$sedeObj = $this->getUser()->getPersona()->getSede() != NULL ? $this->getUser()->getPersona()->getSede() : NULL;
if ($procObj == null || $sedeObj == null) {
$this->code = 'danger';
$this->msj = "Imposible continuar, valide que su usuario tenga una sede y perfil de cargo asignado.";
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
// $this->addFlash('danger', "Imposible continuar, valide que su usuario tenga una sede y perfil de cargo asignado.");
// return $this->redirectToRoute($this->responseHandler->manejoRespuesta());
}
$rFSolicitudSuministro = new RFSolicitudSuministro();
$rFSolicitudSuministro->setUsuarioSolicita($this->getUser()->getPersona());
$rFSolicitudSuministro->setSede($sedeObj);
$rFSolicitudSuministro->setProceso($procObj);
$rFSolicitudSuministro->setCreateAt(new \DateTime('now'));
$rFSolicitudSuministro->setCreateUser($this->getUser()->getUsername());
$rFSolicitudSuministro->setUpdateAt(new \DateTime('now'));
$rFSolicitudSuministro->setUpdateUser($this->getUser()->getUsername());
$rFSolicitudSuministro->setEstado($entityManager->getRepository(\App\Entity\ParEstado::class)->find(33));
$entityManager->persist($rFSolicitudSuministro);
$entityManager->flush();
//return $this->redirectToRoute('rf_solicitud_tipo_suministro', ['id' => $rFSolicitudSuministro->getId()]);
//
// foreach ($solicitudSuministro->getSolicitudTipoSuministro() as $sts) {
// if ($sts->getTipoSuministro()->getId() == $rFSolicitudTipoSuministro->getTipoSuministro()->getId()) {
// $this->code = 'info';
// $this->msj = "Imposible continuar, la solicitud ya cuenta con este suministro .";
// return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
//
// }
// }
$cantCajas = $form->get('cantidadCajas')->getData();
$cantCarpetas = $form->get('cantidadCarpetas')->getData();
$cantGanchos = $form->get('cantidadGanchos')->getData();
$map = [
1 => $cantCajas,
2 => $cantCarpetas,
3 => $cantGanchos,
];
foreach ($map as $tipoId => $cantidad) {
if ($cantidad) {
$r = new RFSolicitudTipoSuministro();
$r->setTipoSuministro(
$entityManager->getRepository(ParTipoSuministro::class)->find($tipoId)
);
$r->setCantidad((float) $cantidad);
$rFSolicitudSuministro->addSolicitudTipoSuministro($r);
$entityManager->persist($r);
}
}
$entityManager->flush();
$this->mailerCore->solicitudSuministro('notificacion', [$rFSolicitudSuministro], $rFSolicitudSuministro->getSolicitudTipoSuministro());
$this->code = 'success';
$this->msj = "Registro cargado exitosamente";
// $this->url = $this->generateUrl('rf_solicitud_tipo_suministro', ['id' => $solicitudSuministro->getId()], 0);
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
return $this->render('rf_solicitud_suministro/new.html.twig', [
'form' => $form->createView()
]);
}
#[Route('/{id}/validar', name: 'rf_solicitud_suministro_validar', methods: ['GET', 'POST'])]
public function validar(Request $request, RFSolicitudSuministro $rFSolicitudSuministro, EntityManagerInterface $entityManager): Response {
if ($rFSolicitudSuministro->getEstado() == NULL || $rFSolicitudSuministro->getEstado()->getId() != 33) {
$this->code = 'info';
$this->msj = "Imposible continuar, el registro ya se encuentra procesado .";
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
$form = $this->createForm(RFSolicitudSuministroType::class, $rFSolicitudSuministro, ['method' => 'POST', 'action' => $this->generateUrl($request->attributes->get('_route'), ['id' => $rFSolicitudSuministro->getId()])]);
// $form->add('habilitaEntrega')
// ->add('fechaEntrega', \Symfony\Component\Form\Extension\Core\Type\DateType::class, ['widget' => 'single_text', 'required' => true, 'html5' => false, 'format' => 'yyyy-MM-dd', 'attr' => ['class' => 'fc-datepicker']])
;
$colaborador = $this->getUser()->getPersona();
$cargo = "N/A";
$proceso = "N/A";
$sede = $this->getUser()->getPersona()->getSede() != NULL ? $this->getUser()->getPersona()->getSede()->getNombre() : "N/A";
if ($colaborador->getPerfilCargo()) {
$cargo = $colaborador->getPerfilCargo()->getCargo()->getNombre();
$proceso = $colaborador->getPerfilCargo()->getParProceso()->getNombre();
}
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$rFSolicitudSuministro->setUpdateAt(new \DateTime('now'));
$rFSolicitudSuministro->setUpdateUser($this->getUser()->getUsername());
$estadoPendiente = $entityManager->getRepository(\App\Entity\ParEstado::class)->find(49);
$rFSolicitudSuministro->setEstado($entityManager->getRepository(\App\Entity\ParEstado::class)->find(4));
# suministros ID / LIMITE INVENTARIO
$mimiteSiministros = [
1 => 80, # CAJAS
2 => 2000, # CARPETAS
3 => 2000, # GANCHOS
];
$solicitarSuministros = []; # Enviar por correo lo que se necesita
foreach ($request->request as $key => $value) {
//var_dump($key);echo "<br>";
$text = explode("_", $key);
if (count($text) == 2 && $text[1] == "entrega") {
foreach ($rFSolicitudSuministro->getSolicitudTipoSuministro() as $sts) {
if ($sts->getId() == $text[0]) {
$sts->setHabilitaEntrega(true);
$entityManager->persist($sts);
$tipoId = $sts->getTipoSuministro()->getId(); # CAJAS , GANCHOS , CARPETAS
if(isset($mimiteSiministros[$tipoId])){ # VALIDAR LA CANTIDAD INVENTARIO
$limite = $mimiteSiministros[$tipoId];
$invRestante = $entityManager
->getRepository(\App\Entity\RFInventarioSuministro::class)
->cantidadDisponible($tipoId);
# dump($invRestante[0]['1']);
if(($invRestante[0]['1'] - $sts->getCantidad()) <= $limite){
$solicitarSuministros[] = [
'nombre' => $sts->getTipoSuministro()->getNombre(),
'disponible' => $invRestante[0]['1'] - $sts->getCantidad(),
'limite' => $limite
];
}
}
$cantSol = $sts->getCantidad();
$invDisp = $entityManager->getRepository(\App\Entity\RFInventarioSuministro::class)->inventarioSuministro([$sts->getTipoSuministro()->getId()], [1]);
foreach ($invDisp as $invDi) {
$solicitudTipoSuministroInventario = new \App\Entity\RFSolicitudTipoSuministroInventario();
$solicitudTipoSuministroInventario->setCreateAt(new \DateTime('now'));
$solicitudTipoSuministroInventario->setCreateUser($this->getUser()->getUsername());
$solicitudTipoSuministroInventario->setUpdateAt(new \DateTime('now'));
$solicitudTipoSuministroInventario->setUpdateUser($this->getUser()->getUsername());
$solicitudTipoSuministroInventario->setInventarioSuministro($invDi);
$solicitudTipoSuministroInventario->setSolicitudTipoSuministro($sts);
if ($cantSol >= $invDi->getCantidad()) {
$estadoInactivo = $entityManager->getRepository(\App\Entity\ParEstado::class)->find(2);
$invDi->setCantidadAsignada($invDi->getCantidad());
$invDi->setEstado($estadoInactivo);
$solicitudTipoSuministroInventario->setCantidad($invDi->getCantidad());
$cantSol -= $invDi->getCantidad();
$entityManager->persist($solicitudTipoSuministroInventario);
$entityManager->persist($invDi);
} else {
$invDi->setCantidadAsignada($invDi->getCantidadAsignada() + $cantSol);
$solicitudTipoSuministroInventario->setCantidad($cantSol);
$entityManager->persist($solicitudTipoSuministroInventario);
$entityManager->persist($invDi);
break;
}
}
}
}
}
}
if(count($solicitarSuministros) > 0){
$this->mailerCore->solicitudSuministro('notificacion_limite',[$rFSolicitudSuministro],null,[],$solicitarSuministros);
// dump($solicitarSuministros);
// throw $this->createNotFoundException("test");
}
$entityManager->persist($rFSolicitudSuministro);
$entityManager->flush();
$num = 0;
$numAuto = 0;
foreach ($rFSolicitudSuministro->getSolicitudTipoSuministro() as $sts) {
if ($sts->isHabilitaEntrega()) {
$numAuto++;
}
$num++;
}
if ($num == $numAuto) {
$estadoInactivo = $entityManager->getRepository(\App\Entity\ParEstado::class)->find(2);
$rFSolicitudSuministro->setEstado($entityManager->getRepository(\App\Entity\ParEstado::class)->find(4));
$rFSolicitudSuministro->setHabilitaEntrega(true);
$entityManager->persist($rFSolicitudSuministro);
$entityManager->flush();
$this->mailerCore->solicitudSuministro('aprobacion', [$rFSolicitudSuministro], []);
}
/*
if ($rFSolicitudSuministro->isHabilitaEntrega()) {
$estadoInactivo = $entityManager->getRepository(\App\Entity\ParEstado::class)->find(2);
$rFSolicitudSuministro->setEstado($entityManager->getRepository(\App\Entity\ParEstado::class)->find(4));
foreach ($rFSolicitudSuministro->getSolicitudTipoSuministro() as $sts) {
$cantSol = $sts->getCantidad();
$invDisp = $entityManager->getRepository(\App\Entity\RFInventarioSuministro::class)->inventarioSuministro([$sts->getTipoSuministro()->getId()], [1]);
foreach ($invDisp as $invDi) {
$solicitudTipoSuministroInventario = new \App\Entity\RFSolicitudTipoSuministroInventario();
$solicitudTipoSuministroInventario->setCreateAt(new \DateTime('now'));
$solicitudTipoSuministroInventario->setCreateUser($this->getUser()->getUsername());
$solicitudTipoSuministroInventario->setUpdateAt(new \DateTime('now'));
$solicitudTipoSuministroInventario->setUpdateUser($this->getUser()->getUsername());
$solicitudTipoSuministroInventario->setInventarioSuministro($invDi);
$solicitudTipoSuministroInventario->setSolicitudTipoSuministro($sts);
if ($cantSol >= $invDi->getCantidad()) {
$invDi->setCantidadAsignada($invDi->getCantidad());
$invDi->setEstado($estadoInactivo);
$solicitudTipoSuministroInventario->setCantidad($invDi->getCantidad());
$cantSol -= $invDi->getCantidad();
$entityManager->persist($solicitudTipoSuministroInventario);
$entityManager->persist($invDi);
} else {
$invDi->setCantidadAsignada($invDi->getCantidadAsignada() + $cantSol);
$solicitudTipoSuministroInventario->setCantidad($cantSol);
$entityManager->persist($solicitudTipoSuministroInventario);
$entityManager->persist($invDi);
break;
}
}
}
$this->mailerCore->solicitudSuministro('aprobacion', [$rFSolicitudSuministro]);
} */
// $this->addFlash('success', "Información procesada con exito.");
$this->code = 'success';
$this->msj = "Información procesada con exito.";
if ($rFSolicitudSuministro->getSede()->getId() != 1) {
$this->code = 'success';
$this->msj = "Información procesada con exito, continue con el proceso de envio.";
}
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
// return $this->redirectToRoute($this->responseHandler->manejoRespuesta());
}
return $this->renderForm('rf_solicitud_suministro/validar.html.twig', [
'solicitud' => $rFSolicitudSuministro,
'form' => $form,
'cargo' => $cargo,
'proceso' => $proceso,
'sede' => $sede,
]);
}
#[Route('/{id}/confirmar_entrega', name: 'rf_solicitud_suministro_confirmar_entrega', methods: ['GET', 'POST'])]
public function confirmarEntrega(Request $request, RFSolicitudSuministro $rFSolicitudSuministro, EntityManagerInterface $entityManager): Response {
// Si ya está Cancelado (por vencimiento de 3 dÃas), mostrar mensaje especÃfico
if ($rFSolicitudSuministro->getEstado()->getId() === 37) {
$this->url = $this->generateUrl('rf_solicitud_suministro');
$this->code = 'warning';
$this->msj = 'Imposible continuar, la entrega fue habilitada hace más de 3 dÃas';
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
if ($rFSolicitudSuministro->getEstado()->getId() != 4) {
$this->code = 'info';
$this->msj = "Para continuar debe ejecutar la acción anterior.";
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
$tiempoDif = $rFSolicitudSuministro->getUpdateAt()->diff(new \DateTime('now'));
if ($tiempoDif->days > 3) {
$estadoCancelado = $entityManager->getRepository(\App\Entity\ParEstado::class)->find(37);
$estadoActivo = $entityManager->getRepository(\App\Entity\ParEstado::class)->find(1);
// Actualizar estado de la solicitud a Cancelado
$rFSolicitudSuministro->setEstado($estadoCancelado);
$rFSolicitudSuministro->setUpdateAt(new \DateTime('now'));
$rFSolicitudSuministro->setUpdateUser($this->getUser()->getUsername());
$entityManager->persist($rFSolicitudSuministro);
foreach ($rFSolicitudSuministro->getSolicitudTipoSuministro() as $sts) {
// Liberar inventario asignado
foreach ($sts->getSolicitudTipoSuministroInventario() as $stsi) {
$inv = $stsi->getInventarioSuministro();
$inv->setCantidadAsignada($inv->getCantidadAsignada() - $stsi->getCantidad());
$inv->setEstado($estadoActivo);
$inv->setUpdateAt(new \DateTime('now'));
$stsi->setUpdateAt(new \DateTime('now'));
$stsi->setUpdateUser($this->getUser()->getUsername());
$entityManager->persist($inv);
$entityManager->persist($stsi);
}
// Liberar números de caja para que puedan asignarse a nuevas solicitudes
foreach ($sts->getCajas() as $caja) {
$entityManager->remove($caja);
}
}
$entityManager->flush();
// Fuerza la recarga del listado para mostrar el estado Cancelado actualizado
$this->url = $this->generateUrl('rf_solicitud_suministro');
$this->code = 'warning';
$this->msj = 'Imposible continuar, la entrega fue habilitada hace más de 3 dÃas';
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
$form = $this->createForm(RFSolicitudSuministroType::class, $rFSolicitudSuministro, ['method' => 'POST', 'action' => $this->generateUrl($request->attributes->get('_route'), ['id' => $rFSolicitudSuministro->getId()])]);
$form->add('usuarioRecibe', \Symfony\Bridge\Doctrine\Form\Type\EntityType::class, ['class' => \App\Entity\TerPersona::class, 'query_builder' => function (\Doctrine\ORM\EntityRepository $er) {
return $er->createQueryBuilder('p')
->leftJoin('p.nivelCargo', 'nc')
->leftJoin('p.perfilCargo', 'pc')
->leftJoin('pc.cargo', 'c')
->leftJoin('p.estado', 'es')
//->leftJoin('pc.ParProceso', 'p')
->where("es.id = 1");
//->setParameter('idPer', $this->getUser()->getPersona()->getId());
}, 'label' => 'Nombre quien recibe'
, 'required' => true
, 'placeholder' => 'Seleccione una opcion'
, 'attr' => ['class' => 'form-control']])
->add('fechaEntrega', \Symfony\Component\Form\Extension\Core\Type\DateType::class, ['widget' => 'single_text', 'required' => true, 'html5' => false, 'format' => 'yyyy-MM-dd', 'attr' => ['class' => 'fc-datepicker']])
;
$form->get('fechaEntrega')->setData(new \DateTime('now'));
$colaborador = $this->getUser()->getPersona();
$cargo = "N/A";
$proceso = "N/A";
$sede = $this->getUser()->getPersona()->getSede() != NULL ? $this->getUser()->getPersona()->getSede()->getNombre() : "N/A";
if ($colaborador->getPerfilCargo()) {
$cargo = $colaborador->getPerfilCargo()->getCargo()->getNombre();
$proceso = $colaborador->getPerfilCargo()->getParProceso()->getNombre();
}
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$rFSolicitudSuministro->setEstado($entityManager->getRepository(\App\Entity\ParEstado::class)->find(32));
$rFSolicitudSuministro->setUpdateAt(new \DateTime('now'));
$rFSolicitudSuministro->setUpdateUser($this->getUser()->getUsername());
$entityManager->persist($rFSolicitudSuministro);
$entityManager->flush();
$this->code = 'success';
$this->msj = "Registro almacenado con exito";
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
return $this->renderForm('rf_solicitud_suministro/confirmaEntrega.html.twig', [
'solicitud' => $rFSolicitudSuministro,
'form' => $form,
'cargo' => $cargo,
'proceso' => $proceso,
'sede' => $sede,
]);
}
#[Route('/{id}/generar_cajas', name: 'rf_solicitud_suministro_generar_cajas', methods: ['GET', 'POST'])]
public function generarCajas(Request $request, RFSolicitudSuministro $rFSolicitudSuministro, EntityManagerInterface $entityManager): Response {
if ($rFSolicitudSuministro->getEstado()->getId() != 32) {
$this->code = 'info';
$this->msj = "Para continuar debe ejecutar la acción anterior.";
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
$continue = false;
$base = 10000;
$consA = 'AA';
$consB = 0;
$numCajas = $entityManager->getRepository(\App\Entity\RFCaja::class)->ultimaCaja();
if (isset($numCajas[0]['id'])) {
$nivel = explode("-", $numCajas[0]['codigo']);
$consA = $nivel[0];
$consB = str_replace("0", "", $nivel[1]);
}
if (($consB % $base) == 0) {
for ($i = 0; $i < ($consB / $base); $i++) {
$consA++;
}
}
$consB++;
if ($consB >= $base) {
$consB = 1;
}
foreach ($rFSolicitudSuministro->getSolicitudTipoSuministro() as $sts) {
if ($sts->getTipoSuministro()->getId() == 1) {
$continue = true;
$faltaCajas = $sts->getCantidad() - count($sts->getCajas());
if ($faltaCajas > 0) {
for ($ini = 0; $ini < $faltaCajas; $ini++) {
$codTmp = "";
while ((strlen($codTmp) + strlen($consB)) < 4) {
$codTmp .= "0";
}
$codigoCaj = "{$consA}-{$codTmp}{$consB}";
$caja = new \App\Entity\RFCaja();
$caja->setCodigo($codigoCaj);
$caja->setSolicitudTipoSuministro($sts);
$caja->setCreateAt(new \DateTime('now'));
$caja->setCreateUser($this->getUser()->getUsername());
$caja->setUpdateAt(new \DateTime('now'));
$caja->setUpdateUser($this->getUser()->getUsername());
$entityManager->persist($caja);
$consB++;
if (($consB % $base) == 0) {
for ($i = 0; $i < ($consB / $base); $i++) {
$consA++;
}
}
if ($consB >= $base) {
$consB = 1;
}
}
} else {
break;
}
$entityManager->flush();
}
}
if ($continue == false) {
$this->code = 'warning';
$this->msj = "Imposible continuar, la solicitud no contiene cajas para procesar.";
return new Response(json_encode(['code' => $this->code, 'msj' => $this->msj, 'url' => $this->url, 'html' => $this->html]));
}
$cajas = $entityManager->getRepository(\App\Entity\RFCaja::class)->cajasSolicitudSuministro([$rFSolicitudSuministro->getId()]);
return $this->renderForm('rf_solicitud_suministro/cajas.html.twig', [
'solicitud' => $rFSolicitudSuministro,
'cajas' => $cajas
]);
}
#[Route('/{id}/imprimir_cajas', name: 'rf_solicitud_suministro_imprimir_cajas', methods: ['GET'])]
public function imprimirCajas(Request $request, RFSolicitudSuministro $rFSolicitudSuministro, EntityManagerInterface $entityManager): Response {
$cajas = $entityManager->getRepository(\App\Entity\RFCaja::class)->cajasSolicitudSuministro([$rFSolicitudSuministro->getId()]);
$path = $this->getParameter('kernel.project_dir') . '/public_html/assets/img/brand/logos-empresas.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
$rutaLogo = $base64;
$path = $this->getParameter('kernel.project_dir') . '/public_html/assets/img/bar_code_example.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
$barCode = $base64;
$html = $this->renderView('rf_solicitud_suministro/stickerCajas.html.twig', ['cajas' => $cajas, 'logo' => $rutaLogo, 'barCode' => $barCode]);
$dompdf = new Dompdf();
$customPaper = array(25, -10, 90, 200);
$dompdf->setPaper($customPaper, 'landscape');
$dompdf->loadHtml($html);
$dompdf->render();
return new Response(
$dompdf->stream('resume', ["Attachment" => false]),
Response::HTTP_OK,
['Content-Type' => 'application/pdf']
);
}
#[Route('/{id}/eliminar', name: 'rf_solicitud_suministro_eliminar', methods: ['GET', 'POST'])]
public function eliminar(Request $request, EntityManagerInterface $entityManager, \App\Entity\RFSolicitudSuministro $solicitudSuministro, \App\Services\ResponseHandler $responseHandler): Response {
if ($solicitudSuministro->getEstado()->getId() != 33 && $solicitudSuministro->getEstado()->getId() != 4) {
$this->addFlash('info', "Imposible continuar, el registro ya se encuentra procesado .");
return $this->redirectToRoute('rf_solicitud_suministro');
}
$solicitudSuministro->setEstado($entityManager->getRepository(\App\Entity\ParEstado::class)->find(3));
$entityManager->persist($solicitudSuministro);
$entityManager->flush();
$this->addFlash('success', "Registro eliminado exitosamente");
return $this->redirectToRoute('rf_solicitud_suministro');
// $this->addFlash('info', "Información procesada con exito.");
// $this->mailerCore->solicitudSuministro('notificacion', [$solicitudSuministro]);
// return $this->redirectToRoute('rf_solicitud_suministro',[], Response::HTTP_SEE_OTHER);
}
}