public ActionResult Index() { FechaInicioFin model = new FechaInicioFin(); model.Inicio = DateTime.Now.Date; model.Fin = DateTime.Now.Date.AddDays(1); return(View(model)); }
public ActionResult Reporte(FechaInicioFin model) { DateTime fechaFin = model.Fin; fechaFin = fechaFin.AddDays(1); DateTime fechaInicio = model.Inicio; var primerDiaDelAnio = new DateTime(DateTime.Now.Year, 1, 1); var workCenters = db.WorkCenters.ToList(); var desperdicios = db.Desperdicios.Where(x => (x.Fecha >= fechaInicio && x.Fecha <= fechaFin)).ToList(); var objetivos = db.ObjetivosCRR.Select(x => x).Where(x => (x.FechaInicial >= primerDiaDelAnio)).ToList(); var volumenes = db.VolumenesDeProduccion.Where(x => (x.Fecha <= fechaFin && x.Fecha >= fechaInicio)).ToList(); IList <CRRPorWorkCenter> listadelistas = new List <CRRPorWorkCenter>(); foreach (var item in workCenters) { CRRPorWorkCenter crrPorWorkCenter = new CRRPorWorkCenter(); crrPorWorkCenter.WorkCenter = item; var desperdicioTotal = desperdicios .Where(x => (x.IdWorkCenter == item.Id)) .GroupBy(rd => rd.Code_FA, rd => rd.Cantidad, (code, cant) => new DesperdicioView { Code_FA = code, Cantidad = cant.Sum() }) .ToList(); var VolumenesTotal = volumenes .Where(x => (x.IdWorkCenter == item.Id)) .GroupBy(rd => rd.Code_FA, rd => rd.New_Qty, (code, cant) => new DesperdicioView { Code_FA = code, Cantidad = Math.Round((desperdicios.Where(d => d.Code_FA == code && d.IdWorkCenter == item.Id).Select(d => d.Cantidad).Sum() / (cant.Sum() * 1000)), 2) }) .ToList(); crrPorWorkCenter.Desperdicio = new List <DesperdicioView>(); crrPorWorkCenter.Desperdicio = VolumenesTotal; listadelistas.Add(crrPorWorkCenter); } return(PartialView(listadelistas)); }
public ActionResult PopulateAtomFeed(FechaInicioFin model) { string atomFeedUrl = ConfigurationManager.AppSettings["AtomFeedUrl"]; List <AtomFeedView> feeds = new List <AtomFeedView>(); XmlTextReader reader = new XmlTextReader(atomFeedUrl); SyndicationFeed feed = SyndicationFeed.Load(reader); if (feed != null) { feeds.AddRange(feed.Items.Select(i => new AtomFeedView { Title = i.Title.Text, PublishDate = i.PublishDate.DateTime.ToUniversalTime().ToString(CultureInfo.InvariantCulture), Description = ((TextSyndicationContent)(i.Content)).Text })); } return(PartialView(feeds)); }
public ActionResult Reporte(FechaInicioFin model) { DateTime fechaFin = model.Fin; fechaFin = fechaFin.AddDays(1); DateTime fechaInicio = model.Inicio; var primerDiaDelAnio = new DateTime(DateTime.Now.Year, 1, 1); var diferencia = fechaFin - fechaInicio; var workCenters = db.WorkCenters.ToList(); var volumenes = db.VolumenesDeProduccion.Where(x => (x.Fecha >= fechaInicio && x.Fecha <= fechaFin)).ToList(); var objetivos = db.ObjetivosPlanAttainment.Select(x => x).Where(x => (x.FechaInicial >= primerDiaDelAnio)).ToList(); IList <VolumenDeProduccionPorWorkCenterView> listadelistas = new List <VolumenDeProduccionPorWorkCenterView>(); foreach (var item in workCenters) { IList <PlanAttainmentView> cumplimientiAlPlan = new List <PlanAttainmentView>(); VolumenDeProduccionPorWorkCenterView planPorWorkCenter = new VolumenDeProduccionPorWorkCenterView(); planPorWorkCenter.WorkCenter = item; for (int i = 0; i <= diferencia.Days; i++) { Double planTotal = volumenes.Where(x => (x.IdWorkCenter == item.Id) && (x.Fecha.Date == fechaInicio.AddDays(i).Date)).Sum(o => o.New_Qty) * 1000; Double objetivo = objetivos.Where(x => (x.IdWorkCenter == item.Id) && (x.FechaInicial <= fechaInicio.AddDays(i).Date)).OrderByDescending(x => x.FechaInicial).Select(x => x.Objetivo).FirstOrDefault(); cumplimientiAlPlan.Add(new PlanAttainmentView { Fecha = fechaInicio.AddDays(i), Plan_Attainment_Total = planTotal, Objetivo = objetivo }); } planPorWorkCenter.PlanesDeProduccion = new List <PlanAttainmentView>(); planPorWorkCenter.PlanesDeProduccion.AddRange(cumplimientiAlPlan); listadelistas.Add(planPorWorkCenter); } return(PartialView(listadelistas)); }
public ActionResult Upload(FechaInicioFin model, HttpPostedFileBase file) { if (ModelState.IsValid) { if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { string fileName = file.FileName; string fileContentType = file.ContentType; byte[] fileBytes = new byte[file.ContentLength]; var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); //var aliasWorkCenter = db.Alias.Include(w => w.WorkCenters).ToList(); var wcs = db.WorkCenters.ToList(); var codes = db.Marcas.ToList(); var planes = new List <PlanDeProduccion>(); using (var package = new ExcelPackage(file.InputStream)) { PersonaServicio personaServicio = new PersonaServicio(); IRespuestaServicio <Persona> persona = personaServicio.GetPersona(User.Identity.GetUserId()); var currentSheet = package.Workbook.Worksheets; foreach (var workSheet in currentSheet) { var noOfCol = workSheet.Dimension.End.Column; var noOfRow = workSheet.Dimension.End.Row; for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++) { if (workSheet.Cells[rowIterator, 1].Value != null && workSheet.Cells[rowIterator, 1].Value.ToString() != "") { var str = workSheet.Cells[rowIterator, 7].Value.ToString().Trim(); var wc = str.Substring(str.Length - 2, 2); var idWorkCenter = wcs.Where(w => w.NombreCorto == wc).Select(w => w.Id).FirstOrDefault(); if (idWorkCenter != null && idWorkCenter > 0) { string code_FA = workSheet.Cells[rowIterator, 3].Value.ToString().Trim(); code_FA = code_FA.Replace(" ", ""); var codeExist = codes.Where(w => w.Code_FA == code_FA).Select(w => w.Code_FA).Count(); if (codeExist > 0) { var planDeProduccion = new PlanDeProduccion(); planDeProduccion.IdUploader = persona.Respuesta.Id; planDeProduccion.FechaSubida = DateTime.Now; planDeProduccion.Code_FA = code_FA; planDeProduccion.Codigo = workSheet.Cells[rowIterator, 1].Value.ToString().Trim(); planDeProduccion.Cantidad = Convert.ToDouble(workSheet.Cells[rowIterator, 8].Value.ToString().Trim()); planDeProduccion.Activo = true; planDeProduccion.ClaseDeOrden = workSheet.Cells[rowIterator, 16].Value.ToString().Trim(); planDeProduccion.Inicio = model.Inicio; planDeProduccion.Fin = model.Fin; planDeProduccion.FechaSubida = DateTime.Now; planDeProduccion.IdWorkCenter = idWorkCenter; planes.Add(planDeProduccion); } } } } } db.PlanDeProduccion.AddRange(planes); db.SaveChanges(); return(RedirectToAction("Index")); } } else { TempData["CustomError"] = "Sube un archivo por favor!!."; return(View(model)); } } return(View(model)); }
public ActionResult ReporteAnual(FechaInicioFin model) { DateTime fechaFin = model.Fin; fechaFin = fechaFin.AddDays(1); DateTime fechaInicio = model.Inicio; var primerDiaDelAnio = new DateTime(DateTime.Now.Year, 1, 1); var businessUnits = db.BussinesUnits.ToList(); var desperdicios = db.Desperdicios.Where(x => (x.Fecha >= fechaInicio && x.Fecha <= fechaFin)).ToList(); var objetivos = db.ObjetivosCRR.Select(x => x).Where(x => (x.FechaInicial >= primerDiaDelAnio)).ToList(); var volumenes = db.VolumenesDeProduccion.Include(x => x.WorkCenter).Where(x => (x.Fecha <= fechaFin && x.Fecha >= fechaInicio)).ToList(); var planes = db.PlanDeProduccion.Where(x => (x.Inicio <= fechaInicio && x.Fin >= fechaFin)).ToList(); IList <CRRPorBusinessUnit> listaBU = new List <CRRPorBusinessUnit>(); foreach (var businessUnit in businessUnits) { CRRPorBusinessUnit crrPorBusinessUnit = new CRRPorBusinessUnit(); crrPorBusinessUnit.BusinessUnit = businessUnit; var workCenters = db.WorkCenters.Where(w => (w.IdBussinesUnit == businessUnit.Id)).ToList(); var VolumenesBU = volumenes .Where(x => (x.WorkCenter.IdBussinesUnit == businessUnit.Id)) .GroupBy(rd => rd.Code_FA, rd => rd.New_Qty, (code, cant) => new ReporteTotalView { Code_FA = code, CRR = Math.Round((desperdicios.Where(d => d.Code_FA == code && d.WorkCenter.IdBussinesUnit == businessUnit.Id).Select(d => d.Cantidad).Sum() / (cant.Sum() * 1000)), 2), PlanProduccion = Math.Round((planes.Where(d => d.Code_FA == code && d.WorkCenterEfectivo.IdBussinesUnit == businessUnit.Id).Select(d => d.Cantidad).Sum()), 2), VolumenProduccion = Math.Round(cant.Sum() * 1000, 2) }) .ToList(); IList <CRRPorWorkCenter> listadelistas = new List <CRRPorWorkCenter>(); foreach (var item in workCenters) { CRRPorWorkCenter crrPorWorkCenter = new CRRPorWorkCenter(); crrPorWorkCenter.WorkCenter = item; var VolumenesTotal = volumenes .Where(x => (x.IdWorkCenter == item.Id)) .GroupBy(rd => rd.Code_FA, rd => rd.New_Qty, (code, cant) => new ReporteTotalView { Code_FA = code, CRR = Math.Round((desperdicios.Where(d => d.Code_FA == code && d.IdWorkCenter == item.Id).Select(d => d.Cantidad).Sum() / (cant.Sum() * 1000)), 2), PlanProduccion = Math.Round((planes.Where(d => d.Code_FA == code && d.IdWorkCenter == item.Id).Select(d => d.Cantidad).Sum()), 2), VolumenProduccion = Math.Round(cant.Sum() * 1000, 2) }) .ToList(); crrPorWorkCenter.Valores = new List <ReporteTotalView>(); crrPorWorkCenter.Valores = VolumenesTotal; listadelistas.Add(crrPorWorkCenter); } crrPorBusinessUnit.Valores = new List <ReporteTotalView>(); crrPorBusinessUnit.Valores = VolumenesBU; crrPorBusinessUnit.ValoresWorkCenters = new List <CRRPorWorkCenter>(); crrPorBusinessUnit.ValoresWorkCenters = listadelistas; listaBU.Add(crrPorBusinessUnit); } return(PartialView(listaBU)); }