private List <Int32> numeroReferencia() { var referencia = DateTime.Now.Year.ToString().Substring(2) + "-0000"; try { SOLICITUD lastSolicitud = db.SOLICITUDs.OrderByDescending(s => s.id_solicitud).First(); referencia = lastSolicitud.no_referencia; } catch (Exception e) { } var correlativo = Int32.Parse(referencia.Substring(3)) + 1; var year = Int32.Parse(referencia.Substring(0, 2)); var nowYear = Int32.Parse(DateTime.Now.Year.ToString().Substring(2)); if (year != nowYear) { correlativo = 1; year = nowYear; } List <Int32> list = new List <Int32>(); list.Add(correlativo); list.Add(year); return(list); }
public JsonResult Crear(SolicitudViewModel solicitud) { var resultado = new baseRespuesta(); resultado = validaciones(solicitud); if (resultado.ok == true) { EntitiesNoMasAccidentes bd = new EntitiesNoMasAccidentes(); NoMasAccidentes.Models.SOLICITUD solicitudes = new SOLICITUD(); solicitudes.TIPO_SOLICITUD_ID_TIPOSOLICI = solicitud.tipo_solicitud; solicitudes.DESCRIPCION_SOLICITUD = solicitud.detalle_solicitud; solicitudes.ACTIVO_SOLICITUD = "S"; solicitudes.FECHA_SOLICITUD = DateTime.Now; var idCliente = bd.CLIENTE.FirstOrDefault(e => e.USUARIO.USUARIO1 == User.Identity.Name).ID_CLIENTE; solicitudes.CLIENTE_ID_CLIENTE = idCliente; solicitudes.ESTADO = "En Revisión"; bd.SOLICITUD.Add(solicitudes); bd.SaveChanges(); resultado.mensaje = "<i class='zmdi zmdi-check zmdi-hc-fw'></i>Solicitud Registrada Correctamente</br>";; } else { resultado.mensaje = "<b>Error</b></br>" + resultado.mensaje; } return(Json(resultado)); }
public ActionResult IniciarProceso(int idSolicitud) { var username = User.Identity.GetUserName(); AppUser user = UserManager.FindByName(username); EMPLEADO empleado = db.EMPLEADOes.First(e => e.id_aspnet_user == user.Id); SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); if (solicitud.PROCESO_ANALISTA.Count(pa => pa.empleado_id == empleado.id_empleado) != 1) { return(View("Error", new string[] { "Permiso denegado" })); } PROCESO_ANALISTA procesoAnalista = solicitud.PROCESO_ANALISTA.Single(pa => pa.empleado_id == empleado.id_empleado); procesoAnalista.fecha_inicio = DateTime.Now; procesoAnalista.id_estado_proceso_analista = 2; db.SaveChanges(); // enviar notificacion Notificacion notificacion = new Notificacion(empleado.id_empleado, "Ha iniciado el analisis de la solicitud " + solicitud.no_referencia, "", Url.Action("Detalle", "Solicitud", new { id = idSolicitud })); notificacion.setReceptor(); notificacion.send(); return(RedirectToAction("Administrar", "Analisis", new { idSolicitud = idSolicitud })); }
public ActionResult Administrar(int idSolicitud) { EMPLEADO empleado = this.empleado(); SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); PROCESO_ANALISTA procesoAnalista = solicitud.PROCESO_ANALISTA.Single(pa => pa.empleado_id == empleado.id_empleado); List <ANALISIS_EMPLEADO> analisis = db.ANALISIS_EMPLEADO.Where(ae => ae.DETALLE_SOLICITUD.id_solicitud == idSolicitud && ae.id_empleado == empleado.id_empleado).ToList(); var reportesFinalizados = true; foreach (ANALISIS_EMPLEADO analisi in analisis) { if (analisi.REPORTEs.Count() == 0) { reportesFinalizados = false; } } ViewBag.Analisis = analisis; ViewBag.ProcesoAnalista = procesoAnalista; ViewBag.reportesFinalizados = reportesFinalizados; return(View(solicitud)); }
public bool read() { try { SOLICITUD solicitud = Conexion.entities.SOLICITUD.First(f => f.IDSOLICITUD == this.idSolicitud); this.idSolicitud = Convert.ToInt32(solicitud.IDSOLICITUD); this.codigoDocumento = solicitud.CODIGODOCUMENTO; this.descripcion = solicitud.DESCRIPCION; this.fechaSolicitud = Convert.ToDateTime(solicitud.FECHASOLICITUD); this.fechaInicio = Convert.ToDateTime(solicitud.FECHAINICIO); this.fechaTermino = Convert.ToDateTime(solicitud.FECHATERMINO); this.idTipoPermiso = Convert.ToInt32(solicitud.IDTIPOPERMISO); this.rutSolicitante = solicitud.RUT; this.rutAutorizante = solicitud.AUTORIZADOR; this.idEstado = Convert.ToInt32(solicitud.IDESTADO); this.idMotivo = Convert.ToInt32(solicitud.IDMOTIVO); return(true); } catch (Exception e) { return(false); } }
public bool create() { SOLICITUD solicitud = new SOLICITUD(); try { solicitud.IDSOLICITUD = this.idSolicitud; solicitud.CODIGODOCUMENTO = this.codigoDocumento; solicitud.DESCRIPCION = this.descripcion; solicitud.FECHASOLICITUD = this.fechaSolicitud; solicitud.FECHAINICIO = this.fechaInicio; solicitud.FECHATERMINO = this.fechaTermino; solicitud.IDTIPOPERMISO = this.idTipoPermiso; solicitud.RUT = this.rutSolicitante; solicitud.AUTORIZADOR = this.rutAutorizante; solicitud.IDESTADO = this.idEstado; solicitud.IDMOTIVO = this.idMotivo; Conexion.entities.SOLICITUD.Add(solicitud); Conexion.entities.SaveChanges(); return(true); } catch (Exception e) { Conexion.entities.SOLICITUD.Local.Clear(); return(false); } }
public async Task <ActionResult> DeleteConfirmed(int id) { SOLICITUD sOLICITUD = await db.SOLICITUD.FindAsync(id); db.SOLICITUD.Remove(sOLICITUD); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public ActionResult ExportarCSV(int idSolicitud) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); string attachment = "attachment; filename=solicitud_" + solicitud.no_referencia + ".csv"; Response.Clear(); Response.ClearHeaders(); Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "text/csv"; Response.AddHeader("Pragma", "public"); var sb = new StringBuilder(); List <string> line = new List <string>(); foreach (DETALLE_SOLICITUD detalle in solicitud.DETALLE_SOLICITUD) { line.Add(solicitud.no_referencia); line.Add(solicitud.fecha_inicio.Value.ToShortDateString()); line.Add(solicitud.fecha_finalizacion.Value.ToShortDateString()); line.Add(solicitud.VISITAs.First().SITIO_MUESTREO.nombre_sitio); line.Add(solicitud.VISITAs.First().SITIO_MUESTREO.lat.ToString()); line.Add(solicitud.VISITAs.First().SITIO_MUESTREO.lng.ToString()); List <DETALLE_VISITA> detalleVisita = solicitud.VISITAs.First().DETALLE_VISITA.ToList(); foreach (DETALLE_VISITA visita in detalleVisita) { line.Add(visita.MUESTRA.nombre_muestra + "(" + visita.MUESTRA.expresado + ")"); line.Add(visita.value.ToString()); } line.Add(detalle.ANALISI.AREA.nombre_area); line.Add(detalle.ANALISIS_EMPLEADO.First().EMPLEADO.nombre_empleado); line.Add(detalle.ANALISI.nombre); REPORTE reporte = detalle.ANALISIS_EMPLEADO.First().REPORTEs.First(); line.Add(reporte.resultado.ToString()); line.Add(reporte.incerteza.ToString()); line.Add(reporte.limite_deteccion.ToString()); line.Add(reporte.metodo); line.Add(reporte.unidades); string lineString = string.Join(";", line.ToArray()); line.Clear(); sb.AppendLine(lineString); } Response.Write(sb.ToString()); return(null); }
public ActionResult Cerrar(int idSolicitud) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); solicitud.id_estado = 4; // cerrado solicitud.id_estado_proceso = 7; // cerrado db.SaveChanges(); return(Json(new { valid = true })); }
public static bool AgregarSolicitud(dbDataContext db, long idpaciente, long iddoctor, DateTime fecha_emision, DateTime fecha_entrega, int no_factura, string nombres, string giro, string nit, string nrc, bool retencion, bool CFiscal, decimal ptje_iva, decimal ptje_retencion, decimal monto_gravado, decimal monto_iva, decimal subtotal, decimal monto_exento, decimal monto_retencion, decimal monto_total, List <SOLICITUD_DETALLE> Detalle) { try { var reg = new SOLICITUD { ID_SOLICITUD = ((long?)db.SOLICITUDs.Select(c => (long?)c.ID_SOLICITUD).Max() ?? 0) + 1, ID_DOCTOR = iddoctor, ID_PACIENTE = idpaciente, ID_USUARIO_CREO = CTRL.Datos.idusuario, FECHA_EMISION = fecha_emision, FECHA_ENTREGA = fecha_entrega, NO_FACTURA = no_factura, NOMBRES = nombres, GIRO = giro, NIT = nit, NRC = nrc, CREDITO_FISCAL = CFiscal, RETENCION = retencion, PORCENTAJE_IVA = ptje_iva, PORCENTAJE_RETENCION = ptje_retencion, MONTO_GRAVADO = monto_gravado, MONTO_IVA = monto_iva, SUBTOTAL = subtotal, MONTO_EXENTO = monto_exento, MONTO_RETENCION = monto_retencion, TOTAL = monto_total }; //ASIGNANDO ID A DETALLE foreach (SOLICITUD_DETALLE item in Detalle) { item.ID_SOLICITUD_DETALLE = reg.ID_SOLICITUD + "-" + Detalle.IndexOf(item); } reg.SOLICITUD_DETALLEs.AddRange(Detalle); db.SOLICITUDs.InsertOnSubmit(reg); db.SubmitChanges(); return(true); } catch (Exception ex) { MessageBox.Show("Ha ocurrido un error al agregar el registro.\n\n" + ex.Message, "SysLab", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } }
public async Task <ActionResult> Edit([Bind(Include = "id_solicitud,sol_fecha,usuario,fecha_progra,solicitante,sede,tecnico")] SOLICITUD sOLICITUD) { if (ModelState.IsValid) { db.Entry(sOLICITUD).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.sede = new SelectList(db.SEDE, "id_sede", "sede_nombre", sOLICITUD.sede); ViewBag.tecnico = new SelectList(db.TECNICO, "id_tecnico", "tec_nom", sOLICITUD.tecnico); ViewBag.usuario = new SelectList(db.USUARIO, "id_usuario", "usu_nombre", sOLICITUD.usuario); return(View(sOLICITUD)); }
public ActionResult AbrirCorreccion(int idSolicitud) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); solicitud.id_estado_proceso = 6; // en correccion solicitud.informe_generado = 0; solicitud.fecha_finalizacion = null; //TODO: Guardar informacion de correcion db.SaveChanges(); return(Json(new { valid = true })); }
public void crearDetalleSolicitud(SOLICITUD Solicitud, List <EmpleadoSeleccion> empleadosSeleccion) { List <DETALLE_SOLICITUD> detallesList = new List <DETALLE_SOLICITUD>(); foreach (EmpleadoSeleccion empleadoSeleccion in empleadosSeleccion) { List <Int32> analisisList = empleadoSeleccion.analisis; for (var i = 0; i < analisisList.Count(); i++) { ANALISI analisis = db.ANALISIS.Find(analisisList[i]); DETALLE_SOLICITUD detalleSolicitud = new DETALLE_SOLICITUD() { id_solicitud = Solicitud.id_solicitud, id_analisis = analisis.id_analisis }; db.DETALLE_SOLICITUD.Add(detalleSolicitud); db.SaveChanges(); ANALISIS_EMPLEADO analisisEmpleado = new ANALISIS_EMPLEADO() { id_detalle_solicitud = detalleSolicitud.id_detalle_solicitud, id_empleado = empleadoSeleccion.idEmpleado }; db.ANALISIS_EMPLEADO.Add(analisisEmpleado); db.SaveChanges(); } if (analisisList.Count() > 0) { PROCESO_ANALISTA procesoAnalista = new PROCESO_ANALISTA { solicitud_id = Solicitud.id_solicitud, empleado_id = empleadoSeleccion.idEmpleado, cantidad_analisis = (byte)analisisList.Count() }; db.PROCESO_ANALISTA.Add(procesoAnalista); } db.SaveChanges(); } }
public ActionResult EnviarResultado(int idSolicitud) { object result; EMPLEADO empleado = this.empleado(); SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); PROCESO_ANALISTA procesoAnalista = db.PROCESO_ANALISTA.Single(pa => pa.empleado_id == empleado.id_empleado && pa.solicitud_id == solicitud.id_solicitud); procesoAnalista.fecha_fin = DateTime.Now; procesoAnalista.id_estado_proceso_analista = 3; db.SaveChanges(); var reportesCompletos = true; foreach (PROCESO_ANALISTA procesosAnalista in solicitud.PROCESO_ANALISTA) { if (procesosAnalista.id_estado_proceso_analista != 3) { reportesCompletos = false; } } // enviar notificacion Notificacion notificacion = new Notificacion(empleado.id_empleado, "Analisis de solicitud " + solicitud.no_referencia + " finalizados.", "Se finalizaron los analisis y ingresaron los resultados.", Url.Action("Detalle", "Solicitud", new { id = solicitud.id_solicitud })); notificacion.setReceptor(); notificacion.send(); if (reportesCompletos) { solicitud.id_estado_proceso = 4; } db.SaveChanges(); if (reportesCompletos) { // enviar notificacion Notificacion notificacionCompleto = new Notificacion(empleado.id_empleado, "Reportes de solicitud " + solicitud.no_referencia + " finalizados.", "Se finalizaron todos los reportes y fueron enviados.", Url.Action("Detalle", "Solicitud", new { id = solicitud.id_solicitud })); notificacionCompleto.setReceptor(); notificacionCompleto.send(); } result = new { valid = true }; return(Json(result)); }
public bool Modificar() { try { SOLICITUD solicitud = conexion.Entidad.SOLICITUD .First(p => p.ID_SOLICITUD == Id); solicitud.ESTADO_SOLICITUD = (byte)EstadoSolicitud.Id; conexion.Entidad.SaveChanges(); return(true); } catch (Exception ex) { Console.WriteLine(ex); return(false); } }
public ActionResult Detalle(int id) { SOLICITUD solicitud = db.SOLICITUDs.Find(id); Dictionary <string, List <string> > analisisPorEmpleado = new Dictionary <string, List <string> >(); foreach (DETALLE_SOLICITUD detalle in solicitud.DETALLE_SOLICITUD) { try { ANALISIS_EMPLEADO analisisEmpleado = detalle.ANALISIS_EMPLEADO.First(); String nombreEmpleado = analisisEmpleado.EMPLEADO.nombre_empleado; if (analisisPorEmpleado.Where(ape => ape.Key.Equals(nombreEmpleado)).Count() > 0) { analisisPorEmpleado.Where(ape => ape.Key.Equals(nombreEmpleado)).First().Value.Add(detalle.ANALISI.nombre); } else { List <string> list = new List <string>(); list.Add(detalle.ANALISI.nombre); analisisPorEmpleado.Add(nombreEmpleado, list); } } catch (Exception e) { } } try { VISITA visita = db.VISITAs.First(v => v.id_solicitud == id); ViewBag.Visita = visita; } catch (Exception e) { ViewBag.Visita = null; } ViewBag.AnalisisPorEmpleado = analisisPorEmpleado; return(View(solicitud)); }
public ActionResult AsignarAnalisis(int idSolicitud, List <string> checkAnalisis) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); List <AREA> areas = db.AREAs.ToList(); List <ANALISI> analisis = new List <ANALISI>(); for (var i = 0; i < checkAnalisis.Count; i++) { ANALISI analisi = db.ANALISIS.Find(Int32.Parse(checkAnalisis[i])); analisis.Add(analisi); } ViewBag.Analisis = analisis; ViewBag.Solicitud = solicitud; ViewBag.Areas = areas; return(PartialView()); }
public ActionResult FormDetalleSolicitud(int idSolicitud) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); List <int> selectedItems = new List <int>(); foreach (DETALLE_SOLICITUD detalle in solicitud.DETALLE_SOLICITUD) { selectedItems.Add(detalle.id_analisis); } List <AREA> areas = db.AREAs.ToList(); ViewBag.Solicitud = solicitud; ViewBag.SelectedItems = selectedItems; ViewBag.Areas = areas; return(View()); }
public ActionResult CancelarCorreccion(int idSolicitud) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); solicitud.id_estado = 3; solicitud.id_estado_proceso = 5; solicitud.informe_generado = 0; foreach (PROCESO_ANALISTA procesoAnalista in solicitud.PROCESO_ANALISTA) { procesoAnalista.id_estado_proceso_analista = 6; // TODO notify } db.SaveChanges(); return(Json(new { valid = true })); }
// GET: SOLICITUDES/Details/5 public async Task <ActionResult> Details(int?id) { if (Session["User"] != null) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SOLICITUD sOLICITUD = await db.SOLICITUD.FindAsync(id); if (sOLICITUD == null) { return(HttpNotFound()); } return(View(sOLICITUD)); } return(RedirectToAction("index", "Home")); }
// GET: Analista public ActionResult Index() { var username = User.Identity.GetUserName(); AppUser user = UserManager.FindByName(username); EMPLEADO empleado = db.EMPLEADOes.First(e => e.id_aspnet_user == user.Id); List <PROCESO_ANALISTA> procesosAnalista = db.PROCESO_ANALISTA.Where(pa => pa.empleado_id == empleado.id_empleado && pa.fecha_asignacion != null).OrderByDescending(pa => pa.SOLICITUD.no_referencia).ToList(); List <AnalisisSolicitud> analisisSolicitud = new List <AnalisisSolicitud>(); List <ANALISI> analisis = db.ANALISIS.Where(a => a.id_area == empleado.id_area).ToList(); foreach (PROCESO_ANALISTA procesoAnalista in procesosAnalista) { SOLICITUD solicitud = procesoAnalista.SOLICITUD; List <DETALLE_SOLICITUD> detallesSolicitudEmpleado = solicitud.DETALLE_SOLICITUD.Where(ds => ds.ANALISIS_EMPLEADO.First().id_empleado == empleado.id_empleado).ToList(); foreach (ANALISI analisisElem in analisis) { AnalisisSolicitud analisisSolicitudElem = new AnalisisSolicitud(); analisisSolicitudElem.analisis = analisisElem; analisisSolicitudElem.solicitud = solicitud; var detalleSolicitud = detallesSolicitudEmpleado.SingleOrDefault(ds => ds.id_analisis == analisisElem.id_analisis); if (detalleSolicitud != null) { analisisSolicitudElem.asignado = true; } analisisSolicitud.Add(analisisSolicitudElem); } } ViewBag.AnalisisSolicitud = analisisSolicitud; ViewBag.Analisis = analisis; return(View(procesosAnalista)); }
public ActionResult Index(string fechas, DateTime fecha_inicio, DateTime fecha_fin, string estado) { var username = User.Identity.GetUserName(); AppUser user = UserManager.FindByName(username); EMPLEADO empleado = db.EMPLEADOes.First(e => e.id_aspnet_user == user.Id); List <PROCESO_ANALISTA> procesosAnalista = this.FiltrarProcesoAnalista(empleado, fechas, fecha_inicio, fecha_fin, estado); List <AnalisisSolicitud> analisisSolicitud = new List <AnalisisSolicitud>(); List <ANALISI> analisis = db.ANALISIS.Where(a => a.id_area == empleado.id_area).ToList(); foreach (PROCESO_ANALISTA procesoAnalista in procesosAnalista) { SOLICITUD solicitud = procesoAnalista.SOLICITUD; List <DETALLE_SOLICITUD> detallesSolicitudEmpleado = solicitud.DETALLE_SOLICITUD.Where(ds => ds.ANALISIS_EMPLEADO.First().id_empleado == empleado.id_empleado).ToList(); foreach (ANALISI analisisElem in analisis) { AnalisisSolicitud analisisSolicitudElem = new AnalisisSolicitud(); analisisSolicitudElem.analisis = analisisElem; analisisSolicitudElem.solicitud = solicitud; var detalleSolicitud = detallesSolicitudEmpleado.SingleOrDefault(ds => ds.id_analisis == analisisElem.id_analisis); if (detalleSolicitud != null) { analisisSolicitudElem.asignado = true; } analisisSolicitud.Add(analisisSolicitudElem); } } ViewBag.AnalisisSolicitud = analisisSolicitud; ViewBag.Analisis = analisis; return(View(procesosAnalista)); }
public bool Buscar() { try { SOLICITUD solicitud = conexion.Entidad.SOLICITUD .First(p => p.ID_SOLICITUD == Id); Id = solicitud.ID_SOLICITUD; Asunto = solicitud.ASUNTO; Mensaje = solicitud.MENSAJE; EstadoSolicitud = new EstadoSolicitud { Id = solicitud.ESTADO_SOLICITUD }; return(true); } catch (Exception ex) { Console.WriteLine(ex); return(false); } }
public ResponseData crearSolicitud(SOLICITUD solicitud) { ResponseData respuesta = new ResponseData(); if (solicitud != null) { solicitud.fechacreacion = DateTime.Now; solicitud.numerosolicitud = 0; this.context.SOLICITUD.Add(solicitud); this.context.SaveChanges(); respuesta.mensaje = "Solicitud creada con exito"; respuesta.resultado = "OK"; } else { respuesta.mensaje = "Llegaron datos nulos"; respuesta.resultado = "Fallo"; } return(respuesta); }
// GET: SOLICITUDES/Edit/5 public async Task <ActionResult> Edit(int?id) { if (Session["User"] != null) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SOLICITUD sOLICITUD = await db.SOLICITUD.FindAsync(id); if (sOLICITUD == null) { return(HttpNotFound()); } ViewBag.sede = new SelectList(db.SEDE, "id_sede", "sede_nombre", sOLICITUD.sede); ViewBag.tecnico = new SelectList(db.TECNICO, "id_tecnico", "tec_nom", sOLICITUD.tecnico); ViewBag.usuario = new SelectList(db.USUARIO, "id_usuario", "usu_nombre", sOLICITUD.usuario); return(View(sOLICITUD)); } return(RedirectToAction("index", "Home")); }
public ActionResult IniciarAnalisis(int idSolicitud) { SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); EMPLEADO empleado = this.empleado(); if (solicitud.DETALLE_SOLICITUD.First().ANALISIS_EMPLEADO.FirstOrDefault() == null) { return(Json(new { valid = false, msg = "No se han asignado trabajos a los analistas" })); } if (solicitud.VISITAs.Count() == 0) { return(Json(new { valid = false, msg = "La solicitud no tiene informacion de visita" })); } solicitud.id_estado_proceso = estadoIniciado; solicitud.fecha_inicio = DateTime.Now; List <PROCESO_ANALISTA> procesosAnalistas = db.PROCESO_ANALISTA.Where(pa => pa.solicitud_id == idSolicitud).ToList(); foreach (PROCESO_ANALISTA procesoAnalista in procesosAnalistas) { procesoAnalista.fecha_asignacion = DateTime.Now; procesoAnalista.id_estado_proceso_analista = estadoProcesoAnalistaAsignado; EMPLEADO empleadoReceptor = procesoAnalista.EMPLEADO; // enviar notificacion Notificacion notificacion = new Notificacion(empleado.id_empleado, "Se ha asignado trabajo para la solicitud " + solicitud.no_referencia + ".", "-", Url.Action("Administrar", "Analisis", new { idSolicitud = solicitud.id_solicitud })); notificacion.setReceptor(empleadoReceptor.id_empleado); notificacion.send(); } db.SaveChanges(); return(Json(new { valid = true })); }
public SOLICITUD crearSolicitud(int idSolicitante, byte idEmpleado) { var referencia = DateTime.Now.Year.ToString().Substring(2) + "-0000"; try { SOLICITUD lastSolicitud = db.SOLICITUDs.OrderByDescending(s => s.id_solicitud).First(); referencia = lastSolicitud.no_referencia; } catch (Exception e) { } var correlativo = Int32.Parse(referencia.Substring(3)) + 1; var year = Int32.Parse(referencia.Substring(0, 2)); var nowYear = Int32.Parse(DateTime.Now.Year.ToString().Substring(2)); if (year != nowYear) { correlativo = 1; year = nowYear; } SOLICITUD solicitud = new SOLICITUD(); solicitud.id_solicitante = idSolicitante; solicitud.id_empleado = idEmpleado; solicitud.id_estado = estadoAprobado; solicitud.id_estado_proceso = estadoEsperaVisita; solicitud.fecha_creacion = DateTime.Now; solicitud.no_referencia = year.ToString() + "-" + correlativo.ToString().PadLeft(4, '0'); solicitud.informe_generado = 0; db.SOLICITUDs.Add(solicitud); db.SaveChanges(); return(solicitud); }
public ActionResult CrearInforme(int idSolicitud) { Object result; SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); VISITA visita = solicitud.VISITAs.First(); try { if (solicitud.id_estado != 3 || (solicitud.id_estado_proceso != 4 && solicitud.id_estado_proceso != 6)) { throw new Exception("No puede generar reportes con los estados actuales de la solicitud"); } if (solicitud.id_estado_proceso == 6 && solicitud.fecha_finalizacion == null) { solicitud.fecha_finalizacion = DateTime.Now; } var tipo = "O"; if (solicitud.INFORMES.Count() > 0) { tipo = "R"; } var areas = solicitud.DETALLE_SOLICITUD.GroupBy(ds => ds.ANALISI.AREA).ToList(); List <string> areasInforme = new List <string>(); List <INFORME> informes = new List <INFORME>(); foreach (var area in areas) { if (area.Key.id_area < 4) { if (!areasInforme.Contains("FQAA")) { areasInforme.Add("FQAA"); } } else { if (!areasInforme.Contains("Bact")) { areasInforme.Add("Bact"); } } } foreach (string areaInforme in areasInforme) { List <Parametro> parametros = new List <Parametro>(); List <Resultado> resultados = new List <Resultado>(); foreach (DETALLE_VISITA detalleVisita in visita.DETALLE_VISITA) { Parametro parametro = new Parametro() { nombre = detalleVisita.MUESTRA.nombre_muestra, valor = detalleVisita.value.ToString(), expresado = detalleVisita.MUESTRA.expresado, }; parametros.Add(parametro); } IEnumerable <LaboratorioMarn.DETALLE_SOLICITUD> detallesSolicitud = solicitud.DETALLE_SOLICITUD.ToList(); foreach (DETALLE_SOLICITUD detalle in detallesSolicitud) { REPORTE reporte = detalle.ANALISIS_EMPLEADO.First().REPORTEs.First(); Resultado resultado = new Resultado() { analisis = detalle.ANALISI.nombre, resultado = reporte.resultado.ToString(), incerteza = reporte.incerteza.ToString(), unidades = reporte.unidades, limiteDeteccion = reporte.limite_deteccion.ToString(), metodo = detalle.ANALISI.metodo }; resultados.Add(resultado); } InformeSolicitud informeSolicitud = new InformeSolicitud() { tipo = tipo, numeroReferencia = solicitud.no_referencia, solicitante = solicitud.SOLICITANTE.nombre_solicitante, fechaInicio = solicitud.fecha_inicio.Value.ToShortDateString(), fechaFinalizacion = solicitud.fecha_finalizacion.Value.ToShortDateString(), direccion = visita.SITIO_MUESTREO.direccion_sitio, fechaTomaMuestra = visita.fecha_visita.Value.ToString(), fechaRecepcion = visita.fecha_entrega.Value.ToShortDateString(), responsableMuestra = visita.EMPLEADO.nombre_empleado, tipoMuestra = visita.TIPO_MUESTRA.nombre_tipo_muestra, procedencia = visita.PROCEDENCIA.nombre_procedencia, areas = areaInforme, fechaGeneracion = DateTime.Now.ToShortDateString(), Parametros = parametros, Resultados = resultados }; string informeJson = JsonConvert.SerializeObject(informeSolicitud); INFORME informe = new INFORME() { data = informeJson, fecha_creacion = DateTime.Now, tipo = tipo, id_solicitud = solicitud.id_solicitud, areas = areaInforme }; solicitud.INFORMES.Add(informe); informes.Add(informe); } solicitud.informe_generado = 1; solicitud.id_estado_proceso = 5; foreach (PROCESO_ANALISTA procesoAnalista in solicitud.PROCESO_ANALISTA) { procesoAnalista.id_estado_proceso_analista = 6; } db.SaveChanges(); List <int> informesIds = new List <int>(); foreach (INFORME informe in informes) { informesIds.Add(informe.id_informe); } result = new { valid = true, informes = informesIds }; } catch (Exception e) { result = new { valid = false, msg = e.Message }; } return(Json(result)); }
public ActionResult GuardarAsignacion() { Stream req = Request.InputStream; req.Seek(0, System.IO.SeekOrigin.Begin); string json = new StreamReader(req).ReadToEnd(); var dbTransaction = db.Database.BeginTransaction(); Object result; try { EMPLEADO empleado = this.empleado(); JObject input = (JObject)JsonConvert.DeserializeObject(json); int idSolicitud = input.GetValue("idSolicitud").ToObject <int>(); var empleados = input.GetValue("empleados"); SOLICITUD solicitud = db.SOLICITUDs.Find(idSolicitud); List <EmpleadoSeleccion> empleadosSeleccion = getEmpleadosSeleccion(empleados); List <int> analisisSolicitud = new List <int>(); foreach (EmpleadoSeleccion empleadoSeleccion in empleadosSeleccion) { List <Int32> analisisList = empleadoSeleccion.analisis; for (var i = 0; i < analisisList.Count(); i++) { analisisSolicitud.Add(analisisList[i]); ANALISI analisis = db.ANALISIS.Find(analisisList[i]); IEnumerable <DETALLE_SOLICITUD> detalles = solicitud.DETALLE_SOLICITUD; DETALLE_SOLICITUD detalleSolicitud; if (detalles.Where(d => d.id_analisis == analisis.id_analisis).Count() == 1) { detalleSolicitud = detalles.Where(d => d.id_analisis == analisis.id_analisis).First(); } else { detalleSolicitud = new DETALLE_SOLICITUD() { id_solicitud = solicitud.id_solicitud, id_analisis = analisis.id_analisis }; db.DETALLE_SOLICITUD.Add(detalleSolicitud); db.SaveChanges(); } ANALISIS_EMPLEADO analisisEmpleado; if (detalleSolicitud.ANALISIS_EMPLEADO.Count() == 1) { analisisEmpleado = detalleSolicitud.ANALISIS_EMPLEADO.First(); analisisEmpleado.id_empleado = empleadoSeleccion.idEmpleado; } else { analisisEmpleado = new ANALISIS_EMPLEADO() { id_detalle_solicitud = detalleSolicitud.id_detalle_solicitud, id_empleado = empleadoSeleccion.idEmpleado }; db.ANALISIS_EMPLEADO.Add(analisisEmpleado); db.SaveChanges(); } } if (analisisList.Count() > 0) { PROCESO_ANALISTA procesoAnalista; if (db.PROCESO_ANALISTA.Where(pa => pa.empleado_id == empleadoSeleccion.idEmpleado).Count() > 1) { procesoAnalista = db.PROCESO_ANALISTA.Where(pa => pa.empleado_id == empleadoSeleccion.idEmpleado).First(); procesoAnalista.cantidad_analisis = (byte)analisisList.Count(); } else { procesoAnalista = new PROCESO_ANALISTA { solicitud_id = solicitud.id_solicitud, empleado_id = empleadoSeleccion.idEmpleado, cantidad_analisis = (byte)analisisList.Count() }; db.PROCESO_ANALISTA.Add(procesoAnalista); } db.SaveChanges(); } List <DETALLE_SOLICITUD> detallesToRemove = db.DETALLE_SOLICITUD.Where(ds => ds.id_solicitud == solicitud.id_solicitud && !analisisSolicitud.Contains(ds.id_analisis)).ToList(); foreach (DETALLE_SOLICITUD detalleToRemove in detallesToRemove) { db.DETALLE_SOLICITUD.Remove(detalleToRemove); } db.SaveChanges(); } dbTransaction.Commit(); result = new { isValid = true, id = solicitud.id_solicitud }; } catch (Exception e) { dbTransaction.Rollback(); var msg = e.Message; result = new { isValid = false, msg = msg }; } return(Json(result)); }
public ActionResult CreateVisitas(VISITA visita, int solicitud, int cantidad_muestras) { GRUPO_SOLICITUD grupoSolicitud = db.GRUPO_SOLICITUD.Find(solicitud); List <Int32> referencia = this.numeroReferencia(); var dbTransaction = db.Database.BeginTransaction(); Object result; try { Int32 correlativo = referencia.ElementAt(0); for (var i = 0; i < cantidad_muestras; i++) { SOLICITUD newSolicitud = new SOLICITUD(); newSolicitud.fecha_creacion = DateTime.Now; newSolicitud.id_empleado = this.empleado().id_empleado; newSolicitud.id_estado = 1; newSolicitud.id_estado_proceso = 1; newSolicitud.no_referencia = referencia.ElementAt(1).ToString() + "-" + correlativo.ToString().PadLeft(4, '0'); newSolicitud.id_solicitante = grupoSolicitud.SOLICITANTE.id_solicitante; newSolicitud.informe_generado = 0; db.SOLICITUDs.Add(newSolicitud); db.SaveChanges(); visita.id_solicitud = newSolicitud.id_solicitud; visita.id_grupo_solicitud = solicitud; var horaEntrega = Request.Form["hora_entrega"]; var horasEntrega = Int32.Parse(horaEntrega.Substring(0, 2)); var minutosEntrega = Int32.Parse(horaEntrega.Substring(3, 2)); var fechaEntrega = visita.fecha_entrega.Value.ToShortDateString(); visita.fecha_entrega = new DateTime(Int32.Parse(fechaEntrega.Substring(6, 4)), Int32.Parse(fechaEntrega.Substring(3, 2)), Int32.Parse(fechaEntrega.Substring(0, 2)), horasEntrega, minutosEntrega, 0); if (visita.lat == null) { SITIO_MUESTREO sitio = db.SITIO_MUESTREO.Find(visita.id_sitio_muestreo); visita.lat = sitio.lat; visita.lng = sitio.lng; } db.VISITAs.Add(visita); db.SaveChanges(); foreach (var id in grupoSolicitud.preset.Split(',')) { int analisis = Int32.Parse(id); DETALLE_SOLICITUD detalle = new DETALLE_SOLICITUD(); detalle.id_analisis = analisis; detalle.id_solicitud = newSolicitud.id_solicitud; db.DETALLE_SOLICITUD.Add(detalle); } db.SaveChanges(); correlativo++; } dbTransaction.Commit(); result = new { isValid = true }; } catch (Exception e) { dbTransaction.Rollback(); var msg = e.Message; result = new { isValid = false, msg = msg }; } return(Json(result)); }