public function cambiarInstancia(Tramite $tramite) { $repoInstancia = new InstanciaRepository(); $repoTramiteInstancia = new TramiteInstanciaRepository(); $repoTramiteInstanciaTarea = new TramiteInstanciaTareaRepository(); $repoTarea = new RelTipoTramiteinstanciaTareaRepository(); //siguiente instancia del tramite $nuevainstancia = $repoInstancia->getSiguienteInstancia($tramite->getIdTipoTramite(), $tramite->getidInstanciaActual()); //var_dump($nuevainstancia);die; //asocio la nueva instancia con el tramite $tramiteInstancia = new TramiteInstancia(); $tramiteInstancia->setIdTramite($tramite->getidTramite()); $tramiteInstancia->setIdInstancia($nuevainstancia->getIdInstancia()); $tramiteInstancia->setIdTramiteInstancia($repoTramiteInstancia->insert($tramiteInstancia)); //tareas propias de la nueva instancia $tareasPropias = $repoTarea->getTareasPropias($tramite->getIdTipoTramite(), $nuevainstancia->getIdInstancia()); //var_dump($tareasPropias);die; //agrego las tareas al tramite foreach ($tareasPropias as $tarea) { $tit = new TramiteInstanciaTarea(); $tit->setIdTramiteInstancia($tramiteInstancia->getIdTramiteInstancia()); $tit->setIdTarea($tarea->getIdTarea()); $tit->setOrden($tarea->getOrden()); $tit->setIdEstado(Estado::$TareaAbierta); //var_dump($tit);die; $repoTramiteInstanciaTarea->insert($tit); } //cambio la instancia actual del tramite $tramite->setIdInstanciaActual($nuevainstancia->getIdInstancia()); $this->update($tramite); return $tramite; }