Exemple #1
0
        public string CancelaRetencion(string uuid, string rfc)
        {
            string result;

            try
            {
                Cancelador cancelador = new Cancelador();
                string     respuesta  = null;
                string     acuse      = null;
                int        resultado  = cancelador.CancelarRet(uuid, rfc, ref respuesta, ref acuse);
                CertificadorService.Logger.Info(acuse);
                if (resultado == 1201 || resultado == 1202)
                {
                    result = acuse;
                }
                else
                {
                    result = respuesta;
                }
            }
            catch (FaultException ex)
            {
                CertificadorService.Logger.Error(ex);
                result = ex.Message;
            }
            catch (Exception ex2)
            {
                CertificadorService.Logger.Error("Error al cancelar el comprobante:" + uuid, ex2);
                result = "Error al abrir el comprobante";
            }
            return(result);
        }
Exemple #2
0
        private void BuscarBtn_Click(object sender, EventArgs e)
        {
            //Muestra el dialogo para que seleccione el directorio
            DialogResult result = folderBrowserDialog1.ShowDialog();

            if (result == DialogResult.OK)
            {
                //
                // El usuario selecciono el directorio.
                //
                DirectorioLbl.Text = folderBrowserDialog1.SelectedPath;
                string[] archivosEnDirectorio = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.xml");
                //Muestra mensaje de confirmación para continuar
                DialogResult confirmacion = MessageBox.Show("Se encontraron un total de " + archivosEnDirectorio.Length.ToString() + " archivos.\n ¿Desea continuar con la cancelación?", "Confirmación", MessageBoxButtons.YesNo);
                if (confirmacion == DialogResult.Yes)
                {
                    //Cifra el certificado personal de la empresa seleccionada
                    try
                    {
                        //Obtiene el certificado y lo almacena
                        var cer = new X509Certificate2(nombreCertificado, contraseña, X509KeyStorageFlags.MachineKeySet);
                        System.Diagnostics.Debug.WriteLine("Procesando:" + cer.ToString());
                        //Recorre el directorio seleccionado para cancelar los archivos
                        foreach (String nombreArchivo in archivosEnDirectorio)
                        {
                            //Obtiene datos requeridos del XML
                            Comprobante comprobanteActual = Program.ObtenerComprobantes(nombreArchivo);
                            var         xml2 = "";
                            try
                            {
                                //Construye objeto XML para peticion
                                //UUID,RFC,FECHADECANCELACIÓN,CERTIFICADOCIFRADO
                                xml2 = Cancelador.Xml(comprobanteActual.UUID, comprobanteActual.RFC, DateTime.Now, cer);

                                //CANCELAR un folio
                                //Llama al servicio del PAC Tralix para realizar la cancelación
                                var soap2 = Cancelador.Cancelar("https://timbrador.tralix.com:8081/", key, xml2);
                                //Obtiene estatus de respuesta
                                var status = Cancelador.Status(soap2);
                                progresoTxt.Text = progresoTxt.Text + "Procesado: " + nombreArchivo + "\n ";
                                progresoTxt.Text = progresoTxt.Text + "Estatus de cancelacion : " + status + "\n";
                            }
                            catch (Exception ex)
                            {
                                //Error en construccion de peticion
                                System.Diagnostics.Debug.WriteLine(ex.Message);
                                System.Diagnostics.Debug.WriteLine(ex.InnerException.Message);
                                progresoTxt.Text = progresoTxt.Text + "Error:" + ex.Message + "\n";
                            }
                        }
                    }catch (Exception ex) {
                        //Error en obtener certificado
                        var error = ex.Message;
                        System.Diagnostics.Debug.WriteLine(error);
                        progresoTxt.Text = progresoTxt.Text + "Error:" + error + "\n";
                    }
                }
            }
        }
        public string CancelaRetencion(string userName, string password, string uuid, string rfc)
        {
            string result;

            try
            {
                CertificadorApps.Logger.Debug(userName);
                MembershipUser x = NtLinkLogin.ValidateUser(userName, password);
                if (x == null)
                {
                    throw new FaultException("Nombre de usuario o contraseña incorrecta");
                }
                empresa empresa = NtLinkUsuarios.GetEmpresaByUserId(x.ProviderUserKey.ToString());
                if (empresa == null)
                {
                    throw new FaultException("300 - El usuario con el que se quiere conectar es inválido");
                }
                if (empresa.Bloqueado)
                {
                    CertificadorApps.Logger.Info(empresa.RFC + "-> Bloqueado");
                    throw new FaultException("El RFC del emisor se encuentra bloqueado, favor de ponerse en contacto con atención al cliente");
                }
                NtLinkSistema nls     = new NtLinkSistema();
                Sistemas      sistema = nls.GetSistema((int)empresa.idSistema.Value);
                if (sistema.Bloqueado)
                {
                    CertificadorApps.Logger.Info(sistema.Rfc + "-> Bloqueado");
                    throw new FaultException("El RFC del emisor se encuentra dado de baja, favor de ponerse en contacto con atención a clientes");
                }
                Cancelador cancelador = new Cancelador();
                string     respuesta  = null;
                string     acuse      = null;
                int        resultado  = cancelador.CancelarRet(uuid, rfc, ref respuesta, ref acuse);
                CertificadorApps.Logger.Info(acuse);
                if (resultado == 1201 || resultado == 1202)
                {
                    result = acuse;
                }
                else
                {
                    result = respuesta;
                }
            }
            catch (FaultException ex)
            {
                CertificadorApps.Logger.Error(ex);
                result = ex.Message;
            }
            catch (Exception ex2)
            {
                CertificadorApps.Logger.Error("Error al cancelar el comprobante:" + uuid, ex2);
                result = "Error al abrir el comprobante";
            }
            return(result);
        }
