C sharp - Calculo de CBU

 
Vista:

Calculo de CBU

Publicado por Christian (1 intervención) el 22/03/2011 22:36:19
Les dejo el codigo para el calculo de CBU en Argentina.

private void ValidarCBU(string CBU)
{
var sumatoria1 = new [] { 7, 1, 3, 9, 7, 1, 3 };
var sumatoria2 = new [] { 3, 9, 7, 1, 3, 9, 7, 1, 3, 9, 7, 1, 3 };

var bloque1 = CBU.Substring(0, 8).ToCharArray();
var bloque2 = CBU.Substring(8, 14).ToCharArray();

var suma1 = 0;
var suma2 = 0;

for (var i = 0; i < bloque1.Count() - 1; i++)
{
suma1 = suma1 + (int.Parse(bloque1[i].ToString()) * sumatoria1[i]);
}
for (var i = 0; i < bloque2.Count() - 1; i++)
{
suma2 = suma2 + (int.Parse(bloque2[i].ToString()) * sumatoria2[i]);
}

suma1 = 10 - int.Parse(suma1.ToString().Substring(suma1.ToString().Length - 1, 1));

suma2 = 10 - int.Parse(suma2.ToString().Substring(suma2.ToString().Length - 1, 1));

if (suma2.ToString() == bloque2[bloque2.Count() - 1].ToString() && suma1.ToString() == bloque1[bloque1.Count() - 1].ToString())
{
MessageBox.Show(true.ToString());
}
else
{
MessageBox.Show(false.ToString());
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Calculo de CBU

Publicado por Seba (1 intervención) el 23/09/2013 22:38:04
Te faltaria considerar cuando suma1 o suma2 es =10... En esos casos da error la verificacion.

Para eso podemos agregar dos lineas despues del calculo de suma1 y suma2.


if (suma1 == 10) suma1 = 0;
if (suma2 == 10) suma2 = 0;

Muy buena funcion. Me fue muy util.

Saludos.
Sebastian.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar