1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.kpme.tklm.time.workflow.dao;
17
18 import java.util.ArrayList;
19 import java.util.Collection;
20 import java.util.List;
21
22 import org.apache.ojb.broker.query.Criteria;
23 import org.apache.ojb.broker.query.QueryByCriteria;
24 import org.apache.ojb.broker.query.QueryFactory;
25 import org.joda.time.DateTime;
26 import org.joda.time.LocalDate;
27 import org.joda.time.format.DateTimeFormat;
28 import org.joda.time.format.DateTimeFormatter;
29 import org.kuali.kpme.tklm.time.workflow.TimesheetDocumentHeader;
30 import org.kuali.rice.core.framework.persistence.ojb.dao.PlatformAwareDaoBaseOjb;
31
32 public class TimesheetDocumentHeaderDaoOjbImpl extends PlatformAwareDaoBaseOjb implements TimesheetDocumentHeaderDao {
33
34 @Override
35 public TimesheetDocumentHeader getTimesheetDocumentHeader(String documentId) {
36 Criteria crit = new Criteria();
37 crit.addEqualTo("documentId", documentId);
38 return (TimesheetDocumentHeader) this.getPersistenceBrokerTemplate().getObjectByQuery(QueryFactory.newQuery(TimesheetDocumentHeader.class, crit));
39 }
40
41 @Override
42 public void saveOrUpdate(TimesheetDocumentHeader documentHeader) {
43 if (documentHeader != null) {
44 this.getPersistenceBrokerTemplate().store(documentHeader);
45 }
46 }
47
48 public void deleteTimesheetHeader(String documentId){
49 Criteria crit = new Criteria();
50 crit.addEqualTo("documentId", documentId);
51 this.getPersistenceBrokerTemplate().deleteByQuery(QueryFactory.newQuery(TimesheetDocumentHeader.class, crit));
52 }
53
54 @Override
55 public TimesheetDocumentHeader getTimesheetDocumentHeader(String principalId, DateTime payBeginDate, DateTime payEndDate) {
56 Criteria crit = new Criteria();
57 crit.addEqualTo("principalId", principalId);
58 crit.addEqualTo("endDate", payEndDate.toDate());
59 crit.addEqualTo("beginDate", payBeginDate.toDate());
60
61 return (TimesheetDocumentHeader) this.getPersistenceBrokerTemplate().getObjectByQuery(QueryFactory.newQuery(TimesheetDocumentHeader.class, crit));
62 }
63
64
65
66
67
68 public TimesheetDocumentHeader getPreviousDocumentHeader(String principalId, DateTime payBeginDate) {
69 Criteria crit = new Criteria();
70 crit.addEqualTo("principalId", principalId);
71
72 crit.addEqualTo("endDate", payBeginDate.toDate());
73 QueryByCriteria query = new QueryByCriteria(TimesheetDocumentHeader.class, crit);
74 query.addOrderByDescending("documentId");
75 query.setStartAtIndex(0);
76 query.setEndAtIndex(1);
77
78 return (TimesheetDocumentHeader) this.getPersistenceBrokerTemplate().getObjectByQuery(query);
79 }
80
81 @Override
82 public TimesheetDocumentHeader getNextDocumentHeader(String principalId, DateTime payEndDate) {
83 Criteria crit = new Criteria();
84 crit.addEqualTo("principalId", principalId);
85
86 crit.addEqualTo("beginDate", payEndDate.toDate());
87 QueryByCriteria query = new QueryByCriteria(TimesheetDocumentHeader.class, crit);
88 query.setStartAtIndex(0);
89 query.setEndAtIndex(1);
90
91 return (TimesheetDocumentHeader) this.getPersistenceBrokerTemplate().getObjectByQuery(query);
92 }
93
94 @Override
95 public List<TimesheetDocumentHeader> getDocumentHeaders(DateTime payBeginDate, DateTime payEndDate) {
96 Criteria crit = new Criteria();
97 List<TimesheetDocumentHeader> lstDocumentHeaders = new ArrayList<TimesheetDocumentHeader>();
98
99 crit.addEqualTo("endDate", payEndDate.toDate());
100 crit.addEqualTo("beginDate", payBeginDate.toDate());
101 QueryByCriteria query = new QueryByCriteria(TimesheetDocumentHeader.class, crit);
102 Collection c = this.getPersistenceBrokerTemplate().getCollectionByQuery(query);
103 if (c != null) {
104 lstDocumentHeaders.addAll(c);
105 }
106
107 return lstDocumentHeaders;
108 }
109
110 public List<TimesheetDocumentHeader> getDocumentHeadersForPrincipalId(String principalId) {
111 Criteria crit = new Criteria();
112 List<TimesheetDocumentHeader> lstDocumentHeaders = new ArrayList<TimesheetDocumentHeader>();
113
114 crit.addEqualTo("principalId", principalId);
115 QueryByCriteria query = new QueryByCriteria(TimesheetDocumentHeader.class, crit);
116 Collection c = this.getPersistenceBrokerTemplate().getCollectionByQuery(query);
117 if (c != null) {
118 lstDocumentHeaders.addAll(c);
119 }
120 return lstDocumentHeaders;
121 }
122
123 public List<TimesheetDocumentHeader> getDocumentHeadersForYear(String principalId, String year) {
124 Criteria crit = new Criteria();
125 List<TimesheetDocumentHeader> lstDocumentHeaders = new ArrayList<TimesheetDocumentHeader>();
126
127 crit.addEqualTo("principalId", principalId);
128 DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy");
129 LocalDate currentYear = formatter.parseLocalDate(year);
130 LocalDate nextYear = currentYear.plusYears(1);
131 crit.addGreaterOrEqualThan("beginDate", currentYear.toDate());
132 crit.addLessThan("beginDate", nextYear.toDate());
133
134 QueryByCriteria query = new QueryByCriteria(TimesheetDocumentHeader.class, crit);
135 Collection c = this.getPersistenceBrokerTemplate().getCollectionByQuery(query);
136 if (c != null) {
137 lstDocumentHeaders.addAll(c);
138 }
139
140 return lstDocumentHeaders;
141 }
142
143 public TimesheetDocumentHeader getDocumentHeaderForDate(String principalId, DateTime asOfDate) {
144 Criteria crit = new Criteria();
145 crit.addEqualTo("principalId", principalId);
146 crit.addLessOrEqualThan("beginDate", asOfDate.toDate());
147 crit.addGreaterThan("endDate", asOfDate.toDate());
148
149 QueryByCriteria query = new QueryByCriteria(TimesheetDocumentHeader.class, crit);
150
151 return (TimesheetDocumentHeader) this.getPersistenceBrokerTemplate().getObjectByQuery(query);
152 }
153 }