public String validateLastPaidDate(Properties ctx,int WindowNo,GridTab mTab,GridField mField,Object value){
  if (isCalloutActive() || value == null)   return "";
  I_HR_EmployeeInsurance employeeInsurance=GridTabWrapper.create(mTab,I_HR_EmployeeInsurance.class);
  Timestamp payDate=employeeInsurance.getPayDate();
  Timestamp lastPaidDate=(Timestamp)value;
  if (payDate == null)   return "";
  if (lastPaidDate.before(payDate))   return "";
 else {
    String message=Msg.getMsg(Env.getCtx(),"Invalid") + "  " + Msg.parseTranslation(ctx,"@PayDate@");
    employeeInsurance.setDateLastPaid((Timestamp)mField.getOldValue());
    mTab.fireDataStatusEEvent(message,null,false);
  }
  return "";
}

public String validateLastPaidDate ( Properties ctx , int WindowNo , GridTab mTab , GridField mField , Object value ) { if ( isCalloutActive ( ) || value == null ) return "" ; I_HR_EmployeeInsurance employeeInsurance = GridTabWrapper . create ( mTab , I_HR_EmployeeInsurance . class ) ; Timestamp payDate = employeeInsurance . getPayDate ( ) ; Timestamp lastPaidDate = ( Timestamp ) value ; if ( payDate == null ) return "" ; if ( lastPaidDate . before ( payDate ) ) return "" ; else { String message = Msg . getMsg ( Env . getCtx ( ) , "Invalid" ) + "  " + Msg . parseTranslation ( ctx , "@PayDate@" ) ; employeeInsurance . setDateLastPaid ( ( Timestamp ) mField . getOldValue ( ) ) ; mTab . fireDataStatusEEvent ( message , null , false ) ; } return "" ; }
create a callout for last paid date less than the next payment date .
