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); }
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()); }
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); }
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); }
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); }