Пример #1
0
 public IEnumerable<DetalleMangueraModel> ReporteVenta(string FECHA1, string TURNO)
 {
     DateTime FECHA = DateTime.ParseExact(FECHA1, "dd/MM/yyyy", null);
     var servicio = new PosTurnosServices();
     //var servicioUsuario = new UsuariosServices();
     var query = servicio.ObtenerPosTurnosPorCriterio(x => x.FECHA == FECHA && x.TURNO == TURNO);
     var result = query.Select(x => new DetalleMangueraModel
     {
         COMBUSTIBLE = x.SG_POS.SG_COMBUSTIBLES.DESCRIPCION,
         ENT_LITTER = x.ENT_LITTER,
         SAL_LITTER = x.SAL_LITTER,
         MANGUERA = x.SG_POS.CODIGO,
         FECHA = FECHA,
         TURNO = TURNO,
         USUARIO = servicioUsuario.ObtenerUsuariosPorCriterio(y=>y.ID_USUARIO == x.ID_USUARIO).FirstOrDefault().NOMBRE,
         RESPONSABLE = "RESPONSABLE"
     });
     return result;
 }
Пример #2
0
        public IEnumerable<MovimientoProductoModel> ReporteSustanciasControladas(string ANIO = null, string MES = null, int ID_COMBUSTIBLE = 0)
        {
            List<MovimientoProductoModel> result = new List<MovimientoProductoModel>();
            string date = string.Format("01/{0}/{1}", MES, ANIO);
            DateTime dt = Convert.ToDateTime(date);
            var _serKcm = new KardexCombustibleServices();
            var _serPos = new PosTurnosServices();
            var _serAju = new AjustePosServices();
            _serKcm.SP_ActualizarKardexMN(dt, 0);
            var kardex = _serKcm.ObtenerKardexMNCombustible(MES, ANIO);
            var posMes = _serPos.ObtenerPosTurnosPorFecha(ANIO, MES);
            var ajusteposMes = _serAju.ObtenerAjustePosPorFecha(ANIO, MES);
            var grupo = kardex.GroupBy(x => x.FECHA);
            var combustible = kardex.Where(x => x.SG_COMBUSTIBLES.ID_COMBUSTIBLE == ID_COMBUSTIBLE);
            foreach (var item in grupo)
            {
                MovimientoProductoModel venDia = new MovimientoProductoModel
                {
                    FECHA = item.Key,
                    //SALDO_INICIAL_DIE = diesel.where(y=>y.FECHA == item.Key).fi
                };
                var com = combustible.Where(x => x.FECHA == item.Key).FirstOrDefault();
                var pos = posMes.Where(x => x.FECHA == item.Key && x.SG_POS.ID_COMBUSTIBLE == ID_COMBUSTIBLE).OrderBy(y => y.ID_POS);
                var total = pos.Sum(x => x.TOTAL);
                var postotales = pos.GroupBy(x => x.ID_POS).Select(y => new {TOTAL = y.Sum(z=>z.TOTAL) , ID_POS = y.Key });
                

                venDia.PRODUCTO = com.SG_COMBUSTIBLES.DESCRIPCION;
                venDia.MES = ObtenerMesEspanol(com.FECHA.Month);
                venDia.SALDO_ANTERIOR = com.SALDO_INICIAL;
                venDia.COMPRA = (decimal)com.COMPRAS;
                venDia.VENTA = (decimal)com.VENTAS;
                decimal saldoventa = venDia.VENTA;
                venDia.SALDO_ACTUAL = (decimal)com.ACUMULADOS;
                venDia.PROVEEDOR = "YPFB";
                venDia.TELEFONO = "4703510";
                int cont = 0;
                foreach (var puntos in postotales)
                {
                    if (cont == 0)
                    {
                        venDia.MANGUERA1 = puntos.TOTAL == 0 ? 0 :(puntos.TOTAL / total) * venDia.VENTA;
                        venDia.MANGUERA1 = Math.Round(venDia.MANGUERA1, 0);
                        saldoventa = saldoventa - venDia.MANGUERA1;
                    }
                    else if (cont == 1)
                    {
                        venDia.MANGUERA2 = puntos.TOTAL == 0 ? 0 : (puntos.TOTAL / total) * venDia.VENTA;
                        venDia.MANGUERA2 = Math.Round(venDia.MANGUERA2, 0);
                        saldoventa = saldoventa - venDia.MANGUERA2;
                    }
                    else if (cont == 2)
                    {
                        venDia.MANGUERA3 = puntos.TOTAL == 0 ? 0 : (puntos.TOTAL / total) * venDia.VENTA;
                        venDia.MANGUERA3 = Math.Round(venDia.MANGUERA3, 0);
                        saldoventa = saldoventa - venDia.MANGUERA3;
                    }
                    else if (cont == 3)
                    {
                        //venDia.MANGUERA4 = puntos.TOTAL == 0 ? 0 : (puntos.TOTAL / total) * venDia.VENTA;
                        //venDia.MANGUERA4 = Math.Round(venDia.MANGUERA4, 0);
                        venDia.MANGUERA4 = saldoventa;
                        saldoventa = 0;
                    }
                    else
                    {
                        cont++;
                    }
                    cont++;
                }
                result.Add(venDia);
            }
            result = result.OrderBy(x => x.FECHA).ToList();
            return result;
        }
