コード例 #1
0
        private void BtnEnviarXML_Click(object sender, EventArgs e)
        {
            try
            {
                FechaEmision = Funcion.reemplazarcaracterFecha(DtpFecha.Value.Date.ToShortDateString());
                DataTable DtDocuemtosXML = objConsult.BoolDataTableFactElect("Select * from TbDocumentosGeneradosFact DocFact where DocFact.FechaEmision = '" + FechaEmision + "' and   EstadoAutorizacion = '0'");

                String RecepcionSRIRespuesta = "";

                if (DtDocuemtosXML.Rows.Count > 0)
                {
                    foreach (DataRow myRow in DtDocuemtosXML.Rows)
                    {
                        RutaXML      = myRow["RutaXML"].ToString();
                        NombreXML    = myRow["NombreXML"].ToString();
                        FechaEmision = myRow["FechaEmision"].ToString();

                        //Inicio menuInferior
                        TollMenuLablelDocumento.Text = "Documento : " + NombreXML + ".xml";
                        TollMenuLablelFecha.Text     = "Fecha : " + Funcion.reemplazarcaracterFecha(Convert.ToDateTime(FechaEmision).Date.ToShortDateString());
                        //Fin menuInferior


                        //Firmar Documento
                        Funcion.FirmaXML(RutaXML + @"\Generados" + @"\" + NombreXML + ".xml", NombreXML);
                        //Fin Firmar Documento

                        //RecepcionSRI
                        SRIRecepcionComprobante sriRecepcion = new SRIRecepcionComprobante();
                        RecepcionSRIRespuesta = sriRecepcion.LlamarSRIRecepcion(RutaXML + @"\Firmados" + @"\" + NombreXML + ".xml", NombreXML);
                        //Fin RecepcionSRI

                        String[] axuAto      = RecepcionSRIRespuesta.Split(';');
                        String   claveAcceso = axuAto[1];

                        switch (RecepcionSRIRespuesta)
                        {
                        case "DEVUELTA":
                            RecepcionSRIRespuesta = "D";
                            break;

                        case "RECIBIDA":
                            RecepcionSRIRespuesta = "R";
                            break;

                        default:
                            break;
                        }

                        //Autorizacion
                        //SRIAutorizacionComprobante sriAutori = new SRIAutorizacionComprobante();
                        //sriAutori.ConsultarAutorizaciones(claveAcceso);
                        //FIN Autorizacion
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #2
0
        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");
            }
        }