protected string EnviarSoap(string fzip, out bool esError ) { DocPdf threeDir = new DocPdf(); //threeDir.crearDirectorio(fzip, fechaemision ); var billService = new billServiceClient("BillServicePort.11"); esError = false; var resp = ""; try { var bytes = billService.sendBill(Path.GetFileName(fzip).Replace(".xml", ""), File.ReadAllBytes(fzip), ""); //sCdrZip = System.Text.Encoding.Default.GetString(bytes); var rfzip = Path.Combine(Path.GetDirectoryName(fzip), "R-" + Path.GetFileName(fzip)); File.WriteAllBytes(rfzip, bytes); } catch (Exception ex) { resp = "Error: " + ex.Message; esError = true; } return(resp); }
public void Recorre() { using (log = new Log()) { log.CrearLog("esend"); log.write("ENVIO DE DOCUMENTOS A SUNAT..."); string query = "select top 1 * from cpe_doc_cab where serienumero='F001-00001711' and tipodocumento='01'"; //estadoRegistro = 'L' or (estadoregistro = 'C' and (encustodia = 0 or encustodia is null)) order by fechaestado;"; GetConecciones(); var resultselect = string.Format(query); var command = new SqlCommand(resultselect, connection); var reader = command.ExecuteReader(); var list = new List <Documento>(); string config = null; using (var sr = new StreamReader("config.xml", Encoding.Default)) { config = sr.ReadToEnd(); } var interno = GetXml(ref config, "SUNAT"); string user = GetXml(ref interno, "USUARIO"); string pwd = GetXml(ref interno, "CLAVESU"); interno = GetXml(ref config, "CLASE"); _portal = GetXml(ref interno, "PORTAL"); string sOficina = GetXml(ref interno, "OFICINA"); _oficina = Convert.ToInt32(sOficina); #if !DEBUG try { #endif while (reader.Read()) { var document = new Documento(reader); list.Add(document); } #if !DEBUG } catch (Exception ex) { Console.WriteLine(ex.Message); } finally{ #endif reader.Close(); #if !DEBUG } #endif var progPdf = new DocPdf(); foreach (var cadadoc in list) { try { DocPdf ThreeDirectory = new DocPdf(); string path = ThreeDirectory.crearDirectorio("FirmaXml", cadadoc.fechaemision); // Console.WriteLine(cadadoc); //var dirZip = Util.ObtenerDirectorio("FirmaXML", cadadoc.fechaemision); var unico = string.Format("{0}-{1}-{2}.xml.zip", cadadoc.rucempresa, cadadoc.tipodocumento, cadadoc.serienumero); var unicoSinEx = string.Format("{0}-{1}-{2}", cadadoc.rucempresa, cadadoc.tipodocumento, cadadoc.serienumero); var archzip = Util.ObtenerArchivo("FirmaXml", cadadoc.fechaemision, unico); if (! string.IsNullOrEmpty(archzip)) { var listadetalle = GetDetalle(cadadoc.idcp, connection); progPdf.Visualiza(cadadoc, listadetalle); Console.WriteLine("\t{0}", archzip); //var filesoap = archzip+".soap"; /* * using (var sw = new StreamWriter(filesoap, false, Encoding.UTF8)) * { * var soap = EnviarSoap(filesoap); * sw.WriteLine(soap); * } */ string dir = Path.Combine(path, unicoSinEx + ".txt"); using (StreamWriter me = new StreamWriter(dir, false, Encoding.UTF8)) { bool eserror = false; var envioSoap = EnviarSoap(archzip, out eserror); //Console.WriteLine(envioSoap); // Console.ReadLine(); if (envioSoap == "") { docEnviadoAsunatSinError(cadadoc, me); log.write("El comprobante ha sido registrado exitosamente a Sunat"); me.WriteLine("El comprobante ha sido registrado exitosamente a Sunat"); } else if (envioSoap == "El comprobante fue registrado previamente con otros datos") { string message = "El comprobante fue registrado previamente con otros datos"; UpdateEstado(cadadoc ); me.WriteLine(message); log.write(envioSoap); } else if (envioSoap.Contains("OLE") || envioSoap.Contains("Internal Error") || envioSoap.Contains("Web Service") || envioSoap.Contains("no puede responder su solicitud") || envioSoap.Contains("Error al cargar el controlador de impresora") || envioSoap.Contains("appliacationresponse ni faultcode en CDR")) { UpdateMensaje(envioSoap, cadadoc); me.WriteLine(envioSoap); log.write(envioSoap); } else { InsertErrorMessage(envioSoap, cadadoc); } me.WriteLine(envioSoap); log.write(envioSoap); } } else { Console.WriteLine("No existe el XML"); } } catch (Exception ex) { log.write(ex.Message); } } } //using log //connection.Close(); }