public ActionResult Administrar(int id) { GRUPO_SOLICITUD solicitud = db.GRUPO_SOLICITUD.Find(id); ViewBag.solicitud = solicitud; return(View()); }
public ActionResult Guardar(string idSolicitante) { SOLICITANTE solicitante = db.SOLICITANTEs.Find(Int32.Parse(idSolicitante)); GRUPO_SOLICITUD grupoSolicitud = new GRUPO_SOLICITUD(); var fechaSolicitud = Request.Form["fecha_solicitud"]; grupoSolicitud.preset = Request.Form["checkAnalisis[]"]; grupoSolicitud.id_solicitante = solicitante.id_solicitante; grupoSolicitud.fecha_creacion = DateTime.Now; grupoSolicitud.fecha_solicitud = new DateTime(Int32.Parse(fechaSolicitud.Substring(0, 4)), Int32.Parse(fechaSolicitud.Substring(5, 2)), Int32.Parse(fechaSolicitud.Substring(8, 2))); grupoSolicitud.identificador = Request.Form["identificador"]; db.GRUPO_SOLICITUD.Add(grupoSolicitud); db.SaveChanges(); return(Json(new { isValid = true, id = grupoSolicitud.id_grupo_solicitud })); }
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)); }
public ActionResult EditarVisitaPost(VISITA visita, string visitaId, int cantidad_muestras) { IEnumerable <VISITA> visitas = db.VISITAs.Where(v => v.id == visitaId).OrderByDescending(v => v.id_visita); Object result; var dbTransaction = db.Database.BeginTransaction(); try { var countVisitas = visitas.Count(); List <Int32> referencia = this.numeroReferencia(); if (cantidad_muestras > countVisitas) { Int32 correlativo = referencia.ElementAt(0); GRUPO_SOLICITUD grupoSolicitud = visitas.First().GRUPO_SOLICITUD; for (var i = 0; i < (cantidad_muestras - countVisitas); i++) { // crear visitas y solicitudes(muestras) 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 = grupoSolicitud.id_grupo_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++; } } else if (cantidad_muestras < countVisitas) { // verificar que el estado de las solicitudes sea 1 var toDelete = countVisitas - cantidad_muestras; foreach (VISITA visitaToDelete in visitas) { if (toDelete == 0) { break; } if (visitaToDelete.SOLICITUD.id_estado == 1) { toDelete--; SOLICITUD solicitudToRemove = visitaToDelete.SOLICITUD; if (visitaToDelete.DETALLE_VISITA.Count() > 0) { foreach (DETALLE_VISITA detalleVisita in visitaToDelete.DETALLE_VISITA.ToList()) { db.DETALLE_VISITA.Remove(detalleVisita); } } db.VISITAs.Remove(visitaToDelete); if (solicitudToRemove.DETALLE_SOLICITUD.Count() > 0) { foreach (DETALLE_SOLICITUD detalle in solicitudToRemove.DETALLE_SOLICITUD.ToList()) { if (detalle.ANALISIS_EMPLEADO.FirstOrDefault() != null) { db.ANALISIS_EMPLEADO.Remove(detalle.ANALISIS_EMPLEADO.FirstOrDefault()); } db.DETALLE_SOLICITUD.Remove(detalle); } } db.SOLICITUDs.Remove(solicitudToRemove); } } if (toDelete > 0) { throw new Exception("No es posible disminuir el numero de muestras ya que no hay suficientes con estado 'Pendiente'"); } } db.SaveChanges(); visitas = db.VISITAs.Where(v => v.id == visitaId); foreach (VISITA visitaUpdate in visitas) { visitaUpdate.fecha_visita = visita.fecha_visita; 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(); visitaUpdate.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); visitaUpdate.id_procedencia = visita.id_procedencia; visitaUpdate.id_empleado = visita.id_empleado; visitaUpdate.id_empleado_entrega = visita.id_empleado_entrega; visitaUpdate.id_sitio_muestreo = visita.id_sitio_muestreo; visitaUpdate.id_tipo_muestra = visita.id_tipo_muestra; visitaUpdate.id = visita.id; } db.SaveChanges(); dbTransaction.Commit(); result = new { isValid = true }; } catch (Exception e) { dbTransaction.Rollback(); var msg = e.Message; result = new { isValid = false, msg = msg }; } return(Json(result)); }