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; }