Пример #3
0
        public IEnumerable<UtilidadVentaBruta> ReporteUtilidadVentaEstimada(string ANIO = null, string MES = null)
        {
            List<UtilidadVentaBruta> result = new List<UtilidadVentaBruta>();
            UtilidadVentaBruta result1 = new UtilidadVentaBruta()
            {
                EXC_DIESEL_VALORADO = 0,
                EXC_GASOLINA_VALORADO = 0,
                PER_DIESEL_VALORADO = 0,
                PER_GASOLINA_VALORADO = 0,
                EXC_DIESEL_FISICO = 0,
                EXC_GASOLINA_FISICO = 0,
                PER_DIESEL_FISICO = 0,
                PER_GASOLINA_FISICO = 0

            };
            var puntosVentaService = new PosTurnosServices();
            var comprasService = new ComprasServices();
            var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES);
            var compras = comprasService.ObtenerComprasPaginado(null, ANIO, MES);
            decimal? totalegresoGas = 0;
            decimal? totalcostoegresoGas = 0;
            decimal? totalegresoDie = 0;
            decimal? totalcostoegresoDie = 0;
            foreach (var item in compras)
            {
                if (item.ID_COMBUSTIBLE == 1)
                {
                    totalegresoGas = totalegresoGas + item.CANTIDAD;
                    totalcostoegresoGas = totalcostoegresoGas + (item.CANTIDAD * item.PRECIO);

                }
                else
                {
                    totalegresoDie = totalegresoDie + item.CANTIDAD;
                    totalcostoegresoDie = totalcostoegresoDie + (item.CANTIDAD * item.PRECIO);
                }
            }
            result1.EGR_GASOLINA_FISICO = (decimal)totalegresoGas;
            result1.EGR_DIESEL_FISICO = (decimal)totalegresoDie;
            result1.EGR_DIESEL_VALORADO = (decimal)totalcostoegresoDie;
            result1.EGR_GASOLINA_VALORADO = (decimal)totalcostoegresoGas;

            var totales = ventas.GroupBy(x => new { x.FECHA, x.SG_POS.ID_COMBUSTIBLE }).Select(y => new { FECHA = y.Key.FECHA, ID_COMBUSTIBLE = y.Key.ID_COMBUSTIBLE, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO), TOTAL_CANTIDAD = y.Sum(x => x.TOTAL) });
            decimal? totalventaGas = 0;
            decimal? totalCantidadGas = 0;
            decimal? totalventaDie = 0;
            decimal? totalCantidadDie = 0;
            foreach (var item in totales)
            {
                if (item.ID_COMBUSTIBLE == 1)
                {
                    totalventaGas = totalventaGas + item.TOTALVENTA;
                    totalCantidadGas = totalCantidadGas + item.TOTAL_CANTIDAD;

                }
                else
                {
                    totalventaDie = totalventaDie + item.TOTALVENTA;
                    totalCantidadDie = totalCantidadDie + item.TOTAL_CANTIDAD;
                }

            }
            result1.ING_DIESEL_FISICO = (decimal)totalCantidadDie;
            result1.ING_GASOLINA_FISICO = (decimal)totalCantidadGas;
            result1.ING_DIESEL_VALORADO = (decimal)totalventaDie;
            result1.ING_GASOLINA_VALORADO = (decimal)totalventaGas;
            result.Add(result1);
            return result;
        }
