use Stel\Repository\TramiteRepository;
use Stel\Repository\TramiteInstanciaTareaRepository;
use Stel\Repository\PersonaRepository;
use Stel\Repository\InstitucionRepository;
use Stel\Model\Usuario;
use Stel\Model\Tramite;
$user = Usuario::getSessionUser();
if (!$user) {
    Controller::redirect("login");
}
if (!isset($_GET["idTramite"])) {
    Controller::render("error.php", array("errorMessage" => "No se encuentra el tramite solicitado."));
    die;
}
$idTramite = $_GET["idTramite"];
$repo = new TramiteRepository();
$repoTarea = new TramiteInstanciaTareaRepository();
$repoPersona = new PersonaRepository();
$repoInstitucion = new InstitucionRepository();
$tramite = $repo->getOne($idTramite);
if ($tramite->getIdPersona()) {
    $persona = $repoPersona->getOne($tramite->getIdPersona());
} else {
    $institucion = $repoInstitucion->getOne($tramite->getIdInstitucion());
}
$tareas = $repoTarea->getForSintesisGlobal($idTramite);
if (isset($persona)) {
    Controller::render("sintesisGlobal.php", array("tramite" => $tramite, "tareas" => $tareas, "persona" => $persona));
} else {
    Controller::render("sintesisGlobal.php", array("tramite" => $tramite, "tareas" => $tareas, "institucion" => $institucion));
}
use Stel\Model\Tramite;
use Stel\Model\TramiteInstancia;
use Stel\Model\Estado;
use Stel\Repository\TramiteInstanciaRepository;
use Stel\Repository\TramiteRepository;
use Stel\Repository\TramiteInstanciaTareaRepository;
try {
    $action = $_GET["action"];
    $data = json_decode($_POST["object"]);
    $repo = new TramiteInstanciaRepository();
    switch ($action) {
        case "new":
            Controller::renderJson("ERROR", "", "No implementado");
            break;
        case "open":
            Controller::renderJson("ERROR", "", "No implementado");
            break;
        case "end":
            $repoTramite = new TramiteRepository();
            $t = $repoTramite->getOne($data->idTramite);
            //fuerzo la finalizacion de las tareas pendientes
            $repoTarea = new TramiteInstanciaTareaRepository();
            $repoTarea->finalizarPendientes($t);
            //cambio la instancia
            $t = $repoTramite->cambiarInstancia($t);
            Controller::renderJson("OK", $t);
            break;
    }
} catch (Exception $e) {
    Controller::renderJson("ERROR", "", $e->getMessage());
}