/** * Crear (en cero) un estado para cada uno de los requisitos asociados a este trámite. * * @param \Yacare\TramitesBundle\Entity\Tramite $entity * @param \Yacare\TramitesBundle\Entity\EstadoRequisito $EstadoRequisitoPadre * @param \Yacare\TramitesBundle\Entity\AsociacionRequisito $Asociaciones */ protected function AsociarEstadosRequisitos($entity, $EstadoRequisitoPadre, $Asociaciones) { foreach ($Asociaciones as $AsociacionRequisito) { // Primero busco para ver si ya existe $EstadoRequisito = null; if ($entity->getEstadosRequisitos()) { foreach ($entity->getEstadosRequisitos() as $EstReq) { if ($EstReq->getAsociacionRequisito() === $AsociacionRequisito) { // Ya existe, por lo tanto no lo agrego $EstadoRequisito = $EstReq; break; } } } if ($EstadoRequisito == null) { // No existe, así que la creo $EstadoRequisito = new \Yacare\TramitesBundle\Entity\EstadoRequisito(); $EstadoRequisito->setTramite($entity); } $EstadoRequisito->setAsociacionRequisito($AsociacionRequisito); $EstadoRequisito->setEstadoRequisitoPadre($EstadoRequisitoPadre); if (!$EstadoRequisito->getId()) { $entity->AgregarEstadoRequisito($EstadoRequisito); } if ($AsociacionRequisito->getRequisito()->getTipo() == 'tra') { // Es un trámite... asocio los sub-requisitos $SubTramiteTipo = $AsociacionRequisito->getRequisito()->getTramiteTipoEspejo(); if ($SubTramiteTipo) { $this->AsociarEstadosRequisitos($entity, $EstadoRequisito, $SubTramiteTipo->getAsociacionRequisitos()); } } } }
/** * Crear (en cero) un estado para cada uno de los requisitos asociados a este trámite. * * @param \Yacare\TramitesBundle\Entity\Tramite $entity * @param \Yacare\TramitesBundle\Entity\EstadoRequisito $EstadoRequisitoPadre * @param \Yacare\TramitesBundle\Entity\AsociacionRequisito $Asociaciones */ protected function AsociarEstadosRequisitos($entity, $EstadoRequisitoPadre, $Asociaciones) { foreach ($Asociaciones as $AsociacionRequisito) { // Primero busco para ver si ya existe $EstadoRequisito = null; if ($entity->getEstadosRequisitos()) { foreach ($entity->getEstadosRequisitos() as $EstReq) { if ($EstReq->getAsociacionRequisito() === $AsociacionRequisito) { // Ya existe, por lo tanto no lo agrego $EstadoRequisito = $EstReq; break; } } } if ($EstadoRequisito == null) { // No existe, así que la creo $EstadoRequisito = new \Yacare\TramitesBundle\Entity\EstadoRequisito(); $EstadoRequisito->setTramite($entity); if ($AsociacionRequisito->getRequisito()->getTipo() == 'tra') { // El requisito es un subtrámite... tengo que iniciarlo $SubTramiteTipo = $AsociacionRequisito->getRequisito()->getTramiteTipoEspejo(); if ($SubTramiteTipo && $SubTramiteTipo->getClase() && $SubTramiteTipo->getClase() != '\\Yacare\\TramitesBundle\\Entity\\TramiteSimple') { $ClaseSubTramite = $SubTramiteTipo->getClase(); $NuevoSubTram = new $ClaseSubTramite(); $NuevoSubTram->setTramitePadre($entity); $NuevoSubTram->setTitular($entity->getTitular()); //Le aviso al EstadoRequisito quién es su subtrámite asociado $EstadoRequisito->setSubtramite($NuevoSubTram); $this->em->persist($NuevoSubTram); $this->AgregarEntidadAlConjuntoDeCambios($NuevoSubTram); } } } $EstadoRequisito->setAsociacionRequisito($AsociacionRequisito); $EstadoRequisito->setEstadoRequisitoPadre($EstadoRequisitoPadre); if (!$EstadoRequisito->getId()) { $entity->AgregarEstadoRequisito($EstadoRequisito); } } }