示例#1
0
        /// <summary>
        /// Control del Botón de Pedir Ticket de Acceso.
        /// Si hay uno vigente en la B.D. utiliza este, sino pide uno nuevo al WebService.
        /// </summary>
        private void pedirTicketAcceso()
        {
            objEntidadesConfiguracionCertificado = objLogicaConfiguracionCertificado.TraerConfiguracion();

            /*Verifica si tiene una configuracion cargada en la B.D.*/
            if (objEntidadesConfiguracionCertificado.Cuit != 0)
            {
                /*Tiene una configuracion cargada*/
                //Entidades.Tickets objEntidadesTicket_Rta = new Entidades.Tickets();
                Entidades.Tickets_Acceso objEntidadesTicket_Acceso = new Entidades.Tickets_Acceso();
                Logica.Tickets_Acceso objLogicaTicket_Acceso = new Logica.Tickets_Acceso();

                //Devuelve un Ticket Vigente guardado en la B.D.
                objEntidadesTicket_Acceso = objLogicaTicket_Acceso.TraerTicketActivo();

                if (objEntidadesTicket_Acceso.Id_Ticket == 0)
                {
                    /*No hay ningún Ticket de Acceso habilitado en la base de Datos, se pedirá uno nuevo*/
                    Entidades.CertificadosX509 objEntidadesCertificado = new Entidades.CertificadosX509();
                    Logica.CertificadosX509 objLogicaCertificado = new Logica.CertificadosX509();

                    objEntidadesCertificado.IdServicioNegocio = DEFAULT_SERVICIO;

                    if (objEntidadesConfiguracionCertificado.TipoAprobacion == 'P')
                    {
                        objEntidadesCertificado.UrlWsaaWsdl = SERVIDOR_WSAA_PRODUCCION;                        
                    }
                    else
                    {
                        objEntidadesCertificado.UrlWsaaWsdl = SERVIDOR_WSAA_HOMOLOGACION;
                    }

                    /*Pido en el WebService un Nuevo Ticket de Acceso*/
                    Logica.Tickets objTicketRespuesta = new Logica.Tickets();
                    objEntidadesTicket_Acceso = objTicketRespuesta.Gestionar_TA(objEntidadesCertificado);

                    objEntidadesTicket_Acceso.Cuit = objEntidadesConfiguracionCertificado.Cuit;
                    objEntidadesTicket_Acceso.TipoAprobacion = objEntidadesConfiguracionCertificado.TipoAprobacion;

                    if (objEntidadesTicket_Acceso.Sign != null)
                    {
                        Logica.Tickets_Acceso objTicketsAcceso = new Logica.Tickets_Acceso();
                        //Guarda el ticket en la B.D.
                        objTicketsAcceso.Agregar(objEntidadesTicket_Acceso);
                    }
                }

                mostrarDatosTicketAcceso(objEntidadesTicket_Acceso);
            }
            else
            {
                MessageBox.Show("Para utilizar el programa primero debe cargar el certificado desde Configuracion -> Certificado");
            }
        }
        /// <summary>
        /// Pide un Nuevo Ticket de Acceso con las configuraciones cargadas
        /// </summary>
        /// <returns></returns>
        private bool pedirNuevoTicketAcc()
        {
            bool respuesta = false;
            lblPedirNuevoTicketAccRTA.ForeColor = Color.Black;
            lblPedirNuevoTicketAccRTA.Text = "Procesando...";
            lblPedirNuevoTicketAccRTA.Refresh();

            /*Pide la configuración desde la B.D.*/
            Entidades.Configuracion_Certificado objEntidadesConfiguracionCertificado = new Entidades.Configuracion_Certificado();
            Logica.Configuracion_Certificado objLogicaConfiguracionCertificado = new Logica.Configuracion_Certificado();
            objEntidadesConfiguracionCertificado = objLogicaConfiguracionCertificado.TraerConfiguracion();

            /*Creo un Certificado a partir de la configuración que recuperé desde la B.D.*/
            Entidades.CertificadosX509 objEntidadesCertificado = new Entidades.CertificadosX509();
            const string DEFAULT_SERVICIO = "wsfe";
            const string SERVIDOR_WSAA_PRODUCCION = "https://wsaa.afip.gov.ar/ws/services/LoginCms?WSDL";
            const string SERVIDOR_WSAA_HOMOLOGACION = "https://wsaahomo.afip.gov.ar/ws/services/LoginCms?WSDL";

            objEntidadesCertificado.IdServicioNegocio = DEFAULT_SERVICIO;

            if (objEntidadesConfiguracionCertificado.TipoAprobacion == 'P')
            {
                objEntidadesCertificado.UrlWsaaWsdl = SERVIDOR_WSAA_PRODUCCION;                        
            }
            else
            {
                objEntidadesCertificado.UrlWsaaWsdl = SERVIDOR_WSAA_HOMOLOGACION;
            }

            /*Pido en el WebService un Nuevo Ticket de Acceso*/
            Entidades.Tickets_Acceso objEntidadesTicket_Acceso = new Entidades.Tickets_Acceso();
            Logica.Tickets_Acceso objLogicaTicket_Acceso = new Logica.Tickets_Acceso();
            Logica.Tickets objTicketRespuesta = new Logica.Tickets();

            objEntidadesTicket_Acceso = objTicketRespuesta.Gestionar_TA(objEntidadesCertificado);
            objEntidadesTicket_Acceso.Cuit = objEntidadesConfiguracionCertificado.Cuit;
            objEntidadesTicket_Acceso.TipoAprobacion = objEntidadesConfiguracionCertificado.TipoAprobacion;

            if (objEntidadesTicket_Acceso.Sign != null)
            {
                Logica.Tickets_Acceso objTicketsAcceso = new Logica.Tickets_Acceso();
                //Guarda el ticket en la B.D.
                objTicketsAcceso.Agregar(objEntidadesTicket_Acceso);
                lblPedirNuevoTicketAccRTA.ForeColor = Color.Green;
                lblPedirNuevoTicketAccRTA.Text = "OK";
                lblPedirNuevoTicketAccRTA.Refresh();
                respuesta = true;
            }
            else
            {
                lblPedirNuevoTicketAccRTA.ForeColor = Color.Red;
                lblPedirNuevoTicketAccRTA.Text = "ERROR";
                lblPedirNuevoTicketAccRTA.Refresh();
            }

            return respuesta;
        }