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":