package br.com.caelum.stella.gateway.redecard;
import java.util.Date;
/**
* Classe temporaria achada na net para fazer calculo de um numero da master. Apenas está alterada para ter um metod que calcula
* o tal do numero, antes ficava tudo no metodo main escrevendo em um arquivo.
* @author Alberto Pc
*
*/
class CodVer {
public static void main(String[] args) {
}
/**
*
* @param args numeroFiliacao valor ip
* @return
*/
public static String calculaCodigoVerificacao(String... args){
Date date = new Date();
if (args.length < 3) {
return "Numero de argumentos invalidos!\n\nUso:java CodVer <numfil> <total> <endereco ip remoto> \n<numfil>: Numero de filiacao\n<total>: Valor total da compra\n<endereo ip remoto>: IP Address do browser cliente";
} else {
for (int i = 0; i < args.length; i++) {
/* empty */
}
int numfil = 0;
try {
numfil = Integer.parseInt(args[0]);
} catch (Exception exception) {
return "Erro - Numero de filiacao invalido.";
}
int total = 0;
try {
String parteInteira = args[1]
.substring(0, args[1].indexOf('.'));
total = Integer.parseInt(parteInteira);
} catch (Exception exception) {
return "Erro - Preco invalido. Use: ####.##";
}
int segundosAgora = date.getSeconds();
int segundosAgoraCodificados = 0;
switch (segundosAgora) {
case 0:
segundosAgoraCodificados = 11;
break;
case 1:
segundosAgoraCodificados = 17;
break;
case 2:
segundosAgoraCodificados = 21;
break;
case 3:
segundosAgoraCodificados = 31;
break;
case 4:
segundosAgoraCodificados = 56;
break;
case 5:
segundosAgoraCodificados = 34;
break;
case 6:
segundosAgoraCodificados = 42;
break;
case 7:
segundosAgoraCodificados = 3;
break;
case 8:
segundosAgoraCodificados = 18;
break;
case 9:
segundosAgoraCodificados = 13;
break;
case 10:
segundosAgoraCodificados = 12;
break;
case 11:
segundosAgoraCodificados = 18;
break;
case 12:
segundosAgoraCodificados = 22;
break;
case 13:
segundosAgoraCodificados = 32;
break;
case 14:
segundosAgoraCodificados = 57;
break;
case 15:
segundosAgoraCodificados = 35;
break;
case 16:
segundosAgoraCodificados = 43;
break;
case 17:
segundosAgoraCodificados = 4;
break;
case 18:
segundosAgoraCodificados = 19;
break;
case 19:
segundosAgoraCodificados = 14;
break;
case 20:
segundosAgoraCodificados = 9;
break;
case 21:
segundosAgoraCodificados = 20;
break;
case 22:
segundosAgoraCodificados = 23;
break;
case 23:
segundosAgoraCodificados = 33;
break;
case 24:
segundosAgoraCodificados = 58;
break;
case 25:
segundosAgoraCodificados = 36;
break;
case 26:
segundosAgoraCodificados = 44;
break;
case 27:
segundosAgoraCodificados = 5;
break;
case 28:
segundosAgoraCodificados = 24;
break;
case 29:
segundosAgoraCodificados = 15;
break;
case 30:
segundosAgoraCodificados = 62;
break;
case 31:
segundosAgoraCodificados = 25;
break;
case 32:
segundosAgoraCodificados = 34;
break;
case 33:
segundosAgoraCodificados = 59;
break;
case 34:
segundosAgoraCodificados = 37;
break;
case 35:
segundosAgoraCodificados = 45;
break;
case 36:
segundosAgoraCodificados = 6;
break;
case 37:
segundosAgoraCodificados = 25;
break;
case 38:
segundosAgoraCodificados = 16;
break;
case 39:
segundosAgoraCodificados = 27;
break;
case 40:
segundosAgoraCodificados = 63;
break;
case 41:
segundosAgoraCodificados = 26;
break;
case 42:
segundosAgoraCodificados = 35;
break;
case 43:
segundosAgoraCodificados = 60;
break;
case 44:
segundosAgoraCodificados = 38;
break;
case 45:
segundosAgoraCodificados = 46;
break;
case 46:
segundosAgoraCodificados = 7;
break;
case 47:
segundosAgoraCodificados = 26;
break;
case 48:
segundosAgoraCodificados = 17;
break;
case 49:
segundosAgoraCodificados = 28;
break;
case 50:
segundosAgoraCodificados = 14;
break;
case 51:
segundosAgoraCodificados = 36;
break;
case 52:
segundosAgoraCodificados = 2;
break;
case 53:
segundosAgoraCodificados = 39;
break;
case 54:
segundosAgoraCodificados = 47;
break;
case 55:
segundosAgoraCodificados = 8;
break;
case 56:
segundosAgoraCodificados = 29;
break;
case 57:
segundosAgoraCodificados = 22;
break;
case 58:
segundosAgoraCodificados = 55;
break;
case 59:
segundosAgoraCodificados = 33;
break;
}
segundosAgora = segundosAgoraCodificados;
String pad;
if (segundosAgora < 10)
pad = "0";
else
pad = "";
String ipremoto = args[2];
int tamIP = ipremoto.length();
int i_5_ = total + segundosAgora;
int i_6_ = segundosAgora + tamIP;
int i_7_ = segundosAgora * numfil;
String string_8_ = String.valueOf(i_7_);
return String.valueOf(i_7_) + "" + i_5_ + "" + i_6_ + "-"
+ string_8_.length() + pad + segundosAgora;
//int i_9_ = i_7_ / segundosAgora;
}
}
}