private void mapDireccion(ConsultaRuc data, string direccion) { string dir = "", dep = "", prov = "", dist = ""; string[] items = direccion.Split("-"); if (items.Length != 3) { if (direccion.Trim() == "-") { dir = ""; } } else { items = items.Select(item => item.Trim()).ToArray(); var words = items[0].Split(" "); (int, string)mapDep = mapDepartamento(words.Last()); dep = mapDep.Item2; prov = items[1]; dist = items[2]; var i = words.Take(words.Length - mapDep.Item1).ToArray(); dir = string.Join(" ", i); } data.Direccion = dir; data.Departamento = dep != "" ? dep : "LIMA"; data.Provincia = prov != "" ? prov : "LIMA"; data.Distrito = dist != "" ? dist : "LIMA"; }
private ConsultaRuc ObtenerValoresHTML(string html) { ConsultaRuc data = new ConsultaRuc(); HtmlDocument pageDocument = new HtmlDocument(); pageDocument.LoadHtml(html); List <List <string> > table = pageDocument.DocumentNode.SelectSingleNode("//table[@class='form-table']") .Descendants("tr") .Skip(1) .Where(tr => tr.Elements("td").Count() > 1) .Select(tr => tr.Elements("td").Select(td => td.InnerText.Trim()).ToList()) .ToList(); var rucRazonSocial = table.Where(e => e[0] == "Número de RUC:").ToList()[0][1]; // var ruc = rucRazonSocial.Split("- ")[0]; data.Nombre = rucRazonSocial.Split("- ")[1]; data.NombreComercial = table.Where(e => e[0] == "Nombre Comercial:").ToList()[0][1]; var domicilio = table.Where(e => e[0] == "Dirección del Domicilio Fiscal:").ToList()[0][1]; mapDireccion(data, domicilio); return(data); }
public JsonResult ConsultaRuc(string ruc) { var jsonResponseDto = new JsonResponseDto(); try { UtilsDAL utilsDAL = new UtilsDAL(); var random = ConsultarURL(URL_CAPTCHA_RANDOM); var url = URL_CONSULTA_RUC + "?accion=consPorRuc&nroRuc=" + ruc + "&numRnd=" + random + "&tipdoc="; var html = ConsultarURL(url); ConsultaRuc data = ObtenerValoresHTML(html); jsonResponseDto.data = data; jsonResponseDto.IsValid = true; jsonResponseDto.Mensaje = ruc; jsonResponseDto.Type = Constante.Success.ToLower(); return(Json(jsonResponseDto)); } catch (Exception ex) { jsonResponseDto.data = null; jsonResponseDto.IsValid = false; jsonResponseDto.Mensaje = ruc; jsonResponseDto.Type = Constante.Warning.ToLower(); return(Json(jsonResponseDto)); } }
public ConsultaSunatFrm() { InitializeComponent(); ConsultaRuc = new ConsultaRuc(); ConsultaRuc.Inicializar(); var styleController = new StyleController(); WinFormUtils.SetStyleController(this, styleController); }
private void ObtenerCaptcha() { if (ConsultaRuc.EstadoConsultaSunat == EstadoConsultaSunat.ErrorConexion) { XtraMessageBox.Show(string.Format("Error en la conexion al servicio {0}", ConsultaRuc.MensajeError), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (ConsultaRuc.EstadoConsultaSunat == EstadoConsultaSunat.Resultado) { peCaptcha.EditValue = ConsultaRuc.ObtenerCapcha(); } }
private void ConsultaDatosSunat(string ruc, string captcha) { Cursor = Cursors.WaitCursor; Contribuyente = ConsultaRuc.BuscarContribuyente(ruc, captcha); Cursor = Cursors.Default; if (Contribuyente != null) { iRazonSocial.EditValue = Contribuyente.RazonSocial; iNombreComercial.EditValue = Contribuyente.NombreComercial; iEstado.EditValue = Contribuyente.Estado; iCondicion.EditValue = Contribuyente.Situacion; iDireccionFiscal.EditValue = Contribuyente.Direccion; iReferencia.EditValue = Contribuyente.ReferenciaDireccion; iIddistrito.Select(); } switch (ConsultaRuc.EstadoConsultaSunat) { case EstadoConsultaSunat.ErrorTextoCapcha: XtraMessageBox.Show("Codigo captcha incorrecto", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Warning); iCaptcha.Select(); iCaptcha.SelectAll(); break; case EstadoConsultaSunat.NumeroRucNoValido: XtraMessageBox.Show("Numero de ruc invalido", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Warning); iRuc.Select(); iRuc.SelectAll(); break; case EstadoConsultaSunat.Error: XtraMessageBox.Show("Error no especificado", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; case EstadoConsultaSunat.ErrorConexion: XtraMessageBox.Show("Error en la conexion al servicio", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } ObtenerCaptcha(); LeerCaptchaSunat(); }
private async Task GetRuc() { bool canConvert = long.TryParse(txtRUC.Text, out long Ruc); if (canConvert && txtRUC.Text.Length == 11) { try { RUC ruc = await ConsultaRuc.GetRuc(txtRUC.Text); if (ruc != null) { txtRazonSocial.Text = ruc.datos.result.razon_social; txtDireccion.Text = ruc.datos.result.direccion; } await Dispatcher.BeginInvoke(new System.Action(() => { Keyboard.Focus(txtRepresentanteLegal); }), System.Windows.Threading.DispatcherPriority.Loaded); } catch (Exception ex) { DialogResult result = CustomMessageBox.Show($"{ex.Message}", CustomMessageBox.CMessageBoxTitle.Información, CustomMessageBox.CMessageBoxButton.Aceptar, CustomMessageBox.CMessageBoxButton.No); } } }
private async void MainWindow_Loaded(object sender, RoutedEventArgs e) { string prueba = await ConsultaRuc.ConsultaContribuyente("20563223457", 3); }