Va salut!
Am cautat pe forum, dar nu am gasit (poate nu am cautat indeajuns).
Vreau sa stiu care este algoritmul de validare a unui cod fiscal.
Eventual, daca ma poate ajuta cineva cu un script in Visual FoxPro.
Multumesc mult!
Validare CUI
Forum rules
:: limbajul folosit in acest forum va fi unul civilizat, in limita subiectelor din topicurile deschise.
:: orice manifestare necivilizata (agresiune verbala, comportament neadecvat, reclama abuziva fara legatura cu forumul) va duce la stergerea contului de user.
:: pt. inscriere USER NOU la acest FORUM, folositi linkul https://profox.ro/forum-register/
:: limbajul folosit in acest forum va fi unul civilizat, in limita subiectelor din topicurile deschise.
:: orice manifestare necivilizata (agresiune verbala, comportament neadecvat, reclama abuziva fara legatura cu forumul) va duce la stergerea contului de user.
:: pt. inscriere USER NOU la acest FORUM, folositi linkul https://profox.ro/forum-register/
Re: Validare CUI
uite o varianta de functie de verificat CIF si CNP.. Modifica daca e nevoie 
PARAMETER CESIR
IF EMPTY(CESIR)
STORE .F. TO CUIVERIFICAT
RETURN .T.
ENDIF
XQCODF=ALLTRIM(EXTRAGEW(CESIR))
IF LEN(XQCODF)=13
**CNP
XSIRX='279146358279'
STORE 0 TO XSUMAX
FOR NNXX=1 TO 12
XSUMAX=XSUMAX+(VAL(SUBSTR(XSIRX,NNXX,1))*VAL(SUBSTR(XQCODF,NNXX,1)))
ENDFOR
XRESTUL=XSUMAX%11
IF XRESTUL=10
XRESTUL=1
ENDIF
IF VAL(SUBSTR(XQCODF,13,1))<>XRESTUL
DO FORM ANUNT WITH 'CNP-ul ('+ALLTRIM(CESIR)+') nu este corect... Ultima cifra trebuia sa fie ('+ALLTRIM(str(XRESTUL))+')...!'
STORE .F. TO CUIVERIFICAT
ELSE
STORE .T. TO CUIVERIFICAT
ENDIF
ELSE
**CF
XSIRX='753217532'
XCATEX=LEN(XQCODF)
IF XCATEX<10
COMPLETARE=10-XCATEX
XQCODF=SPACE(COMPLETARE)+XQCODF
ENDIF
IF XCATEX>10
XQCODF=LEFT(XQCODF,10)
ENDIF
STORE 0 TO XSUMAX
FOR NNXX=1 TO 9
XSUMAX=XSUMAX+(VAL(SUBSTR(XSIRX,NNXX,1))*VAL(SUBSTR(XQCODF,NNXX,1)))
ENDFOR
XRESTUL=(XSUMAX*10)%11
IF XRESTUL=10
XRESTUL=0
ENDIF
IF VAL(SUBSTR(XQCODF,10,1))<>XRESTUL
DO FORM ANUNT WITH 'CUI-ul ('+ALLTRIM(CESIR)+') nu este corect... Ultima cifra trebuia sa fie ('+ALLTRIM(str(XRESTUL))+')...!'
STORE .F. TO CUIVERIFICAT
ELSE
STORE .T. TO CUIVERIFICAT
ENDIF
ENDIF
RETURN .T.
**********
PARAMETER CESIR
IF EMPTY(CESIR)
STORE .F. TO CUIVERIFICAT
RETURN .T.
ENDIF
XQCODF=ALLTRIM(EXTRAGEW(CESIR))
IF LEN(XQCODF)=13
**CNP
XSIRX='279146358279'
STORE 0 TO XSUMAX
FOR NNXX=1 TO 12
XSUMAX=XSUMAX+(VAL(SUBSTR(XSIRX,NNXX,1))*VAL(SUBSTR(XQCODF,NNXX,1)))
ENDFOR
XRESTUL=XSUMAX%11
IF XRESTUL=10
XRESTUL=1
ENDIF
IF VAL(SUBSTR(XQCODF,13,1))<>XRESTUL
DO FORM ANUNT WITH 'CNP-ul ('+ALLTRIM(CESIR)+') nu este corect... Ultima cifra trebuia sa fie ('+ALLTRIM(str(XRESTUL))+')...!'
STORE .F. TO CUIVERIFICAT
ELSE
STORE .T. TO CUIVERIFICAT
ENDIF
ELSE
**CF
XSIRX='753217532'
XCATEX=LEN(XQCODF)
IF XCATEX<10
COMPLETARE=10-XCATEX
XQCODF=SPACE(COMPLETARE)+XQCODF
ENDIF
IF XCATEX>10
XQCODF=LEFT(XQCODF,10)
ENDIF
STORE 0 TO XSUMAX
FOR NNXX=1 TO 9
XSUMAX=XSUMAX+(VAL(SUBSTR(XSIRX,NNXX,1))*VAL(SUBSTR(XQCODF,NNXX,1)))
ENDFOR
XRESTUL=(XSUMAX*10)%11
IF XRESTUL=10
XRESTUL=0
ENDIF
IF VAL(SUBSTR(XQCODF,10,1))<>XRESTUL
DO FORM ANUNT WITH 'CUI-ul ('+ALLTRIM(CESIR)+') nu este corect... Ultima cifra trebuia sa fie ('+ALLTRIM(str(XRESTUL))+')...!'
STORE .F. TO CUIVERIFICAT
ELSE
STORE .T. TO CUIVERIFICAT
ENDIF
ENDIF
RETURN .T.
**********
Re: Validare CUI
Foarte util!
Multumesc mult!
O zi buna!
Multumesc mult!
O zi buna!