private static void PintarGestionPorMesIE(LiquidezDTO obj, System.Data.DataTable dt) { DataRow row1 = dt.NewRow(); row1[0] = obj.nombreMes; dt.Rows.Add(row1); DataRow row2 = dt.NewRow(); row2[1] = "VENTAS"; row2[2] = obj.Ingreso.ToString("N2", CultureInfo.InvariantCulture); row2[3] = obj.Ingreso_SinIGV.ToString("N2", CultureInfo.InvariantCulture); dt.Rows.Add(row2); DataRow row3 = dt.NewRow(); row3[1] = "GASTOS"; row3[2] = obj.Egreso.ToString("N2", CultureInfo.InvariantCulture); row3[3] = obj.Egreso_SinIGV.ToString("N2", CultureInfo.InvariantCulture); dt.Rows.Add(row3); DataRow row4 = dt.NewRow(); row4[1] = "NETO"; row4[2] = (obj.Ingreso + obj.Egreso).ToString("N2", CultureInfo.InvariantCulture); row4[3] = (obj.Ingreso_SinIGV + obj.Egreso_SinIGV).ToString("N2", CultureInfo.InvariantCulture); dt.Rows.Add(row4); }
public List<LiquidezDTO> getVariacionPorcentual_12Meses(List<LiquidezDTO> lista1, List<LiquidezDTO> lista2) { List<string> meses = new List<string>() { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" }; List<LiquidezDTO> lista = new List<LiquidezDTO>(); for (int i = 0; i < 12; i++) { LiquidezDTO nuevo = new LiquidezDTO(); //nuevo.Monto = (lista2[i].Monto == 0 && lista1[i].Monto == 0) ? 0 : (lista2[i].Monto != 0) ? ((lista1[i].Monto != 0) ? (lista1[i].Monto / lista2[i].Monto) - 1 : -1) : 1; nuevo.sMonto = ""; if (lista2[i].Monto == 0 && lista1[i].Monto == 0) { nuevo.Monto = 0; nuevo.sMonto = "N/A"; } else if (lista2[i].Monto != 0 && lista1[i].Monto != 0) { nuevo.Monto = (lista1[i].Monto / lista2[i].Monto) - 1; } else { nuevo.Monto = 0; nuevo.sMonto = "N/A"; } nuevo.Mes = lista1[i].Mes; nuevo.nombreMes = meses[nuevo.Mes - 1]; lista.Add(nuevo); } return lista; }
public List<LiquidezDTO> getRentabilidadEnEmpresaSegunMoneda(int idEmpresa, int Moneda) { using (var context = getContext()) { DateTime today = new DateTime(); today = DateTime.Now; //Ultimo dia del mes y dia inicial del mes actual DateTime firstDayMonth = new DateTime(today.Year, today.Month, 1); DateTime lastDayMonth = firstDayMonth.AddMonths(1).AddDays(-1); //Ultimo dia inicial de hace un año atras (YA - Year Ago) DateTime firstDayMonthYA = new DateTime(today.Year - 1, today.Month + 1, 1); List<ComprobanteDTO> lista = (from cmp in context.Comprobante where cmp.IdEmpresa == idEmpresa && cmp.Estado == true && (cmp.FechaEmision <= lastDayMonth && cmp.FechaEmision >= firstDayMonthYA) select new ComprobanteDTO { IdComprobante = cmp.IdComprobante, IdTipoComprobante = cmp.IdTipoComprobante, FechaEmision = cmp.FechaEmision, Monto = cmp.Monto, MontoSinIGV = cmp.MontoSinIGV, TipoCambio = cmp.TipoCambio, IdMoneda = cmp.IdMoneda }).ToList(); List<LiquidezDTO> lstRent = new List<LiquidezDTO>(); switch (Moneda) { case 1: for (int i = 0; i < 12; i++) { LiquidezDTO nuevo = new LiquidezDTO(); nuevo.Mes = (today.Month - i) > 0 ? (today.Month - i) : (today.Month + 12 - i); Decimal Soles = 0, Dolares = 0; //Total de Soles + Total de Dolares a ==> SOLES Soles = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 1 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto) - lista.Where(x => x.IdTipoComprobante == 2 && x.IdMoneda == 1 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto); Dolares = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 2 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto * x.TipoCambio) - lista.Where(x => x.IdTipoComprobante == 2 && x.IdMoneda == 2 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto * x.TipoCambio); nuevo.Monto = Soles + Dolares; lstRent.Add(nuevo); } break; default: for (int i = 0; i < 12; i++) { LiquidezDTO nuevo = new LiquidezDTO(); nuevo.Mes = (today.Month - i) > 0 ? (today.Month - i) : (today.Month + 12 - i); Decimal Soles = 0, Dolares = 0; //Total de Soles + Total de Dolares a ==> SOLES Soles = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 1 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto / (x.TipoCambio != 0 ? x.TipoCambio : 1)) - lista.Where(x => x.IdTipoComprobante == 2 && x.IdMoneda == 1 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto / (x.TipoCambio != 0 ? x.TipoCambio : 1)); Dolares = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 2 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto) - lista.Where(x => x.IdTipoComprobante == 2 && x.IdMoneda == 2 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto); nuevo.Monto = Soles + Dolares; lstRent.Add(nuevo); } break; } return lstRent; } }
public List<LiquidezDTO> getFacturacionEnEmpresaPorMoneda(int idEmpresa, int Moneda, DateTime fecha) { using (var context = getContext()) { DateStartEndDTO currentDate = GetDateStartEnd_In_Date(fecha); List<ComprobanteDTO> lista = (from cmp in context.Comprobante where cmp.IdEmpresa == idEmpresa && cmp.Estado == true && (cmp.FechaEmision <= currentDate.lastDayYear && cmp.FechaEmision >= currentDate.firstDayYear) select new ComprobanteDTO { IdComprobante = cmp.IdComprobante, IdTipoComprobante = cmp.IdTipoComprobante, FechaEmision = cmp.FechaEmision, Monto = cmp.Monto, MontoSinIGV = cmp.MontoSinIGV, TipoCambio = cmp.TipoCambio, IdMoneda = cmp.IdMoneda }).ToList(); List<LiquidezDTO> lstFac = new List<LiquidezDTO>(); switch (Moneda) { case 1: for (int i = 12; i > 0; i--) { LiquidezDTO nuevo = new LiquidezDTO(); //nuevo.Mes = (currentDate.today.Month - i) > 0 ? (currentDate.today.Month - i) : (currentDate.today.Month + 12 - i); nuevo.Mes = i; Decimal Soles = 0, Dolares = 0; //Total de Soles + Total de Dolares a ==> SOLES Soles = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 1 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto); Dolares = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 2 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto * x.TipoCambio); nuevo.Monto = Soles + Dolares; lstFac.Add(nuevo); } break; default: for (int i = 12; i > 0; i--) { LiquidezDTO nuevo = new LiquidezDTO(); //nuevo.Mes = (currentDate.today.Month - i) > 0 ? (currentDate.today.Month - i) : (currentDate.today.Month + 12 - i); nuevo.Mes = i; Decimal Soles = 0, Dolares = 0; //Total de Soles + Total de Dolares a ==> SOLES Soles = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 1 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto / (x.TipoCambio != 0 ? x.TipoCambio : 1)); Dolares = lista.Where(x => x.IdTipoComprobante == 1 && x.IdMoneda == 2 && x.FechaEmision.Month == nuevo.Mes).Sum(x => x.Monto); nuevo.Monto = Soles + Dolares; lstFac.Add(nuevo); } break; } return lstFac; } }
public List<LiquidezDTO> getLiquidezEnEmpresaPorMoneda(int idEmpresa, int moneda) { using (var context = getContext()) { DateTime today = new DateTime(); today = DateTime.Now; //Ultimo dia del mes y dia inicial del mes actual DateTime firstDayMonth = new DateTime(today.Year, today.Month, 1); DateTime lastDayMonth = firstDayMonth.AddMonths(1).AddDays(-1); //Ultimo dia inicial de hace un año atras (YA - Year Ago) DateTime firstDayMonthYA = new DateTime(today.Year - 1, today.Month + 1, 1); //Conseguir todos movimientos desde el mes actual hasta 11 meses atras (12 meses) var lista = from mov in context.Movimiento join lib in context.CuentaBancaria on mov.IdCuentaBancaria equals lib.IdCuentaBancaria join fmov in context.FormaMovimiento on mov.IdFormaMovimiento equals fmov.IdFormaMovimiento //join tmov in context.TipoMovimiento on mov.IdTipoDocumento equals tmov.IdTipoMovimiento where lib.IdEmpresa == idEmpresa && lib.IdMoneda == moneda && mov.Estado == true && (mov.FechaCreacion <= lastDayMonth && mov.FechaCreacion >= firstDayMonthYA) select new MovimientoDTO { IdMovimiento = mov.IdMovimiento, IdTipoMovimiento = fmov.IdTipoMovimiento, Fecha = mov.Fecha, FechaCreacion = mov.FechaCreacion, Monto = mov.Monto, MontoSinIGV = mov.MontoSinIGV, TipoCambio = mov.TipoCambio }; List<MovimientoDTO> listMovs = lista.OrderBy(x => x.FechaCreacion).ToList(); //Obtener Liquidez por cada mes segun la moneda que corresponda List<LiquidezDTO> lstLiq = new List<LiquidezDTO>(); for (int i = 0; i < 12; i++) { LiquidezDTO nuevo = new LiquidezDTO(); nuevo.Mes = (today.Month - i) > 0 ? (today.Month - i) : (today.Month + 12 - i); nuevo.Monto = Math.Abs(listMovs.Where(x => x.IdTipoMovimiento == 1 && x.FechaCreacion.Month == nuevo.Mes).Sum(x => x.Monto) - listMovs.Where(x => x.IdTipoMovimiento == 2 && x.FechaCreacion.Month == nuevo.Mes).Sum(x => x.Monto)); lstLiq.Add(nuevo); } return lstLiq; } }