RUC Paraguay
Moderador: Moderadores
-
TerraSoftware
- Usuário Nível 3

- Mensagens: 353
- Registrado em: 28 Jul 2004 13:14
- Localização: Cianorte-PR
- Contato:
RUC Paraguay
Caros colegas.
Preciso validar documentos paraguaios (RUC), tanto de pessoa fisica como juridica, alguem pode me ajudar?
Preciso validar documentos paraguaios (RUC), tanto de pessoa fisica como juridica, alguem pode me ajudar?
-
TerraSoftware
- Usuário Nível 3

- Mensagens: 353
- Registrado em: 28 Jul 2004 13:14
- Localização: Cianorte-PR
- Contato:
RUC Paraguay
Caros colegas.
Já consegui validar o RUC pessoa juridica.
Ainda me falta o RUC pessoa fisica.
Alguem pode me ajudar?
Já consegui validar o RUC pessoa juridica.
Ainda me falta o RUC pessoa fisica.
Alguem pode me ajudar?
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
RUC Paraguay
Amiguinho
O que acontece ao validar PF, algum erro, invalidação?
O que acontece ao validar PF, algum erro, invalidação?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
RUC Paraguay
Colega....
Poderia mostrar como fez para validar o RUC pessoa jurídica??
[]´s
Poderia mostrar como fez para validar o RUC pessoa jurídica??
[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
-
TerraSoftware
- Usuário Nível 3

- Mensagens: 353
- Registrado em: 28 Jul 2004 13:14
- Localização: Cianorte-PR
- Contato:
RUC Paraguay
Caros colegas.
A validacao do RUC juridica é assim:
No caso do RUC fisica a validação sempre retorna um digito verificador diferente do certo. Provavelmente por que o RUC fisica tem 8 digitos e o juridica tem 9.
Deve haver outra formula para o RUC fisica.
Resta agora descobri-la.
A validacao do RUC juridica é assim:
Código: Selecionar todos
// onde vg é o RUC digitado com 9 digitos
nBaseMax := 11
cNumero_al:= left(vg,8)
nDicer := substr(vg,9,1)
k := 2
aux:= 0
v_total:= 0
for i:= len(cNumero_al) to 1 step -1
if k > nBaseMax
k:= 2
endif
aux:= val(substr(cNumero_al, i, 1))
v_total:= v_total + (aux * k)
k:= k + 1
next i
resto:= mod(v_total, 11)
dv:= 0
if resto > 1
dv:= 11 - resto
endif
if nDicer # strzero(int(dv),1)
alert("RUC incorreto.")
endif
Deve haver outra formula para o RUC fisica.
Resta agora descobri-la.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
RUC Paraguay
Amiguinho
Pelo jeito voce ja tem a resposta mas ainda não enxergou na função.
Se o RUC fisica tem 8 digitos e o juridica tem 9 voce pode testar antes e alterar as linhas abaixo:
Cálculo:
Resposta:
Se a formula de codigo for a mesma o que mudará será apenas o tamanho da string à ser calculada.
Pelo jeito voce ja tem a resposta mas ainda não enxergou na função.
Se o RUC fisica tem 8 digitos e o juridica tem 9 voce pode testar antes e alterar as linhas abaixo:
Código: Selecionar todos
cNumero_al:= left(vg,8)
nDicer := substr(vg,9,1)
Código: Selecionar todos
//
lRUCFisica := iif( len(alltrim(vg))=8, .t., .f. )
//
cNumero_al:= left(vg,iif( lRUCFisica, 7, 8 ))
nDicer := substr(vg,iif( lRUCFisica, 8, 9 ),1)
Código: Selecionar todos
if nDicer # strzero(int(dv),1)
alert("RUC "+iif( lRUCFisica, "Fisico", "Juridico" )+" incorreto.")
endif
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
TerraSoftware
- Usuário Nível 3

- Mensagens: 353
- Registrado em: 28 Jul 2004 13:14
- Localização: Cianorte-PR
- Contato:
RUC Paraguay
Caro colega Rochinha.
Sua ideia nao deu certo, obrigado pela tentativa.
Acredito que para RUC fisica realmente exista outra formula, o problema é que nao estou encontrando a bendita.
Sua ideia nao deu certo, obrigado pela tentativa.
Acredito que para RUC fisica realmente exista outra formula, o problema é que nao estou encontrando a bendita.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
RUC Paraguay
Amiguinho,
Este trecho me deixou numa duvida:
Nele:
- se resto for 0 ou 1 então o digito será sempre 0?
- não seria o caso de usar if resto >= 1?
Ainda assim no entanto encontrei a seguinte função, um pouco diferente da sua mas não especifica nada em relação a RUC Juridica ou Fisica:
Este trecho me deixou numa duvida:
Código: Selecionar todos
resto:= mod(v_total, 11)
dv:= 0
if resto > 1
dv:= 11 - resto
endif
- se resto for 0 ou 1 então o digito será sempre 0?
- não seria o caso de usar if resto >= 1?
Ainda assim no entanto encontrei a seguinte função, um pouco diferente da sua mas não especifica nada em relação a RUC Juridica ou Fisica:
Código: Selecionar todos
// Funcion para calcular el digito verificador de un ruc - py
// @author en PL/SQL: www.set.gov.py
// @author en Power Builder: Robert Galeano Fernandez - rgfpy - www.sourcepy.com
/*
ARGUMENTOS
Arg1(string): vruc: numero de cedula o numero de ruc sin dv
Arg2(integer): vbase_max: numero max que puede obtener el digito verificador
Return: retorna el numero de digito verificador
*/
double vnuevo_ruc_aux = 0
double vresto
long i1
long k = 2
string vnuevo_ruc
string vletra_ruc
integer vdigito
// generamos nuevo ruc, comprobamos si el caracter obtenido es numerico o string si es string convertimos en su valor ascii
FOR i1 = 1 to len(vruc)
vletra_ruc = upper(mid(vruc,i1,1))
IF not (vletra_ruc >= "0" and vletra_ruc <= "9") then
vnuevo_ruc += string(asc(vletra_ruc))
ELSE
vnuevo_ruc += vletra_ruc
END IF
NEXT
// generamos el nuevo numero de ruc aux partiendo en orden DESC de acuerdo al nuevo ruc generado, tomando cada letra en el ciclo y multiplicarlo por el acumulador k
FOR i1 = len(vnuevo_ruc) to 1 step -1
IF k > vbase_max then k = 2
vnuevo_ruc_aux += integer(mid(vnuevo_ruc,i1,1)) * k
k += 1
NEXT
// obtener el resto de la division de vnuevo_ruc_aux entre 11
vresto = mod(vnuevo_ruc_aux, 11)
// si el resto es mayor a 1 restamos con 11 sino igualamos a 0
IF vresto > 1 then
vdigito = 11 - vresto
ELSE
vdigito = 0
END IF
return vdigito
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
