Пример #1
0
    public static string XML(CNotaCredito NotaCredito)
    {
        string xml =
            "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + System.Environment.NewLine +
            "<cfdi:Comprobante" + System.Environment.NewLine +
            "    Certificado=\"\"" + System.Environment.NewLine +
            "    NoCertificado=\"" + NotaCredito.NoCertificado + "\"" + System.Environment.NewLine +
            "    FormaPago=\"" + NotaCredito.FormaPago + "\"" + System.Environment.NewLine +
            "    Sello=\"" + NotaCredito.Sello + "\"" + System.Environment.NewLine +
            "    Fecha=\"" + NotaCredito.Fecha + "\"" + System.Environment.NewLine +
            "    Folio=\"" + NotaCredito.Folio + "\"" + System.Environment.NewLine +
            "    Serie=\"" + NotaCredito.Serie + "\"" + System.Environment.NewLine +
            "    Version=\"3.3\"" + System.Environment.NewLine +
            "    LugarExpedicion=\"" + NotaCredito.LugarExpedicion + "\"" + System.Environment.NewLine +
            "    CondicionesDePago=\"" + NotaCredito.CondicionDePago + "\"" + System.Environment.NewLine +
            "    MetodoPago=\"" + NotaCredito.MetodoPago + "\"" + System.Environment.NewLine +
            "    TipoDeComprobante=\"" + NotaCredito.TipoDeComprobante + "\"" + System.Environment.NewLine +
            "    Total=\"" + NotaCredito.Total.ToString("0.##") + "\"" + System.Environment.NewLine +
            "    SubTotal=\"" + NotaCredito.Subtotal.ToString("0.##") + "\"" + System.Environment.NewLine +
            "    Moneda=\"" + NotaCredito.Moneda + "\"" + System.Environment.NewLine +
            "    TipoCambio=\"" + NotaCredito.TipoCambio.ToString("0.##") + "\"" + System.Environment.NewLine +
            "    xmlns:cfdi=\"http://www.sat.gob.mx/cfd/3\"" + System.Environment.NewLine +
            "    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + System.Environment.NewLine +
            "    xsi:schemaLocation=\"http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd\">" + System.Environment.NewLine;

        xml +=
            "   <cfdi:CfdiRelacionados " + System.Environment.NewLine +
            "       TipoRelacion = \"" + NotaCredito.TipoRelacion + "\" >" + System.Environment.NewLine;
        foreach (CCfdiRelacionado cfdiRelacionado in NotaCredito.CfdisRelacionados)
        {
            xml +=
                "       <cfdi:CfdiRelacionado UUID = \"" + cfdiRelacionado.UUID + "\" /> " + System.Environment.NewLine;
        }
        xml +=
            "   </cfdi:CfdiRelacionados> " + System.Environment.NewLine;

        xml +=
            "    <cfdi:Emisor" + System.Environment.NewLine +
            "        Nombre=\"" + NotaCredito.Emisor.Nombre + "\"" + System.Environment.NewLine +
            "        Rfc=\"" + NotaCredito.Emisor.RFC + "\"" + System.Environment.NewLine +
            "        RegimenFiscal=\"" + NotaCredito.Emisor.RegimenFiscal + "\"/>" + System.Environment.NewLine +
            "    <cfdi:Receptor" + System.Environment.NewLine +
            "        Nombre=\"" + NotaCredito.Receptor.Nombre + "\"" + System.Environment.NewLine +
            "        Rfc=\"" + NotaCredito.Receptor.RFC + "\"" + System.Environment.NewLine +
            "        UsoCFDI=\"" + NotaCredito.Receptor.UsoCFDI + "\"/>" + System.Environment.NewLine +
            "    <cfdi:Conceptos>" + System.Environment.NewLine;

        foreach (CConceptoNotaCredito Concepto in NotaCredito.Conceptos)
        {
            xml +=
                "        <cfdi:Concepto" + System.Environment.NewLine +
                "            Importe=\"" + Concepto.Importe + "\"" + System.Environment.NewLine +
                "            ValorUnitario=\"" + Concepto.ValorUnitario.ToString("0.##") + "\"" + System.Environment.NewLine +
                "            Descripcion=\"" + Concepto.Descripcion + "\"" + System.Environment.NewLine +
                "            ClaveUnidad=\"" + Concepto.ClaveUnidad + "\"" + System.Environment.NewLine +
                "            Cantidad=\"" + Concepto.Cantidad.ToString("0.######") + "\"" + System.Environment.NewLine +
                "            ClaveProdServ=\"" + Concepto.ClaveProdServ + "\">" + System.Environment.NewLine;

            if (Concepto.Impuestos.Traslados[0].Traslado.Contenido.Importe != 0)
            {
                xml +=
                    "            <cfdi:Impuestos>" + System.Environment.NewLine +
                    "                <cfdi:Traslados>" + System.Environment.NewLine +
                    "                    <cfdi:Traslado Base=\"" + Concepto.Impuestos.Traslados[0].Traslado.Contenido.Base.ToString("0.##") + "\"" + System.Environment.NewLine +
                    "                        TipoFactor=\"" + Concepto.Impuestos.Traslados[0].Traslado.Contenido.TipoFactor + "\"" + System.Environment.NewLine +
                    "                        TasaOCuota=\"" + "0.160000" + "\"" + System.Environment.NewLine +
                    "                        Impuesto=\"" + Concepto.Impuestos.Traslados[0].Traslado.Contenido.Impuesto + "\"" + System.Environment.NewLine +
                    "                        Importe=\"" + Concepto.Impuestos.Traslados[0].Traslado.Contenido.Importe.ToString("0.##") + "\"/>" + System.Environment.NewLine +
                    "                </cfdi:Traslados>" + System.Environment.NewLine +
                    "            </cfdi:Impuestos>" + System.Environment.NewLine;
            }
            xml +=
                "        </cfdi:Concepto>" + System.Environment.NewLine;
        }

        xml +=
            "    </cfdi:Conceptos>" + System.Environment.NewLine;
        if (NotaCredito.Impuestos.TotalImpuestosTraslados != 0)
        {
            xml +=
                "    <cfdi:Impuestos TotalImpuestosTrasladados=\"" + NotaCredito.Impuestos.TotalImpuestosTraslados + "\">" + System.Environment.NewLine +
                "        <cfdi:Traslados>" + System.Environment.NewLine +
                "            <cfdi:Traslado" + System.Environment.NewLine +
                "                Importe=\"" + NotaCredito.Impuestos.Traslados[0].Traslado.Contenido.Importe.ToString("0.##") + "\"" + System.Environment.NewLine +
                "                TipoFactor=\"" + NotaCredito.Impuestos.Traslados[0].Traslado.Contenido.TipoFactor + "\"" + System.Environment.NewLine +
                "                TasaOCuota=\"" + "0.160000" + "\"" + System.Environment.NewLine +
                "                Impuesto=\"" + NotaCredito.Impuestos.Traslados[0].Traslado.Contenido.Impuesto + "\"/>" + System.Environment.NewLine +
                "        </cfdi:Traslados>" + System.Environment.NewLine +
                "    </cfdi:Impuestos>" + System.Environment.NewLine;
        }
        xml +=
            "</cfdi:Comprobante>";

        return(xml);
    }
