/// <summary> /// Metodo para crear sobre para el comprobante /// </summary> /// <param name="cfe"></param> private Sobre CrearSobre(CFE cfe, bool sobreDgi) { Sobre sobre = new Sobre(cfe); string infoCertificado = ""; try { infoCertificado = ProcTransformacion.ObtenerCadenaCertificado(); if (infoCertificado.Equals("")) { sobre = null; } else { if (sobreDgi) { ManteUdoDocumento manteUdoDocumento = new ManteUdoDocumento(); string rutConfigurado = manteUdoDocumento.ObtenerRut(); //Proceso para DGI if (rutConfigurado != null) { sobre.RucReceptor = rutConfigurado;//214844360018;//219999830019 } else { sobre.RucReceptor = "214844360018";//219999830019 } sobre.X509Certificate = infoCertificado; sobre.ObtenerCertificadosCreados(listaCertificadosCreados); string xmlSobreDGI = ProcSerializacion.CrearXmlSobre(sobre); ProcTransformacion.GuardarSobrePrevio(sobre.NombrePrev, xmlSobreDGI, true); ProcTransformacion.TransformarSobre(sobre.NombrePrev, sobre.Nombre, sobre.ListaCertificados, "", true); } else { //Proceso para Tercero sobre.X509Certificate = infoCertificado; sobre.ObtenerCertificadosCreados(listaCertificadosCreados); string xmlSobreCliente = ProcSerializacion.CrearXmlSobre(sobre); ProcTransformacion.GuardarSobrePrevio(sobre.NombrePrev, xmlSobreCliente, false); if (!cfe.TextoLibreAdenda.Equals("")) { ProcTransformacion.TransformarSobre(sobre.NombrePrev, sobre.Nombre, sobre.ListaCertificados, cfe.TextoLibreAdenda, false); } else { ProcTransformacion.TransformarSobre(sobre.NombrePrev, sobre.Nombre, sobre.ListaCertificados, "", false); } } } } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString()); } return(sobre); }
/// <summary> /// Crea los archivos de xml para los certificados /// </summary> /// <param name="cfe"></param> private string CrearCertificado(CFE cfe) { string codSeguridad = ""; try { int i = 0; bool estadoAdenda = false; if (cfe.Items != null) { while (i < cfe.Items.Count) { if (cfe.Items[i].UnidadMedida.Length > 4) { cfe.Items[i].UnidadMedida = "N/A"; } i++; } } //Limpia la lista de certificados creados listaCertificadosCreados.Clear(); //Agregar certificado a lista de certificados creados listaCertificadosCreados.Add(cfe); String xmlCertificado = ProcSerializacion.CrearXmlCFE(cfe); string adenda = ProcTransformacion.ObtenerAdenda(cfe); ProcTransformacion.GuardarCertificadoPrevio(cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), xmlCertificado); if (cfe.InfoReferencia.Count > 0) { //Valida que la referencia sea global o especifica if (cfe.InfoReferencia[0].IndicadorReferenciaGlobal == CFEInfoReferencia.ESIndicadorReferenciaGlobal.ReferenciaGlobal) { ProcTransformacion.TransformarCertificado(cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), cfe.TipoCFE, cfe.TipoDocumentoReceptor, true); } else { ProcTransformacion.TransformarCertificado(cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), cfe.TipoCFE, cfe.TipoDocumentoReceptor); } } else { ProcTransformacion.TransformarCertificado(cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), cfe.TipoCFE, cfe.TipoDocumentoReceptor); } if (!adenda.Equals("")) { ProcTransformacion.GenerarCFEAdenda(cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), adenda); estadoAdenda = true; } ProcTransformacion.FirmarCertificado(RUTA_CERTIFICADO, cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), CLAVE_CERTIFICADO, false, ref codSeguridad); if (estadoAdenda) { ProcTransformacion.FirmarCertificado(RUTA_CERTIFICADO, cfe.TipoCFEInt, cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), CLAVE_CERTIFICADO, estadoAdenda, ref codSeguridad); } } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString()); } return(codSeguridad); }