/// <summary> /// vérification si la clé rib est correcte /// </summary> /// <param name="value"></param> /// <returns></returns> public bool VerifCalculRib(string value) { if (string.IsNullOrEmpty(_codeBanque) | string.IsNullOrEmpty(_codeGuichet) | string.IsNullOrEmpty(Numero)) { throw (new ApplicationException("La saisie du code guichet, banque et le numéro de compte est obligatoire.")); } return(Compte.CalculRib(this.CodeBanque, this.CodeGuichet, Compte.TranformeCompte(this.Numero)).ToString().Equals(value)); }
/// <summary> /// calcul le numéro de rib d'un compte banquaire /// 97-long.part(concat(codebanque+codeguichet+compte banquaire))*100 modulo 97 /// </summary> /// <param name="codeBanque"></param> /// <param name="codeGuichet"></param> /// <param name="compte"></param> /// <returns></returns> public static ulong CalculRib(string codeBanque, string codeGuichet, string compte) { StringBuilder sB = new StringBuilder(); ulong reste; reste = ulong.Parse(codeBanque) % 97; sB.Append(reste); sB.Append(codeGuichet); reste = ulong.Parse(sB.ToString()) % 97; sB.Clear(); sB.Append(reste); sB.Append(Compte.TranformeCompte(compte)); reste = ulong.Parse(sB.ToString()) % 97; sB.Clear(); sB.Append(reste); sB.Append("00"); reste = ulong.Parse(sB.ToString()) % 97; return(97 - reste); }