Пример #4
0
        public IEnumerable<UtilidadVentaBruta> ReporteUtilidadVentaBruta(string ANIO = null, string MES = null)
        {
            List<UtilidadVentaBruta> result = new List<UtilidadVentaBruta>();
            UtilidadVentaBruta result1 = new UtilidadVentaBruta()
            {
                ING_DIESEL_VALORADO = 1284385.28m,
                ING_GASOLINA_VALORADO = 605709.08m,
                EGR_DIESEL_VALORADO = 1222237.60m,
                EGR_GASOLINA_VALORADO = 570079.14m,
                EXC_DIESEL_VALORADO = 0,
                EXC_GASOLINA_VALORADO = 0,
                PER_DIESEL_VALORADO = 0,
                PER_GASOLINA_VALORADO = 0,
                ING_DIESEL_FISICO = 345264.86m,
                ING_GASOLINA_FISICO = 161954.30m,
                EGR_DIESEL_FISICO = 345264.86m,
                EGR_GASOLINA_FISICO = 161954.30m,
                EXC_DIESEL_FISICO = 0,
                EXC_GASOLINA_FISICO = 0,
                PER_DIESEL_FISICO = 0,
                PER_GASOLINA_FISICO = 0

            };
            var puntosVentaService = new PosTurnosServices();
            var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES);
            var totales = ventas.GroupBy(x => new { x.FECHA, x.SG_POS.ID_COMBUSTIBLE }).Select(y => new { FECHA = y.Key.FECHA, ID_COMBUSTIBLE = y.Key.ID_COMBUSTIBLE, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO), TOTAL_CANTIDAD = y.Sum(x => x.TOTAL) });
            decimal? totalventaGas = 0;
            decimal? totalcostoGas = 0;
            decimal? totalCantidadGas = 0;
            decimal? totalventaDie = 0;
            decimal? totalCantidadDie = 0;
            decimal? totalcostoDie = 0;
            foreach (var item in totales)
            {
                if (item.ID_COMBUSTIBLE == 1)
                {
                    totalventaGas = totalventaGas + item.TOTALVENTA;
                    totalCantidadGas = totalCantidadGas + item.TOTAL_CANTIDAD;
                    totalcostoGas = totalcostoGas + item.TOTALCOSTO;

                }
                else
                {
                    totalventaDie = totalventaDie + item.TOTALVENTA;
                    totalCantidadDie = totalCantidadDie + item.TOTAL_CANTIDAD;
                    totalcostoDie = totalcostoDie + item.TOTALCOSTO;
                }

            }
            result1.ING_DIESEL_FISICO = (decimal)totalCantidadDie;
            result1.ING_GASOLINA_FISICO = (decimal)totalCantidadGas;
            result1.ING_DIESEL_VALORADO = (decimal)totalventaDie;
            result1.ING_GASOLINA_VALORADO = (decimal)totalventaGas;
            result1.EGR_GASOLINA_FISICO = (decimal)totalCantidadGas;
            result1.EGR_DIESEL_FISICO = (decimal)totalCantidadDie;
            result1.EGR_DIESEL_VALORADO = (decimal)totalcostoDie;
            result1.EGR_GASOLINA_VALORADO = (decimal)totalcostoGas;
            //result1.ING_DIESEL_FISICO
            result.Add(result1);
            return result;
        }
