/** * Este arquivo é parte do Biblivre3. * * Biblivre3 é um software livre; você pode redistribuí-lo e/ou * modificá-lo dentro dos termos da Licença Pública Geral GNU como * publicada pela Fundação do Software Livre (FSF); na versão 3 da * Licença, ou (caso queira) qualquer versão posterior. * * Este programa é distribuído na esperança de que possa ser útil, * mas SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de * MERCANTIBILIDADE OU ADEQUAÇÃO PARA UM FIM PARTICULAR. Veja a * Licença Pública Geral GNU para maiores detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto * com este programa, Se não, veja em <http://www.gnu.org/licenses/>. * * @author Alberto Wagner <alberto@biblivre.org.br> * @author Danniel Willian <danniel@biblivre.org.br> * */ package biblivre3.circulation.access; import biblivre3.administration.cards.CardBO; import biblivre3.config.Config; import biblivre3.config.ConfigurationEnum; import biblivre3.enums.CardStatus; import java.sql.Timestamp; import java.util.Date; import mercury.BaseBO; public class AccessBO extends BaseBO { private int recordsPPage; private AccessDAO dao; public AccessBO() { try { this.recordsPPage = Integer.valueOf(Config.getConfigProperty(ConfigurationEnum.RECORDS_PER_PAGE)); dao = new AccessDAO(); } catch (Exception e) { log.error(e.getMessage(), e); this.recordsPPage = 25; } } public boolean insert(AccessDTO dto) { if (dao.insert(dto)) { return new CardBO().updateCardStatus(CardStatus.IN_USE, dto.getSerialCard()); } return false; } public boolean doExit(Integer cardId, Integer userId) { CardStatus newStatus = cardId != null ? CardStatus.AVAILABLE : CardStatus.IN_USE_AND_BLOCKED; AccessDTO dto = null; if (cardId != null) { dto = this.getByCardId(cardId); } else { dto = this.getByUserId(userId); } dto.setDepartureDatetime(new Timestamp(new Date().getTime())); if (this.update(dto)) { return new CardBO().updateCardStatus(newStatus, dto.getSerialCard()); } return false; } public boolean update(AccessDTO dto) { return dao.update(dto); } public AccessDTO getByCardId(Integer cardId) { return dao.getByCardId(cardId); } public AccessDTO getByUserId(Integer userId) { return dao.getByUserId(userId); } }