public string cs_fxSignature(string Id) { string XML = string.Empty; clsEntityDocument cabecera = new clsEntityDocument(localDB); cabecera.cs_fxObtenerUnoPorId(Id); if (cabecera.Cs_pr_XML.Trim() == "" && cabecera.Cs_pr_CDR.Trim() == "") { switch (cabecera.Cs_tag_InvoiceTypeCode) { case "01": XML = new clsNegocioCEFactura(localDB).cs_pxGenerarXMLAString(Id); break; case "03": XML = new clsNegocioCEBoleta(localDB).cs_pxGenerarXMLAString(Id); break; case "07": XML = new clsNegocioCENotaCredito(localDB).cs_pxGenerarXMLAString(Id); break; case "08": XML = new clsNegocioCENotaDebito(localDB).cs_pxGenerarXMLAString(Id); break; } } else { XML = cabecera.Cs_pr_XML; } XML = XML.Replace("cbc:", ""); XML = XML.Replace("cac:", ""); XML = XML.Replace("ext:", ""); XML = XML.Replace("ds:", ""); string estructura = string.Empty; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(XML); return(xmlDoc.GetElementsByTagName("SignatureValue")[0].InnerText); }
/// <summary> /// Genera un Comprobate de pago: factura, boletas y sus NC y ND asociadas. /// </summary> /// <param name="Id">Id del comprobante.</param> /// <returns>NombreTributo del archivo generado.</returns> public string cs_pxGenerarCE(string Id) { string fila = string.Empty; string archivo_nombre_XML = string.Empty, archivo_nombre_ZIP = string.Empty, archivo_nombre_directorio = string.Empty; try { clsEntityDocument cabecera = new clsEntityDocument(localDB); cabecera.cs_fxObtenerUnoPorId(Id); //fila = cs_pxGenerarXMLaString(Id,localDB); switch (cabecera.Cs_tag_InvoiceTypeCode) { case "01": fila = new clsNegocioCEFactura(localDB).cs_pxGenerarXMLAString(Id); break; case "03": fila = new clsNegocioCEBoleta(localDB).cs_pxGenerarXMLAString(Id); break; case "07": fila = new clsNegocioCENotaCredito(localDB).cs_pxGenerarXMLAString(Id); break; case "08": fila = new clsNegocioCENotaDebito(localDB).cs_pxGenerarXMLAString(Id); break; } #region Genera los nombres de archivo archivo_nombre_XML = declarante.Cs_pr_Ruc + "-" + cabecera.Cs_tag_InvoiceTypeCode + "-" + cabecera.Cs_tag_ID + ".xml"; archivo_nombre_ZIP = declarante.Cs_pr_Ruc + "-" + cabecera.Cs_tag_InvoiceTypeCode + "-" + cabecera.Cs_tag_ID + ".zip"; archivo_nombre_directorio = declarante.Cs_pr_Ruc + "-" + cabecera.Cs_tag_InvoiceTypeCode + "-" + cabecera.Cs_tag_ID; string comprobante_ruta = new clsBaseConfiguracion().cs_prRutadocumentosenvio + "/"; string comprobante_ruta_nombre = comprobante_ruta + archivo_nombre_directorio + "\\" + archivo_nombre_XML; if (File.Exists(comprobante_ruta_nombre)) // Sí existe el archivo comprobante_ruta_nombre { File.Delete(comprobante_ruta_nombre); // se elimina } if (Directory.Exists(comprobante_ruta + archivo_nombre_directorio)) // Sí existe el directorio { var dir = new DirectoryInfo(comprobante_ruta + archivo_nombre_directorio); // Instancia de la clase DirectoryInfo dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly; // Asignación de su atributo dir.Delete(true); // Permitir eliminar de forma recursiva } if (!Directory.Exists(comprobante_ruta + archivo_nombre_directorio)) // Sí no existe el directorio { Directory.CreateDirectory(comprobante_ruta + archivo_nombre_directorio); // Lo creamos ;) } if (!File.Exists(comprobante_ruta_nombre)) // Sí el archivo no existe { File.Create(comprobante_ruta_nombre).Close(); // También lo creamos ;) ;) } StreamWriter sw1 = new StreamWriter( File.Open(comprobante_ruta_nombre, FileMode.OpenOrCreate), Encoding.GetEncoding("ISO-8859-1")); // Códifica el archivo generado sw1.WriteLine(fila); sw1.Close(); fila = string.Empty; DirectoryInfo x = new DirectoryInfo(comprobante_ruta + archivo_nombre_directorio); cs_prComprimirZIP(x); #endregion } catch (Exception ex) { clsBaseLog.cs_pxRegistarAdd("clsNegocioCE cs_pxGenerarCE" + ex.ToString()); } return(archivo_nombre_ZIP); }