/*
jBilling - The Enterprise Open Source Billing System
Copyright (C) 2003-2011 Enterprise jBilling Software Ltd. and Emiliano Conde
This file is part of jbilling.
jbilling is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
jbilling is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with jbilling. If not, see <http://www.gnu.org/licenses/>.
*/
package com.sapienter.jbilling.server.process.db;
import java.util.Calendar;
import java.util.Date;
import org.hibernate.Query;
import com.sapienter.jbilling.server.util.Constants;
import com.sapienter.jbilling.server.util.db.AbstractDAS;
public class ProcessRunDAS extends AbstractDAS<ProcessRunDTO> {
//private static final Logger LOG = Logger.getLogger(ProcessRunDAS.class);
public ProcessRunDTO create(BillingProcessDTO process, Date runDate, Integer invoicesGenerated, ProcessRunStatusDTO status) {
ProcessRunDTO dto = new ProcessRunDTO(0, runDate, Calendar.getInstance().getTime());
dto.setBillingProcess(process);
dto.setInvoicesGenerated(invoicesGenerated);
dto.setStatus(status);
dto = save(dto);
process.getProcessRuns().add(dto);
return dto;
}
public ProcessRunDTO getLatestSuccessful(Integer entityId) {
final String hql =
"select a " +
" from ProcessRunDTO a " +
" where a.billingProcess.entity.id = :entity " +
" and a.status.id = " + Constants.PROCESS_RUN_STATUS_SUCCESS +
" and a.billingProcess.isReview = 0 " +
"order by a.id desc ";
Query query = getSession().createQuery(hql);
query.setParameter("entity", entityId);
query.setMaxResults(1);
return (ProcessRunDTO) query.uniqueResult();
}
}