Пример #2
0
    public static string TimbrarNotaCredito(string Id, string Token, Dictionary <string, object> NotaCredito, string RFC, string RefID, string NoCertificado, string Formato, string Correos, string RutaCFDI)
    {
        JObject      Respuesta   = new JObject();
        string       Xml         = "";
        CNotaCredito notaCredito = new CNotaCredito();;

        try { notaCredito = GenerarNotaCredito(NotaCredito); }
        catch (Exception ex)
        { }

        Xml = NotaCreditoXML.XML(notaCredito);

        // Save file XML in
        System.IO.Directory.CreateDirectory(@"" + RutaCFDI + @"\NotaCredito\in\" + RFC);
        System.IO.File.WriteAllText(@"" + RutaCFDI + @"\NotaCredito\in\" + RFC + @"\" + RefID + ".xml", Xml);
        //return Xml;
        string encode = Base64.Encode(Xml);

        JObject Request      = new JObject();
        JObject Credenciales = new JObject();
        JObject Issuer       = new JObject();
        JObject Receivers    = new JObject();
        JObject Document     = new JObject();

        Credenciales.Add("id", Id);
        Credenciales.Add("token", Token);

        Issuer.Add("rfc", RFC);

        Document.Add("ref-id", RefID);
        Document.Add("certificate-number", NoCertificado);
        Document.Add("section", "all");
        Document.Add("format", Formato);
        Document.Add("template", "letter");
        Document.Add("type", "application/vnd.diverza.cfdi_3.3+xml");
        Document.Add("content", encode);

        Request.Add("credentials", Credenciales);
        Request.Add("issuer", Issuer);
        Request.Add("receiver", Conector.ObtenerDestinatarios(Correos.Split(',').ToList()));
        Request.Add("document", Document);
        string response = Conector.NotaCredito(Request);
        //return response.ToString();
        Dictionary <string, object> Response = (Dictionary <string, object>)JSON.Parse(response);
        //return Response.ToString();
        string uuid    = "";
        string ref_id  = "";
        string content = "";
        string message = "Error en el timbrado";
        int    Error   = 0;

        if (!Response.ContainsKey("message"))
        {
            try
            {
                message = "";

                uuid    = (Response.ContainsKey("uuid")) ? (string)Response["uuid"] : "";
                ref_id  = (Response.ContainsKey("uuid")) ? (string)Response["ref_id"] : "";
                content = (Response.ContainsKey("content")) ? (string)Response["content"] : "";

                // Save file ZIP out
                GuardarContenido(RutaCFDI, content, notaCredito.Receptor.RFC, notaCredito.Serie, notaCredito.Folio);
            }
            catch (Exception ex)
            {
                message = ex.Message;
                Error   = 1;
            }
        }
        else
        {
            message = (string)Response["message"];
            Error   = 1;
        }

        Respuesta.Add("Error", Error);
        Respuesta.Add("message", message);
        Respuesta.Add("uuid", uuid);
        Respuesta.Add("ref_id", ref_id);
        Respuesta.Add("certificado", NoCertificado);
        Respuesta.Add("content", content);
        Respuesta.Add("request", Request);
        Respuesta.Add("response", response);

        return(Respuesta.ToString());
    }
Пример #3
0
    public static JObject ObtenerNotaCredito(JObject pModelo, int pIdNotaCredito, CConexion pConexion)
    {
        CNotaCredito NotaCredito = new CNotaCredito();

        NotaCredito.LlenaObjeto(pIdNotaCredito, pConexion);
        pModelo.Add(new JProperty("IdNotaCredito", NotaCredito.IdNotaCredito));

        CTxtTimbradosNotaCredito    TxtTimbradosNotaCredito = new CTxtTimbradosNotaCredito();
        Dictionary <string, object> ParametrosTXT           = new Dictionary <string, object>();

        ParametrosTXT.Add("Folio", NotaCredito.FolioNotaCredito);
        ParametrosTXT.Add("Serie", NotaCredito.SerieNotaCredito);
        TxtTimbradosNotaCredito.LlenaObjetoFiltros(ParametrosTXT, pConexion);

        if (TxtTimbradosNotaCredito.IdTxtTimbradosNotaCredito != 0 && TxtTimbradosNotaCredito.IdTxtTimbradosNotaCredito != null)
        {
            pModelo.Add(new JProperty("IdTxtTimbradosNotaCredito", TxtTimbradosNotaCredito.IdTxtTimbradosNotaCredito));
        }
        else
        {
            pModelo.Add(new JProperty("IdTxtTimbradosNotaCredito", 0));
        }

        CCliente Cliente = new CCliente();

        Cliente.LlenaObjeto(NotaCredito.IdCliente, pConexion);
        pModelo.Add(new JProperty("IdCliente", Cliente.IdCliente));

        COrganizacion Organizacion = new COrganizacion();

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

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

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

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

        CTipoNotaCredito tipoNota = new CTipoNotaCredito();

        tipoNota.LlenaObjeto(NotaCredito.IdTipoNotaCredito, pConexion);
        pModelo.Add("IdTipoNota", tipoNota.IdTipoNotaCredito);
        pModelo.Add("TipoNota", tipoNota.Descripcion);

        return(pModelo);
    }
Пример #4
0
    private static CNotaCredito GenerarNotaCredito(Dictionary <string, object> NotaCredito)
    {
        CNotaCredito notaCredito = new CNotaCredito();

        notaCredito.Serie             = Convert.ToString(NotaCredito["Serie"]);
        notaCredito.Folio             = Convert.ToString(NotaCredito["Folio"]);
        notaCredito.Fecha             = NotaCredito["Fecha"].ToString();
        notaCredito.FormaPago         = NotaCredito["FormaPago"].ToString();
        notaCredito.CondicionDePago   = Convert.ToString(NotaCredito["CondicionDePago"]);
        notaCredito.NoCertificado     = Convert.ToString(NotaCredito["NoCertificado"]);
        notaCredito.Certificado       = Convert.ToString(NotaCredito["Certificado"]);
        notaCredito.Subtotal          = Convert.ToDecimal(NotaCredito["SubTotal"]);
        notaCredito.TipoCambio        = Convert.ToDecimal(NotaCredito["TipoCambio"]);
        notaCredito.Moneda            = Convert.ToString(NotaCredito["Moneda"]);
        notaCredito.Total             = Convert.ToDecimal(NotaCredito["Total"]);
        notaCredito.TipoDeComprobante = Convert.ToString(NotaCredito["TipoDeComprobante"]);
        notaCredito.MetodoPago        = Convert.ToString(NotaCredito["MetodoPago"]);
        notaCredito.LugarExpedicion   = Convert.ToString(NotaCredito["LugarExpedicion"]);
        notaCredito.Sello             = Convert.ToString(NotaCredito["Sello"]);

        //Dictionary<string, object> CFDIRelacionado = (Dictionary<string, object>)NotaCredito["CFDIRelacionado"];
        //notaCredito.CfdiRelacionado.TipoRelacion = Convert.ToString(CFDIRelacionado["TipoRelacion"]);
        //notaCredito.CfdiRelacionado.UUID = Convert.ToString(CFDIRelacionado["UUID"]);

        Object[] CfdisRelacionados = (Object[])NotaCredito["CFDISRelacionados"];
        if (CfdisRelacionados.Length > 0)
        {
            int i = 0;
            CCfdiRelacionado[] cfdisRelacionados = new CCfdiRelacionado[CfdisRelacionados.Length];

            foreach (Dictionary <string, object> cfdiRelacionado in CfdisRelacionados)
            {
                cfdisRelacionados[i] = new CCfdiRelacionado
                {
                    TipoRelacion = Convert.ToString(cfdiRelacionado["TipoRelacion"]),
                    UUID         = Convert.ToString(cfdiRelacionado["UUID"])
                };

                cfdisRelacionados[i].TipoRelacion = Convert.ToString(cfdiRelacionado["TipoRelacion"]);
                cfdisRelacionados[i].UUID         = Convert.ToString(cfdiRelacionado["UUID"]);

                notaCredito.TipoRelacion = Convert.ToString(cfdiRelacionado["TipoRelacion"]);

                i++;
            }
            notaCredito.CfdisRelacionados = cfdisRelacionados;
        }
        else
        {
        }

        Dictionary <string, object> Emisor   = (Dictionary <string, object>)NotaCredito["Emisor"];
        Dictionary <string, object> Receptor = (Dictionary <string, object>)NotaCredito["Receptor"];

        notaCredito.Emisor.Nombre        = Convert.ToString(Emisor["Nombre"]);
        notaCredito.Emisor.RFC           = Convert.ToString(Emisor["RFC"]);
        notaCredito.Emisor.RegimenFiscal = Convert.ToString(Emisor["RegimenFiscal"]);

        notaCredito.Receptor.Nombre  = Convert.ToString(Receptor["Nombre"]);
        notaCredito.Receptor.RFC     = Convert.ToString(Receptor["RFC"]);
        notaCredito.Receptor.UsoCFDI = Convert.ToString(Receptor["UsoCFDI"]);

        Object[] Conceptos = (Object[])NotaCredito["Conceptos"];

        if (Conceptos.Length > 0)
        {
            int i = 0;
            CConceptoNotaCredito[] conceptos = new CConceptoNotaCredito[Conceptos.Length];

            foreach (Dictionary <string, object> Concepto in Conceptos)
            {
                Dictionary <string, object> Impuestos = (Dictionary <string, object>)Concepto["Impuestos"];
                Object[] Traslados = (Object[])Impuestos["Traslados"];

                CImpuestoConceptoNotaCredito impuestos = new CImpuestoConceptoNotaCredito();
                CTrasladosConcepto[]         traslados = new CTrasladosConcepto[Traslados.Length];

                int j = 0;
                foreach (Dictionary <string, object> Traslado in Traslados)
                {
                    Dictionary <string, object> Contenido = (Dictionary <string, object>)Traslado["Traslado"];
                    CTrasladoConcepto           traslado  = new CTrasladoConcepto();
                    CTrasladoConceptoContenido  contenido = new CTrasladoConceptoContenido();
                    contenido.Base       = Convert.ToDecimal(Contenido["Base"]);
                    contenido.TipoFactor = Convert.ToString(Contenido["TipoFactor"]);
                    contenido.TasaOCuota = Convert.ToDecimal(Contenido["TasaOCuota"]);
                    contenido.Impuesto   = Convert.ToString(Contenido["Impuesto"]);
                    contenido.Importe    = Convert.ToDecimal(Contenido["Importe"]);
                    traslado.Contenido   = contenido;
                    traslados[j]         = new CTrasladosConcepto
                    {
                        Traslado = traslado
                    };
                }

                impuestos.Traslados = traslados;

                conceptos[i] = new CConceptoNotaCredito
                {
                    Importe       = Convert.ToString(Concepto["Importe"]),
                    ValorUnitario = Convert.ToDecimal(Concepto["ValorUnitario"]),
                    Descripcion   = Convert.ToString(Concepto["Descripcion"]),
                    Cantidad      = Convert.ToDecimal(Concepto["Cantidad"]),
                    ClaveUnidad   = Convert.ToString(Concepto["ClaveUnidad"]),
                    ClaveProdServ = Convert.ToString(Concepto["ClaveProdServ"]),
                    Impuestos     = impuestos
                };

                conceptos[i].Importe       = Convert.ToString(Concepto["Importe"]);
                conceptos[i].ValorUnitario = Convert.ToDecimal(Concepto["ValorUnitario"]);
                conceptos[i].Descripcion   = Convert.ToString(Concepto["Descripcion"]);
                conceptos[i].Cantidad      = Convert.ToDecimal(Concepto["Cantidad"]);
                conceptos[i].ClaveProdServ = Convert.ToString(Concepto["ClaveProdServ"]);

                i++;
            }
            notaCredito.Conceptos = conceptos;
        }
        else
        {
        }

        Dictionary <string, object> ImpuestosGlobales = (Dictionary <string, object>)NotaCredito["Impuestos"];

        Object[] TrasladosGlobales = (Object[])ImpuestosGlobales["Traslados"];

        notaCredito.Impuestos.TotalImpuestosTraslados = Convert.ToDecimal(ImpuestosGlobales["TotalImpuestosTrasladados"]);

        CTrasladosComprobante[] trasladosglobales = new CTrasladosComprobante[TrasladosGlobales.Length];

        int h = 0;

        foreach (Dictionary <string, object> TrasladoGlobal in TrasladosGlobales)
        {
            Dictionary <string, object>   ContenidoTrasladoGlobal = (Dictionary <string, object>)TrasladoGlobal["Traslado"];
            CTrasladoComprobante          traslado  = new CTrasladoComprobante();
            CTrasladoComprobanteContenido contenido = new CTrasladoComprobanteContenido();
            contenido.Importe    = Convert.ToDecimal(ContenidoTrasladoGlobal["Importe"]);
            contenido.Impuesto   = Convert.ToString(ContenidoTrasladoGlobal["Impuesto"]);
            contenido.TasaOCuota = Convert.ToDecimal(ContenidoTrasladoGlobal["TasaOCuota"]);
            contenido.TipoFactor = Convert.ToString(ContenidoTrasladoGlobal["TipoFactor"]);
            traslado.Contenido   = contenido;
            trasladosglobales[h] = new CTrasladosComprobante {
                Traslado = traslado
            };
        }

        notaCredito.Impuestos.Traslados = trasladosglobales;

        return(notaCredito);
    }
Пример #5
0
    public static JObject ObtenerNotaCreditoAsociarDocumentos(JObject pModelo, int pIdNotaCredito, CConexion pConexion)
    {
        CNotaCredito NotaCredito = new CNotaCredito();

        NotaCredito.LlenaObjeto(pIdNotaCredito, pConexion);
        pModelo.Add(new JProperty("IdNotaCredito", NotaCredito.IdNotaCredito));

        CCliente Cliente = new CCliente();

        Cliente.LlenaObjeto(NotaCredito.IdCliente, pConexion);
        pModelo.Add(new JProperty("IdCliente", Cliente.IdCliente));

        COrganizacion Organizacion = new COrganizacion();

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

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

        TipoMoneda.LlenaObjeto(NotaCredito.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
        CTipoCambioNotaCredito      TipoCambioNotaCredito = new CTipoCambioNotaCredito();
        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("IdNotaCredito", pIdNotaCredito);
        TipoCambioNotaCredito.LlenaObjetoFiltros(ParametrosTS, pConexion);
        ///////////////////////////////////////////////////////////////////////////////////////////////

        CNotaCreditoEncabezadoFactura NotaCreditoEncabezadoFactura = new CNotaCreditoEncabezadoFactura();

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



            pModelo.Add(new JProperty("Disponible", NotaCredito.Total - NotaCreditoEncabezadoFactura.TotalAbonosNotaCredito(NotaCredito.IdNotaCredito, pConexion)));
            if (TipoCambioNotaCredito.TipoCambio != 0)
            {
                pModelo.Add(new JProperty("DisponibleDolares", (NotaCredito.Total / TipoCambioNotaCredito.TipoCambio) - (NotaCreditoEncabezadoFactura.TotalAbonosNotaCredito(NotaCredito.IdNotaCredito, pConexion) / TipoCambioNotaCredito.TipoCambio)));
            }
            else
            {
                pModelo.Add(new JProperty("DisponibleDolares", 0));
            }
        }
        else
        {
            pModelo.Add(new JProperty("Importe", NotaCredito.Total * TipoCambioNotaCredito.TipoCambio));
            pModelo.Add(new JProperty("ImporteDolares", NotaCredito.Total));

            pModelo.Add(new JProperty("Disponible", (NotaCredito.Total * TipoCambioNotaCredito.TipoCambio) - NotaCreditoEncabezadoFactura.TotalAbonosNotaCredito(NotaCredito.IdNotaCredito, pConexion)));
            if (TipoCambioNotaCredito.TipoCambio != 0)
            {
                pModelo.Add(new JProperty("DisponibleDolares", NotaCredito.Total - (NotaCreditoEncabezadoFactura.TotalAbonosNotaCredito(NotaCredito.IdNotaCredito, pConexion) / TipoCambioNotaCredito.TipoCambio)));
            }
            else
            {
                pModelo.Add(new JProperty("DisponibleDolares", NotaCredito.Total - (NotaCreditoEncabezadoFactura.TotalAbonosNotaCredito(NotaCredito.IdNotaCredito, pConexion))));
            }
        }

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

        return(pModelo);
    }