*/
package fr.gouv.finances.cp.xemelios.controls.pesv2;
+import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Hashtable;
*
*/
public abstract class ControlUtilsPes extends AbstractUnitControl implements ConstantsControlsPESv2 {
-
+ private static final BigDecimal ibanCheckingConstant = new BigDecimal(97);
+
public Anomalie addPesAnomalie(final AbstractUnitControl ctrl, final DocumentControlModel docModel, final MessagesProvider messageAnomalie, final boolean isDepense, final String exercice, final String typeBordereau, final String idBordereau, final String idMessage, final String idNode,
final String whereReturnAnomalie, final String idPiece) {
}
}
}
-
+
public static final boolean verifCleIBAN(final String ibanParam) {
- final String iban = ibanParam.toUpperCase();
+ String iban = ibanParam.toUpperCase();
+
+ //En considerant que iban != null et iban.length > 4
+ StringBuffer sbIban = new StringBuffer(iban.substring(4));
+ sbIban.append(iban.substring(0, 4));
+ iban = sbIban.toString();
+
+ StringBuilder extendedIban = new StringBuilder(iban.length());
+ for(char currentChar : iban.toCharArray()){
+ extendedIban.append(Character.digit(currentChar,36));
+ }
+
+ return new BigDecimal(extendedIban.toString()).remainder(ibanCheckingConstant ).intValue() == 1;
+ /*final String iban = ibanParam.toUpperCase();
if (iban == null || iban.length() < 5) {
return false;
} else {
}
return calcul.equals(cle);
- }
+ }*/
}
}