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_DevengoIngresoLDIGET(1, periodo).ToList(); lista.ForEach(devengo => { listDev.Add(new { CuentaPiv = $"{devengo.Cuenta}-{devengo.Servicio}", Cuenta = devengo.Cuenta, Servicio = devengo.Servicio, Deudor = devengo.Deudor, SoGL = devengo.SoGL, Grupo = devengo.Grupo, NombreCorto = devengo.NombreCorto, Moneda = devengo.Moneda, FechaConsumo = devengo.FechaConsumo, FechaSolicitud = devengo.FechaSolicitud, TipoCambio = devengo.TipoCambio, TipoCambioFactura = devengo.TipoCambioFactura, CancelProvision = devengo.CancelProvision, CancelProvNCR = devengo.CancelProvNCR, 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, limit, total, success = true }; } catch (Exception ex) { respuesta = new { results = ex, success = false }; } 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_DevengoIngresoLDIGET_Result>(); var dtDocumento = new DataTable(); lista = db.sp_DevengoIngresoLDIGET(tabla, Periodo).ToList(); dtDocumento.Columns.Add("Cuenta"); dtDocumento.Columns.Add("Servicio"); dtDocumento.Columns.Add("Deudor"); dtDocumento.Columns.Add("SoGL"); dtDocumento.Columns.Add("Grupo"); dtDocumento.Columns.Add("NombreCorto"); dtDocumento.Columns.Add("Moneda"); dtDocumento.Columns.Add("FechaConsumo"); dtDocumento.Columns.Add("FechaSolicitud"); dtDocumento.Columns.Add("TipoCambio"); dtDocumento.Columns.Add("TipoCambioFactura"); 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.Cuenta; rowdt["Servicio"] = elemento.Servicio; rowdt["Deudor"] = elemento.Deudor; rowdt["SoGL"] = elemento.SoGL; rowdt["Grupo"] = elemento.Grupo; rowdt["NombreCorto"] = elemento.NombreCorto; rowdt["Moneda"] = elemento.Moneda; rowdt["FechaConsumo"] = elemento.FechaConsumo; rowdt["FechaSolicitud"] = elemento.FechaSolicitud; rowdt["TipoCambio"] = elemento.TipoCambio; rowdt["TipoCambioFactura"] = elemento.TipoCambioFactura; rowdt["CancelProvision"] = elemento.CancelProvision; rowdt["CancelProvNCR"] = elemento.CancelProvNCR; 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.ToString("dd-MM-yyyy"); int lFila = 7; long lCuentaPrimaria = 0, lCuentaSecundaria = 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"]); lServicioPrincipal = dtDocumento.Rows[lIteracion]["Servicio"].ToString(); if (dtDocumento.Rows.Count > 1) { lCuentaSecundaria = Convert.ToInt64(dtDocumento.Rows[lIteracion + 1]["Cuenta"]); lServicioSecundario = dtDocumento.Rows[lIteracion + 1]["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 = lCuentaSecundaria; lServicioPrincipal = lServicioSecundario; lIteracion++; lFila++; } else { ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false); AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false); if (lCuentaPrimaria != lCuentaSecundaria) { 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 = lCuentaSecundaria; lServicioPrincipal = lServicioSecundario; lIteracion++; lFila++; } } else { if (lCuentaPrimaria != lCuentaSecundaria) { 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:U" + lFila].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; }