Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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;
            }
        }