Ejemplo n.º 1
0
        public JsonResult GetVentaSemanaActualOrganizacion(string parametro)
        {
            int idOrganizacion = ((DO_Persona)Session["UsuarioConectado"]).idOrganizacion;

            DO_Semana semanaActual = DataManager.GetSemanaActual();

            List <FO_Item> lista = DataManager.GetVentaSemanalOrganizacionBySemanaByCompania(idOrganizacion, semanaActual.IdSemana);

            var jsonResult = Json(lista, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
Ejemplo n.º 2
0
        public JsonResult GetSemanaActual(string parametro)
        {
            DO_Semana semana = DataManager.GetSemanaActual();

            double numDia = Convert.ToDouble((int)DateTime.Now.DayOfWeek);

            semana.PctDia = Math.Round(numDia / 7.0 * 100.0, 0);

            var jsonResult = Json(semana, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
Ejemplo n.º 3
0
        public JsonResult GetDepositosByCompania(int idUsuario)
        {
            List <DO_Deposito> do_Depositos = new List <DO_Deposito>();

            DO_Semana semanaActual = DataManager.GetSemanaActual();

            do_Depositos = DataManager.GetDepositosPorWeek(idUsuario, semanaActual.IdSemana);

            var jsonResult = Json(do_Depositos, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
Ejemplo n.º 4
0
        public ActionResult BajarArchivo(int idSemana)
        {
            DO_Persona        personaConectada = ((DO_Persona)Session["UsuarioConectado"]);
            DO_Compania       compania         = DataManager.GetCompania(personaConectada.idCompania);
            List <DO_Almacen> almacens         = DataManager.GetAllAlmacen(compania.IdCompania);

            string     path       = Server.MapPath("~/assets/files/formatoreportesemanal.xlsx");
            SLDocument sLDocument = new SLDocument(path, "Reporte");

            List <DO_Deposito> depositos = new List <DO_Deposito>();

            depositos = DataManager.GetDepositosPorWeek(personaConectada.idUsuario, idSemana);

            List <DO_Movimiento> entradas = new List <DO_Movimiento>();

            entradas = DataManager.GetMovimientoEntradasPorWeek(personaConectada.idCompania, idSemana);

            List <DO_Movimiento> salidas = new List <DO_Movimiento>();

            salidas = DataManager.GetMovimientoSalidasPorWeek(personaConectada.idCompania, idSemana);

            List <DO_Ventas> ventas = new List <DO_Ventas>();

            ventas = DataManager.GetListVentaPorSemana(personaConectada.idUsuario, idSemana);

            DO_Semana dO_Semana  = DataManager.GetSemana(idSemana);
            string    rangoFecha = dO_Semana.SFechaInicial + " a " + dO_Semana.SFechaFinal;

            List <DO_ReporteSemanal> dO_Reportes = new List <DO_ReporteSemanal>();

            List <DO_Movimiento> movimientosEntradas = new List <DO_Movimiento>();

            movimientosEntradas = DataManager.GetAllEntradas(almacens[0].idAlmacen, idSemana);

            //Entradas
            foreach (DO_Movimiento entrada in entradas)
            {
                if (dO_Reportes.Where(x => x.IdArticulo == entrada.IdArticulo).ToList().Count > 0)
                {
                    DO_ReporteSemanal reporteSemanal = dO_Reportes.Where(x => x.IdArticulo == entrada.IdArticulo).FirstOrDefault();
                    int index = dO_Reportes.IndexOf(reporteSemanal);

                    dO_Reportes[index].Entradas += entrada.Cantidad;
                    dO_Reportes[index].Origen   += entrada.BodegaDestino + "(" + entrada.Cantidad + ") ";
                }
                else
                {
                    DO_ReporteSemanal reporteSemanal = new DO_ReporteSemanal();

                    reporteSemanal.NombreArticulo = entrada.Nombre;
                    reporteSemanal.Entradas       = entrada.Cantidad;
                    reporteSemanal.Origen         = entrada.BodegaDestino + "(" + entrada.Cantidad + ") ";
                    reporteSemanal.IdArticulo     = entrada.IdArticulo;

                    dO_Reportes.Add(reporteSemanal);
                }
            }

            //Salidas
            foreach (DO_Movimiento salida in salidas)
            {
                if (dO_Reportes.Where(x => x.IdArticulo == salida.IdArticulo).ToList().Count > 0)
                {
                    DO_ReporteSemanal reporteSemanal = dO_Reportes.Where(x => x.IdArticulo == salida.IdArticulo).FirstOrDefault();
                    int index = dO_Reportes.IndexOf(reporteSemanal);

                    dO_Reportes[index].Salidas += salida.Cantidad;
                    dO_Reportes[index].Destino += salida.BodegaDestino + "(" + salida.Cantidad + ") ";
                }
                else
                {
                    DO_ReporteSemanal reporteSemanal = new DO_ReporteSemanal();

                    reporteSemanal.NombreArticulo = salida.Nombre;
                    reporteSemanal.Salidas        = salida.Cantidad;
                    reporteSemanal.Destino        = salida.BodegaDestino + "(" + salida.Cantidad + ") ";
                    reporteSemanal.IdArticulo     = salida.IdArticulo;

                    dO_Reportes.Add(reporteSemanal);
                }
            }

            //Ventas
            foreach (var venta in ventas)
            {
                if (dO_Reportes.Where(x => x.IdArticulo == venta.IdArticulo).ToList().Count > 0)
                {
                    DO_ReporteSemanal reporteSemanal = dO_Reportes.Where(x => x.IdArticulo == venta.IdArticulo).FirstOrDefault();
                    int index = dO_Reportes.IndexOf(reporteSemanal);

                    dO_Reportes[index].ArticulosVendidos += venta.Cantidad;
                }
                else
                {
                    DO_ReporteSemanal reporteSemanal = new DO_ReporteSemanal();

                    reporteSemanal.NombreArticulo    = venta.Nombre;
                    reporteSemanal.IdArticulo        = venta.IdArticulo;
                    reporteSemanal.ArticulosVendidos = venta.Cantidad;

                    dO_Reportes.Add(reporteSemanal);
                }
            }

            //PRECIO
            foreach (DO_ReporteSemanal item in dO_Reportes)
            {
                double costo = DataManager.GetArticulo(item.IdArticulo).PRECIO_MASTER;

                item.CostoUnitario = costo;
            }

            //Inventario inicial

            List <FO_Item> existencias = DataManager.GetCorteExistencia(idSemana, almacens[0].idAlmacen);

            foreach (var item in dO_Reportes)
            {
                int i = existencias.Where(x => x.NombreInt == item.IdArticulo).ToList().Count;
                if (i == 0)
                {
                    item.InventarioInicial = 0;
                }
                else
                {
                    FO_Item temp       = existencias.Where(x => x.NombreInt == item.IdArticulo).FirstOrDefault();
                    int     existencia = temp.ValueInt;
                    item.InventarioInicial = existencia;
                }
            }

            #region Llenado de información
            sLDocument.SetCellValue("F4", personaConectada.NombreCompleto);
            sLDocument.SetCellValue("I5", compania.Direccion);
            sLDocument.SetCellValue("F7", compania.Telefono);
            sLDocument.SetCellValue("F10", dO_Semana.NoSemana);
            sLDocument.SetCellValue("H10", rangoFecha);
            sLDocument.SetCellValue("K7", personaConectada.Usuario);

            //Llenado de depositos.
            int c = 32;
            foreach (var deposito in depositos)
            {
                sLDocument.SetCellValue("A" + c, deposito.FechaIngreso);
                sLDocument.SetCellValue("B" + c, deposito.Banco);
                sLDocument.SetCellValue("C" + c, deposito.Importe);
                sLDocument.SetCellValue("D" + c, deposito.Descripcion);
                sLDocument.SetCellValue("F" + c, deposito.Importe);
                c++;
            }

            //Llenado de costo de guia
            foreach (var item in movimientosEntradas)
            {
                sLDocument.SetCellValue("D" + c, item.NoFactura);
                sLDocument.SetCellValue("F" + c, item.CostoGuia);
                c++;
            }

            c = 17;
            //Llenado de articulos
            foreach (var reporteSemanal in dO_Reportes)
            {
                sLDocument.SetCellValue("B" + c, reporteSemanal.NombreArticulo);
                sLDocument.SetCellValue("C" + c, reporteSemanal.InventarioInicial);
                sLDocument.SetCellValue("D" + c, reporteSemanal.Entradas);
                sLDocument.SetCellValue("E" + c, reporteSemanal.Origen);
                sLDocument.SetCellValue("F" + c, reporteSemanal.Salidas);
                sLDocument.SetCellValue("G" + c, reporteSemanal.Destino);
                sLDocument.SetCellValue("I" + c, reporteSemanal.ArticulosVendidos);
                sLDocument.SetCellValue("K" + c, reporteSemanal.CostoUnitario);

                c++;
            }

            #endregion

            sLDocument.AutoFitRow(18);

            if (!Directory.Exists(Server.MapPath("~/files/reportesemanal/" + personaConectada.Nombre)))
            {
                Directory.CreateDirectory(Server.MapPath("~/files/reportesemanal/" + personaConectada.Nombre));
            }

            string newPath = Server.MapPath("~/files/reportesemanal/" + personaConectada.Nombre + "/reporte_" + dO_Semana.NoSemana + ".xlsx");
            sLDocument.SaveAs(newPath);

            byte[] fileBytes = System.IO.File.ReadAllBytes(newPath);

            string fileName = "Reporte_" + dO_Semana.NoSemana + "_" + personaConectada.Nombre + ".xlsx";

            DataManager.InsertBitacora(personaConectada.Nombre + " " + personaConectada.Usuario, "Se bajo el archivo de excel se la semana id: " + idSemana);

            return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName));
        }