@Override public DGuiValidation validateForm() { String message = ""; DDbDpsSeriesNumber dpsSeriesNumber = DTrnUtils.getDpsSeriesNumber( miClient.getSession(), moRegistry.getDpsTypeKey(), moTextSeries.getValue(), moIntNumber.getValue()); DGuiValidation validation = moFields.validateFields(); if (validation.isValid()) { if (DLibTimeUtils.digestYear(moDateDate.getValue())[0] != mnOriginalYear) { validation.setMessage( DGuiConsts.ERR_MSG_FIELD_DATE_ + "'" + DGuiUtils.getLabelName(jlDateDate.getText()) + "'" + DGuiConsts.ERR_MSG_FIELD_DATE_YEAR + DLibUtils.DecimalFormatCalendarYear.format(mnOriginalYear) + "."); validation.setComponent(moDateDate); } else if (dpsSeriesNumber != null && dpsSeriesNumber.getApprobationDate_n() != null && dpsSeriesNumber.getApprobationDate_n().after(moDateDate.getValue())) { validation.setMessage( DGuiConsts.ERR_MSG_FIELD_DATE_ + "'" + DGuiUtils.getLabelName(jlDateDate.getText()) + "'" + DGuiConsts.ERR_MSG_FIELD_DATE_GREAT_EQUAL + DLibUtils.DateFormatDate.format(dpsSeriesNumber.getApprobationDate_n()) + ", fecha de aprobación de los folios del documento."); validation.setComponent(moDateDate); } else { // Validate document number: if (validation.isValid()) { moRegistry.setSeries(moTextSeries.getValue()); moRegistry.setNumber(moIntNumber.getValue()); message = DTrnUtils.validateNumberForDps(miClient.getSession(), moRegistry); if (!message.isEmpty()) { validation.setMessage(message); validation.setComponent(moIntNumber); } else if (moRegistry.isRegistryNew() && DTrnUtils.isDpsNumberAutomatic(moRegistry.getDpsClassKey())) { moIntNumber.setValue(moRegistry.getNumber()); // new document number could be updated } } } } return validation; }
@Override public void setRegistry(DDbRegistry registry) throws Exception { moRegistry = (DDbDps) registry; mnFormResult = DLibConsts.UNDEFINED; mbFirstActivation = true; // Set registry: removeAllListeners(); reloadCatalogues(); if (moRegistry.isRegistryNew()) { throw new Exception(DGuiConsts.ERR_MSG_FORM_EXIST_REG); } else { jtfRegistryKey.setText(""); } setFormEditable(true); // enable all controls before setting form values mtOriginalDate = moRegistry.getDate(); mnOriginalYear = DLibTimeUtils.digestYear(mtOriginalDate)[0]; moTextSeries.setValue(moRegistry.getSeries()); moIntNumber.setValue(moRegistry.getNumber()); moDateDate.setValue(mtOriginalDate); moKeyEmissionType.setValue(new int[] {moRegistry.getFkEmissionTypeId()}); jtfDocType.setText( (String) miClient .getSession() .readField( DModConsts.TS_DPS_TP, moRegistry.getDpsTypeKey(), DDbRegistry.FIELD_NAME)); jtfDocType.setCaretPosition(0); moPanelDps.setValue(DModSysConsts.PARAM_YEAR, mnOriginalYear); moPanelDps.setRegistry(moRegistry); moTextSeries.setEditable(false); moDateDate.setEditable(false); addAllListeners(); }