Cita:
Empezado por pacopenin
¿Alguien tiene hecho el cálculo de la Identificación de Acreedor para las domiciliaciones en formato SEPA?.
Uno de los pasos es tomar el resto de la división de un numero de p.e. 1185626240142800 entre 97. Dicho número sale de formar un string según varias formulas. Pues el caso es que no se como hacer esa división, ya que no se puede a entero para realizar un mod y obtener el resto. Ando espeso espeso. Se agradecen sugerencias. La explicación completa y más clara que la mía aquí.
|
El bucle para ir formando esas cadenas lo tienes en mi primer mensaje:
Código:
AnsiString cAux; Cuenta = Cuenta + "142800";
cAux = FormatFloat("0", StrToInt(Cuenta.SubString(1, 9)) % 97);
Cuenta = Cuenta.SubString(10, Cuenta.Length());
while (!Cuenta.IsEmpty())
{
if (StrToInt(cAux) < 10)
{
cAux = cAux + Cuenta.SubString(1, 8);
Cuenta = Cuenta.SubString(9, Cuenta.Length());
}
else
{
cAux = cAux + Cuenta.SubString(1, 7);
Cuenta = Cuenta.SubString(8, Cuenta.Length());
}
cAux = FormatFloat("0", StrToInt(cAux) % 97);
}
return "ES" + FormatFloat("00", 98 - StrToInt(cAux));
En este caso se supone que la cuenta siempre es de España (de ahí la cadena
1428 del principio del código); de otra forma bastaría con pasar el parámetro del país.