public ActionResult Create(string id, [Bind(Include = "VARClave,VAVClave,Descripcion,Estatus,MFechaHora,MUsuarioId")] VARValor valor) { ValorReferencia valorReferencia = db.ValorReferencia.Find(id); valor.MFechaHora = DateTime.Now; valor.MUsuarioId = System.Web.HttpContext.Current.User.Identity.Name; if (ModelState.IsValid) { db.VARValor.Add(valor); db.SaveChanges(); Metodos.RegistrarLog(new Log { Modulo = "ValorReferencia", Accion = "Insertar", Detalle = "ValorCreado: " + valor.VARClave + " " + valor.Descripcion }); TempData["MensajeClase"] = "alert-success"; TempData["Mensaje"] = "Cambios guardados correctamente."; } else { TempData["MensajeClase"] = "alert-danger"; TempData["Mensaje"] = "Hubo un error al intentar guardar los cambios, porfavor intente nuevamente."; } return(PartialView("_Valores", valorReferencia)); }
public ActionResult ProgramarAuditor(DateTime fecha, int zona, string auditor, int PROId) { var evaluaciones = db.Evaluacion.Where(e => e.PROId == PROId && e.Zona == zona.ToString() && e.Estatus == "NA").ToList(); if (evaluaciones.Count > 0) { ValorReferencia valorReferencia = db.ValorReferencia.Find("PARAMETROS"); var tiendasPorDia = int.Parse(valorReferencia.VARValor.Where(v => v.VAVClave == "TIENDAXDIA").FirstOrDefault().Descripcion); for (int i = 0; i < tiendasPorDia; i++) { if (evaluaciones.Count > 0) { var evaluacion = GetEvaluacionRandom(ref evaluaciones); evaluacion.Auditor = auditor; evaluacion.Estatus = "P"; evaluacion.FechaEvaluacion = fecha; db.Entry(evaluacion).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); Metodos.RegistrarLog(new Log { Modulo = "Evaluación", Accion = "Actualizar", Detalle = "Tienda: " + evaluacion.NombreTienda + " auditor:" + evaluacion.Auditor + " programación:" + evaluacion.PROId }); } else { return(Json(true)); } } return(Json(true)); } return(Json(false)); }
public static List <VARValor> IndicadoresValores(string id) { ICAEntities db = new ICAEntities(); ValorReferencia valorReferencia = db.ValorReferencia.Find(id); return(valorReferencia.VARValor.Where(v => v.Estatus == "A").ToList()); }
public ActionResult Create(string id) { ViewBag.EstatusList = Helpers.ComboLista("ESTATUS"); ValorReferencia valorReferencia = db.ValorReferencia.Find(id); return(PartialView("_CrearValor", valorReferencia)); }
public ActionResult Edit(Criterio criterio) { if (ModelState.IsValid) { if ((criterio.Condicionante == true && criterio.CRTId_Cond != null) || criterio.Condicionante == false) { if (criterio.Condicionante == false) { criterio.CRTId_Cond = null; } criterio.MFechaHora = DateTime.Now; criterio.MUsuarioId = System.Web.HttpContext.Current.User.Identity.Name; db.Entry(criterio).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); Metodos.RegistrarLog(new Log { Modulo = "Criterios", Accion = "Actualizar", Detalle = "Criterio modificado: " + criterio.Nombre + " " + criterio.Estatus }); if (!string.IsNullOrEmpty(criterio.ValorReferencia)) { var existe = db.ValorReferencia.Where(va => va.VARClave.Equals(criterio.ValorReferencia)).Count(); if (existe == 0) { ValorReferencia valor = new ValorReferencia { VARClave = criterio.ValorReferencia, Modificable = 1, MFechaHora = DateTime.Now, MUsuarioId = System.Web.HttpContext.Current.User.Identity.Name }; db.ValorReferencia.Add(valor); db.SaveChanges(); Metodos.RegistrarLog(new Log { Modulo = "ValorReferencia", Accion = "Insertar", Detalle = "ValorCreado: " + valor.VARClave + " " + valor.Descripcion }); } } TempData["MensajeClase"] = "alert-success"; TempData["Mensaje"] = "Cambios guardados correctamente."; return(Json(true)); } else { TempData["MensajeClase"] = "alert-danger"; TempData["Mensaje"] = "Seleccione el criterio condicionante"; return(Json(false)); } } TempData["MensajeClase"] = "alert-danger"; TempData["Mensaje"] = "Hubo un error al intentar guardar los cambios, porfavor intente nuevamente."; return(Json(false)); }
public ActionResult Details(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ValorReferencia valorReferencia = db.ValorReferencia.Find(id); if (valorReferencia == null) { return(HttpNotFound()); } return(PartialView("_Valores", valorReferencia)); }
public ActionResult Crear(int anio, int mes) { //Verificar que no exista esa programacion var existe = db.Programacion.Where(p => p.Mes == mes && p.Anio == anio).ToList(); if (existe.Count == 0) { ValorReferencia valorReferencia = db.ValorReferencia.Find("PARAMETROS"); var dias = int.Parse(valorReferencia.VARValor.Where(v => v.VAVClave == "DIASPROG").FirstOrDefault().Descripcion); //Crear programacion DateTime fechaMes = new DateTime(anio, mes, 1); DateTime fechaRangoPermitido = fechaMes.AddDays(-dias); DateTime hoy = DateTime.Today; if (hoy > fechaRangoPermitido || hoy.Month == fechaMes.Month) { string[] meses = new string[] { "ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC" }; var prog = guardarProgramacion(meses[mes - 1] + anio.ToString(), mes, anio); var responseZonas = Metodos.PeticionICA("subzonas", null); var subzonas = Metodos.convertirStringASubzona(responseZonas); var responseTienda = Metodos.PeticionICA("tienda", null); var tiendas = Metodos.convertirStringATiendaZona(responseTienda); int[] tiendasEnZonas = new int[subzonas.Count() + 1]; int[] m1 = new int[subzonas.Count() + 1], m2 = new int[subzonas.Count() + 1], m3 = new int[subzonas.Count() + 1]; int totalTiendasGlobal = tiendas.Count(); int muestraGlobal = obtenerCantidadMuestra(totalTiendasGlobal); List <MuestraZona> muestrasZonasDecimales = new List <MuestraZona>(); int acumuladoMuestrasZonas = 0; //Contabiliza las tiendas por zona foreach (var tienda in tiendas) { tiendasEnZonas[tienda.ClaveSubzona]++; } //Calcula la cantidad de muestra por zona for (int i = 1; i < tiendasEnZonas.Length; i++) { double muestra = obtenerCantidadMuestraPorZona(tiendasEnZonas[i], muestraGlobal, totalTiendasGlobal); var temp = new MuestraZona { Zona = i, muestraSinRedondear = muestra, muestraRedondeada = int.Parse(Math.Round(muestra).ToString()), decimales = muestra - Math.Truncate(muestra), tiendas = tiendasEnZonas[i] }; muestrasZonasDecimales.Add(temp); acumuladoMuestrasZonas += temp.muestraRedondeada; } //Obtiene la diferencia si es que hay que realizar ajuste int diferencia = ajustarMuestras(muestraGlobal, acumuladoMuestrasZonas, ref muestrasZonasDecimales); int contador = 0; bool ajusteHaciaArriba = false; if (muestraGlobal > acumuladoMuestrasZonas) { ajusteHaciaArriba = true; } foreach (var item in muestrasZonasDecimales) { //Si se debe realizar ajuste lo realiza if (contador < diferencia) { if (ajusteHaciaArriba == true && item.decimales < 0.5) { item.muestraRedondeada = item.muestraRedondeada + 1; contador++; } else if (ajusteHaciaArriba == false && item.decimales > 0.5) { item.muestraRedondeada = item.muestraRedondeada - 1; contador++; } } var pz = guardarProgramacionZona(prog, item.Zona.ToString(), item.tiendas, item.muestraRedondeada); } //Calcula las tiendas por mes segun la muestra de la zona for (int i = 1; i < subzonas.Count() + 1; i++) { var zona = muestrasZonasDecimales.Where(z => z.Zona == i).FirstOrDefault(); m1[i] = int.Parse(Math.Round(Double.Parse(zona.muestraRedondeada.ToString()) / 3).ToString()); if (zona.muestraRedondeada - m1[i] > m1[i]) { m2[i] = m1[i]; m3[i] = zona.muestraRedondeada - (m1[i] + m2[i]); } else { m2[i] = zona.muestraRedondeada - m1[i]; m3[i] = 0; } if (zona.muestraRedondeada - m1[i] == 0) { m2[i] = 0; m3[i] = 0; } } var mes1 = fechaMes.AddMonths(-1); var mes2 = fechaMes.AddMonths(-2); var mes3 = fechaMes.AddMonths(-3); var faltante = 0; //Genera las evaluaciones por mes de cada zona for (int i = 1; i < subzonas.Count() + 1; i++) { faltante = generarMuestrasPorMes(mes1, m1, anio, i, prog, 0); faltante = generarMuestrasPorMes(mes2, m2, anio, i, prog, faltante); faltante = generarMuestrasPorMes(mes3, m3, anio, i, prog, faltante); var pz = db.ProgramacionZona.Find(prog.PROId, i.ToString()); pz.Real = pz.Requerido - faltante; db.Entry(pz).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } return(Json(new { estatus = true })); } return(Json(new { estatus = false, dias = dias })); } return(Json(new { estatus = false })); }