private List <ImpuestoType> ImpuestoFactura(ComprobanteElectronicoCRI value, int numeroLinea) { List <ImpuestoType> detalleImpuesto = new List <ImpuestoType>(); if (value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto.Count == 0) { return(detalleImpuesto); } for (int n = 0; n <= value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto.Count - 1; n++) { ImpuestoType lineaImpuesto = new ImpuestoType { Codigo = (ImpuestoTypeCodigo)Enum.Parse(typeof(ImpuestoTypeCodigo), value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].Codigo),//Codigo del Impuesto Tarifa = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].Tarifa.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), Monto = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].Monto.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), Exoneracion = new ExoneracionType { TipoDocumento = (ExoneracionTypeTipoDocumento)Enum.Parse(typeof(ExoneracionTypeTipoDocumento), value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].ExoneracionTipoDocumento), NumeroDocumento = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].ExoneracionNumeroDocumento, NombreInstitucion = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].ExoneracionNombreInstitucion, FechaEmision = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].ExoneracionFechaEmision, MontoImpuesto = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].ExoneracionMontoImpuesto.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), PorcentajeCompra = value.ListaComprobanteElectronicoCRIDetalle[numeroLinea].ListaComprobanteElectronicoCRIDetalleImpuesto[n].ExoneracionPorcentajeCompra.ToString() } }; detalleImpuesto.Add(lineaImpuesto); } return(detalleImpuesto); }
//METODO PARA CREAR DOCUMENTOS ELECTRONICOS DE PRUEBA (Factura, NotaDebito , NotaCredito,TiqueteElectronico ) - NO ES NESESARIO DENTRO DEL PROYECTO public bool CrearDocumentoElectronico(ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento) { bool resultado = false; try { EngineDocumentoXml MetodoCrear = new EngineDocumentoXml(); XmlDocument documentoXml = new XmlDocument(); documentoXml = MetodoCrear.CrearDocumentoXml(objComprobanteElectronicoCRI, tipoDocumento); documentoXml.Save(@"C:\Users\Public\Documents\" + MetodoCrear.NombreDocumentoXml(documentoXml)); resultado = true; } catch (Exception ex) { throw new Exception("Error en metodo CrearDocumentoElectronico ", ex); } return(resultado); }
private List <FacturaElectronicaLineaDetalle> DetalleFactura(ComprobanteElectronicoCRI value) { List <FacturaElectronicaLineaDetalle> detalleServicio = new List <FacturaElectronicaLineaDetalle>(); for (int i = 0; i <= value.ListaComprobanteElectronicoCRIDetalle.Count - 1; i++) { if (i > 999) { return(detalleServicio); } FacturaElectronicaLineaDetalle linea = new FacturaElectronicaLineaDetalle { NumeroLinea = value.ListaComprobanteElectronicoCRIDetalle[i].NumeroLinea.ToString(), Codigo = new CodigoType[] { new CodigoType { Tipo = (CodigoTypeTipo)Enum.Parse(typeof(CodigoTypeTipo), value.ListaComprobanteElectronicoCRIDetalle[i].TipoCodigo), Codigo = value.ListaComprobanteElectronicoCRIDetalle[i].Codigo } }, Cantidad = value.ListaComprobanteElectronicoCRIDetalle[i].Cantidad.ToString(EngineData.decimalFormat3, CultureInfo.InvariantCulture),// 13 enteros 3 decimales UnidadMedida = (UnidadMedidaType)Enum.Parse(typeof(UnidadMedidaType), value.ListaComprobanteElectronicoCRIDetalle[i].UnidadMedida), UnidadMedidaComercial = value.ListaComprobanteElectronicoCRIDetalle[i].UnidadMedidaComercial, Detalle = value.ListaComprobanteElectronicoCRIDetalle[i].Detalle, PrecioUnitario = value.ListaComprobanteElectronicoCRIDetalle[i].PrecioUnitario.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //13enteros 5 decimales MontoTotal = value.ListaComprobanteElectronicoCRIDetalle[i].MontoTotal.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //cantidad * precioUnitario 13enteros 5 decimales MontoDescuento = value.ListaComprobanteElectronicoCRIDetalle[i].MontoDescuento.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //13enteros 5 decimales MontoDescuentoSpecified = EngineDocumento.InsertFieldBoolCantidad(value.ListaComprobanteElectronicoCRIDetalle[i].MontoDescuento), NaturalezaDescuento = value.ListaComprobanteElectronicoCRIDetalle[i].NaturalezaDescuento, SubTotal = value.ListaComprobanteElectronicoCRIDetalle[i].SubTotal.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),//montoTotal - montoDescuento Impuesto = ImpuestoFactura(value, value.ListaComprobanteElectronicoCRIDetalle[i].NumeroLinea - 1).ToArray(), MontoTotalLinea = value.ListaComprobanteElectronicoCRIDetalle[i].MontoTotalLinea.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture) }; detalleServicio.Add(linea); } return(detalleServicio); }
//METODO PARA CREAR , FIRMAR Y ENVIAR DOCUMENTOS ELECTRONICOS EMITIDOS (Factura, NotaDebito , NotaCredito,TiqueteElectronico ) public async Task <string> EnviarDocumentoPost(string accessToken, ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento) { urlValidacion = string.Empty; string jsonDocumento = string.Empty; EngineDocumentoXml MetodoCrear = new EngineDocumentoXml(); XmlDocument documentoXml = new XmlDocument(); documentoXml = MetodoCrear.CrearDocumentoXml(objComprobanteElectronicoCRI, tipoDocumento); FirmaXadesEpes MetodoFirmar = new FirmaXadesEpes(); documentoXml = MetodoFirmar.XadesEpesFirma(documentoXml, Valor.PathCertificadoNeo(), Valor.PinCertificadoNeo()); // DATOS DEL CERTIFICADO DEL EMISOR DEL DOCUMENTO //documentoXml = MetodoFirmar.XadesEpesFirma(documentoXml, Valor.PathCertificadoByron(), Valor.PinCertificadoByron()); CreadorComprobante ComprobanteXml = new CreadorComprobante(); string tipoEmisorNumero = Valor.TipoEmisor().Substring(Valor.TipoEmisor().Length - 2, 2);//Quito la palabra Item al TipoEmisor string tipoReceptorNumero = objComprobanteElectronicoCRI.ComprobanteElectronicoCRIEntidadJuridicaReceptor.TipoIdentificacion.Substring(objComprobanteElectronicoCRI.ComprobanteElectronicoCRIEntidadJuridicaReceptor.TipoIdentificacion.Length - 2, 2); jsonDocumento = ComprobanteXml.CadenaComprobante(objComprobanteElectronicoCRI.Clave, objComprobanteElectronicoCRI.NumeroConsecutivo, tipoEmisorNumero, Valor.NumeroIdentificacionEmisor(), tipoEmisorNumero, objComprobanteElectronicoCRI.ComprobanteElectronicoCRIEntidadJuridicaReceptor.Identificacion, documentoXml); HttpClient client = new HttpClient(); System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(EngineData.application_json)); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(EngineData.bearer, accessToken); HttpResponseMessage response = await client.PostAsync(Valor.UrlEnvioDocumento(), new StringContent(jsonDocumento, Encoding.UTF8, EngineData.application_json)); if (response.IsSuccessStatusCode) { urlValidacion = response.Headers.Location.ToString(); } else { urlValidacion = EngineData.falso; } return(urlValidacion); }
private void button4_Click(object sender, EventArgs e) { richTextBox1.Text = string.Empty; if (chkFactura.Checked) { tipoDocumento = "FacturaElectronica"; nombreArchivoXml = "FacturaElectronica.xml"; } else if (chkNotaDebito.Checked) { tipoDocumento = "NotaDebitoElectronica"; nombreArchivoXml = "NotaDebitoElectronica.xml"; } else if (chkNotaCredito.Checked) { tipoDocumento = "NotaCreditoElectronica"; nombreArchivoXml = "NotaCreditoElectronica.xml"; } else if (chkTicket.Checked) { tipoDocumento = "TiqueteElectronico"; nombreArchivoXml = "TiqueteElectronico.xml"; } else { MessageBox.Show("Debe elegir un tipo de documento"); return; } ComprobanteElectronicoCRI objComprobanteElectronicoCRI = new ComprobanteElectronicoCRI(); TributarioCr.EngineDocumentoXml Metodo = new TributarioCr.EngineDocumentoXml(); objComprobanteElectronicoCRI = Metodo.ObjComprobanteElectronicoCRI(tipoDocumento); if (ConsumoApi.CrearDocumentoElectronico(objComprobanteElectronicoCRI, tipoDocumento)) { MessageBox.Show("Documento " + tipoDocumento + " creado satisfactoriamente"); } else { MessageBox.Show("El documento " + tipoDocumento + " no pudo ser creado"); } }
private List <FacturaElectronicaInformacionReferencia> InformacionReferenciaFactura(ComprobanteElectronicoCRI value) { List <FacturaElectronicaInformacionReferencia> informacionReferencia = new List <FacturaElectronicaInformacionReferencia>(); for (int i = 0; i <= value.ListaComprobanteElectronicoCRIDetalle.Count - 1; i++) { if (i > 9) { return(informacionReferencia); } FacturaElectronicaInformacionReferencia lineaReferencia = new FacturaElectronicaInformacionReferencia { TipoDoc = (FacturaElectronicaInformacionReferenciaTipoDoc)Enum.Parse(typeof(FacturaElectronicaInformacionReferenciaTipoDoc), value.InformacionReferenciaTipoDocumento), Numero = value.InformacionReferenciaNumero, FechaEmision = value.InformacionReferenciaFechaEmision, Codigo = (FacturaElectronicaInformacionReferenciaCodigo)Enum.Parse(typeof(FacturaElectronicaInformacionReferenciaCodigo), value.InformacionReferenciaCodigo), Razon = value.InformacionReferenciaRazon }; } return(informacionReferencia); }
public FacturaElectronica CrearEstructuraFactura(ComprobanteElectronicoCRI value) { FacturaElectronica FacturaElectronica = new FacturaElectronica() { Clave = value.Clave, NumeroConsecutivo = value.NumeroConsecutivo, FechaEmision = value.FechaEmision, Emisor = new EmisorType { Nombre = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.Nombre, Identificacion = new IdentificacionType { Numero = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.Identificacion, Tipo = (IdentificacionTypeTipo)Enum.Parse(typeof(IdentificacionTypeTipo), value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.TipoIdentificacion) }, NombreComercial = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.NombreComercial, Ubicacion = new UbicacionType { Provincia = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoProvincia, Canton = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoCanton, Distrito = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoDistrito, Barrio = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoBarrio, OtrasSenas = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.OtrasSennas }, Telefono = new TelefonoType { CodigoPais = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoPaisTelefono, NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.NumeroTelefono }, Fax = new TelefonoType { CodigoPais = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoPaisFax, NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.NumeroFax }, CorreoElectronico = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CorreoElectronico }, // FIN EMISOR Receptor = new ReceptorType { Nombre = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.Nombre, Identificacion = new IdentificacionType { Numero = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.Identificacion, Tipo = (IdentificacionTypeTipo)Enum.Parse(typeof(IdentificacionTypeTipo), value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.TipoIdentificacion) }, IdentificacionExtranjero = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.IdentificacionExtranjero, NombreComercial = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.NombreComercial, Ubicacion = new UbicacionType { Provincia = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoProvincia, Canton = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoCanton, Distrito = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoDistrito, Barrio = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoBarrio, OtrasSenas = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.OtrasSennas }, Telefono = new TelefonoType { CodigoPais = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoPaisTelefono, NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.NumeroTelefono }, Fax = new TelefonoType { CodigoPais = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoPaisFax, NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.NumeroFax }, CorreoElectronico = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CorreoElectronico }, // FIN RECEPTOR CondicionVenta = (FacturaElectronicaCondicionVenta)Enum.Parse(typeof(FacturaElectronicaCondicionVenta), value.CondicionVenta), PlazoCredito = value.PlazoCredito, MedioPago = new FacturaElectronicaMedioPago[] { (FacturaElectronicaMedioPago)Enum.Parse(typeof(FacturaElectronicaMedioPago), value.MedioPago) }, // FIN INFORMACON DE LA VENTA DetalleServicio = DetalleFactura(value).ToArray(), //DETALLE DE LA FACTURA ResumenFactura = new FacturaElectronicaResumenFactura() { CodigoMoneda = (FacturaElectronicaResumenFacturaCodigoMoneda)Enum.Parse(typeof(FacturaElectronicaResumenFacturaCodigoMoneda), value.CodigoMoneda), CodigoMonedaSpecified = EngineDocumento.InsertFieldBoolCadena(value.CodigoMoneda), TipoCambio = value.TipoCambio.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), TipoCambioSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TipoCambio), TotalServGravados = value.TotalServGravados.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), TotalServGravadosSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalServGravados), TotalServExentos = value.TotalServExentos.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), TotalServExentosSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalServExentos), TotalMercanciasGravadas = value.TotalMercanciasGravadas.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), TotalMercanciasGravadasSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalMercanciasGravadas), TotalMercanciasExentas = value.TotalMercanciasExentas.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), TotalMercanciasExentasSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalMercanciasExentas), TotalGravado = value.TotalGravado.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //TotalServGravados + TotalMercanciasgravadas TotalGravadoSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalGravado), TotalExento = value.TotalExento.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //totalServExcento + totalMercanciasexentas TotalExentoSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalExento), TotalVenta = value.TotalVenta.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //totalGravado + totalExento TotalDescuentos = value.TotalDescuentos.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), // suma de todos los campos de “monto dedescuentos concedidos TotalDescuentosSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalDescuentos), TotalVentaNeta = value.TotalVentaNeta.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //totalVenta - totaDescuentos TotalImpuesto = value.TotalImpuesto.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //suma de todos los campos denominados Monto del impuesto. TotalImpuestoSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalImpuesto), TotalComprobante = value.TotalComprobante.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //totalVentaNeta + totalImpuesto }, //FIN RESUMEN DE LA FACTURA /* InformacionReferencia = new FacturaElectronicaInformacionReferencia[] * { * new FacturaElectronicaInformacionReferencia * { * TipoDoc = (FacturaElectronicaInformacionReferenciaTipoDoc)Enum.Parse(typeof(FacturaElectronicaInformacionReferenciaTipoDoc), value.InformacionReferenciaTipoDocumento), * Numero = value.InformacionReferenciaNumero, * FechaEmision = value.InformacionReferenciaFechaEmision, * Codigo = (FacturaElectronicaInformacionReferenciaCodigo)Enum.Parse(typeof(FacturaElectronicaInformacionReferenciaCodigo), value.InformacionReferenciaCodigo), * Razon = value.InformacionReferenciaRazon * } * },*/ //FIN REFERENCIA DE LA FACTURA Normativa = new FacturaElectronicaNormativa { NumeroResolucion = value.NumeroResolucion, FechaResolucion = value.FechaResolucion }, //FIN NORMATIVA DE LA FACTURA Otros = new FacturaElectronicaOtros { OtroTexto = new FacturaElectronicaOtrosOtroTexto[] { new FacturaElectronicaOtrosOtroTexto { codigo = value.OtrosCodigo, Value = value.OtrosOtroTexto } }, /*OtroContenido = new FacturaElectronicaOtrosOtroContenido[] * { * new FacturaElectronicaOtrosOtroContenido * { * codigo ="obs", * } * }*/ } // FIN OTROS CONTENIDOS };// FIN DE LA FACTURA return(FacturaElectronica); }
private async void MetodoConsumo() { try { switch (paso) { case 1: tokenAccess = await ConsumoApi.ObtenerAutentificacionPost(); if (tokenAccess != string.Empty && tokenAccess != "false") { Mostrar(tokenAccess); paso++; timer1.Start(); } else { MessageBox.Show("ERROR OBTENIENDO AUTENTIFICACION"); } break; case 2: ComprobanteElectronicoCRI objComprobanteElectronicoCRI = new ComprobanteElectronicoCRI(); TributarioCr.EngineDocumentoXml Metodo = new TributarioCr.EngineDocumentoXml(); objComprobanteElectronicoCRI = Metodo.ObjComprobanteElectronicoCRI(tipoDocumento); urlValidacion = await ConsumoApi.EnviarDocumentoPost(tokenAccess, objComprobanteElectronicoCRI, tipoDocumento); if (urlValidacion != string.Empty && urlValidacion != "false") { Mostrar(urlValidacion); paso++; timer1.Start(); } else { MessageBox.Show("ERROR ENVIANDO DOCUMENTO"); } break; case 3: ConsumidorApi.Validacion validacion = new ConsumidorApi.Validacion(); validacion = await ConsumoApi.ValidarDocumentoGet(urlValidacion, tokenAccess); Mostrar(validacion.IndEstado); Mostrar(validacion.RespuestaXml); Mostrar(Comprobante.DecodeBase64(validacion.RespuestaXml)); paso++; timer1.Start(); break; case 4: desconexion = await ConsumoApi.DeconexionGet(tokenAccess); Mostrar(desconexion); paso = 0; timer1.Stop(); break; } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public ComprobanteElectronicoCRI ObjComprobanteElectronicoCRI(string tipoDocumento) { this.clave = MCodigo.Clave(tipoDocumento, EngineData.msjEmisor); this.numeroConsecutivo = MCodigo.NumeroConsecutivo(tipoDocumento); this.fechaEmision = Convert.ToDateTime(DateTime.UtcNow.ToString(EngineData.dateFormat)); //*************************************************************************************************** EngineData Valor = EngineData.Instance(); List <ComprobanteElectronicoCRIDetalle> Detalle = new List <ComprobanteElectronicoCRIDetalle>(); ComprobanteElectronicoCRI value = new ComprobanteElectronicoCRI { //ENCABEZADO Clave = this.clave, NumeroConsecutivo = this.numeroConsecutivo, FechaEmision = fechaEmision, //EMISOR ComprobanteElectronicoCRIEntidadJuridicaEmisor = new ComprobanteElectronicoCRIEntidadJuridica { Nombre = Valor.NombreEmisor(), Identificacion = Valor.NumeroIdentificacionEmisor(), TipoIdentificacion = Valor.TipoEmisor(), NombreComercial = Valor.NombreEmisor(), CodigoProvincia = Valor.ProvinciaEmisor(), CodigoCanton = Valor.CantonEmisor(), CodigoDistrito = Valor.DistritoEmisor(), CodigoBarrio = Valor.BarrioEmisor(), OtrasSennas = Valor.OtrasSenasEmisor(), CodigoPaisTelefono = Valor.CodigoPaisEmisor(), NumeroTelefono = Valor.TelefonoEmisor(), CodigoPaisFax = Valor.CodigoPaisEmisor(), NumeroFax = Valor.FaxEmisor(), CorreoElectronico = Valor.EmailEmisor() /* Nombre = "Byron Alejandro Rojas Burgos", * Identificacion = "303970663", * TipoIdentificacion = "Item01", * NombreComercial = "Byron Alejandro Rojas Burgos", * CodigoProvincia = "3", * CodigoCanton = "01", * CodigoDistrito = "11", * CodigoBarrio = "01", * OtrasSennas = "Condominio ALBACETE, casa 29A", * CodigoPaisTelefono = "506", * NumeroTelefono = "40701590", * CodigoPaisFax = "506", * NumeroFax = "40701590", * CorreoElectronico = "*****@*****.**"*/ }, //RECEPTOR ComprobanteElectronicoCRIEntidadJuridicaReceptor = new ComprobanteElectronicoCRIEntidadJuridica { Nombre = "Dental Care", Identificacion = "3001123208", TipoIdentificacion = "Item02", NombreComercial = "Dental Care", CodigoProvincia = "1", CodigoCanton = "01", CodigoDistrito = "01", CodigoBarrio = "01", OtrasSennas = "Amon", CodigoPaisTelefono = "506", NumeroTelefono = "40701590", CodigoPaisFax = "506", NumeroFax = "40701590", CorreoElectronico = "*****@*****.**" /*Nombre = Valor.NombreReceptor(), * Identificacion = Valor.NumeroIdentificacionReceptor(), * TipoIdentificacion = Valor.TipoReceptor(), * NombreComercial = Valor.NombreReceptor(), * CodigoProvincia = Valor.ProvinciaReceptor(), * CodigoCanton = Valor.CantonReceptor(), * CodigoDistrito = Valor.DistritoReceptor(), * CodigoBarrio = Valor.BarrioReceptor(), * OtrasSennas = Valor.OtrasSenasReceptor(), * CodigoPaisTelefono = Valor.CodigoPaisReceptor(), * NumeroTelefono = Valor.TelefonoReceptor(), * CodigoPaisFax = Valor.CodigoPaisReceptor(), * NumeroFax = Valor.FaxReceptor(), * CorreoElectronico = Valor.EmailReceptor()*/ }, //INFORMACION DE LA VENTA CondicionVenta = "Item01", PlazoCredito = "", MedioPago = "Item01", //DETALLE ListaComprobanteElectronicoCRIDetalle = DetalleDocumento(Detalle), //RESUMEN CodigoMoneda = "CRC", TipoCambio = 1, TotalServGravados = 97000.6M / 2, TotalServExentos = 0, TotalMercanciasGravadas = 97000.6M / 2, TotalMercanciasExentas = 0, TotalGravado = 97000.6M, // TotalServGravado + TotalMercanciasGravadas TotalExento = 0, TotalVenta = 97000.6M, // TotalGravado + TotalExcento TotalDescuentos = 0, //Sumatoria de los descuentos TotalVentaNeta = 97000.6M, //TotalVenta - TotalDescuentos TotalImpuesto = 9750 + 2860.078M, // Sumatoria Impuestos TotalComprobante = 97000.6M + 12610.078M, // TotalVentaNeta + MontoTotalImpuesto //REFERENCIA InformacionReferenciaTipoDocumento = "Item01", InformacionReferenciaNumero = this.numeroConsecutivo, //string 50 InformacionReferenciaFechaEmision = this.fechaEmision, InformacionReferenciaCodigo = "Item01", InformacionReferenciaRazon = "Descripcion del Codigo Utilizado", //NORMATIVA NumeroResolucion = Valor.ResolucionFactura(), FechaResolucion = Valor.FechaResolucionFactura(), //OTROS OtrosCodigo = "OTRO CODIGO", OtrosOtroTexto = "VALOR DEL OTRO CODIGO" }; return(value); }
public XmlDocument CrearDocumentoXml(ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento) { XmlDocument documentoXml = new XmlDocument(); XmlDeclaration xmlDeclaracion = documentoXml.CreateXmlDeclaration("1.0", "UTF-8", null); XmlElement root = documentoXml.DocumentElement; documentoXml.InsertBefore(xmlDeclaracion, root); switch (tipoDocumento) { case EngineData.facturaElectronica: CreadorFactura XmlFactura = new CreadorFactura(); FacturaElectronica Factura = new FacturaElectronica(); Factura = XmlFactura.CrearEstructuraFactura(objComprobanteElectronicoCRI); var navFactura = documentoXml.CreateNavigator(); using (writer = navFactura.AppendChild()) { var serializer = new XmlSerializer(typeof(FacturaElectronica)); serializer.Serialize(writer, Factura); } break; case EngineData.notaCreditoElectronica: CreadorNotaCredito XmlNotaCredito = new CreadorNotaCredito(); NotaCreditoElectronica NotaCredito = new NotaCreditoElectronica(); NotaCredito = XmlNotaCredito.CrearEstructuraNotaCredito(objComprobanteElectronicoCRI); var navNotaCredito = documentoXml.CreateNavigator(); using (writer = navNotaCredito.AppendChild()) { var serializer = new XmlSerializer(typeof(NotaCreditoElectronica)); serializer.Serialize(writer, NotaCredito); } break; case EngineData.notaDebitoElectronica: CreadorNotaDebito XmlNotaDebito = new CreadorNotaDebito(); NotaDebitoElectronica NotaDebito = new NotaDebitoElectronica(); NotaDebito = XmlNotaDebito.CrearEstructuraNotaDebito(objComprobanteElectronicoCRI); var navNotaDebito = documentoXml.CreateNavigator(); using (writer = navNotaDebito.AppendChild()) { var serializer = new XmlSerializer(typeof(NotaDebitoElectronica)); serializer.Serialize(writer, NotaDebito); } break; case EngineData.tiqueteElectronico: CreadorTiquete XmlTiquete = new CreadorTiquete(); TiqueteElectronico TiqueteElectronico = new TiqueteElectronico(); TiqueteElectronico = XmlTiquete.CrearEstructuraTiquete(objComprobanteElectronicoCRI); var navTiquete = documentoXml.CreateNavigator(); using (writer = navTiquete.AppendChild()) { var serializer = new XmlSerializer(typeof(TiqueteElectronico)); serializer.Serialize(writer, TiqueteElectronico); } break; } return(documentoXml); }