public static JObject ObtenerNotaCreditoProveedor(JObject pModelo, int pIdNotaCreditoProveedor, CConexion pConexion)
    {
        CNotaCreditoProveedor NotaCreditoProveedor = new CNotaCreditoProveedor();

        NotaCreditoProveedor.LlenaObjeto(pIdNotaCreditoProveedor, pConexion);
        pModelo.Add(new JProperty("IdNotaCreditoProveedor", NotaCreditoProveedor.IdNotaCreditoProveedor));

        CProveedor Proveedor = new CProveedor();

        Proveedor.LlenaObjeto(NotaCreditoProveedor.IdProveedor, pConexion);
        pModelo.Add(new JProperty("IdProveedor", Proveedor.IdProveedor));

        COrganizacion Organizacion = new COrganizacion();

        Organizacion.LlenaObjeto(Proveedor.IdOrganizacion, pConexion);
        pModelo.Add(new JProperty("RazonSocial", Organizacion.RazonSocial));
        pModelo.Add(new JProperty("RFC", Organizacion.RFC));

        pModelo.Add(new JProperty("SerieNotaCredito", NotaCreditoProveedor.SerieNotaCredito));
        pModelo.Add(new JProperty("FolioNotaCredito", NotaCreditoProveedor.FolioNotaCredito));
        pModelo.Add(new JProperty("Descripcion", NotaCreditoProveedor.Descripcion));
        pModelo.Add(new JProperty("Fecha", NotaCreditoProveedor.Fecha.ToShortDateString()));
        pModelo.Add(new JProperty("Monto", NotaCreditoProveedor.Monto));
        pModelo.Add(new JProperty("PorcentajeIVA", NotaCreditoProveedor.PorcentajeIVA));
        pModelo.Add(new JProperty("IVA", NotaCreditoProveedor.IVA));
        pModelo.Add(new JProperty("Total", NotaCreditoProveedor.Total));
        pModelo.Add(new JProperty("Referencia", NotaCreditoProveedor.Referencia));
        pModelo.Add(new JProperty("SaldoDocumento", NotaCreditoProveedor.SaldoDocumento));
        CTipoMoneda TipoMoneda = new CTipoMoneda();

        TipoMoneda.LlenaObjeto(NotaCreditoProveedor.IdTipoMoneda, pConexion);
        pModelo.Add(new JProperty("IdTipoMoneda", TipoMoneda.IdTipoMoneda));
        pModelo.Add(new JProperty("TipoMoneda", TipoMoneda.TipoMoneda));

        pModelo.Add(new JProperty("TipoCambio", NotaCreditoProveedor.TipoCambio));
        pModelo.Add(new JProperty("Baja", NotaCreditoProveedor.Baja));

        return(pModelo);
    }
    public static JObject ObtenerNotaCreditoProveedorAsociarDocumentos(JObject pModelo, int pIdNotaCreditoProveedor, CConexion pConexion)
    {
        CNotaCreditoProveedor NotaCreditoProveedor = new CNotaCreditoProveedor();

        NotaCreditoProveedor.LlenaObjeto(pIdNotaCreditoProveedor, pConexion);
        pModelo.Add(new JProperty("IdNotaCreditoProveedor", NotaCreditoProveedor.IdNotaCreditoProveedor));

        CProveedor Proveedor = new CProveedor();

        Proveedor.LlenaObjeto(NotaCreditoProveedor.IdProveedor, pConexion);
        pModelo.Add(new JProperty("IdProveedor", Proveedor.IdProveedor));

        COrganizacion Organizacion = new COrganizacion();

        Organizacion.LlenaObjeto(Proveedor.IdOrganizacion, pConexion);
        pModelo.Add(new JProperty("RazonSocial", Organizacion.RazonSocial));
        pModelo.Add(new JProperty("RFC", Organizacion.RFC));

        pModelo.Add(new JProperty("SerieNotaCredito", NotaCreditoProveedor.SerieNotaCredito));
        pModelo.Add(new JProperty("FolioNotaCredito", NotaCreditoProveedor.FolioNotaCredito));
        pModelo.Add(new JProperty("Descripcion", NotaCreditoProveedor.Descripcion));
        pModelo.Add(new JProperty("Fecha", NotaCreditoProveedor.Fecha.ToShortDateString()));
        pModelo.Add(new JProperty("Monto", NotaCreditoProveedor.Monto));
        pModelo.Add(new JProperty("PorcentajeIVA", NotaCreditoProveedor.PorcentajeIVA));
        pModelo.Add(new JProperty("IVA", NotaCreditoProveedor.IVA));
        pModelo.Add(new JProperty("Total", NotaCreditoProveedor.Total));
        pModelo.Add(new JProperty("Referencia", NotaCreditoProveedor.Referencia));
        pModelo.Add(new JProperty("SaldoDocumento", NotaCreditoProveedor.SaldoDocumento));
        CTipoMoneda TipoMoneda = new CTipoMoneda();

        TipoMoneda.LlenaObjeto(NotaCreditoProveedor.IdTipoMoneda, pConexion);
        pModelo.Add(new JProperty("IdTipoMoneda", TipoMoneda.IdTipoMoneda));
        pModelo.Add(new JProperty("TipoMoneda", TipoMoneda.TipoMoneda));


        //OBTIENE EL TIPO DE CAMBIO EN DOLARES DEL DIA ACTUAL//////////////////////////////////////////
        //CTipoCambio TipoCambio = new CTipoCambio();
        //Dictionary<string, object> ParametrosTS = new Dictionary<string, object>();
        //ParametrosTS.Add("Opcion", 1);
        //ParametrosTS.Add("IdTipoMonedaOrigen", Convert.ToInt32(2));
        //ParametrosTS.Add("IdTipoMonedaDestino", Convert.ToInt32(1));
        //ParametrosTS.Add("Fecha", DateTime.Today);
        //TipoCambio.LlenaObjetoFiltrosTipoCambio(ParametrosTS, pConexion);
        ///////////////////////////////////////////////////////////////////////////////////////////////

        //OBTIENE EL TIPO DE CAMBIO EN DOLARES QUE SE GUARDO EN EL MOMENTO DE GENERAR LA NOTA DE CRÉDITO
        CTipoCambioNotaCreditoProveedor TipoCambioNotaCreditoProveedor = new CTipoCambioNotaCreditoProveedor();
        Dictionary <string, object>     ParametrosTS = new Dictionary <string, object>();

        ParametrosTS.Add("Opcion", 1);
        ParametrosTS.Add("IdTipoMonedaOrigen", Convert.ToInt32(2));
        ParametrosTS.Add("IdTipoMonedaDestino", Convert.ToInt32(1));
        ParametrosTS.Add("IdNotaCreditoProveedor", pIdNotaCreditoProveedor);
        TipoCambioNotaCreditoProveedor.LlenaObjetoFiltros(ParametrosTS, pConexion);
        ///////////////////////////////////////////////////////////////////////////////////////////////

        CNotaCreditoProveedorEncabezadoFacturaProveedor NotaCreditoProveedorEncabezadoFacturaProveedor = new CNotaCreditoProveedorEncabezadoFacturaProveedor();

        if (NotaCreditoProveedor.IdTipoMoneda == 1)
        {
            pModelo.Add(new JProperty("Importe", NotaCreditoProveedor.Total));
            if (TipoCambioNotaCreditoProveedor.TipoCambio != 0)
            {
                pModelo.Add(new JProperty("ImporteDolares", NotaCreditoProveedor.Total / TipoCambioNotaCreditoProveedor.TipoCambio));
            }
            else
            {
                pModelo.Add(new JProperty("ImporteDolares", 0));
            }

            pModelo.Add(new JProperty("Disponible", NotaCreditoProveedor.Total - NotaCreditoProveedorEncabezadoFacturaProveedor.TotalAbonosNotaCreditoProveedor(NotaCreditoProveedor.IdNotaCreditoProveedor, pConexion)));
            if (TipoCambioNotaCreditoProveedor.TipoCambio != 0)
            {
                pModelo.Add(new JProperty("DisponibleDolares", (NotaCreditoProveedor.Total / TipoCambioNotaCreditoProveedor.TipoCambio) - (NotaCreditoProveedorEncabezadoFacturaProveedor.TotalAbonosNotaCreditoProveedor(NotaCreditoProveedor.IdNotaCreditoProveedor, pConexion) / TipoCambioNotaCreditoProveedor.TipoCambio)));
            }
            else
            {
                pModelo.Add(new JProperty("DisponibleDolares", 0));
            }
        }
        else
        {
            pModelo.Add(new JProperty("Importe", NotaCreditoProveedor.Total * TipoCambioNotaCreditoProveedor.TipoCambio));
            pModelo.Add(new JProperty("ImporteDolares", NotaCreditoProveedor.Total));

            pModelo.Add(new JProperty("Disponible", (NotaCreditoProveedor.Total * TipoCambioNotaCreditoProveedor.TipoCambio) - NotaCreditoProveedorEncabezadoFacturaProveedor.TotalAbonosNotaCreditoProveedor(NotaCreditoProveedor.IdNotaCreditoProveedor, pConexion)));
            if (TipoCambioNotaCreditoProveedor.TipoCambio != 0)
            {
                pModelo.Add(new JProperty("DisponibleDolares", NotaCreditoProveedor.Total - (NotaCreditoProveedorEncabezadoFacturaProveedor.TotalAbonosNotaCreditoProveedor(NotaCreditoProveedor.IdNotaCreditoProveedor, pConexion) / TipoCambioNotaCreditoProveedor.TipoCambio)));
            }
            else
            {
                pModelo.Add(new JProperty("DisponibleDolares", NotaCreditoProveedor.Total - (NotaCreditoProveedorEncabezadoFacturaProveedor.TotalAbonosNotaCreditoProveedor(NotaCreditoProveedor.IdNotaCreditoProveedor, pConexion))));
            }
        }

        pModelo.Add(new JProperty("TipoCambio", TipoCambioNotaCreditoProveedor.TipoCambio));

        return(pModelo);
    }