Groovy web console

subscribe to the feed Subscribe
to this
site

Untitled

Published 4 weeks ago by Anonymous
Actions  ➤ Edit in console Back to console Show/hide line numbers View recent scripts
def generateClientId()
{
    long leftLimit = 100000000000;
    long rightLimit = 999999999999;
    long generatedLong = leftLimit + (long) (Math.random() * (rightLimit - leftLimit));
    return generatedLong.toString();
}

def getDigitoVerificador(String arrCVUSinDigitoVerificado, int intPosInicial, int intPosFinal)
{
  def arrPonderador = [3,1,7,9];
  BigInteger intSumaAlgoritmo = new BigInteger(0);
  def intIterador = 0;
  for (def i = intPosFinal; i >= intPosInicial; i--)
  {
    intSumaAlgoritmo = intSumaAlgoritmo + ((arrCVUSinDigitoVerificado[i]).toInteger() * (arrPonderador[intIterador % 4]));
    intIterador++;
  }
  return (10 - intSumaAlgoritmo % 10) % 10;
}
def generarCVU(String  intCodigoPSP, String intClientId)
{
  def intPrimerDigitoVerificador = "0";
  def intSegundoDigitoVerificador = "0";

  def arrCVUSinDigitoVerificado = "000" + intCodigoPSP + intPrimerDigitoVerificador + "0" + intClientId + intSegundoDigitoVerificador;

  intPrimerDigitoVerificador = getDigitoVerificador(arrCVUSinDigitoVerificado, 0, 6);
  intSegundoDigitoVerificador = getDigitoVerificador(arrCVUSinDigitoVerificado, 8, 20);

  def intCVUVerificado = "000" + intCodigoPSP + intPrimerDigitoVerificador + "0" + intClientId + intSegundoDigitoVerificador;
  return intCVUVerificado;
}

def strClientId = generateClientId(); // param ClientId
println("Client ID: " + strClientId );
def intCodigoPSP = "0213"; // param CodigoPSP 
def strCVUVerificado = generarCVU(intCodigoPSP, strClientId);
println("Nueva CVU: " + strCVUVerificado); // return