示例#1
0
        //Obtener reporte entrada y salida stock
        public List <ReporteESstock> obtenerReporteESstock(DateTime fechaDesde, DateTime fechaHasta, int idProducto)
        {
            try
            {
                List <ReporteESstock> lstReporteStock = new List <ReporteESstock>();

                List <historialStock> lstHistorialStock = new List <historialStock>();

                fechaHasta = fechaHasta.AddHours(23.59).AddSeconds(59);
                bool busquedaPorId = false;
                using (BDSoftComputacionEntities bd = new BDSoftComputacionEntities())
                {
                    if (idProducto != 0)
                    {
                        lstHistorialStock = bd.historialStock.Where(x => x.idProducto == idProducto && x.fechaHora >= fechaDesde && x.fechaHora <= fechaHasta).ToList();
                        busquedaPorId     = true;
                    }
                    else
                    {
                        lstHistorialStock = bd.historialStock.Where(x => x.fechaHora >= fechaDesde && x.fechaHora <= fechaHasta).ToList();
                    }
                    int mes = 0;
                    int año = 0;
                    foreach (historialStock oHistorial in lstHistorialStock)
                    {
                        if (mes == 0 || mes != oHistorial.fechaHora.Month)
                        {
                            mes = oHistorial.fechaHora.Month;
                            año = oHistorial.fechaHora.Year;
                        }
                        if (busquedaPorId == false)
                        {
                            if (lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto && x.mes == mes && x.año == año).Count() == 0)
                            {
                                ReporteESstock oReporte = new ReporteESstock();
                                oReporte.entrada        = 0;
                                oReporte.salida         = 0;
                                oReporte.mes            = mes;
                                oReporte.idProducto     = oHistorial.idProducto;
                                oReporte.año            = oHistorial.fechaHora.Year;
                                oReporte.productoNombre = oHistorial.producto.categoria.nombre + " " + oHistorial.producto.subcategoria.nombre + " " + oHistorial.producto.nombre;
                                if (oHistorial.tipo == "entrada")
                                {
                                    oReporte.entrada = oHistorial.cantidad;
                                }
                                else
                                {
                                    oReporte.salida = oHistorial.cantidad;
                                }
                                lstReporteStock.Add(oReporte);
                                oReporte = new ReporteESstock();
                            }
                            else
                            {
                                if (oHistorial.tipo == "entrada")
                                {
                                    lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().entrada = lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().entrada + oHistorial.cantidad;
                                }
                                else
                                {
                                    lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().salida = lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().salida + oHistorial.cantidad;
                                }
                            }
                        }
                        else
                        {
                            if (mes == 0 || mes != oHistorial.fechaHora.Month)
                            {
                                mes = oHistorial.fechaHora.Month;
                                año = oHistorial.fechaHora.Year;
                            }
                            if (lstReporteStock.Where(x => x.mes == mes && x.año == año).Count() == 0)
                            {
                                ReporteESstock oReporte = new ReporteESstock();
                                oReporte.entrada        = 0;
                                oReporte.salida         = 0;
                                oReporte.mes            = mes;
                                oReporte.idProducto     = oHistorial.idProducto;
                                oReporte.año            = oHistorial.fechaHora.Year;
                                oReporte.productoNombre = oHistorial.producto.categoria.nombre + " " + oHistorial.producto.subcategoria.nombre + " " + oHistorial.producto.nombre;
                                if (oHistorial.tipo == "entrada")
                                {
                                    oReporte.entrada = oHistorial.cantidad;
                                }
                                else
                                {
                                    oReporte.salida = oHistorial.cantidad;
                                }
                                lstReporteStock.Add(oReporte);
                                oReporte = new ReporteESstock();
                            }
                            else
                            {
                                if (oHistorial.tipo == "entrada")
                                {
                                    lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().entrada = lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().entrada + oHistorial.cantidad;
                                }
                                else
                                {
                                    lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().salida = lstReporteStock.Where(x => x.idProducto == oHistorial.idProducto).FirstOrDefault().salida + oHistorial.cantidad;
                                }
                            }
                        }
                    }
                }
                return(lstReporteStock);
            }
            catch (Exception)
            {
                return(new List <ReporteESstock>());
            }
        }
示例#2
0
        public List <ReporteESstock> obtenerReporteVentas(DateTime fechaDesde, DateTime fechaHasta)
        {
            try
            {
                List <ReporteESstock> lstReporteStock = new List <ReporteESstock>();
                List <venta>          lstVenta        = new List <venta>();
                srvVenta sVenta = new srvVenta();
                using (BDSoftComputacionEntities bd = new BDSoftComputacionEntities())
                {
                    lstVenta = sVenta.ObtenerVentasReporte(fechaDesde, fechaHasta);
                    int mes = 0;
                    int año = 0;
                    foreach (venta oVenta in lstVenta)
                    {
                        if (mes == 0 || mes != oVenta.fechaEmision.Month)
                        {
                            mes = oVenta.fechaEmision.Month;
                            año = oVenta.fechaEmision.Year;
                        }


                        if (mes == 0 || mes != oVenta.fechaEmision.Month)
                        {
                            mes = oVenta.fechaEmision.Month;
                        }
                        //calculo la ganancia neta de la venta
                        decimal neto = 0;
                        foreach (detalleVenta oDetalle in oVenta.detalleVenta)
                        {
                            neto += oDetalle.precioCostoGrupal;
                        }
                        if (lstReporteStock.Where(x => x.mes == mes && x.año == año).Count() == 0)
                        {
                            ReporteESstock oReporte = new ReporteESstock();
                            oReporte.entrada        = 0;
                            oReporte.salida         = 0;
                            oReporte.mes            = mes;
                            oReporte.año            = oVenta.fechaEmision.Year;
                            oReporte.ventaTotal     = oVenta.costoTotal;
                            oReporte.cantVentaTotal = 1;
                            oReporte.ingresoNeto    = oVenta.costoTotal - neto;
                            oReporte.abonadoTotal   = Convert.ToDecimal(oVenta.entregado);
                            lstReporteStock.Add(oReporte);
                            oReporte = new ReporteESstock();
                        }
                        else
                        {
                            lstReporteStock.Where(x => x.mes == mes && x.año == año).FirstOrDefault().ventaTotal   = lstReporteStock.Where(x => x.mes == mes).FirstOrDefault().ventaTotal + oVenta.costoTotal;
                            lstReporteStock.Where(x => x.mes == mes && x.año == año).FirstOrDefault().ingresoNeto  = lstReporteStock.Where(x => x.mes == mes).FirstOrDefault().ingresoNeto + (oVenta.costoTotal - neto);
                            lstReporteStock.Where(x => x.mes == mes && x.año == año).FirstOrDefault().abonadoTotal = lstReporteStock.Where(x => x.mes == mes && x.año == año).FirstOrDefault().abonadoTotal + Convert.ToDecimal(oVenta.entregado);
                            lstReporteStock.Where(x => x.mes == mes && x.año == año).FirstOrDefault().cantVentaTotal++;
                        }
                    }
                }
                return(lstReporteStock);
            }
            catch (Exception ex)
            {
                throw ex;
                //return new List<ReporteESstock>();
            }
        }