//Usage:
//SAI_CleCCP = Cle_CCP_RIP("OLD",SAI_CompteCCP)
//SAI_CleRIP = Cle_CCP_RIP("RIP",SAI_CompteCCP)
PROCEDURE PUBLIC GLOBAL Cle_CCP_RIP(Type_Cle is string, Compte_CCP is string):string
nResulta is int
sCle is string = "00"
SWITCH Type_Cle
// Cle CCP
CASE "OLD"
FOR I = Length(Compte_CCP) TO 1 STEP -1
nResulta = (nResulta + Val(Compte_CCP[I]) * (Length(Compte_CCP) - I + 4))
nResulta = modulo(nResulta, 100)
END
// Cle Rip
CASE "RIP"
nResulta = (97 - ((((modulo(Val(Compte_CCP), 97)) * modulo(3, 97)) + 85) modulo 97))
OTHER CASE
nResulta = 0
END
//ADD "0" Like 01, 02, 03 ... etc
sCle = NumToString(nResulta,"02d")
Compte_CCP = NumToString(Val(Compte_CCP),"010d")
RESULT sCle