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); }
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); }
/// <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); }
public string ConsultaEstatusCFDI(string expresion) { Cancelador canceladorConsulta = new Cancelador(); return(canceladorConsulta.ConsultaEstatusCFDI(expresion)); }