/// <summary> /// Obtener cadena del Certificado del archivo .cer /// </summary> /// <returns>Cadena del certificados</returns> private string ObtenerCertificado() { string respuesta; SelloDigital sello = new SelloDigital(); try { respuesta = sello.Certificado(_facturaRutaCer); } catch { respuesta = string.Empty; } return(respuesta); }
//private Comprobante asignarCertificado(Comprobante comprobante, RazonesSociales razonSocial) private Comprobante asignarCertificado(Comprobante comprobante, Certificados certificado) { string numeroCertificado, aa, b, c; SelloDigital oSelloDigital = new SelloDigital(); if (comprobante == null) { comprobante = new Comprobante(); } try { /*if (razonSocial.certificadoSAT == null) * { * comprobante.Certificado = oSelloDigital.Certificado(razonSocial.rutaCert); * SelloDigital.leerCER(razonSocial.rutaCert, out aa, out b, out c, out numeroCertificado); * comprobante.NoCertificado = numeroCertificado; * } * else * { * comprobante.Certificado = oSelloDigital.Certificado(razonSocial.certificadoSAT); * SelloDigital.leerCER(razonSocial.certificadoSAT, out aa, out b, out c, out numeroCertificado); * comprobante.NoCertificado = numeroCertificado; * } * * comprobante.NoCertificado = numeroCertificado; */ comprobante.Certificado = oSelloDigital.Certificado(certificado.certificado); SelloDigital.leerCER(certificado.certificado, out aa, out b, out c, out numeroCertificado); comprobante.NoCertificado = numeroCertificado; } catch (Exception ex) { //utilSat.bitacora(ex.getMessage()); //erroresArchivos.append(ex.getMessage().concat("|")); // System.err.println(concatena.delete(0, concatena.length()).append(msgError).append("asignarCertificado()1_Error: ").append(ex)); } return(comprobante); }
public static void CreaFactura() { string pathCer = Directory.GetCurrentDirectory() + @"/Fiel/Certifiado.cer"; string pathKey = Directory.GetCurrentDirectory() + @"/Fiel/Key.key"; string clavePrivada = "12345678a"; //Obtenemos el numero string numeroCertificado, aa, b, c; SelloDigital.leerCER(pathCer, out aa, out b, out c, out numeroCertificado); //Llenamos la clase COMPROBANTE-------------------------------------------------------- Comprobante oComprobante = new Comprobante(); oComprobante.Version = "3.3"; oComprobante.Serie = "H"; oComprobante.Folio = "1"; oComprobante.Fecha = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"); // oComprobante.Sello = "faltante"; //sig video oComprobante.FormaPago = "1"; oComprobante.NoCertificado = numeroCertificado; // oComprobante.Certificado = ""; //sig video oComprobante.SubTotal = 10m; oComprobante.Moneda = "MXN"; oComprobante.Total = 10; oComprobante.TipoDeComprobante = "I"; oComprobante.MetodoPago = "PUE"; oComprobante.LugarExpedicion = "44860"; ComprobanteEmisor oEmisor = new ComprobanteEmisor(); oEmisor.Rfc = "AATJ9502061EA"; oEmisor.Nombre = "Jorge Humberto Alvarado Tostado"; oEmisor.RegimenFiscal = "612"; ComprobanteReceptor oReceptor = new ComprobanteReceptor(); oReceptor.Nombre = "Pepe SA DE CV"; oReceptor.Rfc = "BIO091204LB1"; oReceptor.UsoCFDI = "G03"; //asigno emisor y receptor oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor; List <ComprobanteConcepto> lstConceptos = new List <ComprobanteConcepto>(); ComprobanteConcepto oConcepto = new ComprobanteConcepto(); oConcepto.Importe = 10m; oConcepto.ClaveProdServ = "92111704"; oConcepto.Cantidad = 1; oConcepto.ClaveUnidad = "H87"; oConcepto.Descripcion = "Un misil para la guerra"; oConcepto.ValorUnitario = 10m; lstConceptos.Add(oConcepto); oComprobante.Conceptos = lstConceptos.ToArray(); //Creamos el xml CreateXML(oComprobante); string cadenaOriginal = ""; string pathxsl = Directory.GetCurrentDirectory() + @"/Fiel/cadenaoriginal_3_3.xslt"; System.Xml.Xsl.XslCompiledTransform transformador = new System.Xml.Xsl.XslCompiledTransform(true); transformador.Load(pathxsl); using (StringWriter sw = new StringWriter()) using (XmlWriter xwo = XmlWriter.Create(sw, transformador.OutputSettings)) { transformador.Transform(pathXML, xwo); cadenaOriginal = sw.ToString(); } SelloDigital oSelloDigital = new SelloDigital(); oComprobante.Certificado = oSelloDigital.Certificado(pathCer); oComprobante.Sello = oSelloDigital.Sellar(cadenaOriginal, pathKey, clavePrivada); CreateXML(oComprobante); ////TIMBRE DEL XML ServiceReferenceFC.RespuestaCFDi respuestaCFDI = new ServiceReferenceFC.RespuestaCFDi(); byte[] bXML = System.IO.File.ReadAllBytes(pathXML); ServiceReferenceFC.TimbradoClient oTimbrado = new ServiceReferenceFC.TimbradoClient(); respuestaCFDI = oTimbrado.TimbrarTest("TEST010101ST1", "a", bXML); if (respuestaCFDI.Documento == null) { Console.WriteLine(respuestaCFDI.Mensaje); } else { System.IO.File.WriteAllBytes(pathXML, respuestaCFDI.Documento); } }
public static string CreaFactura(string folio, string formaPago, string metodoDePago, List <ProductoSat> productos, float subtotal, string rfc, string rz, string usoCFDI, string mail) { string pathCer = Directory.GetCurrentDirectory() + @"/Fiel/Certifiado.cer"; string pathKey = Directory.GetCurrentDirectory() + @"/Fiel/Key.key"; string clavePrivada = "Jorge1995"; //Obtenemos el numero string numeroCertificado, aa, b, c; SelloDigital.leerCER(pathCer, out aa, out b, out c, out numeroCertificado); //Llenamos la clase COMPROBANTE-------------------------------------------------------- string subt = subtotal.ToString(); string impuetosImporte = (subtotal * 0.16).ToString(); float t = subtotal * 1.16f; string ts = t.ToString(); Comprobante oComprobante = new Comprobante(); oComprobante.Version = "3.3"; oComprobante.Serie = "H"; oComprobante.Folio = folio; oComprobante.Fecha = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"); //oComprobante.Fecha = "2019-06-11T10:52:20"; //oComprobante.Sello = "faltante"; //sig video oComprobante.FormaPago = formaPago; oComprobante.NoCertificado = numeroCertificado; // oComprobante.Certificado = ""; //sig video oComprobante.SubTotal = decimal.Parse(subt); oComprobante.Moneda = "MXN"; oComprobante.Total = decimal.Parse(ts); oComprobante.TipoDeComprobante = "I"; oComprobante.MetodoPago = "PUE"; oComprobante.LugarExpedicion = "44860"; ComprobanteEmisor oEmisor = new ComprobanteEmisor(); oEmisor.Rfc = "AATJ9502061EA"; oEmisor.Nombre = "Jorge Humberto Alvarado Tostado"; oEmisor.RegimenFiscal = "612"; ComprobanteReceptor oReceptor = new ComprobanteReceptor(); oReceptor.Nombre = rz; oReceptor.Rfc = rfc; oReceptor.UsoCFDI = usoCFDI; //asigno emisor y receptor oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor; List <ComprobanteConcepto> lstConceptos = new List <ComprobanteConcepto>(); ComprobanteConcepto oConcepto; ComprobanteConceptoImpuestos impuestos; ComprobanteConceptoImpuestosTraslado imAux; ComprobanteConceptoImpuestosTraslado[] impuestosTrasladados; foreach (ProductoSat a in productos) { oConcepto = new ComprobanteConcepto(); impuestos = new ComprobanteConceptoImpuestos(); imAux = new ComprobanteConceptoImpuestosTraslado(); impuestosTrasladados = new ComprobanteConceptoImpuestosTraslado[1]; oConcepto.Importe = Math.Round(decimal.Parse((a.Subtotal).ToString()), 3); oConcepto.ClaveProdServ = a.CodigoSAT; oConcepto.Cantidad = decimal.Parse(a.Cantidad.ToString()); oConcepto.ClaveUnidad = "H87"; oConcepto.Descripcion = a.Descripcion; oConcepto.ValorUnitario = decimal.Parse((a.Precio).ToString()); //Impuestos imAux.Base = decimal.Parse(a.Subtotal.ToString()); imAux.ImporteSpecified = true; imAux.TasaOCuotaSpecified = true; imAux.TipoFactor = "Tasa"; imAux.Importe = Math.Round(decimal.Parse((a.Subtotal * 0.16).ToString()), 3); imAux.TasaOCuota = decimal.Parse("0.160000"); imAux.Impuesto = "002"; impuestosTrasladados[0] = imAux; impuestos.Traslados = impuestosTrasladados; oConcepto.Impuestos = impuestos; lstConceptos.Add(oConcepto); } oComprobante.Conceptos = lstConceptos.ToArray(); ComprobanteImpuestos imComprobante = new ComprobanteImpuestos(); ComprobanteImpuestosTraslado imComprobanteTraladados = new ComprobanteImpuestosTraslado(); ComprobanteImpuestosTraslado[] imComprobanteTraladadosArray = new ComprobanteImpuestosTraslado[1]; imComprobanteTraladados.TipoFactor = "Tasa"; imComprobanteTraladados.TasaOCuota = decimal.Parse("0.160000"); imComprobanteTraladados.Impuesto = "002"; imComprobanteTraladados.Importe = Math.Round(decimal.Parse(impuetosImporte), 3); imComprobanteTraladadosArray[0] = imComprobanteTraladados; imComprobante.Traslados = imComprobanteTraladadosArray; imComprobante.TotalImpuestosTrasladadosSpecified = true; imComprobante.TotalImpuestosTrasladados = Math.Round(decimal.Parse(impuetosImporte), 2); oComprobante.Impuestos = imComprobante; //Creamos el xml CreateXML(oComprobante); string cadenaOriginal = ""; string pathxsl = Directory.GetCurrentDirectory() + @"/Fiel/cadenaoriginal_3_3.xslt"; System.Xml.Xsl.XslCompiledTransform transformador = new System.Xml.Xsl.XslCompiledTransform(true); transformador.Load(pathxsl); using (StringWriter sw = new StringWriter()) using (XmlWriter xwo = XmlWriter.Create(sw, transformador.OutputSettings)) { transformador.Transform(pathXML, xwo); cadenaOriginal = sw.ToString(); } SelloDigital oSelloDigital = new SelloDigital(); oComprobante.Certificado = oSelloDigital.Certificado(pathCer); oComprobante.Sello = oSelloDigital.Sellar(cadenaOriginal, pathKey, clavePrivada); CreateXML(oComprobante); ////TIMBRE DEL XML ServiceReferenceFC.RespuestaCFDi respuestaCFDI = new ServiceReferenceFC.RespuestaCFDi(); byte[] bXML = System.IO.File.ReadAllBytes(pathXML); ServiceReferenceFC.TimbradoClient oTimbrado = new ServiceReferenceFC.TimbradoClient(); respuestaCFDI = oTimbrado.Timbrar("AATJ9502061EA", "827984aaddd4126c9c67", bXML); if (respuestaCFDI.Documento == null) { return(respuestaCFDI.Mensaje); } else { System.IO.File.WriteAllBytes(pathXML, respuestaCFDI.Documento); ServiceReferenceFC.TimbradoClient pdf = new ServiceReferenceFC.TimbradoClient(); bXML = System.IO.File.ReadAllBytes(pathXML); respuestaCFDI = pdf.PDF("AATJ9502061EA", "827984aaddd4126c9c67", bXML, null); System.IO.File.WriteAllBytes(pathPDF, respuestaCFDI.Documento); Sql.InsertarFactura(folio, bXML); Sql.InsertarDatos("UPDATE `venta` SET `facturada`= 1 WHERE id_venta=" + folio); string pXMl = @path + "\\" + folio + ".xml"; string pPDF = @path + "\\" + folio + ".pdf"; File.Move(pathXML, pXMl); File.Move(pathPDF, pPDF); try { Email(mail, pXMl, pPDF); } catch (Exception e) { return("Error: " + e.Message); } File.Delete(pXMl); File.Delete(pPDF); } return(""); }
private void xml2() { Models.Configuration configuracion = new Models.Configuration(); Models.Client clientes = new Models.Client(); Models.Product productos = new Models.Product(); using (configuracion) { using (clientes) { using (productos) { List <Models.Configuration> config = configuracion.getConfiguration(); DateTime dt = DateTime.Now; DateTime x = Convert.ToDateTime(String.Format("{0:s}", dt)); Comprobante oComprobante = new Comprobante(); ComprobanteEmisor oEmisor = new ComprobanteEmisor(); ComprobanteReceptor oReceptor = new ComprobanteReceptor(); string username = "******"; string password = "******"; string CertFile = config[0].Cer; string KeyFile = config[0].Key; string KeyPass = config[0].Pass; string Errores = ""; string noCertificado, aa, b, c; SelloDigital.leerCER(CertFile, out aa, out b, out c, out noCertificado); oComprobante.Folio = txtFolio.Text; oComprobante.Version = "3.3"; oComprobante.Fecha = x.ToString("yyyy-MM-ddTHH:mm:ss"); oComprobante.Serie = "A"; oComprobante.NoCertificado = noCertificado; oComprobante.SubTotal = Convert.ToDecimal(DoFormat(Convert.ToDouble(txtSubtotal.Text))); oComprobante.Moneda = "MXN"; oComprobante.Total = Convert.ToDecimal(DoFormat(Convert.ToDouble(txtSubtotal.Text))); oComprobante.TipoDeComprobante = "I"; oComprobante.FormaPago = txtFpago.Text; oComprobante.CondicionesDePago = "CONTADO"; oComprobante.MetodoPago = txtMPago.Text; oComprobante.LugarExpedicion = config[0].Cp; oEmisor.Rfc = config[0].RFC; oEmisor.Nombre = config[0].Razon_social; oEmisor.RegimenFiscal = config[0].Regimen; List <Models.Client> cliente = clientes.getClientbyId(Convert.ToInt16(txtIdCliente.Text)); oReceptor.Rfc = cliente[0].RFC; oReceptor.UsoCFDI = txtUsoCfdi.Text; oReceptor.Nombre = txtCliente.Text; oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor; List <Models.Product> producto = null; List <ComprobanteConcepto> lstConceptos = new List <ComprobanteConcepto>(); foreach (DataGridViewRow row in dtProductos.Rows) { ComprobanteConcepto oConcepto = new ComprobanteConcepto(); producto = productos.getProductById(Convert.ToInt16(row.Cells["id_producto"].Value.ToString())); List <ComprobanteConceptoImpuestosTraslado> Ltraslados = new List <ComprobanteConceptoImpuestosTraslado>(); ComprobanteConceptoImpuestos oConoceptoimpuesto = new ComprobanteConceptoImpuestos(); ComprobanteConceptoImpuestosTraslado oConcepto_traslado = new ComprobanteConceptoImpuestosTraslado(); oConcepto.ClaveProdServ = producto[0].Code_sat; oConcepto.Cantidad = Convert.ToDecimal(row.Cells["cantidad"].Value.ToString()); oConcepto.ClaveUnidad = producto[0].Medida_sat; oConcepto.Descripcion = row.Cells["descripcion"].Value.ToString(); oConcepto.ValorUnitario = Convert.ToDecimal(DoFormat(Convert.ToDouble(row.Cells["pu"].Value.ToString()))); oConcepto.Importe = Convert.ToDecimal(DoFormat(Convert.ToDouble(row.Cells["total"].Value.ToString()))); //oConcepto.Descuento = Convert.ToDecimal(0); oConcepto.Unidad = "PIEZA"; oConcepto.NoIdentificacion = producto[0].Code1; oConcepto_traslado.Base = Convert.ToDecimal(DoFormat(Convert.ToDouble(row.Cells["total"].Value.ToString()))); oConcepto_traslado.Impuesto = "002"; oConcepto_traslado.TipoFactor = "Tasa"; oConcepto_traslado.TasaOCuota = Convert.ToDecimal("0.000000"); oConcepto_traslado.Importe = Convert.ToDecimal(DoFormat(Convert.ToDouble(row.Cells["total"].Value.ToString()))) * 0; oConcepto_traslado.TasaOCuotaSpecified = true; oConcepto_traslado.ImporteSpecified = true; Ltraslados.Add(oConcepto_traslado); oConoceptoimpuesto.Traslados = Ltraslados.ToArray(); oConcepto.Impuestos = oConoceptoimpuesto; lstConceptos.Add(oConcepto); } oComprobante.Conceptos = lstConceptos.ToArray(); ComprobanteImpuestos oImpuuestos = new ComprobanteImpuestos(); List <ComprobanteImpuestos> lImpuestos = new List <ComprobanteImpuestos>(); ComprobanteImpuestosTraslado oImpuestos_traslados = new ComprobanteImpuestosTraslado(); List <ComprobanteImpuestosTraslado> lImpuestos_traslados = new List <ComprobanteImpuestosTraslado>(); oImpuestos_traslados.Impuesto = "002"; oImpuestos_traslados.TipoFactor = "Tasa"; oImpuestos_traslados.TasaOCuota = Convert.ToDecimal("0.000000"); oImpuestos_traslados.Importe = Convert.ToDecimal("0.00"); lImpuestos_traslados.Add(oImpuestos_traslados); oImpuuestos.TotalImpuestosRetenidos = Convert.ToDecimal(0.00); oImpuuestos.TotalImpuestosTrasladadosSpecified = true; oImpuuestos.Traslados = lImpuestos_traslados.ToArray(); oComprobante.Impuestos = oImpuuestos; xml(oComprobante, config[0].Ruta_factura + txtFolio.Text + ".xml"); string CadenaOriginal = ""; string path_cad = @"XSLT\cadenaoriginal_3_3.xslt"; System.Xml.Xsl.XslCompiledTransform transformador = new System.Xml.Xsl.XslCompiledTransform(true); transformador.Load(path_cad); using (StringWriter sw = new StringWriter()) { using (XmlWriter xwo = XmlWriter.Create(sw, transformador.OutputSettings)) { transformador.Transform(config[0].Ruta_factura + txtFolio.Text + ".xml", xwo); CadenaOriginal = sw.ToString(); } } SelloDigital sellodigital = new SelloDigital(); oComprobante.Certificado = sellodigital.Certificado(CertFile); oComprobante.Sello = sellodigital.Sellar(CadenaOriginal, KeyFile, KeyPass); xml(oComprobante, config[0].Ruta_factura + txtFolio.Text + ".xml"); timbrar(); } } } }
public bool Facturar() { Inicializar(); if (Venta == null || partidas.Count == 0 || empresa == null || cliente == null) { Ambiente.Mensaje("Venta || partidas || empresa || Cliente == null"); return(false); } if (cliente.Rfc == null) { Ambiente.Mensaje("PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO"); return(false); } if (cliente.Rfc.Trim().Length == 0) { Ambiente.Mensaje("PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO"); return(false); } SelloDigital.leerCER(empresa.RutaCer, out string a, out string b, out string c, out string NoCer); noCertificado = NoCer; //Encabezado comprobante.Version = "3.3"; comprobante.Serie = "F"; comprobante.Folio = Venta.NoRef.ToString(); comprobante.Fecha = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"); comprobante.FormaPago = Venta.FormaPago1; comprobante.NoCertificado = noCertificado; comprobante.SubTotal = Math.Round(Venta.SubTotal, 2); //comprobante.Descuento = 0; comprobante.Moneda = "MXN"; comprobante.Total = Math.Round(Venta.Total, 2); comprobante.TipoDeComprobante = Venta.TipoComprobante; comprobante.MetodoPago = Venta.MetodoPago; comprobante.LugarExpedicion = empresa.Cp; //Emisor emisor.Rfc = empresa.Rfc; emisor.Nombre = empresa.RazonSocial; emisor.RegimenFiscal = empresa.RegimenFiscalId; //Receptor receptor.Nombre = cliente.RazonSocial; receptor.Rfc = cliente.Rfc; receptor.UsoCFDI = cliente.UsoCfdiid; //Asignar emisor y receptor al comprobante comprobante.Emisor = emisor; comprobante.Receptor = receptor; //Agregar los conceptos totalIeps = 0; totalIva = 0; /**********************************CONCEPTOS********************************/ foreach (var p in partidas) { concepto = new ComprobanteConcepto(); impuestosConcepto = new List <ComprobanteConceptoImpuestosTraslado>(); concepto.ClaveProdServ = "01010101"; if (Venta.EsFacturaGlobal) { concepto.ClaveUnidad = "ACT"; } else { concepto.ClaveUnidad = "H87"; } //concepto.ClaveUnidad = p.ClaveUnidad; //concepto.ClaveProdServ = p.ClaveProdServ; concepto.Descripcion = p.Descripcion; concepto.Cantidad = p.Cantidad; concepto.ValorUnitario = p.Precio; concepto.Importe = p.SubTotal; //Llenado del impuesto if (p.ImporteImpuesto1 == 0 && p.ImporteImpuesto2 == 0) { /*EXCENTO DE IMPUESTOS (IVA EXCENTO)*/ ivaConcepto = new ComprobanteConceptoImpuestosTraslado(); ivaConcepto.Base = p.SubTotal; ivaConcepto.Impuesto = p.ClaveImpuesto1; ivaConcepto.TipoFactor = "Exento"; impuestosConcepto.Add(ivaConcepto); } else if (p.ImporteImpuesto1 == 0 && p.ImporteImpuesto2 > 0) { /*SOLO IEPS*/ iepsConcepto = new ComprobanteConceptoImpuestosTraslado(); iepsConcepto.Base = p.SubTotal; iepsConcepto.TasaOCuota = p.Impuesto2; iepsConcepto.TipoFactor = p.TasaOcuota2; iepsConcepto.Impuesto = p.ClaveImpuesto2; iepsConcepto.Importe = p.ImporteImpuesto2; impuestosConcepto.Add(iepsConcepto); totalIeps += p.ImporteImpuesto2; } else if (p.ImporteImpuesto1 > 0 && p.ImporteImpuesto2 == 0) { /*SOLO IVA*/ ivaConcepto = new ComprobanteConceptoImpuestosTraslado(); ivaConcepto.Base = p.SubTotal; ivaConcepto.TasaOCuota = p.Impuesto1; ivaConcepto.TipoFactor = p.TasaOcuota1; ivaConcepto.Impuesto = p.ClaveImpuesto1; ivaConcepto.Importe = p.ImporteImpuesto1; impuestosConcepto.Add(ivaConcepto); totalIva += p.ImporteImpuesto1; } else if (p.ImporteImpuesto1 > 0 && p.ImporteImpuesto2 > 0) { /*IVA + IEPS*/ ivaConcepto = new ComprobanteConceptoImpuestosTraslado(); ivaConcepto.Base = p.SubTotal; ivaConcepto.TasaOCuota = p.Impuesto1; ivaConcepto.TipoFactor = p.TasaOcuota1; ivaConcepto.Impuesto = p.ClaveImpuesto1; ivaConcepto.Importe = p.ImporteImpuesto1; impuestosConcepto.Add(ivaConcepto); totalIva += p.ImporteImpuesto1; iepsConcepto = new ComprobanteConceptoImpuestosTraslado(); iepsConcepto.Base = p.SubTotal; iepsConcepto.TasaOCuota = p.Impuesto2; iepsConcepto.TipoFactor = p.TasaOcuota2; iepsConcepto.Impuesto = p.ClaveImpuesto2; iepsConcepto.Importe = p.ImporteImpuesto2; impuestosConcepto.Add(iepsConcepto); totalIeps += p.ImporteImpuesto2; } //Agregar los impuestos del concepto al concepto y agregar el concepto a la lista// concepto.Impuestos = new ComprobanteConceptoImpuestos(); concepto.Impuestos.Traslados = impuestosConcepto.ToArray(); conceptos.Add(concepto); } /***************************************************************************/ /********************Operaciones a nivel del comprobante********************/ comprobante.Conceptos = conceptos.ToArray(); totalImpuestosComprobante = new ComprobanteImpuestos(); impuestosComprobante = new List <ComprobanteImpuestosTraslado>(); ivaComprobante = new ComprobanteImpuestosTraslado(); iepsComprobante = new ComprobanteImpuestosTraslado(); if (totalIva > 0) { //Total IVA ivaComprobante.Importe = totalIva; ivaComprobante.Impuesto = "002"; ivaComprobante.TipoFactor = "Tasa"; ivaComprobante.TasaOCuota = 0.160000m; impuestosComprobante.Add(ivaComprobante); } if (totalIeps > 0) { //Total IEPS iepsComprobante.Importe = totalIeps; iepsComprobante.Impuesto = "003"; iepsComprobante.TipoFactor = "Tasa"; iepsComprobante.TasaOCuota = 0.080000m; impuestosComprobante.Add(iepsComprobante); } if ((totalIva + totalIeps) > 0) { //Total impuestos trasladados totalImpuestosComprobante.TotalImpuestosTrasladados = Math.Round(totalIva + totalIeps, 2); totalImpuestosComprobante.Traslados = impuestosComprobante.ToArray(); comprobante.Impuestos = totalImpuestosComprobante; } /***************************************************************************/ facturaActual = empresa.DirectorioComprobantes + "FACTURA " + Venta.NoRef.ToString() + "_" + Venta.CreatedBy + "_" + Ambiente.TimeText(Venta.CreatedAt) + ".XML"; //Crear Xml Serializar(comprobante); cadenaOriginal = GetCadenaOriginal(); comprobante.Certificado = selloDigital.Certificado(empresa.RutaCer); comprobante.Sello = selloDigital.Sellar(cadenaOriginal, empresa.RutaKey, empresa.ClavePrivada); Serializar(comprobante); return(Timbrar(facturaActual)); }