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.pdf;
20
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24
25 import org.apache.commons.lang.StringUtils;
26 import org.kuali.kfs.module.purap.PurapConstants;
27 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderContractLanguage;
28 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderVendorQuote;
29 import org.kuali.kfs.module.purap.document.PurchaseOrderDocument;
30 import org.kuali.kfs.module.purap.exception.PurapConfigurationException;
31 import org.kuali.kfs.module.purap.service.ImageService;
32 import org.kuali.kfs.sys.KFSConstants;
33 import org.kuali.kfs.sys.KFSPropertyConstants;
34 import org.kuali.kfs.sys.context.SpringContext;
35 import org.kuali.kfs.sys.service.impl.KfsParameterConstants;
36 import org.kuali.kfs.vnd.businessobject.CampusParameter;
37 import org.kuali.rice.core.api.config.property.ConfigurationService;
38 import org.kuali.rice.coreservice.framework.parameter.ParameterService;
39 import org.kuali.rice.krad.service.BusinessObjectService;
40
41
42
43
44 public class PurchaseOrderTransmitParameters implements PurchaseOrderParameters {
45
46 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PurchaseOrderTransmitParameters.class);
47
48 private String imageTempLocation;
49 private String key;
50 private String logoImage;
51 private String directorSignatureImage;
52 private String contractManagerSignatureImage;
53 private CampusParameter campusParameter;
54 private String statusInquiryUrl;
55 private String contractLanguage;
56 private String contractManagerCampusCode;
57 private boolean useImage;
58
59
60 private String pdfFileLocation;
61 private String pdfFileName;
62
63
64 String recipientFaxNumber;
65 String vendorName;
66 String faxDescription;
67
68 public PurchaseOrderTransmitParameters() {
69
70 }
71
72 @Override
73 public void setPurchaseOrderPdfParameters(PurchaseOrderDocument po) {
74 setPurchaseOrderPdfParameters(po, null);
75 }
76
77 @Override
78 public void setPurchaseOrderPdfParameters(PurchaseOrderDocument po, PurchaseOrderVendorQuote povq) {
79
80
81 this.key = povq == null ? po.getPurapDocumentIdentifier().toString() : po.getPurapDocumentIdentifier().toString() + povq.getPurchaseOrderVendorQuoteIdentifier().toString();
82 String campusCode = po.getDeliveryCampusCode().toLowerCase();
83 boolean useImage = true;
84 if (SpringContext.getBean(ParameterService.class).parameterExists(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapConstants.PDF_IMAGES_AVAILABLE_INDICATOR)) {
85 useImage = SpringContext.getBean(ParameterService.class).getParameterValueAsBoolean(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapConstants.PDF_IMAGES_AVAILABLE_INDICATOR);
86 }
87
88
89 if (useImage) {
90 if (getImageTempLocation() == null) {
91 throw new PurapConfigurationException("IMAGE_TEMP_PATH is missing");
92 }
93
94
95 if ((this.logoImage = SpringContext.getBean(ImageService.class).getLogo(key, campusCode, imageTempLocation)) == null) {
96 throw new PurapConfigurationException("logoImage is null.");
97 }
98 if ((this.directorSignatureImage = SpringContext.getBean(ImageService.class).getPurchasingDirectorImage(key, campusCode, imageTempLocation)) == null) {
99 throw new PurapConfigurationException("directorSignatureImage is null.");
100 }
101 if ((this.contractManagerSignatureImage = SpringContext.getBean(ImageService.class).getContractManagerImage(key, po.getContractManagerCode(), imageTempLocation)) == null) {
102 throw new PurapConfigurationException("contractManagerSignatureImage is null.");
103 }
104 }
105
106 Map<String, Object> criteria = new HashMap<String, Object>();
107 criteria.put(KFSPropertyConstants.CAMPUS_CODE, po.getDeliveryCampusCode());
108 this.campusParameter = ((List<CampusParameter>) SpringContext.getBean(BusinessObjectService.class).findMatching(CampusParameter.class, criteria)).get(0);
109
110 if (getStatusInquiryUrl() == null) {
111 LOG.debug("generatePurchaseOrderPdf() ended");
112 throw new PurapConfigurationException("Application Setting INVOICE_STATUS_INQUIRY_URL is missing.");
113 }
114
115 StringBuffer contractLanguage = new StringBuffer();
116 criteria.put(KFSPropertyConstants.ACTIVE, true);
117 List<PurchaseOrderContractLanguage> contractLanguageList = (List<PurchaseOrderContractLanguage>) (SpringContext.getBean(BusinessObjectService.class).findMatching(PurchaseOrderContractLanguage.class, criteria));
118 if (!contractLanguageList.isEmpty()) {
119 int lineNumber = 1;
120 for (PurchaseOrderContractLanguage row : contractLanguageList) {
121 if (row.getCampusCode().equals(po.getDeliveryCampusCode())) {
122 contractLanguage.append(lineNumber + " " + row.getPurchaseOrderContractLanguageDescription() + "\n");
123 ++lineNumber;
124 }
125 }
126 }
127
128 this.contractLanguage = contractLanguage.toString();
129
130 if (getPdfFileLocation() == null) {
131 LOG.debug("savePurchaseOrderPdf() ended");
132 throw new PurapConfigurationException("Application Setting PDF_DIRECTORY is missing.");
133 }
134
135 String environment = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(KFSConstants.ENVIRONMENT_KEY);
136
137 this.pdfFileName = povq != null ? "PURAP_PO_" + po.getPurapDocumentIdentifier().toString() + "_Quote" + povq.getPurchaseOrderVendorQuoteIdentifier().toString()+ "_" + environment + "_" + System.currentTimeMillis() + ".pdf" :
138 "PURAP_PO_" + po.getPurapDocumentIdentifier().toString() + "_" + environment + "_" + System.currentTimeMillis() + ".pdf";
139
140
141 this.contractManagerCampusCode = po.getContractManager().getContractManagerPerson()!= null ? po.getContractManager().getContractManagerPerson().getCampusCode() : "";
142 this.contractLanguage = contractLanguage.toString();
143
144 }
145
146
147 @Override
148 public void setPurchaseOrderFaxParameters(PurchaseOrderDocument po, PurchaseOrderVendorQuote povq) {
149
150
151 if (getPdfFileLocation() == null) {
152 LOG.debug("savePurchaseOrderPdf() ended");
153 throw new PurapConfigurationException("Application Setting PDF_DIRECTORY is missing.");
154 }
155
156
157 this.pdfFileName = povq != null ? "PURAP_PO_" + po.getPurapDocumentIdentifier().toString() + "_Quote" + povq.getPurchaseOrderVendorQuoteIdentifier().toString()+ "_" + System.currentTimeMillis() + ".pdf" :
158 "PURAP_PO_" + po.getPurapDocumentIdentifier().toString() + "_" + System.currentTimeMillis() + ".pdf";
159
160
161 this.faxDescription = povq != null ? "PO: " + po.getPurapDocumentIdentifier() + " Quote ID: " + povq.getPurchaseOrderVendorQuoteIdentifier():
162 "PO: " + po.getPurapDocumentIdentifier() + " Cntrct Mgr: " + po.getContractManager().getContractManagerCode();
163
164 String productionEnvironmentCode = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(KFSConstants.PROD_ENVIRONMENT_CODE_KEY);
165 String environmentCode = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(KFSConstants.ENVIRONMENT_KEY);
166
167 if (!StringUtils.equals(productionEnvironmentCode, environmentCode)) {
168 this.faxDescription = environmentCode + " TEST - " + this.faxDescription;
169 }
170
171 this.vendorName = povq != null ? povq.getVendorName() : po.getVendorName();
172
173
174
175
176
177 }
178
179
180
181 @Override
182 public void setPurchaseOrderPdfAndFaxParameters(PurchaseOrderDocument po) {
183 setPurchaseOrderPdfAndFaxParameters(po, null);
184 }
185
186 @Override
187 public void setPurchaseOrderPdfAndFaxParameters(PurchaseOrderDocument po, PurchaseOrderVendorQuote povq) {
188
189 this.key = povq == null ? po.getPurapDocumentIdentifier().toString() : po.getPurapDocumentIdentifier().toString() + povq.getPurchaseOrderVendorQuoteIdentifier().toString();
190 String campusCode = po.getDeliveryCampusCode().toLowerCase();
191
192
193
194
195 boolean useImage = true;
196 if (SpringContext.getBean(ParameterService.class).parameterExists(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapConstants.PDF_IMAGES_AVAILABLE_INDICATOR)) {
197 useImage = SpringContext.getBean(ParameterService.class).getParameterValueAsBoolean(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapConstants.PDF_IMAGES_AVAILABLE_INDICATOR);
198 }
199
200
201 if (useImage) {
202 if (getImageTempLocation() == null) {
203 throw new PurapConfigurationException("IMAGE_TEMP_PATH is missing");
204 }
205
206
207 if ((this.logoImage = SpringContext.getBean(ImageService.class).getLogo(key, campusCode, imageTempLocation)) == null) {
208 throw new PurapConfigurationException("logoImage is null.");
209 }
210 if ((this.directorSignatureImage = SpringContext.getBean(ImageService.class).getPurchasingDirectorImage(key, campusCode, imageTempLocation)) == null) {
211 throw new PurapConfigurationException("directorSignatureImage is null.");
212 }
213 if ((this.contractManagerSignatureImage = SpringContext.getBean(ImageService.class).getContractManagerImage(key, po.getContractManagerCode(), imageTempLocation)) == null) {
214 throw new PurapConfigurationException("contractManagerSignatureImage is null.");
215 }
216 }
217
218 Map<String, Object> criteria = new HashMap<String, Object>();
219 criteria.put(KFSPropertyConstants.CAMPUS_CODE, po.getDeliveryCampusCode());
220 this.campusParameter = ((List<CampusParameter>) SpringContext.getBean(BusinessObjectService.class).findMatching(CampusParameter.class, criteria)).get(0);
221
222 if (getStatusInquiryUrl() == null) {
223 LOG.debug("generatePurchaseOrderPdf() ended");
224 throw new PurapConfigurationException("Application Setting INVOICE_STATUS_INQUIRY_URL is missing.");
225 }
226
227 StringBuffer contractLanguage = new StringBuffer();
228 criteria.put(KFSPropertyConstants.ACTIVE, true);
229 List<PurchaseOrderContractLanguage> contractLanguageList = (List<PurchaseOrderContractLanguage>) (SpringContext.getBean(BusinessObjectService.class).findMatching(PurchaseOrderContractLanguage.class, criteria));
230 if (!contractLanguageList.isEmpty()) {
231 int lineNumber = 1;
232 for (PurchaseOrderContractLanguage row : contractLanguageList) {
233 if (row.getCampusCode().equals(po.getDeliveryCampusCode())) {
234 contractLanguage.append(lineNumber + " " + row.getPurchaseOrderContractLanguageDescription() + "\n");
235 ++lineNumber;
236 }
237 }
238 }
239
240 this.contractLanguage = contractLanguage.toString();
241
242 if (getPdfFileLocation() == null) {
243 LOG.debug("savePurchaseOrderPdf() ended");
244 throw new PurapConfigurationException("Application Setting PDF_DIRECTORY is missing.");
245 }
246
247 this.pdfFileName = povq != null ? "PURAP_PO_" + po.getPurapDocumentIdentifier().toString() + "_Quote" + povq.getPurchaseOrderVendorQuoteIdentifier().toString()+ "_" + System.currentTimeMillis() + ".pdf" :
248 "PURAP_PO_" + po.getPurapDocumentIdentifier().toString() + "_" + System.currentTimeMillis() + ".pdf";
249
250
251 this.contractManagerCampusCode = po.getContractManager().getContractManagerPerson()!= null ? po.getContractManager().getContractManagerPerson().getCampusCode() : "";
252
253
254
255 this.faxDescription = povq != null ? "PO: " + po.getPurapDocumentIdentifier() + " Quote ID: " + povq.getPurchaseOrderVendorQuoteIdentifier():
256 "PO: " + po.getPurapDocumentIdentifier() + " Cntrct Mgr: " + po.getContractManager().getContractManagerCode();
257
258 String productionEnvironmentCode = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(KFSConstants.PROD_ENVIRONMENT_CODE_KEY);
259 String environmentCode = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(KFSConstants.ENVIRONMENT_KEY);
260
261 if (!StringUtils.equals(productionEnvironmentCode, environmentCode)) {
262 this.faxDescription = environmentCode + " TEST - " + this.faxDescription;
263 }
264
265 this.vendorName = povq != null ? povq.getVendorName() : po.getVendorName();
266 this.recipientFaxNumber = povq == null ? po.getVendorFaxNumber(): povq.getVendorFaxNumber();
267
268
269 }
270
271
272
273 public String getContractManagerCampusCode() {
274 return contractManagerCampusCode;
275 }
276
277 public void setContractManagerCampusCode(String contractManagerCampusCode) {
278 this.contractManagerCampusCode = contractManagerCampusCode;
279 }
280
281 public String getPdfFileName() {
282 return pdfFileName;
283 }
284
285 public void setPdfFileName(String pdfFileName) {
286 this.pdfFileName = pdfFileName;
287 }
288
289 public String getPdfFileLocation() {
290 if (pdfFileLocation == null) {
291 pdfFileLocation = SpringContext.getBean(ParameterService.class).getParameterValueAsString(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapConstants.PDF_DIRECTORY);
292 }
293 return pdfFileLocation;
294 }
295
296 public void setPdfFileLocation(String pdfFileLocation) {
297 this.pdfFileLocation = pdfFileLocation;
298 }
299
300 public CampusParameter getCampusParameter() {
301 return campusParameter;
302 }
303
304 public void setCampusParameter(CampusParameter campusParameter) {
305 this.campusParameter = campusParameter;
306 }
307
308 public String getContractLanguage() {
309 return contractLanguage;
310 }
311
312 public void setContractLanguage(String contractLanguage) {
313 this.contractLanguage = contractLanguage;
314 }
315
316 public String getContractManagerSignatureImage() {
317 return contractManagerSignatureImage;
318 }
319
320 public void setContractManagerSignatureImage(String contractManagerSignatureImage) {
321 this.contractManagerSignatureImage = contractManagerSignatureImage;
322 }
323
324 public String getDirectorSignatureImage() {
325 return directorSignatureImage;
326 }
327
328 public void setDirectorSignatureImage(String directorSignatureImage) {
329 this.directorSignatureImage = directorSignatureImage;
330 }
331
332 public String getImageTempLocation() {
333 if (imageTempLocation == null) {
334 imageTempLocation = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(KFSConstants.TEMP_DIRECTORY_KEY) + "/";
335 }
336 return imageTempLocation;
337 }
338
339 public void setImageTempLocation(String imageTempLocation) {
340 this.imageTempLocation = imageTempLocation;
341 }
342
343 public String getKey() {
344 return key;
345 }
346
347 public void setKey(String key) {
348 this.key = key;
349 }
350
351 public String getLogoImage() {
352 return logoImage;
353 }
354
355 public void setLogoImage(String logoImage) {
356 this.logoImage = logoImage;
357 }
358
359 public String getStatusInquiryUrl() {
360 if (statusInquiryUrl == null) {
361 statusInquiryUrl = SpringContext.getBean(ParameterService.class).getParameterValueAsString(KfsParameterConstants.PURCHASING_DOCUMENT.class, PurapConstants.STATUS_INQUIRY_URL);
362 }
363 return statusInquiryUrl;
364 }
365
366 public void setStatusInquiryUrl(String statusInquiryUrl) {
367 this.statusInquiryUrl = statusInquiryUrl;
368 }
369
370 public boolean isUseImage() {
371 return useImage;
372 }
373
374 public void setUseImage(boolean useImage) {
375 this.useImage = useImage;
376 }
377
378 public String getRecipientFaxNumber() {
379 return recipientFaxNumber;
380 }
381
382 public void setRecipientFaxNumber(String recipientFaxNumber) {
383 this.recipientFaxNumber = recipientFaxNumber;
384 }
385
386 public String getVendorName() {
387 return vendorName;
388 }
389
390 public void setVendorName(String vendorName) {
391 this.vendorName = vendorName;
392 }
393
394 public String getFaxDescription() {
395 return faxDescription;
396 }
397
398 public void setFaxDescription(String faxDescription) {
399 this.faxDescription = faxDescription;
400 }
401
402
403
404
405 }