1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.module.purap.dataaccess.impl;
20
21 import java.util.HashMap;
22 import java.util.Iterator;
23 import java.util.List;
24 import java.util.Map;
25
26 import org.apache.ojb.broker.query.Criteria;
27 import org.apache.ojb.broker.query.QueryByCriteria;
28 import org.kuali.kfs.module.purap.PurapConstants;
29 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceItemMapping;
30 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceLoadSummary;
31 import org.kuali.kfs.module.purap.dataaccess.ElectronicInvoicingDao;
32 import org.kuali.kfs.module.purap.document.PaymentRequestDocument;
33 import org.kuali.rice.core.framework.persistence.ojb.dao.PlatformAwareDaoBaseOjb;
34
35 public class ElectronicInvoicingDaoOjb extends PlatformAwareDaoBaseOjb implements ElectronicInvoicingDao {
36
37 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ElectronicInvoicingDaoOjb.class);
38
39 public ElectronicInvoicingDaoOjb() {
40 super();
41 }
42
43 @Override
44 public ElectronicInvoiceLoadSummary getElectronicInvoiceLoadSummary(Integer loadId, String vendorDunsNumber) {
45 LOG.debug("getElectronicInvoiceLoadSummary() started");
46
47 Criteria criteria = new Criteria();
48 criteria.addEqualTo("id", loadId);
49 criteria.addEqualTo("vendorDunsNumber", vendorDunsNumber);
50
51 return (ElectronicInvoiceLoadSummary) getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(ElectronicInvoiceLoadSummary.class, criteria));
52 }
53
54 @Override
55 public List getPendingElectronicInvoices() {
56 LOG.debug("getPendingElectronicInvoices() started");
57
58 Criteria criteria = new Criteria();
59 criteria.addEqualTo("status.code", PurapConstants.PaymentRequestStatuses.APPDOC_PENDING_E_INVOICE);
60 criteria.addEqualTo("isElectronicInvoice", Boolean.TRUE);
61 List invoices = (List) getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(PaymentRequestDocument.class, criteria));
62 for (Iterator iter = invoices.iterator(); iter.hasNext();) {
63 PaymentRequestDocument p = (PaymentRequestDocument) iter.next();
64 }
65
66 return invoices;
67 }
68
69 @Override
70 public Map getDefaultItemMappingMap() {
71 LOG.debug("getDefaultItemMappingMap() started");
72 Criteria criteria = new Criteria();
73 criteria.addIsNull("vendorHeaderGeneratedIdentifier");
74 criteria.addIsNull("vendorDetailAssignedIdentifier");
75 criteria.addEqualTo("active", true);
76 return this.getItemMappingMap(criteria);
77 }
78
79 @Override
80 public Map getItemMappingMap(Integer vendorHeaderId, Integer vendorDetailId) {
81 if (LOG.isDebugEnabled()) {
82 LOG.debug("getItemMappingMap() started for vendor id " + vendorHeaderId + "-" + vendorDetailId);
83 }
84 Criteria criteria = new Criteria();
85 criteria.addEqualTo("vendorHeaderGeneratedIdentifier", vendorHeaderId);
86 criteria.addEqualTo("vendorDetailAssignedIdentifier", vendorDetailId);
87 criteria.addEqualTo("active", true);
88 return this.getItemMappingMap(criteria);
89 }
90
91 protected Map getItemMappingMap(Criteria criteria) {
92 Map hm = new HashMap();
93 List itemMappings = (List) getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(ElectronicInvoiceItemMapping.class, criteria));
94
95 for (Iterator iter = itemMappings.iterator(); iter.hasNext();) {
96 ElectronicInvoiceItemMapping mapping = (ElectronicInvoiceItemMapping) iter.next();
97 hm.put(mapping.getInvoiceItemTypeCode(), mapping);
98 }
99 return hm;
100 }
101 }