Пример #5
0
        public IEnumerable<EstadoResultadoCompletoModel> ReporteEstadoResultadoCompleto(string ANIO = null, string MES = null)
        {
            var puntosVentaService = new PosTurnosServices();
            List<EstadoResultadoCompletoModel> result = new List<EstadoResultadoCompletoModel>();
            var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES);
            var totales = ventas.GroupBy(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) });
            //var cons = consumo.ObtenerConsumosPorCriterio(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) });
            decimal? totalventa = 0;
            decimal? totalcosto = 0;
            DateTime? fecha = null;
            foreach (var item in totales)
            {
                totalventa = totalventa + item.TOTALVENTA;
                totalcosto = totalcosto + item.TOTALCOSTO;
                fecha = item.FECHA;
            }
            result.Add(new EstadoResultadoCompletoModel() { MES = ObtenerMesEspanol(Convert.ToInt32(MES)),FECHA = fecha, NRO = 1 ,OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS OPERATIVOS", DETALLE = "VENTAS", IMPORTE = totalventa });
            result.Add(new EstadoResultadoCompletoModel() { NRO = 2, OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS OPERATIVOS", DETALLE = "COSTOS DE VENTAS", IMPORTE = -totalcosto });


            var serIngreso = new IngresosServices();

            var ingresos = serIngreso.ObtenerIngresosPorFecha(ANIO, MES);
            var totalesIngreso = ingresos.Where(x=>x.ID_AMORTIZACION == null).Sum(x => x.IMPORTE);

            result.Add(new EstadoResultadoCompletoModel() { NRO = 3,OPERACION = "INGRESOS", SUBOPERACION = "INGRESOS NO OPERATIVOS", DETALLE = "OTROS INGRESOS", IMPORTE = totalesIngreso });

            //ajustes
            var serAjus = new AjustePosServices();
            var ajustes = serAjus.ObtenerAjustePorMesAnio(ANIO, MES);
            var totalesAjustes = ajustes.GroupBy(x => new { x.SG_TANQUES.SG_COMBUSTIBLES.NOMBRE , x.SG_TANQUES.SG_COMBUSTIBLES.PRECIO_VENTA }).Select(y => new { TOTALAJUSTE = y.Sum(x => x.CANTIDAD) * y.Key.PRECIO_VENTA, COMBUSTIBLE = y.Key.NOMBRE });
            //consumo
            var serConsumo = new ClientesConsumoServices();
            var consumos = serConsumo.ObtenerConsumoPorMesyAnio(ANIO, MES);
            var totalesConsumos = consumos.GroupBy(x => new { x.SG_CLIENTES_CONSUMO.NOMBRE, x.SG_COMBUSTIBLES.DESCRIPCION }).Select(y => new { TOTALCONSUMO = y.Sum(x => x.IMPORTE_BS), COMBUSTIBLE = y.Key.DESCRIPCION, CLIENTE = y.Key.NOMBRE });
            decimal? calibraciongasolina = 0;
            decimal? calibracionDiesel = 0;
            foreach (var itemcalibracion in totalesConsumos)
            {
                if (itemcalibracion.CLIENTE == "CALIBRACION IBMETRO") {
                    if (itemcalibracion.COMBUSTIBLE == "GASOLINA ESPECIAL")
                    {
                        calibraciongasolina = itemcalibracion.TOTALCONSUMO;
                    }
                    else {
                        calibracionDiesel = itemcalibracion.TOTALCONSUMO;
                    }
                }
            }
            int cnt = 6;
            int cnt1 = 4;
            foreach (var item in totalesAjustes)
            {
                EstadoResultadoCompletoModel aju = new EstadoResultadoCompletoModel()
                {
                    NRO =cnt,
                    OPERACION = "INGRESOS",
                    SUBOPERACION = "EXCEDENTE/PERDIDA",
                    DETALLE = string.Format("EXCEDENTE/PERDIDA - {0}",item.COMBUSTIBLE),
                    IMPORTE = item.COMBUSTIBLE == "GASOLINA" ? item.TOTALAJUSTE - calibraciongasolina : item.TOTALAJUSTE - calibracionDiesel
                };
                cnt++;
                result.Add(aju);
            }
            //result.Add(new EstadoResultadoCompletoModel() { NRO = 4 ,OPERACION = "INGRESOS", SUBOPERACION = "EXCEDENTE/PERDIDA", DETALLE = "EXCEDENTE/PERDIDA - DIESEL", IMPORTE = 755 });
            //result.Add(new EstadoResultadoCompletoModel() { NRO = 5 ,OPERACION = "INGRESOS", SUBOPERACION = "EXCEDENTE/PERDIDA", DETALLE = "EXCEDENTE/PERDIDA - GASOLINA", IMPORTE = 523 });

            var egresos = serIngreso.ObtenerEgresosPaginado(null, ANIO, MES);
            
            foreach (var item in egresos.OrderBy(x => x.FECHA))
            {

                EstadoResultadoCompletoModel egre = new EstadoResultadoCompletoModel()
                {
                    NRO =cnt,
                    OPERACION = "EGRESOS",
                    SUBOPERACION = "GASTOS",
                    DETALLE = item.CONCEPTO,
                    //MES =  item.FECHA.ToString("MMMM").ToUpper();
                    IMPORTE = -item.IMPORTE,
                    //UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto)
                };
                cnt++;
                //egre.MES = ObtenerMesEspanol(item.FECHA.Month);
                    //item.FECHA.ToString("MMMM").ToUpper();
                result.Add(egre);
            }
            
            //consumos
            
            foreach (var itemCons in totalesConsumos)
            {
                if (itemCons.CLIENTE == "CALIBRACION IBMETRO")
                {
                    EstadoResultadoCompletoModel aux = new EstadoResultadoCompletoModel()
                    {
                        NRO = cnt1,
                        OPERACION = "INGRESOS",
                        SUBOPERACION = "INGRESOS OPERATIVOS",
                        DETALLE = string.Format("{0} {1}", itemCons.CLIENTE, itemCons.COMBUSTIBLE),
                        IMPORTE = -itemCons.TOTALCONSUMO
                        //UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto)
                    };
                    //var ajusteconsumo = result.Where(x => x.SUBOPERACION == "EXCEDENTE/PERDIDA" && x.DETALLE.Contains(itemCons.COMBUSTIBLE)).FirstOrDefault();
                    //if (ajusteconsumo != null)
                    //{
                    //    ajusteconsumo.IMPORTE = ajusteconsumo.IMPORTE - itemCons.TOTALCONSUMO;
                    //}
                    cnt1++;
                    result.Add(aux);
                }
                else
                {
                    EstadoResultadoCompletoModel cons = new EstadoResultadoCompletoModel()
                    {
                        NRO = cnt,
                        OPERACION = "EGRESOS",
                        SUBOPERACION = "CONSUMO PROPIO",
                        DETALLE = string.Format("{0} {1}", itemCons.CLIENTE, itemCons.COMBUSTIBLE),
                        IMPORTE = -itemCons.TOTALCONSUMO
                        //UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto)
                    };

                    cnt++;
                    result.Add(cons);
                }
                //egre.MES = ObtenerMesEspanol(item.FECHA.Month);
                //item.FECHA.ToString("MMMM").ToUpper();
                
            }
            return result;
        }
Пример #6
0
 public IEnumerable<EstadoResultadoModel> ReporteEstadoResultado(string ANIO = null, string MES = null)
 {
     List<EstadoResultadoModel> result = new List<EstadoResultadoModel>();
     var servicio = new IngresosServices();
     var consumo = new ClientesConsumoServices();
     var puntosVentaService = new PosTurnosServices();
     var egresos = servicio.ObtenerEgresosPaginado(null, ANIO, MES);
     var ventas = puntosVentaService.ObtenerPosTurnosPorFecha(ANIO, MES);
     var totales = ventas.GroupBy(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) });
     //var cons = consumo.ObtenerConsumosPorCriterio(x => x.FECHA).Select(y => new { FECHA = y.Key, TOTALVENTA = y.Sum(x => x.TOTAL_VENTA), TOTALCOSTO = y.Sum(x => x.TOTAL_COSTO) });
     decimal? totalventa = 0;
     decimal? totalcosto = 0;
     foreach (var item in totales)
     {
         totalventa = totalventa + item.TOTALVENTA;
         totalcosto = totalcosto + item.TOTALCOSTO;
     }
     foreach (var item in egresos.OrderBy(x => x.FECHA))
     {
         EstadoResultadoModel egre = new EstadoResultadoModel()
         {
             FECHA = item.FECHA,
             DETALLE = item.CONCEPTO,
             //MES =  item.FECHA.ToString("MMMM").ToUpper();
             TOTAL = item.IMPORTE,
             UTILIDA_BRUTA_NETA = (decimal)(totalventa - totalcosto)
         };
         egre.MES = ObtenerMesEspanol(item.FECHA.Month);
             //item.FECHA.ToString("MMMM").ToUpper();
         result.Add(egre);
     }
     return result;
 }