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;
 }