コード例 #1
0
        public ActionResult Index()
        {
            FechaInicioFin model = new FechaInicioFin();

            model.Inicio = DateTime.Now.Date;
            model.Fin    = DateTime.Now.Date.AddDays(1);
            return(View(model));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }