private void Procesar() { try { if (tipocomprobante == "Factura") { DtDocuemtosXML = objconsul.BoolDataTableFactElect("Select * from TbDocumentosGeneradosFact DocFact where DocFact.NombreXML='" + nombrexml + "'"); } else { DtDocuemtosXML = objconsul.BoolDataTableFactElect("Select * from TbDocumentosGeneradosRect DocRect where DocRect.NombreXML='" + nombrexml + "'"); } int contadorAutorizado = 0, contadorEnviados = 0, contadorNoautorizados = 0, contadorDevuelta = 0, contadorRecibida = 0, contador = 0, estadoautorizacion = 0; string Recibida = "", AUT = "NO"; if (DtDocuemtosXML.Rows.Count > 0) { foreach (DataRow myRow in DtDocuemtosXML.Rows) { RutaXML = myRow["Ruta"].ToString(); NombreXML = myRow["NombreXML"].ToString(); FechaEmision = myRow["FechaEmision"].ToString(); contador++; string RutaXML1 = ConfigurationManager.AppSettings["XmlServidor"]; string SRIRecepcion = ConfigurationManager.AppSettings["SRIRecepcion"]; string SRIAutorizacion = ConfigurationManager.AppSettings["SRIAutorizacion"]; if (System.IO.File.Exists(RutaXML1 + @"\Generados" + @"\" + NombreXML + ".xml")) { //Firmar Documento Firma.Firmalo(Program.RutaCertificado, Program.passwordCertificado, RutaXML1 + @"\Generados\" + NombreXML + ".xml", RutaXML1 + @"\Firmados\" + NombreXML + ".xml", RutaXML1); // Inicio RecepcionSRI SRIRecepcionComprobante sriRecepcion = new SRIRecepcionComprobante(); string respuestaRecepcion = sriRecepcion.RecepcionArchivos(RutaXML1 + @"\Firmados" + @"\" + NombreXML + ".xml", SRIRecepcion, NombreXML, RutaXML1); string[] valoresrecepcion = respuestaRecepcion.Split(';'); //Fin RecepcionSRI if (valoresrecepcion[0] == "RECIBIDA" || valoresrecepcion[1] == "CLAVE ACCESO REGISTRADA") { contadorRecibida++; Recibida = "R"; //Inicio Autorizacion SRIAutorizacionComprobante sriAutori = new SRIAutorizacionComprobante(SRIAutorizacion); string estado = sriAutori.AutorizacionArchivos(NombreXML, RutaXML1, respuestaRecepcion); string[] autorizado = estado.Split(';'); if (autorizado.Length > 1) { fechaAutorizacion = autorizado[1]; } if (autorizado[0] == "AUTORIZADO") { contadorAutorizado++; estadoautorizacion = 1; AUT = "SI"; } else { contadorNoautorizados++; estadoautorizacion = 0; AUT = "NO"; } //Fin Autorizacion contadorEnviados++; string contadoraenviar = contador + " de " + DtDocuemtosXML.Rows.Count + " Archivos."; CambiarProgreso(NombreXML, FechaEmision, contadorDevuelta.ToString(), contadorRecibida.ToString(), contadorAutorizado.ToString(), contadorNoautorizados.ToString(), contadorEnviados.ToString(), contadoraenviar, "" + DtDocuemtosXML.Rows.Count); } else { contadorDevuelta++; Recibida = "D"; } Consultas Objconsul = new Consultas(); if (tipocomprobante == "Factura") { Objconsul.EjecutarSQLFactElectronica("UPDATE [dbo].[TbDocumentosGeneradosFact] SET [EstadoAutorizacion] = '" + estadoautorizacion + "',[RecepcionSRI] ='" + Recibida + "',[AutorizadoSRI]='" + AUT + "' WHERE NombreXML = '" + NombreXML + "'"); } else { Objconsul.EjecutarSQLFactElectronica("UPDATE [dbo].[TbDocumentosGeneradosRect] SET [EstadoAutorizacion] = '" + estadoautorizacion + "',[RecepcionSRI] ='" + Recibida + "',[AutorizadoSRI]='" + AUT + "' WHERE NombreXML = '" + NombreXML + "'"); } if (estadoautorizacion == 0) { Objconsul.EjecutarSQLFactElectronica("UPDATE [dbo].[TbErroresDocEnviados] SET [EstadoError] = '1' WHERE NombreXML = '" + NombreXML + "'"); } else { Objconsul.EjecutarSQLFactElectronica("UPDATE [dbo].[TbErroresDocEnviados] SET [EstadoError] = '0' WHERE NombreXML = '" + NombreXML + "'"); } } } } else { MessageBox.Show("No se encontró ningun archivo."); } } catch (Exception ex) { MessageBox.Show("Error en enviar al SRI: No responde o el xml contiene errores\n Intentelo más tarde en el formulario Corregir Errores"); } }