/** * @param posString Format ###.## (<order number>.<position number>). */ @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public AuftragsPositionDO getAuftragsPosition(final String posString) { Integer auftragsNummer = null; Short positionNummer = null; if (posString == null) { return null; } final int sep = posString.indexOf('.'); if (sep <= 0 || sep + 1 >= posString.length()) { return null; } auftragsNummer = NumberHelper.parseInteger(posString.substring(0, posString.indexOf('.'))); positionNummer = NumberHelper.parseShort(posString.substring(posString.indexOf('.') + 1)); if (auftragsNummer == null || positionNummer == null) { log.info("Cannot parse order number (format ###.## expected: " + posString); return null; } @SuppressWarnings("unchecked") final List<AuftragDO> list = (List<AuftragDO>) getHibernateTemplate().find("from AuftragDO k where k.nummer=?", auftragsNummer); if (CollectionUtils.isEmpty(list) == true) { return null; } return list.get(0).getPosition(positionNummer); }
/** * @see org.projectforge.web.fibu.ISelectCallerPage#unselect(java.lang.String) */ @Override public void unselect(final String property) { if ("projektId".equals(property) == true) { getData().setProjekt(null); form.projektSelectPanel.getTextField().modelChanged(); } else if ("kundeId".equals(property) == true) { getData().setKunde(null); form.kundeSelectPanel.getTextField().modelChanged(); } else if ("contactPersonId".equals(property) == true) { getData().setContactPerson(null); setSendEMailNotification(); } else if (property.startsWith("taskId:") == true) { final Short number = NumberHelper.parseShort(property.substring(property.indexOf(':') + 1)); final AuftragsPositionDO pos = getData().getPosition(number); pos.setTask(null); } else { log.error("Property '" + property + "' not supported for selection."); } }
/** * @see org.projectforge.web.fibu.ISelectCallerPage#select(String, Object) */ @Override public void select(final String property, final Object selectedValue) { if ("projektId".equals(property) == true) { auftragDao.setProjekt(getData(), (Integer) selectedValue); form.projektSelectPanel.getTextField().modelChanged(); if (getData().getProjektId() != null && getData().getProjektId() >= 0) { final ProjektDO projekt = projektDao.getById(getData().getProjektId()); form.setKundePmHobmAndSmIfEmpty(projekt, null); } } else if ("kundeId".equals(property) == true) { auftragDao.setKunde(getData(), (Integer) selectedValue); form.kundeSelectPanel.getTextField().modelChanged(); } else if ("contactPersonId".equals(property) == true) { auftragDao.setContactPerson(getData(), (Integer) selectedValue); setSendEMailNotification(); } else if (property.startsWith("taskId:") == true) { final Short number = NumberHelper.parseShort(property.substring(property.indexOf(':') + 1)); final AuftragsPositionDO pos = getData().getPosition(number); auftragDao.setTask(pos, (Integer) selectedValue); } else { log.error("Property '" + property + "' not supported for selection."); } }