Validar Campo com Focus Listener


#1

Pessoal, bom dia,

Realizei uma alteração de codigo para uma necessitadade da empresa, na qual necessita que um RUT(numero de identidade Chile) seja validado.
O problema é que quando texto fora da aplicação(Adempiere) com uma classe de testes, me funciona bem, porem quando compilo esse jar e aplico o customization, é como se nao existira. simplesmente nao agarra a configuracao.

codigo de validacao:

public static boolean ValidarRut(int rut, char dv) {
int m = 0, s = 1;
for (; rut != 0; rut /= 10) {
s = (s + rut % 10 * (9 - m++ % 6)) % 11;
}
return dv == (char) (s != 0 ? s + 47 : 75);
}

Onde validar no adempiere:
String isDigitChecked = Env.getContext(ctx, WindowNo, “IsDigitChecked”, true) ;
JTextField jTField = new JTextField(isDigitChecked);
mFieldFListener.getColumnName().equals(jTField);
final int rut = Integer.parseInt(isDigitChecked.substring(0, isDigitChecked.length()-1));
final char dv = isDigitChecked.charAt(isDigitChecked.length());
jTField.addFocusListener(new FocusListener() {

		@Override
		public void focusLost(FocusEvent eventLost) {
			eventLost.getComponent().equals(LCO_Utils.ValidarRut(rut, dv));
		}
		
		@Override
		public void focusGained(FocusEvent arg0) {
			// nothing
			
		}
	});

Agradeço se alguem puder ajudar =)


#2

por que vc não faz a verificação via callout ou via validator igual a validação de CNPJ?


#3

entao, a validacao de campo esta no collout, a validacao do proprio rut esta na classe Utils.

Eu consegui faze-lo executar com teste de unidade e toda as boas praticas…maaaaaaasss quando aplico o customization.jar no ERP, simplesmente ignora o fato dessa validação existir.

ou eu to gerando algo errado, ou ele nao aceita o que eu estou fazendo.

visto que o customization esta abaixo de uma customizacao LCO(colombia) a do Carlos Ruiz…nao sei se alguem ja ouviu falar nele.

O ponto é que funciona mas nao no ERP…nao sei se alguem tem uma luz a respeito ou teve o mesmo problema.


#4

depois que vc colocou o customization.jar na pasta lib, vc executou o RUN_setup ?


#5

Sim, gerei e atualizei com o run setup, todavia nao agarra o arquivo.


#6

tudo que ele tem q fazer é:

public String checkTaxIdDigit (Properties ctx, int WindowNo,
GridTab mTab, GridField mField, Object value, Object oldValue)
{
GridField mFieldFListener = mField;
log.info("");
String isDigitChecked = Env.getContext(ctx, WindowNo, “IsDigitChecked”, true) ;

	// if IsDigitChecked validate it and return error if different
	if (!isDigitChecked.equals("Y"))
		return "";
	String  taxid = (String) mTab.getValue("RUT");//antes decia getValue("TaxID")
	JTextField jTField = new JTextField(taxid);
	mFieldFListener.getColumnName().equals(jTField);
	final int rut = Integer.parseInt(taxid.substring(0, taxid.length()-1));
	final char dv = taxid.charAt(taxid.length());
	jTField.addFocusListener(new FocusListener() {	
		
		@Override
		public void focusLost(FocusEvent eventLost) {
			if(!eventLost.getComponent().equals(LCO_Utils.ValidarRut(rut, dv)) ){
				//envia mensagem de erro
			MessageBox.show("ERROR invalid digit!");
			}
				
		}
		
		@Override
		public void focusGained(FocusEvent arg0) {
			// nothing
			
		}
	});

e depois no adempiere, validar o campo RUT coonforme o modelo anexo.