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; }
use Stel\Repository\TramiteRepository; try { $action = $_GET["action"]; $data = json_decode($_POST["object"]); $repo = new TramiteInstanciaTareaRepository(); switch ($action) { case "new": //busco el tramite $repoTramite = new TramiteRepository(); $t = $repoTramite->getOne($data->idTramite); if (!$t) { Controller::renderJson("ERROR", "", "Tramite no encontrado"); die; } //busco el tramiteinstancia $repoTi = new TramiteInstanciaRepository(); $ti = $repoTi->getByTramiteInstancia($t->getIdTramite(), $t->getIdInstanciaActual()); if (!$ti) { Controller::renderJson("ERROR", "", "Instancia incorrecta"); die; } //genero la nueva tarea $tit = new TramiteInstanciaTarea(); $tit->setIdTramiteInstancia($ti->getIdTramiteInstancia()); $tit->setIdTarea($data->idTarea); $tit->setOrden(0); $tit->setIdEstado(Estado::$TareaAbierta); $tit->setIdTramiteInstanciaTarea($repo->insert($tit)); Controller::renderJson("OK", $tit); break; case "open":