public function mantCargarSolLocalAction($localDetId) { $opciones = $this->getRequest()->getSession()->get('opciones'); $user = $this->get('security.context')->getToken()->getUser(); $result = array(); $tmpIndex = array(); $solLocalDao = new SolLocalDao($this->getDoctrine()); $solLocalDet = $solLocalDao->getSolLocalDet($localDetId); $entNombComercial = $solLocalDet->getSolLocal()->getEntidad()->getEntNombComercial(); if (!$solLocalDet) { $solLocalDet = new SolLocalDet(); } else { $transicionDao = new TransicionDao($this->getDoctrine()); $nextTransiciones = $transicionDao->getTransicionesSiguientes($solLocalDet->getSolLocal()->getTransicion()->getTraId()); $roles = $user->getRols(); $inventarioProv = null; $invsDetTemp = $solLocalDet->getInventariosDet(); foreach ($invsDetTemp as $tmp) { if ($solLocalDet->getSolLocal()->getEntidad()->getEntId() != $tmp->getInventario()->getEntidad()->getEntId()) { $inventarioProv = $tmp->getInventario(); } } /*var_dump('Comprador EntId= '.$solLocalDet->getSolLocal()->getEntidad()->getEntId()); var_dump('User EntId= '.$user->getEntidad()->getEntId()); var_dump('Proveedor EntId= '.$solLocalDet->getCuota()->getEntidad()->getEntId()); */ //Validacion para asegurarse que el usuario que esta visualizando la solicitud tiene autorizacion para evaluarla y pasarla a la siguiente etapa foreach ($roles as $rol) { $transicionesRol = $rol->getTransiciones(); foreach ($transicionesRol as $transicionRol) { foreach ($nextTransiciones as $reg) { if ($transicionRol->getTraId() == $reg->getTraId()) { if ($reg->getFlujo()->getFluId() == Flujo::$LOCAL && !array_key_exists($reg->getTraId(), $tmpIndex)) { if ($solLocalDet->getSolLocal()->getEntidad()->getEntId() == $user->getEntidad()->getEntId() && $rol->getRolTipo() == User::$COMPRADOR || $inventarioProv->getEntidad()->getEntId() == $user->getEntidad()->getEntId() && $rol->getRolTipo() == User::$VENDEDOR) { $arrayTrans = array(); $arrayTrans['id'] = $reg->getTraId(); $arrayTrans['nombre'] = $reg->getEstado()->getEstNombreBoton(); $arrayTrans['comentario'] = $reg->getTraComentario() ? "true" : "false"; $arrayTrans['litrosLibera'] = $reg->getTraLitrosLibera() ? "true" : "false"; $tmpIndex[$reg->getTraId()] = true; $result[] = $arrayTrans; } } } } } } } $form = $this->createForm(new SolLocalDetType($this->getDoctrine()), $solLocalDet); $comentario = $solLocalDet->getSolLocal()->getSolLocalComentario(); $etapa = $solLocalDet->getSolLocal()->getTransicion()->getEtpFin()->getEtpNombre(); $estado = $solLocalDet->getSolLocal()->getTransicion()->getEstado()->getEstNombre(); $inventarioDetTmp = $solLocalDet->getInventariosDet(); $inventarioDetTmp = $inventarioDetTmp[0]; $provEntidad = $inventarioDetTmp->getInventario()->getEntidad(); //Validacion de la empresa que ingresa la solicitud $entidad = $solLocalDet->getSolLocal()->getEntidad(); $year = new \DateTime(); $listadoDNMDao = new ListadoDNMDao($this->getDoctrine()); $autorizadoDNM = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $entidad->getEntNrc(), $entidad->getEntNit()); $autorizadoDNMText = null; if (!$autorizadoDNM) { $autorizadoDNMText = ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH; } if (!$entidad->getEntHabilitado()) { $this->get('session')->setFlash('notice', EntidadDao::$NO_HABILITADA . ' debido a: ' . $entidad->getEntComentario()); } //###### Validacion de empresa seleccionada como proveedor $autorizadoDNMProv = true; $autorizadoDNMProvText = ''; if ($provEntidad == null) { $provEntidad = true; } else { $autorizadoDNMProv = $listadoDNMDao->estaAutorizado($year->format('Y') + 0, $provEntidad->getEntNrc(), $provEntidad->getEntNit()); } if (!$autorizadoDNMProv || !$provEntidad->getEntHabilitado()) { $autorizadoDNMProvText = 'Problema con el Proveedor ->'; if (!$autorizadoDNMProv) { $autorizadoDNMProvText = $autorizadoDNMProvText . ListadoDNMDao::$MSG_ERROR_DNM_NOAUTH . '. '; } if (!$provEntidad->getEntHabilitado()) { $autorizadoDNMProvText = $autorizadoDNMProvText . EntidadDao::$NO_HABILITADA; $autorizadoDNMProv = false; } } return $this->render('MinSalSCAProcesosBundle:SolLocalDet:ingresarSolLocalDet.html.twig', array('form' => $form->createView(), 'opciones' => $opciones, 'localDetId' => $localDetId, 'entNombComercial' => $entNombComercial, 'transiciones' => $result, 'comentario' => $comentario, 'etapa' => $etapa, 'estado' => $estado, 'invId' => $inventarioDetTmp->getInventario()->getInvId(), 'autorizadoDNM' => $autorizadoDNM, 'autorizadoDNMText' => $autorizadoDNMText, 'entHabilitado' => $entidad->getEntHabilitado(), 'autorizadoDNMProv' => $autorizadoDNMProv, 'autorizadoDNMProvText' => $autorizadoDNMProvText)); }