public static string ObtieneInventarioImportesGlobal(int pIdAlmacen, string pFechaInicial, string pFechaFinal, string pFechaIni, string pFechaF)
    {
        CConexion ConexionBaseDatos = new CConexion();
        string    respuesta         = ConexionBaseDatos.ConectarBaseDatosSqlServer();
        JObject   oRespuesta        = new JObject();

        if (respuesta == "Conexion Establecida")
        {
            JObject  Modelo = new JObject();
            DateTime Fecha  = DateTime.Now;

            CUsuario Usuario = new CUsuario();
            Usuario.LlenaObjeto(Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]), ConexionBaseDatos);

            CSucursal Sucursal = new CSucursal();
            Sucursal.LlenaObjeto(Usuario.IdSucursalActual, ConexionBaseDatos);

            CEmpresa Empresa = new CEmpresa();
            Empresa.LlenaObjeto(Sucursal.IdEmpresa, ConexionBaseDatos);

            CSelectEspecifico ConsultaReporteInventarioImportesGlobal = new CSelectEspecifico();
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.CommandText = "SP_Impresion_InventarioImportesGlobal";
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@Opcion", 1);
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@pIdAlmacen", pIdAlmacen);
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@pIdUsuario", Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]));
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@pFechaInicial", pFechaInicial);
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@pFechaFinal", pFechaFinal);
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@pFormatoFechaIni", pFechaIni);
            ConsultaReporteInventarioImportesGlobal.StoredProcedure.Parameters.AddWithValue("@pFormatoFechaFin", pFechaF);
            ConsultaReporteInventarioImportesGlobal.Llena(ConexionBaseDatos);

            if (ConsultaReporteInventarioImportesGlobal.Registros.Read())
            {
                Modelo.Add("RAZONSOCIALRECEPTOR", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["RazonSocialReceptor"]));
                Modelo.Add("FECHA", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Fecha"]));
                Modelo.Add("FECHAINICIAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["FechaInicial"]));
                Modelo.Add("FECHAFINAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["FechaFinal"]));
                Modelo.Add("TIPOMONEDA", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TipoMoneda"]));
                Modelo.Add("REPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Reporte"]));
                Modelo.Add("ALMACEN1", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Almacen"]));
                Modelo.Add("TOTALINVINICIAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalInventarioInicial"]));
                Modelo.Add("TOTALENTRADAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalEntradas"]));
                Modelo.Add("TOTALSALIDAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalSalidas"]));
                Modelo.Add("TOTALINVFINAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalInventarioFinal"]));
                Modelo.Add("INVENTARIOINICIALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalInicialImporte"]));
                Modelo.Add("INVENTARIOFINALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalFinalImporte"]));
            }

            if (ConsultaReporteInventarioImportesGlobal.Registros.NextResult())
            {
                JArray  JAAlmacen = new JArray();
                string  Almacen   = "";
                JObject JMAlmacen = new JObject();

                JArray JAMovimientos = new JArray();
                while (ConsultaReporteInventarioImportesGlobal.Registros.Read())
                {
                    //Creamos list proveedor
                    if (Almacen != Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Descripcion"]))
                    {
                        if (JAMovimientos.Count > 0)
                        {
                            JMAlmacen.Add("Movimientos", JAMovimientos);
                            JAAlmacen.Add(JMAlmacen);
                            JMAlmacen     = new JObject();
                            JAMovimientos = new JArray();
                        }
                        Almacen = Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Descripcion"]);
                        JMAlmacen.Add("Almacen", Almacen);
                        JObject JMovimiento = new JObject();
                        JMovimiento.Add("ALMACEN", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Descripcion"]));
                        JMovimiento.Add("CLAVE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Clave"]));
                        JMovimiento.Add("PRODUCTO", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Producto"]));
                        JMovimiento.Add("COSTEO", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Costeo"]));
                        JMovimiento.Add("UNIDADCOMPRAVENTA", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["UnidadCompraVenta"]));
                        JMovimiento.Add("INVENTARIOINICIALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioInicialImporte"]));
                        JMovimiento.Add("INVENTARIOINICIAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioInicial"]));
                        JMovimiento.Add("ENTRADAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Entradas"]));
                        JMovimiento.Add("SALIDAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Salidas"]));
                        JMovimiento.Add("INVENTARIOFINAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioFinal"]));
                        JMovimiento.Add("INVENTARIOFINALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioFinalImporte"]));
                        JMovimiento.Add("ROTACION", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Rotacion"]));
                        JAMovimientos.Add(JMovimiento);
                    }
                    else
                    {
                        JObject JMovimiento = new JObject();
                        JMovimiento.Add("ALMACEN", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Descripcion"]));
                        JMovimiento.Add("CLAVE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Clave"]));
                        JMovimiento.Add("PRODUCTO", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Producto"]));
                        JMovimiento.Add("COSTEO", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Costeo"]));
                        JMovimiento.Add("UNIDADCOMPRAVENTA", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["UnidadCompraVenta"]));
                        JMovimiento.Add("INVENTARIOINICIALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioInicialImporte"]));
                        JMovimiento.Add("INVENTARIOINICIAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioInicial"]));
                        JMovimiento.Add("ENTRADAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Entradas"]));
                        JMovimiento.Add("SALIDAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Salidas"]));
                        JMovimiento.Add("INVENTARIOFINAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioFinal"]));
                        JMovimiento.Add("INVENTARIOFINALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["InventarioFinalImporte"]));
                        JMovimiento.Add("ROTACION", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Rotacion"]));
                        JAMovimientos.Add(JMovimiento);
                    }
                }
                JMAlmacen.Add("Movimientos", JAMovimientos);
                JAAlmacen.Add(JMAlmacen);
                Modelo.Add("ALMACEN", JAAlmacen);
            }

            if (ConsultaReporteInventarioImportesGlobal.Registros.NextResult())
            {
                string  TotalAlmacen   = "";
                JObject JMTotalAlmacen = new JObject();

                JArray JATotalMovimientos = new JArray();
                while (ConsultaReporteInventarioImportesGlobal.Registros.Read())
                {
                    JObject JMovimiento = new JObject();
                    JMovimiento.Add("TOTALALMACEN", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["Descripcion"]));
                    JMovimiento.Add("INVENTARIOINICIALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalInicialImporteAlmacen"]));
                    JMovimiento.Add("INVENTARIOINICIAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalInicialAlmacen"]));
                    JMovimiento.Add("ENTRADAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalEntradasAlmacen"]));
                    JMovimiento.Add("SALIDAS", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalSalidasAlmacen"]));
                    JMovimiento.Add("INVENTARIOFINAL", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalFinalAlmacen"]));
                    JMovimiento.Add("INVENTARIOFINALIMPORTE", Convert.ToString(ConsultaReporteInventarioImportesGlobal.Registros["TotalFinalImporteAlmacen"]));
                    JATotalMovimientos.Add(JMovimiento);
                }
                JMTotalAlmacen.Add("TotalMovimientos", JATotalMovimientos);
                Modelo.Add("LISTAALMACENES", JMTotalAlmacen);
            }

            oRespuesta.Add(new JProperty("Error", 0));
            oRespuesta.Add(new JProperty("Modelo", Modelo));
        }
        else
        {
            oRespuesta.Add(new JProperty("Error", 1));
            oRespuesta.Add(new JProperty("Descripcion", "No hay conexion a base de datos"));
        }


        ConexionBaseDatos.CerrarBaseDatosSqlServer();
        return(oRespuesta.ToString());
    }
    public static string ObtieneEstadoCuentasPorCobrar(int pIdProveedor, string pFechaInicial, int pIdSucursal, string pSucursal)
    {
        CConexion ConexionBaseDatos = new CConexion();
        string    respuesta         = ConexionBaseDatos.ConectarBaseDatosSqlServer();
        JObject   oRespuesta        = new JObject();

        if (respuesta == "Conexion Establecida")
        {
            JObject  Modelo = new JObject();
            DateTime Fecha  = DateTime.Now;

            CSelectEspecifico ConsultaReporteCuentasPorPagarPorFechaFactura = new CSelectEspecifico();
            ConsultaReporteCuentasPorPagarPorFechaFactura.StoredProcedure.CommandText = "SP_Impresion_CuentasPorPagarPorFechaFactura";
            ConsultaReporteCuentasPorPagarPorFechaFactura.StoredProcedure.Parameters.AddWithValue("@Opcion", 1);
            ConsultaReporteCuentasPorPagarPorFechaFactura.StoredProcedure.Parameters.AddWithValue("@pIdProveedor", Convert.ToInt32(pIdProveedor));
            ConsultaReporteCuentasPorPagarPorFechaFactura.StoredProcedure.Parameters.AddWithValue("@pIdUsuario", Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]));
            ConsultaReporteCuentasPorPagarPorFechaFactura.StoredProcedure.Parameters.AddWithValue("@pFechaInicial", pFechaInicial);
            ConsultaReporteCuentasPorPagarPorFechaFactura.StoredProcedure.Parameters.AddWithValue("@pIdSucursal", pIdSucursal);
            ConsultaReporteCuentasPorPagarPorFechaFactura.Llena(ConexionBaseDatos);

            if (ConsultaReporteCuentasPorPagarPorFechaFactura.Registros.Read())
            {
                Modelo.Add("RAZONSOCIALRECEPTOR", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["RazonSocialReceptor"]));
                Modelo.Add("FECHA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Fecha"]));
                Modelo.Add("ESTADOCUENTA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Reporte"]));
                if (pIdSucursal != 0)
                {
                    Modelo.Add("SUCURSAL", Convert.ToString(pSucursal).ToUpper());
                }
                else
                {
                    Modelo.Add("SUCURSAL", "TODAS");
                }
            }

            if (ConsultaReporteCuentasPorPagarPorFechaFactura.Registros.NextResult())
            {
                JArray  JAMovimientos = new JArray();
                JArray  JAProveedor   = new JArray();
                string  Proveedor     = "";
                decimal dTotales      = 0;
                JObject JMProveedor   = new JObject();


                while (ConsultaReporteCuentasPorPagarPorFechaFactura.Registros.Read())
                {
                    //Creamos list proveedor
                    if (Proveedor != Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Proveedor"]))
                    {
                        if (JAMovimientos.Count > 0)
                        {
                            JMProveedor.Add("Total", string.Format("{0:c}", dTotales));
                            dTotales = 0;
                            JMProveedor.Add("Movimientos", JAMovimientos);
                            JAProveedor.Add(JMProveedor);
                            JMProveedor   = new JObject();
                            JAMovimientos = new JArray();
                        }

                        Proveedor = Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Proveedor"]);
                        JMProveedor.Add("PROVEEDOR", Proveedor);

                        JObject JMovimiento = new JObject();
                        JMovimiento.Add("FOLIO", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Folio"]));
                        JMovimiento.Add("PROVEEDOR", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Proveedor"]));
                        JMovimiento.Add("FECHA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Fecha"]));
                        JMovimiento.Add("FECHAPAGO", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["FechaPago"]));
                        JMovimiento.Add("SUBTOTAL", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Subtotal"]));
                        JMovimiento.Add("IVA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["IVA"]));
                        JMovimiento.Add("TOTAL", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Total"]));
                        JMovimiento.Add("SALDO", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Saldo"]));
                        JMovimiento.Add("TIPOMONEDA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["TipoMoneda"]));
                        JMovimiento.Add("SALDOENPESOS", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["SaldoEnPesos"]));
                        JAMovimientos.Add(JMovimiento);
                    }
                    else
                    {
                        JObject JMovimiento = new JObject();
                        JMovimiento.Add("FOLIO", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Folio"]));
                        JMovimiento.Add("PROVEEDOR", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Proveedor"]));
                        JMovimiento.Add("FECHA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Fecha"]));
                        JMovimiento.Add("FECHAPAGO", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["FechaPago"]));
                        JMovimiento.Add("SUBTOTAL", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Subtotal"]));
                        JMovimiento.Add("IVA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["IVA"]));
                        JMovimiento.Add("TOTAL", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Total"]));
                        JMovimiento.Add("SALDO", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["Saldo"]));
                        JMovimiento.Add("TIPOMONEDA", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["TipoMoneda"]));
                        JMovimiento.Add("SALDOENPESOS", Convert.ToString(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["SaldoEnPesos"]));
                        JAMovimientos.Add(JMovimiento);
                    }
                    dTotales = dTotales + Convert.ToDecimal(ConsultaReporteCuentasPorPagarPorFechaFactura.Registros["SaldoEnPesos"].ToString().Replace("$", "").Replace(",", ""));
                }

                JMProveedor.Add("Total", string.Format("{0:c}", dTotales));
                JMProveedor.Add("Movimientos", JAMovimientos);
                JAProveedor.Add(JMProveedor);
                Modelo.Add("Proveedor", JAProveedor);
            }


            oRespuesta.Add(new JProperty("Error", 0));
            oRespuesta.Add(new JProperty("Modelo", Modelo));
        }
        else
        {
            oRespuesta.Add(new JProperty("Error", 1));
            oRespuesta.Add(new JProperty("Descripcion", "No hay conexion a base de datos"));
        }


        ConexionBaseDatos.CerrarBaseDatosSqlServer();
        return(oRespuesta.ToString());
    }