public E_ReporteCliente_Stock_Validacion ObtenerStockDG_Validacion(string anio, string mes, int periodo, int codOficina, string codCategoria)
        {
            E_ReporteCliente_Stock_Validacion oE_ReporteCliente_Stock_Validacion = new E_ReporteCliente_Stock_Validacion();

            try
            {
                oE_ReporteCliente_Stock_Validacion = oD_GES_ReportesCliente.ObtenerStockDG_Validacion(anio, mes, periodo, codOficina, codCategoria);
            }
            catch (Exception ex)
            {
                log.Error("[BL_GES_ReportesCliente][ObtenerStockDG_Validacion_Failed] : ", ex);
            }
            return(oE_ReporteCliente_Stock_Validacion);
        }
        public E_ReporteCliente_Stock_Validacion ObtenerStockDG_Validacion(string anio, string mes, int periodo, int codOficina, string codCategoria)
        {
            E_ReporteCliente_Stock_Validacion oE_ReporteCliente_Stock_Validacion = null;

            double sumStockFinal = 0;
            double sumPromVentas = 0;

            try
            {
                DataTable dt = oConexion.ejecutarDataTable("SP_GES_REPORTS_V2_OBTENER_DIASGIRO_VALIDACION", anio, mes, periodo, codOficina, codCategoria);

                if (dt.Rows.Count > 0)
                {
                    oE_ReporteCliente_Stock_Validacion = new E_ReporteCliente_Stock_Validacion();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        E_ReporteCliente_Stock_Validacion_Detalle oE_ReporteCliente_Stock_Validacion_Detalle = new E_ReporteCliente_Stock_Validacion_Detalle();

                        oE_ReporteCliente_Stock_Validacion_Detalle.codPdv     = dt.Rows[i]["ClientPDV_code"].ToString();
                        oE_ReporteCliente_Stock_Validacion_Detalle.nombrePdv  = dt.Rows[i]["pdv_Name"].ToString();
                        oE_ReporteCliente_Stock_Validacion_Detalle.diasGiro   = dt.Rows[i]["DiasGiro"].ToString();
                        oE_ReporteCliente_Stock_Validacion_Detalle.validacion = dt.Rows[i]["Validado"].ToString();

                        sumStockFinal += Convert.ToDouble(dt.Rows[i]["Stock_Final"]);
                        sumPromVentas += Convert.ToDouble(dt.Rows[i]["SellOut"]) / Convert.ToDouble(dt.Rows[i]["Rango_Dias"]);

                        oE_ReporteCliente_Stock_Validacion.oListReporteCliente_Stock_Validacion_Detalle.Add(oE_ReporteCliente_Stock_Validacion_Detalle);
                    }
                }
                oE_ReporteCliente_Stock_Validacion.totalDiasGiro = Math.Round(sumStockFinal / sumPromVentas, 0);

                return(oE_ReporteCliente_Stock_Validacion);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }