Example #1
0
        public JsonResult LlenaGridDocumento(DateTime periodo, int start, int limit)
        {
            object respuesta = null;
            var    listDev   = new List <object>();
            var    total     = 0;

            try {
                var lista = db.sp_DevengoCostoLDIGET(1, periodo).ToList();
                lista.ForEach(devengo =>
                {
                    listDev.Add(new
                    {
                        CuentaPiv               = $"{devengo.CuentaResultados}-{devengo.Servicio}",
                        CuentaResultados        = devengo.CuentaResultados,
                        CentroCostos            = devengo.CentroCostos,
                        AreaFuncional           = devengo.AreaFuncional,
                        Servicio                = devengo.Servicio,
                        Acreedor                = devengo.Acreedor,
                        SoGL                    = devengo.SoGL,
                        Grupo                   = devengo.Grupo,
                        NombreCorto             = devengo.NombreCorto,
                        Moneda                  = devengo.Moneda,
                        FechaConsumo            = devengo.FechaConsumo,
                        FechaSolicitud          = devengo.FechaSolicitud,
                        TipoCambio              = devengo.TipoCambio,
                        TipoCambioFactura       = devengo.TipoCambioFactura,
                        CancelacionProvision    = devengo.CancelacionProvision,
                        CancelacionprovisionNCR = devengo.CancelacionprovisionNCR,
                        Facturacion             = devengo.Facturacion,
                        NCREmitidas             = devengo.NCREmitidas,
                        Provision               = devengo.Provision,
                        ProvisionNCR            = devengo.ProvisionNCR,
                        Exceso                  = devengo.Exceso,
                        TotalDevengo            = devengo.TotalDevengo
                    });
                });
                total     = listDev.Count();
                listDev   = listDev.Skip(start).Take(limit).ToList();
                respuesta = new { results = listDev, start = start, limit = limit, total = total, success = true };
            } catch (Exception ex) {
                respuesta = new { success = false, results = ex.Message };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
        public static void HojaDevengoLocal(ref ExcelWorksheet worksheet, DateTime periodo, int tabla, ICPruebaEntities db)
        {
            decimal[] listaSubtotales = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            var       lista           = new List <sp_DevengoCostoLDIGET_Result>();
            var       dtDocumento     = new DataTable();

            lista = db.sp_DevengoCostoLDIGET(tabla, periodo).ToList();
            dtDocumento.Columns.Add("Cuenta");
            dtDocumento.Columns.Add("Servicio");

            dtDocumento.Columns.Add("CentroCosto");
            dtDocumento.Columns.Add("Area_Funcional");

            dtDocumento.Columns.Add("Acreedor");
            dtDocumento.Columns.Add("Sociedad");
            dtDocumento.Columns.Add("Operador");
            dtDocumento.Columns.Add("NombreCorto");
            dtDocumento.Columns.Add("Moneda");
            dtDocumento.Columns.Add("FechaConsumo");
            dtDocumento.Columns.Add("FechaSolicitud");
            dtDocumento.Columns.Add("TipoCambio");
            dtDocumento.Columns.Add("CancelProvision");
            dtDocumento.Columns.Add("CancelProvNCR");
            dtDocumento.Columns.Add("Facturacion");
            dtDocumento.Columns.Add("NCREmitidas");
            dtDocumento.Columns.Add("Provision");
            dtDocumento.Columns.Add("ProvisionNCR");
            dtDocumento.Columns.Add("Exceso");
            dtDocumento.Columns.Add("TotalDevengo");
            dtDocumento.Columns.Add("Fluctuacion");
            dtDocumento.Columns.Add("TotalDevengoFluctuacion");

            foreach (var elemento in lista)
            {
                DataRow rowdt = default(DataRow);
                rowdt                            = dtDocumento.NewRow();
                rowdt["Cuenta"]                  = elemento.CuentaResultados;
                rowdt["Servicio"]                = elemento.Servicio;
                rowdt["CentroCosto"]             = elemento.CentroCostos;
                rowdt["Area_Funcional"]          = elemento.AreaFuncional;
                rowdt["Acreedor"]                = elemento.Acreedor;
                rowdt["Sociedad"]                = elemento.SoGL;
                rowdt["Operador"]                = elemento.Operador;
                rowdt["NombreCorto"]             = elemento.NombreCorto;
                rowdt["Moneda"]                  = elemento.Moneda;
                rowdt["FechaConsumo"]            = elemento.FechaConsumo;
                rowdt["FechaSolicitud"]          = elemento.FechaSolicitud;
                rowdt["TipoCambio"]              = elemento.TipoCambio;
                rowdt["CancelProvision"]         = elemento.CancelacionProvision;
                rowdt["CancelProvNCR"]           = elemento.CancelacionprovisionNCR;
                rowdt["Facturacion"]             = elemento.Facturacion;
                rowdt["NCREmitidas"]             = elemento.NCREmitidas;
                rowdt["Provision"]               = elemento.Provision;
                rowdt["ProvisionNCR"]            = elemento.ProvisionNCR;
                rowdt["Exceso"]                  = elemento.Exceso;
                rowdt["TotalDevengo"]            = elemento.TotalDevengo;
                rowdt["Fluctuacion"]             = elemento.Fluctuacion;
                rowdt["TotalDevengoFluctuacion"] = elemento.TotalDevengoFluctuacion;

                dtDocumento.Rows.Add(rowdt);
            }

            worksheet.Cells[("A3")].Value = DateTime.Now.ToShortDateString();

            int    lFila = 7;
            long   lCuentaPrimaria = 0, lCuentaSecuandaria = 0;
            string lServicioPrincipal = string.Empty, lServicioSecundario = string.Empty;

            for (int lIteracion = 0; lIteracion < dtDocumento.Rows.Count;)
            {
                if (lIteracion == 0 || lIteracion <= dtDocumento.Rows.Count - 2)
                {
                    lCuentaPrimaria = Convert.ToInt64(dtDocumento.Rows[lIteracion]["Cuenta"]);

                    if (dtDocumento.Rows.Count > 1)
                    {
                        lCuentaSecuandaria  = Convert.ToInt64(dtDocumento.Rows[lIteracion + 1]["Cuenta"]);
                        lServicioSecundario = dtDocumento.Rows[lIteracion + 1]["Servicio"].ToString();
                    }

                    lServicioPrincipal = dtDocumento.Rows[lIteracion]["Servicio"].ToString();


                    if (lIteracion == 0)
                    {
                        ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false);
                        AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false);

                        if (lServicioPrincipal != lServicioSecundario)
                        {
                            ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                            ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                            lFila++;
                        }

                        lCuentaPrimaria    = lCuentaSecuandaria;
                        lServicioPrincipal = lServicioSecundario;

                        lIteracion++;
                        lFila++;
                    }
                    else
                    {
                        ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false);
                        AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false);

                        if (lCuentaPrimaria != lCuentaSecuandaria)
                        {
                            ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                            ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                            lFila++;
                        }
                        else if (lServicioPrincipal != lServicioSecundario)
                        {
                            ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                            ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                            lFila++;
                        }

                        lCuentaPrimaria    = lCuentaSecuandaria;
                        lServicioPrincipal = lServicioSecundario;

                        lIteracion++;
                        lFila++;
                    }
                }
                else
                {
                    if (lCuentaPrimaria != lCuentaSecuandaria)
                    {
                        ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                        ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                        lFila++;
                    }
                    else if (lServicioPrincipal != lServicioSecundario)
                    {
                        ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                        ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                        lFila++;
                    }

                    ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false);
                    AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false);

                    ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                    ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);

                    lIteracion++;
                }
            }
            worksheet.Cells["A7:V" + lFila].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
        }