public async Task<ActionResult> ProcesarSolicitudAlterna(INGRESOMODEL _model) { //sim tiempo Thread.Sleep(2000); // retorno de mensaje de error string error = ""; // validaciones del ingreso if (_model.ID == 0) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } // validar la existencia del ingreso // get entity var _entity = await _context.INGRESO.FindAsync(_model.ID); if (_entity == null) { return HttpNotFound(); } //validar que este ingreso no se haya procesado antes // var _pruebaProcesamiento = await _context.DATOSSOCIOECONOMICOS.FindAsync(IDINGRESO); //var _pruebaProcesamiento = _entity.STATUSFLOW; //if (_pruebaProcesamiento > 1) //{ // //return RedirectToAction("ResultadoProcesamiento", "SolicitudIngreso", new { IDRESUMEN = 1 }); // //error al procesar // error = "error al procesar, ya existe un proceso solicitado!"; // return Json(new { success = false, message = "error al procesar, ya existe un proceso solicitado!" }, JsonRequestBehavior.AllowGet); //} try { //procesamiento /* STATUSFLOW * SOL -- 1 * MED -- 2 * PSQ -- 3 * PS -- 4 * TS -- 5 * CONF -- 6 * DENG -- 7 * ING -- 8 * EGRE -- 9 * */ // BUSCAR PROCEDIMIENTO _context.spCrearProcesamientoIngreso(_model.ID, DateTime.Now); //return Json(new { success = true, message = "Solicitud Procesada correctamente!" }, JsonRequestBehavior.AllowGet); return RedirectToAction(_model.actionName, "SolicitudIngreso"); } catch (Exception ex) { error = ex.Message; //return RedirectToAction("ResultadoProcesamiento", "SolicitudIngreso", new { IDRESUMEN = 2 }); // return Json(new { success = false, message = "No se ha podido procesar la solocitud" }, JsonRequestBehavior.AllowGet); return RedirectToAction("DetalleErrorProcesamiento", "SolicitudIngreso", new { detalle = ex.Message }); } }
// get public async Task<ActionResult> ProcesarSolicitudAlterna(int? ID) { try { // validaciones del ingreso if (ID == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } // validar la existencia del ingreso // get entity var _entity = await _context.INGRESO.FindAsync(ID); if (_entity == null) { return HttpNotFound(); } var _model = new INGRESOMODEL { ID = _entity.ID, STATUSFLOW = _entity.STATUSFLOW, FICHA = _entity.FICHA, OBSERVACIONES = _entity.OBSERVACIONES, FECHAINGRESOSISTEMA = _entity.FECHAINGRESOSISTEMA }; // luego se comprueba algunos detalles //si ese ingreso está activo //solicitud de ficha por ingreso //_entity.FICHA = await _context.FICHA.FindAsync(_entity.IDPERSONA); // _model.actionName = actionNameFunc((int)_model.STATUSFLOW); //return View(_entity); return PartialView("_ProcesarSolicitudAlterna", _model); }catch(Exception ex) { return RedirectToAction("DetalleErrorProcesamiento", "SolicitudIngreso", new { detalle = ex.Message }); } }
public async Task<ActionResult> InfoNuevoIngreso(INGRESOMODEL _model) { if (ModelState.IsValid) { // validar si no existe un egreso pendiente //tiene al menos un ingreso registrado (re-ingreso) if (await _context.INGRESO.FirstOrDefaultAsync(i => i.IDPERSONA == _model.IDPERSONA) != null) { // comprueba que al menos un registro tenga fecha de egrso nula if (await _context.INGRESO.FirstOrDefaultAsync(i => i.FECHAEGRESOPV != null) != null) { // duvuele un mesaje de egreso pendiente, no puede tener un egreso pendiente ModelState.AddModelError("", "Este paciente tien un Egreso pendiente, por favor notificar al Director sobre este caso"); ViewBag.IDCRENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE", _model.IDCRENTROTERAPEUTICO); return View(_model); } else { // get y set entity var _entity = new INGRESO { NUMEXPEDIENTE = _model.NUMEXPEDIENTE, FECHAINGRESOSISTEMA = DateTime.Now, OBSERVACIONES = _model.OBSERVACIONES, STATUSFLOW = 1, IDPERSONA = _model.IDPERSONA }; // guardar _context.INGRESO.Add(_entity); await _context.SaveChangesAsync(); // crear carpeta de documentos var pathFichaDocus = Path.Combine(Server.MapPath("~/App_Data/DocumentosIngreso/" + _entity.IDPERSONA.ToString() + ""), _entity.ID.ToString()); //orden de crear carpeta Directory.CreateDirectory(pathFichaDocus); // establecer el centroterapéutico de desarrollo var _entityCTD = new CENTRODESARROLLOINGRESO { IDINGRESO = _entity.ID, IDCENTROTERAPEUTICO = _model.IDCRENTROTERAPEUTICO, FECHAREGISTRO = DateTime.Now, }; // guardar el registro _context.CENTRODESARROLLOINGRESO.Add(_entityCTD); await _context.SaveChangesAsync(); // redireccionar a los documentos // los docuemtos son dependencia del ingreso return RedirectToAction("EntregaDocumentosIngreso", "SolicitudIngreso", new { ID = _entity.ID }); } } else { // get y set entity var _entity = new INGRESO { NUMEXPEDIENTE = _model.NUMEXPEDIENTE, FECHAINGRESOSISTEMA = DateTime.Now, OBSERVACIONES = _model.OBSERVACIONES, STATUSFLOW = 1, IDPERSONA = _model.IDPERSONA }; // guardar _context.INGRESO.Add(_entity); await _context.SaveChangesAsync(); // establecer el centroterapéutico de desarrollo var _entityCTD = new CENTRODESARROLLOINGRESO { IDINGRESO = _entity.ID, IDCENTROTERAPEUTICO = _model.IDCRENTROTERAPEUTICO, FECHAREGISTRO = DateTime.Now, }; // guardar el registro _context.CENTRODESARROLLOINGRESO.Add(_entityCTD); await _context.SaveChangesAsync(); // crear carpeta de documentos por ingreso // crear capeta de interno // crear carpeta de documentos var pathFichaDocus = Path.Combine(Server.MapPath("~/App_Data/DocumentosIngreso/" + _entity.IDPERSONA.ToString() + ""), _entity.ID.ToString()); //orden de crear carpeta Directory.CreateDirectory(pathFichaDocus); // redireccionar a los documentos // los docuemtos son dependencia del ingreso return RedirectToAction("EntregaDocumentosIngreso", "SolicitudIngreso", new { ID = _entity.ID }); } } ViewBag.IDCRENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE", _model.IDCRENTROTERAPEUTICO); return View(_model); }
//3. Info Nuevo ingreso // un nuevo ingreso está relacionado a una ficha única // //GET public async Task<ActionResult> InfoNuevoIngreso(int? ID) { // COPROBAR QUE LA entrada es válida if (ID == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } //get entiy var _entity = await _context.FICHA.FindAsync(ID); //si es nula, retorna no encontrada if (_entity == null) { return HttpNotFound(); } // set model var _model = new INGRESOMODEL(); _model.FICHA = _entity; _model.IDPERSONA = _entity.ID; //Viewbags //to view ViewBag.IDCRENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE"); return View(_model); }
// modificación del estado public async Task<ActionResult> EditarEstadoIngreso(INGRESOMODEL _model) { Thread.Sleep(2000); try { // get entity var _entity = new INGRESO(); // find _entity = await _context.INGRESO.FindAsync(_model.ID); //set cambios // _entity.FECHAFIRMAACUERDO = _model.FECHAFIRMAACUERDO; _entity.FECHAUTORIZACION = _model.FECHAUTORIZACION; _entity.ACEPTADO = _model.ACEPTADO; //_entity.CONTRATO = _model.CONTRATO; _entity.OBSERVACIONES = _model.OBSERVACIONES; //save data _context.Entry(_entity).State = EntityState.Modified; await _context.SaveChangesAsync(); return Json(new { success = true, message = "Se ha cambiado el estado con éxito!" }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new { success = false, message = ex.Message }, JsonRequestBehavior.AllowGet); } }
//get de evaluación Social public async Task<ActionResult> EvaluacionSocial(int? ID) { // validaciones del ingreso if (ID == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } // validar la existencia del ingreso // get entity var _entity = await _context.INGRESO.FindAsync(ID); if (_entity == null) { return HttpNotFound(); } // set viewModel var _viewModel = new INGRESOMODEL(); _viewModel.ACEPTADO = _entity.ACEPTADO; _viewModel.ID = _entity.ID; _viewModel.STATUSFLOW = _entity.STATUSFLOW; _viewModel.NUMEXPEDIENTE = _entity.NUMEXPEDIENTE; _viewModel.OBSERVACIONES = _entity.OBSERVACIONES; // get utilidades _viewModel.DROGAS = await _context.DATOSPROBLEMADROGAS_DROGAS.ToListAsync(); _viewModel.ESCOLARIDADES = await _context.INFORMACIONACADEMICA_ESCOLARIDAD.ToListAsync(); _viewModel.OFICIOS = await _context.INFORMACIONACADEMICA_OFICIOS.ToListAsync(); // luego se comprueba algunos detalles //si ese ingreso está activo //solicitud de ficha por ingreso _viewModel.FICHA = await _context.FICHA.FindAsync(_entity.IDPERSONA); _entity.FICHA = await _context.FICHA.FindAsync(_entity.IDPERSONA); //Viewbags // to view return View(_entity); }