Cargar datos desde Web
Publicado por
fitocava (1 intervención) el 22/02/2013 16:21:41
LOCAL XRUC AS String
XRUC = "RUC A CONSULTAR"
LOCAL oErr as Exception
LOCAL cStr as Character
LOCAL SW AS Boolean
SW = .T.
TRY
LOCAL loXmlHttp AS Microsoft.XMLHTTP,;
lcURL as String,;
lcHTML as String,;
lcTexto as String,;
lcFile as String
loXmlHttp = CREATEOBJECT("Microsoft.XMLHTTP")
lcURL = "http://www.sunat.gob.pe/w/wapS01Alias?ruc="+XRUC
loXmlHttp.open("POST" , lcURL, .F.)
loXmlHttp.send
DO While loXmlHttp.readyState<>4 OR loXmlHttp.status <>200
ENDDO
lcHTML = loXmlHttp.Responsetext
lcTexto = CHRTRAN(ALLTRIM(lcHTML),CHR(10),"")
*/Para los delimitadores
lcTexto = STRTRAN(lcTexto, "Número Ruc. </b> " + xRUC + " -","RazonSocial:")
lcTexto = STRTRAN(lcTexto, "Estado.</b>","Estado:")
lcTexto = STRTRAN(lcTexto, "Agente Retención IGV.</strong>","ARIGV:")
lcTexto = STRTRAN(lcTexto, "Dirección.</b><br/>","Direccion:")
lcTexto = STRTRAN(lcTexto, "Situación.<b> ","Situacion:")
lcTexto = STRTRAN(lcTexto, "Teléfono(s).</b><br/>","Telefono:")
lcTexto = STRTRAN(lcTexto, "Dependencia.","Dependencia:")
lcTexto = STRTRAN(lcTexto, "Tipo.</b><br/> ","TipoPer:")
lcTexto = STRTRAN(lcTexto, "DNI</b> : ","DNI:")
lcTexto = STRTRAN(lcTexto, "Fecha Nacimiento.</b> ","FechNac:")
lcTexto = STRTRAN(lcTexto, SPACE(05),SPACE(01))
lcTexto = STRTRAN(lcTexto, SPACE(04),SPACE(01))
lcTexto = STRTRAN(lcTexto, SPACE(03),SPACE(01))
lcTexto = STRTRAN(lcTexto, SPACE(02),SPACE(01))
lcTexto = STRTRAN(lcTexto, CHR(09),"")
*** RAZON SOCIAL ***
PosIni = AT("RazonSocial:", lcTexto)+12
PosFin = AT("<br/></small>", lcTexto)-(AT("RazonSocial:", lcTexto)+12)
xRazSocial = SUBSTR(lcTexto,PosIni,PosFin)
xRazSocial = STRTRAN(xRazSocial,"Ñ","Ñ")
xRazSocial = STRTRAN(xRazSocial , "Ñ", "Ñ")
xRazSocial = STRTRAN(xRazSocial , "Á", "Á")
xRazSocial = STRTRAN(xRazSocial , "É", "É")
xRazSocial = STRTRAN(xRazSocial , "Í", "Í")
xRazSocial = STRTRAN(xRazSocial , "Ó", "Ó")
xRazSocial = STRTRAN(xRazSocial , "Ú", "Ú")
xRazSocial = STRTRAN(xRazSocial , "Á", "Á")
xRazSocial = STRTRAN(xRazSocial , "É", "É")
xRazSocial = STRTRAN(xRazSocial , "Í", "Í")
xRazSocial = STRTRAN(xRazSocial , "Ó", "Ó")
xRazSocial = STRTRAN(xRazSocial , "Ú", "Ú")
lcFile= "Datos_Contribuyente.txt"
STRTOFILE(xRazSocial+CHR(13)+CHR(10), lcFile)
*** ESTADO ***
PosIni = AT("Estado:", lcTexto)+7
PosFin = (AT("ARIGV", lcTexto)-32)-(AT("Estado:", lcTexto)+7)
xEst = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xEst+CHR(13)+CHR(10) , lcFile,1)
*** AGENTE RETENEDOR IGV ***
PosIni = AT("ARIGV:", lcTexto)+18
PosFin = AT("ARIGV:", lcTexto)+20-(AT("ARIGV:", lcTexto)+18)
xAR = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xAR+CHR(13)+CHR(10), lcFile,1)
*** DIRECCION ***
PosIni = AT("Direccion:", lcTexto)+10
PosFin = AT("</b></small><br/>", lcTexto)-38-(AT("Direccion:",lcTexto)+10)
xDir = SUBSTR(lcTexto,PosIni,PosFin)
xDir = STRTRAN(xDir, "Ñ", "Ñ")
xDir = STRTRAN(xDir, "Ñ", "Ñ")
xDir = STRTRAN(xDir, "Á", "Á")
xDir = STRTRAN(xDir, "É", "É")
xDir = STRTRAN(xDir, "Í", "Í")
xDir = STRTRAN(xDir, "Ó", "Ó")
xDir = STRTRAN(xDir, "Ú", "Ú")
xDir = STRTRAN(xDir, "Á", "Á")
xDir = STRTRAN(xDir, "É", "É")
xDir = STRTRAN(xDir, "Í", "Í")
xDir = STRTRAN(xDir, "Ó", "Ó")
xDir = STRTRAN(xDir, "Ú", "Ú")
STRTOFILE(xDir+CHR(13)+CHR(10), lcFile,1)
* This.parent.txtcliente.Value = ALLTRIM(xRazSocial)
* This.parent.txtdireccion.Value = xDir
*** SITUACION ***
PosIni = AT("Situacion:", lcTexto)+10
PosFin = AT("</b></small><br/>", lcTexto)-(AT("Situacion:", lcTexto)+10)
xCond = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xCond+CHR(13)+CHR(10), lcFile,1)
*** TELEFONO ***
PosIni = AT("Telefono:", lcTexto)+9
PosFin = AT("Dependencia:", lcTexto)-25-(AT("Telefono:", lcTexto)+9)
xTelef = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xTelef+CHR(13)+CHR(10), lcFile,1)
* ThisForm.nuevo.txtTe1moz.Value = xTelef
*** TIPO DE PERSONA ***
PosIni = AT("TipoPer:", lcTexto)+8
PosFin = AT("DNI:", lcTexto)-29-(AT("TipoPer:", lcTexto)+8)
xTipoPer = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xTipoPer+CHR(13)+CHR(10), lcFile,1)
*** DNI ***
PosIni = AT("DNI:", lcTexto)+4
PosFin = AT("FechNac:", lcTexto)-25-(AT("DNI:", lcTexto)+4)
xDNI = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xDNI+CHR(13)+CHR(10), lcFile,1)
*** FECHA DE NACIMIENTO ***
PosIni = AT("FechNac:", lcTexto)+8
PosFin = AT("FechNac:", lcTexto)+18-(AT("FechNac:", lcTexto)+8)
xFechNac = SUBSTR(lcTexto,PosIni,PosFin)
STRTOFILE(xFechNac, lcFile,1)
MODIFY FILE (lcFile)
RELEASE loXmlHttp
CATCH TO oErr
cStr = "Error:" + CRLF + CRLF + ;
"[ Error: ] " + STR(oErr.ErrorNo) + CRLF + ;
"[ Linea: ] " + STR(oErr.LineNo) + CRLF + ;
"[ Mensaje: ] " + oErr.Message + CRLF + ;
"[ Procedimiento: ] " + oErr.Procedure + CRLF + ;
"[ Detalles: ] " + oErr.Details + CRLF + ;
"[ StackLevel: ] " + STR(oErr.StackLevel) + CRLF + ;
"[ Instrucción: ] " + oErr.LineContents
MESSAGEBOX(cStr,4112,"Error...!!!")
SW = .F.
ENDTRY
IF SW = .F.
RETURN .F.
ENDIF