Exemple #4
0
        /// <summary>
        /// Cancela un cfdi
        /// </summary>
        /// <param name="uuid">uuid del comprobante a cancelar</param>
        /// <param name="rfc">RFC del emisor</param>
        /// <returns>Acuse de cancelación del SAT</returns>
        public string CancelaCfdi(string uuid, string rfcEmisor, string expresion, string rfcReceptor)
        {
            Cancelador cancelador         = new Cancelador();
            string     respuesta          = null;
            string     acuse              = null;
            Cancelador canceladorConsulta = new Cancelador();
            string     consulta           = canceladorConsulta.ConsultaCFDI(expresion, uuid, rfcReceptor);
            string     result;

            if (consulta != "OK")
            {
                result = "Error al cancelar el comprobante: " + consulta;
            }
            else
            {
                NtLinkEmpresa nle = new NtLinkEmpresa(); //
                int           resultado;

                //int numero = 0;
                //if (!int.TryParse(rfcEmisor, out numero))
                //{
                empresa empresa = nle.GetByRfc(rfcEmisor);    //
                resultado = cancelador.Cancelar(uuid, rfcEmisor, ref respuesta, ref acuse);

                //}
                //else
                //{
                //    var emp = nle.GetById(numero);
                //    resultado = cancelador.CancelarPorID(uuid, emp.IdEmpresa, ref respuesta, ref acuse);//para repetidos rfc

                //}



                // int resultado = cancelador.Cancelar(uuid, rfcEmisor, ref respuesta, ref acuse);
                // int resultado = cancelador.Cancelar(uuid, empresa.IdEmpresa, ref respuesta, ref acuse);

                CertificadorService.Logger.Info(respuesta);
                CertificadorService.Logger.Info(acuse);
                CertificadorService.Logger.Info(resultado);
                if (resultado == 201 || resultado == 202)
                {
                    result = acuse;
                }
                else
                {
                    result = respuesta;
                }
            }
            return(result);
        }
Exemple #5
0
        public string ConsultaEstatusCFDI(string expresion)
        {
            Cancelador canceladorConsulta = new Cancelador();

            return(canceladorConsulta.ConsultaEstatusCFDI(expresion));
        }