1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.ole.module.purap.pdf;
17
18 import com.lowagie.text.*;
19 import com.lowagie.text.pdf.BaseFont;
20 import com.lowagie.text.pdf.PdfPCell;
21 import com.lowagie.text.pdf.PdfPTable;
22 import com.lowagie.text.pdf.PdfWriter;
23 import org.apache.commons.lang.ArrayUtils;
24 import org.apache.commons.lang.StringUtils;
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27 import org.kuali.ole.module.purap.PurapConstants;
28 import org.kuali.ole.module.purap.businessobject.PurchaseOrderItem;
29 import org.kuali.ole.module.purap.businessobject.PurchaseOrderVendorStipulation;
30 import org.kuali.ole.module.purap.document.PurchaseOrderDocument;
31 import org.kuali.ole.module.purap.document.PurchaseOrderRetransmitDocument;
32 import org.kuali.ole.module.purap.exception.PurError;
33 import org.kuali.ole.module.purap.util.PurApDateFormatUtils;
34 import org.kuali.ole.select.businessobject.OleNoteType;
35 import org.kuali.ole.select.businessobject.OleNotes;
36 import org.kuali.ole.sys.OLEConstants;
37 import org.kuali.ole.sys.context.SpringContext;
38 import org.kuali.rice.core.api.util.RiceConstants;
39 import org.kuali.rice.core.api.util.type.KualiDecimal;
40 import org.kuali.rice.krad.service.BusinessObjectService;
41
42 import java.io.ByteArrayOutputStream;
43 import java.io.FileNotFoundException;
44 import java.io.FileOutputStream;
45 import java.io.IOException;
46 import java.math.BigDecimal;
47 import java.text.NumberFormat;
48 import java.text.SimpleDateFormat;
49 import java.util.*;
50 import java.util.List;
51
52
53
54
55 public class PurchaseOrderPdf extends PurapPdf {
56 private static Log LOG = LogFactory.getLog(PurchaseOrderPdf.class);
57
58
59
60
61
62 public PurchaseOrderPdf() {
63 super();
64 }
65
66
67
68
69
70
71
72
73
74 @Override
75 public void onOpenDocument(PdfWriter writer, Document document) {
76 if (LOG.isDebugEnabled()) {
77 LOG.debug("onOpenDocument() started. isRetransmit is " + isRetransmit);
78 }
79 try {
80 float[] headerWidths = {0.20f, 0.80f};
81 headerTable = new PdfPTable(headerWidths);
82 headerTable.setWidthPercentage(100);
83 headerTable.setHorizontalAlignment(Element.ALIGN_CENTER);
84 headerTable.setSplitLate(false);
85 headerTable.getDefaultCell().setBorderWidth(0);
86 headerTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
87 headerTable.getDefaultCell().setVerticalAlignment(Element.ALIGN_CENTER);
88
89 Image logo = null;
90 if (StringUtils.isNotBlank(logoImage)) {
91 LOG.info(" Logo Image in open document :" + logoImage);
92 try {
93 logo = Image.getInstance(logoImage);
94 } catch (FileNotFoundException e) {
95 LOG.info("The logo image [" + logoImage + "] is not available. Defaulting to the default image.");
96 }
97 }
98
99 if (logo == null) {
100
101 headerTable.addCell(new Phrase(new Chunk("")));
102 } else {
103 logo.scalePercent(3, 3);
104 headerTable.addCell(new Phrase(new Chunk(logo, 0, 0)));
105 }
106
107 float[] nestedHeaderWidths = {0.70f, 0.30f};
108 nestedHeaderTable = new PdfPTable(nestedHeaderWidths);
109 nestedHeaderTable.setSplitLate(false);
110 PdfPCell cell;
111
112
113 cell = new PdfPCell(new Paragraph(po.getBillingName(), ver_15_normal));
114 cell.setHorizontalAlignment(Element.ALIGN_CENTER);
115 cell.setBorderWidth(0);
116 nestedHeaderTable.addCell(cell);
117 cell = new PdfPCell(new Paragraph(" ", ver_15_normal));
118 cell.setBorderWidth(0);
119 nestedHeaderTable.addCell(cell);
120
121 if (isRetransmit) {
122 cell = new PdfPCell(new Paragraph(po.getRetransmitHeader(), ver_15_normal));
123 } else {
124 cell = new PdfPCell(new Paragraph("PURCHASE ORDER", ver_15_normal));
125 }
126 cell.setHorizontalAlignment(Element.ALIGN_CENTER);
127 cell.setBorderWidth(0);
128 nestedHeaderTable.addCell(cell);
129 Paragraph p = new Paragraph();
130 p.add(new Chunk("PO Number: ", ver_11_normal));
131 p.add(new Chunk(po.getPurapDocumentIdentifier().toString(), cour_7_normal));
132
133 cell = new PdfPCell(p);
134 cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
135 cell.setBorderWidth(0);
136 nestedHeaderTable.addCell(cell);
137 if (!po.getPurchaseOrderAutomaticIndicator()) {
138
139 p = new Paragraph();
140 p.add(new Chunk("Contract Manager: ", ver_11_normal));
141 p.add(new Chunk(po.getContractManager().getContractManagerName(), cour_7_normal));
142 cell = new PdfPCell(p);
143 cell.setColspan(2);
144 cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
145 cell.setBorderWidth(0);
146 nestedHeaderTable.addCell(cell);
147 }
148
149 cell = new PdfPCell(nestedHeaderTable);
150 cell.setHorizontalAlignment(Element.ALIGN_CENTER);
151 cell.setBorderWidth(0);
152 headerTable.addCell(cell);
153
154
155 tpl = writer.getDirectContent().createTemplate(100, 100);
156
157 helv = BaseFont.createFont("Helvetica", BaseFont.WINANSI, false);
158 } catch (Exception e) {
159 throw new ExceptionConverter(e);
160 }
161 }
162
163
164
165
166
167
168 @Override
169 public PurchaseOrderPdf getPageEvents() {
170 LOG.debug("getPageEvents() started.");
171 return new PurchaseOrderPdf();
172 }
173
174
175
176
177
178
179
180
181
182
183
184
185
186 public void generatePdf(PurchaseOrderDocument po, PurchaseOrderTransmitParameters pdfParameters, ByteArrayOutputStream byteArrayOutputStream, boolean isRetransmit, String environment, List<PurchaseOrderItem> retransmitItems) {
187 if (LOG.isDebugEnabled()) {
188 LOG.debug("generatePdf() started for po number " + po.getPurapDocumentIdentifier());
189 }
190
191 this.isRetransmit = isRetransmit;
192 String statusInquiryUrl = pdfParameters.getStatusInquiryUrl();
193 String campusName = pdfParameters.getCampusParameter().getCampus().getName();
194 String contractLanguage = pdfParameters.getContractLanguage();
195 String logoImage = pdfParameters.getLogoImage();
196 logoImage = getImageLocations(logoImage);
197 String directorSignatureImage = pdfParameters.getDirectorSignatureImage();
198 directorSignatureImage = getImageLocations(directorSignatureImage);
199 String directorName = pdfParameters.getCampusParameter().getCampusPurchasingDirectorName() != null ? pdfParameters.getCampusParameter().getCampusPurchasingDirectorName() : "";
200 String directorTitle = pdfParameters.getCampusParameter().getCampusPurchasingDirectorTitle() != null ? pdfParameters.getCampusParameter().getCampusPurchasingDirectorTitle() : "";
201 String contractManagerSignatureImage = pdfParameters.getContractManagerSignatureImage();
202 contractManagerSignatureImage = getImageLocations(contractManagerSignatureImage);
203
204 if (LOG.isInfoEnabled()) {
205 LOG.info("PDF parameters" + "isRetransmit:" + this.isRetransmit + "statusInquiryUrl:" + statusInquiryUrl
206 + "campusName:" + campusName + "contractLanguage:" + contractLanguage + "logoImage:" + logoImage
207 + "directorSignatureImage:" + directorSignatureImage + "directorName:" + directorName
208 + "directorTitle:" + directorTitle + "contractManagerSignatureImage:"
209 + contractManagerSignatureImage + "isRetransmit" + isRetransmit + "retransmitItems:"
210 + retransmitItems);
211 }
212 try {
213 Document doc = this.getDocument(9, 9, 70, 36);
214 PdfWriter writer = PdfWriter.getInstance(doc, byteArrayOutputStream);
215 this.createPdf(po, doc, writer, statusInquiryUrl, campusName, contractLanguage, logoImage, directorSignatureImage, directorName, directorTitle, contractManagerSignatureImage, isRetransmit, environment, retransmitItems);
216 } catch (DocumentException de) {
217 LOG.error("generatePdf() DocumentException: " + de.getMessage(), de);
218 throw new PurError("Document Exception when trying to save a Purchase Order PDF", de);
219 } catch (IOException i) {
220 LOG.error("generatePdf() IOException: " + i.getMessage(), i);
221 throw new PurError("IO Exception when trying to save a Purchase Order PDF", i);
222 } catch (Exception t) {
223 LOG.error("generatePdf() EXCEPTION: " + t.getMessage(), t);
224 throw new PurError("Exception when trying to save a Purchase Order PDF", t);
225 }
226 }
227
228
229
230
231
232
233
234
235
236
237 public void savePdf(PurchaseOrderDocument po, PurchaseOrderParameters pdfParameters, boolean isRetransmit, String environment) {
238 if (LOG.isDebugEnabled()) {
239 LOG.debug("savePdf() started for po number " + po.getPurapDocumentIdentifier());
240 }
241
242 PurchaseOrderTransmitParameters pdfTransmitParameters = (PurchaseOrderTransmitParameters) pdfParameters;
243
244 this.isRetransmit = isRetransmit;
245 String statusInquiryUrl = pdfTransmitParameters.getStatusInquiryUrl();
246 String campusName = pdfTransmitParameters.getCampusParameter().getCampus().getName();
247 String contractLanguage = pdfTransmitParameters.getContractLanguage();
248 String logoImage = pdfTransmitParameters.getLogoImage();
249 logoImage = getImageLocations(logoImage);
250 String directorSignatureImage = pdfTransmitParameters.getDirectorSignatureImage();
251 directorSignatureImage = getImageLocations(directorSignatureImage);
252 String directorName = pdfTransmitParameters.getCampusParameter().getCampusPurchasingDirectorName();
253 String directorTitle = pdfTransmitParameters.getCampusParameter().getCampusPurchasingDirectorTitle();
254 String contractManagerSignatureImage = pdfTransmitParameters.getContractManagerSignatureImage();
255 contractManagerSignatureImage = getImageLocations(contractManagerSignatureImage);
256 String pdfFileLocation = pdfTransmitParameters.getPdfFileLocation();
257 String pdfFileName = pdfTransmitParameters.getPdfFileName();
258
259 try {
260 Document doc = this.getDocument(9, 9, 70, 36);
261 PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(pdfFileLocation + pdfFileName));
262 this.createPdf(po, doc, writer, statusInquiryUrl, campusName, contractLanguage, logoImage, directorSignatureImage, directorName, directorTitle, contractManagerSignatureImage, isRetransmit, environment);
263 } catch (DocumentException de) {
264 LOG.error("savePdf() DocumentException: " + de.getMessage(), de);
265 throw new PurError("Document Exception when trying to save a Purchase Order PDF", de);
266 } catch (FileNotFoundException f) {
267 LOG.error("savePdf() FileNotFoundException: " + f.getMessage(), f);
268 throw new PurError("FileNotFound Exception when trying to save a Purchase Order PDF", f);
269 } catch (IOException i) {
270 LOG.error("savePdf() IOException: " + i.getMessage(), i);
271 throw new PurError("IO Exception when trying to save a Purchase Order PDF", i);
272 } catch (Exception t) {
273 LOG.error("savePdf() EXCEPTION: " + t.getMessage(), t);
274 throw new PurError("Exception when trying to save a Purchase Order PDF", t);
275 }
276 }
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297 private void createPdf(PurchaseOrderDocument po, Document document, PdfWriter writer, String statusInquiryUrl, String campusName, String contractLanguage, String logoImage, String directorSignatureImage, String directorName, String directorTitle, String contractManagerSignatureImage, boolean isRetransmit, String environment) throws DocumentException, IOException {
298 createPdf(po, document, writer, statusInquiryUrl, campusName, contractLanguage, logoImage, directorSignatureImage, directorName, directorTitle, contractManagerSignatureImage, isRetransmit, environment, null);
299 }
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321 private void createPdf(PurchaseOrderDocument po, Document document, PdfWriter writer, String statusInquiryUrl, String campusName, String contractLanguage, String logoImage, String directorSignatureImage, String directorName, String directorTitle, String contractManagerSignatureImage, boolean isRetransmit, String environment, List<PurchaseOrderItem> retransmitItems) throws DocumentException, IOException {
322 if (LOG.isInfoEnabled()) {
323 LOG.info("Inside createPdf statement" + "PO:" + po + "Document:" + document + "PdfWriter:" + writer
324 + "StatusInquiryUrl:" + statusInquiryUrl + "Campus Name:" + campusName + "Contract Language"
325 + contractLanguage + "Logo Image:" + logoImage + "Director Signature Image:"
326 + directorSignatureImage + "Director Name" + directorName + "Director Title:" + directorTitle
327 + "Contract Manager Signature Image :" + contractManagerSignatureImage + "isRetransmit"
328 + isRetransmit + "Environment" + environment + "retransmitItems" + retransmitItems);
329 }
330 if (LOG.isDebugEnabled()) {
331 LOG.debug("createPdf() started for po number " + po.getPurapDocumentIdentifier().toString());
332 }
333
334
335 this.campusName = campusName;
336 this.po = po;
337 this.logoImage = logoImage;
338 this.environment = environment;
339
340 NumberFormat numberFormat = NumberFormat.getCurrencyInstance();
341 Collection errors = new ArrayList();
342
343
344 SimpleDateFormat sdf = new SimpleDateFormat(RiceConstants.SIMPLE_DATE_FORMAT_FOR_DATE, Locale.getDefault());
345
346
347 PurchaseOrderPdf events = new PurchaseOrderPdf().getPageEvents();
348 writer.setPageEvent(this);
349
350 document.open();
351
352 PdfPCell cell;
353 Paragraph p = new Paragraph();
354
355
356 LOG.debug("createPdf() info table started.");
357 float[] infoWidths = {0.50f, 0.50f};
358 PdfPTable infoTable = new PdfPTable(infoWidths);
359
360 infoTable.setWidthPercentage(100);
361 infoTable.setHorizontalAlignment(Element.ALIGN_CENTER);
362 infoTable.setSplitLate(false);
363
364 StringBuffer vendorInfo = new StringBuffer();
365 vendorInfo.append("\n");
366 if (StringUtils.isNotBlank(po.getVendorName())) {
367 vendorInfo.append(" " + po.getVendorName() + "\n");
368 }
369
370 vendorInfo.append(" ATTN: " + po.getVendorAttentionName() + "\n");
371
372 if (StringUtils.isNotBlank(po.getVendorLine1Address())) {
373 vendorInfo.append(" " + po.getVendorLine1Address() + "\n");
374 }
375 if (StringUtils.isNotBlank(po.getVendorLine2Address())) {
376 vendorInfo.append(" " + po.getVendorLine2Address() + "\n");
377 }
378 if (StringUtils.isNotBlank(po.getVendorCityName())) {
379 vendorInfo.append(" " + po.getVendorCityName());
380 }
381 if (StringUtils.isNotBlank(po.getVendorStateCode())) {
382 vendorInfo.append(", " + po.getVendorStateCode());
383 }
384 if (StringUtils.isNotBlank(po.getVendorAddressInternationalProvinceName())) {
385 vendorInfo.append(", " + po.getVendorAddressInternationalProvinceName());
386 }
387 if (StringUtils.isNotBlank(po.getVendorPostalCode())) {
388 vendorInfo.append(" " + po.getVendorPostalCode() + "\n");
389 } else {
390 vendorInfo.append("\n");
391 }
392 if (!OLEConstants.COUNTRY_CODE_UNITED_STATES.equalsIgnoreCase(po.getVendorCountryCode()) && po.getVendorCountry() != null) {
393 vendorInfo.append(" " + po.getVendorCountry().getName() + "\n\n");
394 } else {
395 vendorInfo.append("\n\n");
396 }
397 p = new Paragraph();
398 p.add(new Chunk(" Vendor", ver_5_normal));
399 p.add(new Chunk(vendorInfo.toString(), cour_7_normal));
400 cell = new PdfPCell(p);
401 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
402 infoTable.addCell(cell);
403
404 StringBuffer shipToInfo = new StringBuffer();
405 shipToInfo.append("\n");
406
407 if (po.getAddressToVendorIndicator()) {
408 shipToInfo.append(" " + po.getReceivingName() + "\n");
409 shipToInfo.append(" " + po.getReceivingLine1Address() + "\n");
410 if (StringUtils.isNotBlank(po.getReceivingLine2Address())) {
411 shipToInfo.append(" " + po.getReceivingLine2Address() + "\n");
412 }
413 shipToInfo.append(" " + po.getReceivingCityName() + ", " + po.getReceivingStateCode() + " " + po.getReceivingPostalCode() + "\n");
414 if (StringUtils.isNotBlank(po.getReceivingCountryCode()) && !OLEConstants.COUNTRY_CODE_UNITED_STATES.equalsIgnoreCase(po.getReceivingCountryCode())) {
415 shipToInfo.append(" " + po.getReceivingCountryName() + "\n");
416 }
417 } else {
418 shipToInfo.append(" " + po.getDeliveryToName() + "\n");
419
420 String deliveryBuildingName = po.getDeliveryBuildingName() + " ";
421 if (po.isDeliveryBuildingOtherIndicator()) {
422 deliveryBuildingName = "";
423 }
424 shipToInfo.append(" " + deliveryBuildingName + "Room #" + po.getDeliveryBuildingRoomNumber() + "\n");
425 shipToInfo.append(" " + po.getDeliveryBuildingLine1Address() + "\n");
426 if (StringUtils.isNotBlank(po.getDeliveryBuildingLine2Address())) {
427 shipToInfo.append(" " + po.getDeliveryBuildingLine2Address() + "\n");
428 }
429 shipToInfo.append(" " + po.getDeliveryCityName() + ", " + po.getDeliveryStateCode() + " " + po.getDeliveryPostalCode() + "\n");
430 if (StringUtils.isNotBlank(po.getDeliveryCountryCode()) && !OLEConstants.COUNTRY_CODE_UNITED_STATES.equalsIgnoreCase(po.getDeliveryCountryCode())) {
431 shipToInfo.append(" " + po.getDeliveryCountryName() + "\n");
432 }
433 }
434
435 shipToInfo.append(" " + po.getDeliveryToPhoneNumber());
436
437
438
439
440
441
442
443
444 p = new Paragraph();
445 p.add(new Chunk(" Shipping Address", ver_5_normal));
446 p.add(new Chunk(shipToInfo.toString(), cour_7_normal));
447 cell = new PdfPCell(p);
448 infoTable.addCell(cell);
449
450 p = new Paragraph();
451 p.add(new Chunk(" Shipping Terms\n", ver_5_normal));
452 if (po.getVendorShippingPaymentTerms() != null && po.getVendorShippingTitle() != null) {
453 p.add(new Chunk(" " + po.getVendorShippingPaymentTerms().getVendorShippingPaymentTermsDescription(), cour_7_normal));
454 p.add(new Chunk(" - " + po.getVendorShippingTitle().getVendorShippingTitleDescription(), cour_7_normal));
455 } else if (po.getVendorShippingPaymentTerms() != null && po.getVendorShippingTitle() == null) {
456 p.add(new Chunk(" " + po.getVendorShippingPaymentTerms().getVendorShippingPaymentTermsDescription(), cour_7_normal));
457 } else if (po.getVendorShippingTitle() != null && po.getVendorShippingPaymentTerms() == null) {
458 p.add(new Chunk(" " + po.getVendorShippingTitle().getVendorShippingTitleDescription(), cour_7_normal));
459 }
460 cell = new PdfPCell(p);
461 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
462 infoTable.addCell(cell);
463
464 p = new Paragraph();
465 p.add(new Chunk(" Payment Terms\n", ver_5_normal));
466 if (po.getVendorPaymentTerms() != null) {
467 p.add(new Chunk(" " + po.getVendorPaymentTerms().getVendorPaymentTermsDescription(), cour_7_normal));
468 }
469 cell = new PdfPCell(p);
470 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
471 infoTable.addCell(cell);
472
473 p = new Paragraph();
474 p.add(new Chunk(" Delivery Required By\n", ver_5_normal));
475
476 if (po.getDeliveryRequiredDate() != null && po.getDeliveryRequiredDateReason() != null) {
477 p.add(new Chunk(" " + sdf.format(po.getDeliveryRequiredDate()), cour_7_normal));
478 p.add(new Chunk(" - " + po.getDeliveryRequiredDateReason().getDeliveryRequiredDateReasonDescription(), cour_7_normal));
479 } else if (po.getDeliveryRequiredDate() != null && po.getDeliveryRequiredDateReason() == null) {
480 p.add(new Chunk(" " + sdf.format(po.getDeliveryRequiredDate()), cour_7_normal));
481 } else if (po.getDeliveryRequiredDate() == null && po.getDeliveryRequiredDateReason() != null) {
482 p.add(new Chunk(" " + po.getDeliveryRequiredDateReason().getDeliveryRequiredDateReasonDescription(), cour_7_normal));
483 }
484 cell = new PdfPCell(p);
485 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
486 infoTable.addCell(cell);
487
488 p = new Paragraph();
489 p.add(new Chunk(" ", ver_5_normal));
490 cell = new PdfPCell(p);
491 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
492 infoTable.addCell(cell);
493
494
495 float[] nestedInfoWidths = {0.50f, 0.50f};
496 PdfPTable nestedInfoTable = new PdfPTable(nestedInfoWidths);
497 nestedInfoTable.setSplitLate(false);
498
499 p = new Paragraph();
500 p.add(new Chunk(" Order Date\n", ver_5_normal));
501
502 String orderDate = "";
503 if (po.getPurchaseOrderInitialOpenTimestamp() != null) {
504 orderDate = sdf.format(po.getPurchaseOrderInitialOpenTimestamp());
505 } else {
506
507 orderDate = sdf.format(getDateTimeService().getCurrentSqlDate());
508 }
509
510 p.add(new Chunk(" " + orderDate, cour_7_normal));
511 cell = new PdfPCell(p);
512 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
513 nestedInfoTable.addCell(cell);
514
515 p = new Paragraph();
516 p.add(new Chunk(" Customer #\n", ver_5_normal));
517 if (po.getVendorCustomerNumber() != null) {
518 p.add(new Chunk(" " + po.getVendorCustomerNumber(), cour_7_normal));
519 }
520 cell = new PdfPCell(p);
521 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
522 nestedInfoTable.addCell(cell);
523
524 p = new Paragraph();
525 p.add(new Chunk(" Delivery Instructions\n", ver_5_normal));
526 if (StringUtils.isNotBlank(po.getDeliveryInstructionText())) {
527 p.add(new Chunk(" " + po.getDeliveryInstructionText(), cour_7_normal));
528 }
529 cell = new PdfPCell(p);
530 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
531 nestedInfoTable.addCell(cell);
532
533 p = new Paragraph();
534 p.add(new Chunk(" Contract ID\n", ver_5_normal));
535 if (po.getVendorContract() != null) {
536 p.add(new Chunk(po.getVendorContract().getVendorContractName(), cour_7_normal));
537 }
538 cell = new PdfPCell(p);
539 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
540 nestedInfoTable.addCell(cell);
541
542
543 cell = new PdfPCell(nestedInfoTable);
544 cell.setHorizontalAlignment(Element.ALIGN_CENTER);
545 infoTable.addCell(cell);
546
547 StringBuffer billToInfo = new StringBuffer();
548 billToInfo.append("\n");
549 billToInfo.append(" " + po.getBillingName() + "\n");
550 billToInfo.append(" " + po.getBillingLine1Address() + "\n");
551 if (po.getBillingLine2Address() != null) {
552 billToInfo.append(" " + po.getBillingLine2Address() + "\n");
553 }
554 billToInfo.append(" " + po.getBillingCityName() + ", " + po.getBillingStateCode() + " " + po.getBillingPostalCode() + "\n");
555 if (po.getBillingPhoneNumber() != null) {
556 billToInfo.append(" " + po.getBillingPhoneNumber());
557 }
558 if (po.getBillingEmailAddress() != null) {
559 billToInfo.append("\n " + po.getBillingEmailAddress());
560 }
561 p = new Paragraph();
562 p.add(new Chunk(" Billing Address", ver_5_normal));
563 p.add(new Chunk(" " + billToInfo.toString(), cour_7_normal));
564 p.add(new Chunk("\n Invoice status inquiry: " + statusInquiryUrl, ver_6_normal));
565 cell = new PdfPCell(p);
566 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
567 infoTable.addCell(cell);
568
569 document.add(infoTable);
570
571 PdfPTable notesStipulationsTable = new PdfPTable(1);
572 notesStipulationsTable.setWidthPercentage(100);
573 notesStipulationsTable.setSplitLate(false);
574
575 p = new Paragraph();
576 p.add(new Chunk(" Vendor Note(s)\n", ver_5_normal));
577 if (po.getVendorNoteText() != null) {
578 p.add(new Chunk(" " + po.getVendorNoteText() + "\n", cour_7_normal));
579 }
580
581 PdfPCell tableCell = new PdfPCell(p);
582 tableCell.setHorizontalAlignment(Element.ALIGN_LEFT);
583 tableCell.setVerticalAlignment(Element.ALIGN_TOP);
584
585 notesStipulationsTable.addCell(tableCell);
586
587 p = new Paragraph();
588 p.add(new Chunk(" Vendor Stipulations and Information\n", ver_5_normal));
589 if ((po.getPurchaseOrderBeginDate() != null) && (po.getPurchaseOrderEndDate() != null)) {
590 p.add(new Chunk(" Order in effect from " + sdf.format(po.getPurchaseOrderBeginDate()) + " to " + sdf.format(po.getPurchaseOrderEndDate()) + ".\n", cour_7_normal));
591
592 }
593 Collection<PurchaseOrderVendorStipulation> vendorStipulationsList = po.getPurchaseOrderVendorStipulations();
594 if (vendorStipulationsList.size() > 0) {
595 StringBuffer vendorStipulations = new StringBuffer();
596 for (PurchaseOrderVendorStipulation povs : vendorStipulationsList) {
597 vendorStipulations.append(" " + povs.getVendorStipulationDescription() + "\n");
598 }
599 p.add(new Chunk(" " + vendorStipulations.toString(), cour_7_normal));
600 }
601
602 tableCell = new PdfPCell(p);
603 tableCell.setHorizontalAlignment(Element.ALIGN_LEFT);
604 tableCell.setVerticalAlignment(Element.ALIGN_TOP);
605 notesStipulationsTable.addCell(tableCell);
606
607 document.add(notesStipulationsTable);
608
609
610 LOG.debug("createPdf() items table started.");
611
612 float[] itemsWidths = {0.07f, 0.1f, 0.07f, 0.25f, 0.25f, 0.10f, 0.10f};
613
614 if (!po.isUseTaxIndicator()) {
615 itemsWidths = ArrayUtils.add(itemsWidths, 0.14f);
616 itemsWidths = ArrayUtils.add(itemsWidths, 0.15f);
617 }
618
619 PdfPTable itemsTable = new PdfPTable(itemsWidths.length);
620
621
622
623
624 itemsTable.setWidthPercentage(100);
625 itemsTable.setWidths(itemsWidths);
626 itemsTable.setSplitLate(false);
627
628 tableCell = new PdfPCell(new Paragraph("Item\nNo.", ver_5_normal));
629 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
630 itemsTable.addCell(tableCell);
631 tableCell = new PdfPCell(new Paragraph("Quantity", ver_5_normal));
632 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
633 itemsTable.addCell(tableCell);
634 tableCell = new PdfPCell(new Paragraph("UOM", ver_5_normal));
635 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
636 itemsTable.addCell(tableCell);
637 tableCell = new PdfPCell(new Paragraph("Description", ver_5_normal));
638 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
639 itemsTable.addCell(tableCell);
640 tableCell = new PdfPCell(new Paragraph("Special Instructions", ver_5_normal));
641 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
642 itemsTable.addCell(tableCell);
643 tableCell = new PdfPCell(new Paragraph("Unit Cost", ver_5_normal));
644 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
645 itemsTable.addCell(tableCell);
646 tableCell = new PdfPCell(new Paragraph("Extended Cost", ver_5_normal));
647 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
648 itemsTable.addCell(tableCell);
649
650 if (!po.isUseTaxIndicator()) {
651 tableCell = new PdfPCell(new Paragraph("Tax Amount", ver_5_normal));
652 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
653 itemsTable.addCell(tableCell);
654
655 tableCell = new PdfPCell(new Paragraph("Total Amount", ver_5_normal));
656 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
657 itemsTable.addCell(tableCell);
658 }
659
660 Collection<PurchaseOrderItem> itemsList = new ArrayList();
661 if (isRetransmit) {
662 itemsList = retransmitItems;
663 } else {
664 itemsList = po.getItems();
665 }
666 for (PurchaseOrderItem poi : itemsList) {
667 if ((poi.getItemType() != null) && (poi.getItemType().isLineItemIndicator() || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_SHIP_AND_HAND_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_FREIGHT_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_ORDER_DISCOUNT_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_TRADE_IN_CODE)) && lineItemDisplaysOnPdf(poi)) {
668 boolean noteFlag = true;
669 String description = (poi.getItemCatalogNumber() != null) ? poi.getItemCatalogNumber().trim() + " - " : "";
670 String vendorNotes = "";
671 if (poi.getNotes().size() > 0) {
672 for(OleNotes oleNotes : poi.getNotes()){
673 String note = getNoteType(oleNotes.getNoteTypeId());
674 if ((note != null && note.equals(OLEConstants.VENDOR_TYPE)) && noteFlag) {
675 vendorNotes = oleNotes.getNote();
676 noteFlag = false;
677 }
678 }
679 }
680
681 description = description + ((poi.getItemDescription() != null) ? poi.getItemDescription().trim() : "");
682 if (StringUtils.isNotBlank(description)) {
683 if (poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_ORDER_DISCOUNT_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_TRADE_IN_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_FREIGHT_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_SHIP_AND_HAND_CODE)) {
684
685 description = poi.getItemType().getItemTypeDescription() + " - " + description;
686 }
687 }
688
689
690 if (poi.getItemType().isLineItemIndicator()) {
691 tableCell = new PdfPCell(new Paragraph(poi.getItemLineNumber().toString(), cour_7_normal));
692 } else {
693 tableCell = new PdfPCell(new Paragraph(" ", cour_7_normal));
694 }
695 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
696 itemsTable.addCell(tableCell);
697 String quantity = (poi.getItemQuantity() != null) ? poi.getItemQuantity().toString() : " ";
698 tableCell = new PdfPCell(new Paragraph(quantity, cour_7_normal));
699 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
700 tableCell.setNoWrap(true);
701 itemsTable.addCell(tableCell);
702 tableCell = new PdfPCell(new Paragraph(poi.getItemUnitOfMeasureCode(), cour_7_normal));
703 tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
704 itemsTable.addCell(tableCell);
705
706 tableCell = new PdfPCell(new Paragraph(" " + description, cour_7_normal));
707 tableCell.setHorizontalAlignment(Element.ALIGN_LEFT);
708 itemsTable.addCell(tableCell);
709 tableCell = new PdfPCell(new Paragraph(" " + vendorNotes, cour_7_normal));
710 tableCell.setHorizontalAlignment(Element.ALIGN_LEFT);
711 itemsTable.addCell(tableCell);
712 String unitPrice = poi.getItemUnitPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString();
713 tableCell = new PdfPCell(new Paragraph(unitPrice + " ", cour_7_normal));
714 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
715 tableCell.setNoWrap(true);
716 itemsTable.addCell(tableCell);
717 tableCell = new PdfPCell(new Paragraph(numberFormat.format(poi.getExtendedPrice()) + " ", cour_7_normal));
718 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
719 tableCell.setNoWrap(true);
720 itemsTable.addCell(tableCell);
721
722 if (!po.isUseTaxIndicator()) {
723 KualiDecimal taxAmount = poi.getItemTaxAmount();
724 taxAmount = taxAmount == null ? KualiDecimal.ZERO : taxAmount;
725 tableCell = new PdfPCell(new Paragraph(numberFormat.format(taxAmount) + " ", cour_7_normal));
726 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
727 tableCell.setNoWrap(true);
728 itemsTable.addCell(tableCell);
729
730 tableCell = new PdfPCell(new Paragraph(numberFormat.format(poi.getTotalAmount()) + " ", cour_7_normal));
731 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
732 tableCell.setNoWrap(true);
733 itemsTable.addCell(tableCell);
734 }
735
736 }
737 }
738
739 itemsTable.addCell(" ");
740 itemsTable.addCell(" ");
741 itemsTable.addCell(" ");
742 itemsTable.addCell(" ");
743 itemsTable.addCell(" ");
744 itemsTable.addCell(" ");
745
746 if (!po.isUseTaxIndicator()) {
747 itemsTable.addCell(" ");
748 itemsTable.addCell(" ");
749 }
750
751
752 if (!po.isUseTaxIndicator()) {
753
754
755 itemsTable.addCell(" ");
756 itemsTable.addCell(" ");
757 itemsTable.addCell(" ");
758 itemsTable.addCell(" ");
759 itemsTable.addCell(" ");
760
761 tableCell = new PdfPCell(new Paragraph("Total Prior to Tax: ", ver_10_normal));
762 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
763 itemsTable.addCell(tableCell);
764 itemsTable.addCell(" ");
765 KualiDecimal totalDollarAmount = new KualiDecimal(BigDecimal.ZERO);
766 if (po instanceof PurchaseOrderRetransmitDocument) {
767 totalDollarAmount = ((PurchaseOrderRetransmitDocument) po).getTotalPreTaxDollarAmountForRetransmit();
768 } else {
769 totalDollarAmount = po.getTotalPreTaxDollarAmount();
770 }
771 tableCell = new PdfPCell(new Paragraph(numberFormat.format(totalDollarAmount) + " ", cour_7_normal));
772 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
773 tableCell.setNoWrap(true);
774 itemsTable.addCell(tableCell);
775
776
777 itemsTable.addCell(" ");
778 itemsTable.addCell(" ");
779 itemsTable.addCell(" ");
780 itemsTable.addCell(" ");
781 itemsTable.addCell(" ");
782
783 tableCell = new PdfPCell(new Paragraph("Total Tax: ", ver_10_normal));
784 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
785 itemsTable.addCell(tableCell);
786 itemsTable.addCell(" ");
787 totalDollarAmount = new KualiDecimal(BigDecimal.ZERO);
788 if (po instanceof PurchaseOrderRetransmitDocument) {
789 totalDollarAmount = ((PurchaseOrderRetransmitDocument) po).getTotalTaxDollarAmountForRetransmit();
790 } else {
791 totalDollarAmount = po.getTotalTaxAmount();
792 }
793 tableCell = new PdfPCell(new Paragraph(numberFormat.format(totalDollarAmount) + " ", cour_7_normal));
794 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
795 tableCell.setNoWrap(true);
796 itemsTable.addCell(tableCell);
797
798 }
799
800
801 itemsTable.addCell(" ");
802 itemsTable.addCell(" ");
803 itemsTable.addCell(" ");
804 itemsTable.addCell(" ");
805 itemsTable.addCell(" ");
806
807 if (!po.isUseTaxIndicator()) {
808 itemsTable.addCell(" ");
809 itemsTable.addCell(" ");
810 }
811
812 tableCell = new PdfPCell(new Paragraph("Total order amount: ", ver_10_normal));
813 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
814 itemsTable.addCell(tableCell);
815 itemsTable.addCell(" ");
816 KualiDecimal totalDollarAmount = new KualiDecimal(BigDecimal.ZERO);
817 if (po instanceof PurchaseOrderRetransmitDocument) {
818 totalDollarAmount = ((PurchaseOrderRetransmitDocument) po).getTotalDollarAmountForRetransmit();
819 } else {
820 totalDollarAmount = po.getTotalDollarAmount();
821 }
822 tableCell = new PdfPCell(new Paragraph(numberFormat.format(totalDollarAmount) + " ", cour_7_normal));
823 tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
824 tableCell.setNoWrap(true);
825 itemsTable.addCell(tableCell);
826
827 itemsTable.addCell(" ");
828 itemsTable.addCell(" ");
829 itemsTable.addCell(" ");
830 itemsTable.addCell(" ");
831 itemsTable.addCell(" ");
832 itemsTable.addCell(" ");
833
834 if (!po.isUseTaxIndicator()) {
835 itemsTable.addCell(" ");
836 itemsTable.addCell(" ");
837 }
838
839 document.add(itemsTable);
840
841
842 LOG.debug("createPdf() contract language started.");
843 document.add(new Paragraph(contractLanguage, ver_6_normal));
844 document.add(new Paragraph("\n", ver_6_normal));
845
846
847 LOG.debug("createPdf() signatures table started.");
848 float[] signaturesWidths = {0.30f, 0.70f};
849 PdfPTable signaturesTable = new PdfPTable(signaturesWidths);
850 signaturesTable.setWidthPercentage(100);
851 signaturesTable.setHorizontalAlignment(Element.ALIGN_CENTER);
852 signaturesTable.setSplitLate(false);
853
854
855 if (po.getPurchaseOrderAutomaticIndicator()) {
856
857 cell = new PdfPCell(new Paragraph(" ", cour_7_normal));
858 cell.setBorderWidth(0);
859 signaturesTable.addCell(cell);
860
861
862 if (StringUtils.isBlank(po.getInstitutionContactName()) || StringUtils.isBlank(po.getInstitutionContactPhoneNumber()) || StringUtils.isBlank(po.getInstitutionContactEmailAddress())) {
863
864
865 p = new Paragraph("For more information contact: " + po.getRequestorPersonName() + " " + po.getRequestorPersonPhoneNumber() + " " + po.getRequestorPersonEmailAddress(), cour_7_normal);
866 } else {
867
868
869 p = new Paragraph("For more information contact: " + po.getInstitutionContactName() + " " + po.getInstitutionContactPhoneNumber() + " " + po.getInstitutionContactEmailAddress(), cour_7_normal);
870 }
871 cell = new PdfPCell(p);
872 cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
873 cell.setVerticalAlignment(Element.ALIGN_CENTER);
874 cell.setBorderWidth(0);
875 signaturesTable.addCell(cell);
876
877 Image directorSignature = null;
878 if (StringUtils.isNotBlank(directorSignatureImage)) {
879 try {
880 directorSignature = Image.getInstance(directorSignatureImage);
881 } catch (FileNotFoundException e) {
882 LOG.info("The director signature image [" + directorSignatureImage + "] is not available. Defaulting to the default image.");
883 }
884 }
885
886 if (directorSignature == null) {
887
888 cell = new PdfPCell();
889 } else {
890 directorSignature.scalePercent(30, 30);
891 cell = new PdfPCell(directorSignature, false);
892 }
893
894 cell.setHorizontalAlignment(Element.ALIGN_CENTER);
895 cell.setVerticalAlignment(Element.ALIGN_BOTTOM);
896 cell.setBorderWidth(0);
897 signaturesTable.addCell(cell);
898
899
900 cell = new PdfPCell(new Paragraph(" ", cour_7_normal));
901 cell.setBorderWidth(0);
902 signaturesTable.addCell(cell);
903 }
904
905
906 p = new Paragraph();
907 if (LOG.isDebugEnabled()) {
908 LOG.debug("createPdf() directorName parameter: " + directorName);
909 }
910 if (po.getPurchaseOrderAutomaticIndicator()) {
911 p.add(new Chunk(directorName, ver_6_normal));
912 } else {
913 p.add(new Chunk(directorName, ver_10_normal));
914 }
915 p.add(new Chunk("\n" + directorTitle, ver_4_normal));
916 cell = new PdfPCell(p);
917 cell.setHorizontalAlignment(Element.ALIGN_CENTER);
918 cell.setVerticalAlignment(Element.ALIGN_TOP);
919 cell.setBorderWidth(0);
920 signaturesTable.addCell(cell);
921
922
923 if (!po.getPurchaseOrderAutomaticIndicator()) {
924
925 Image contractManagerSignature = null;
926 if (StringUtils.isNotBlank(contractManagerSignatureImage)) {
927 try {
928 contractManagerSignature = Image.getInstance(contractManagerSignatureImage);
929 } catch (FileNotFoundException e) {
930 LOG.info("The contract manager image [" + contractManagerSignatureImage + "] is not available. Defaulting to the default image.");
931 }
932 }
933
934 if (contractManagerSignature == null) {
935
936 cell = new PdfPCell();
937 } else {
938 contractManagerSignature.scalePercent(15, 15);
939 cell = new PdfPCell(contractManagerSignature, false);
940 }
941 cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
942 cell.setVerticalAlignment(Element.ALIGN_BOTTOM);
943 cell.setBorderWidth(0);
944 signaturesTable.addCell(cell);
945
946
947 cell = new PdfPCell(new Paragraph(" ", ver_10_normal));
948 cell.setBorderWidth(0);
949 signaturesTable.addCell(cell);
950
951 cell = new PdfPCell(new Paragraph(po.getContractManager().getContractManagerName() + " " + po.getContractManager().getContractManagerPhoneNumber(), cour_7_normal));
952 cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
953 cell.setVerticalAlignment(Element.ALIGN_TOP);
954 cell.setBorderWidth(0);
955 signaturesTable.addCell(cell);
956 } else {
957 cell = new PdfPCell(new Paragraph(" ", ver_10_normal));
958 cell.setBorderWidth(0);
959 signaturesTable.addCell(cell);
960 }
961 document.add(signaturesTable);
962
963 document.close();
964 LOG.debug("createPdf()pdf document closed.");
965 }
966
967
968
969
970
971
972
973 private boolean lineItemDisplaysOnPdf(PurchaseOrderItem poi) {
974 LOG.debug("lineItemDisplaysOnPdf() started");
975
976
977 if ((poi.getItemType() != null) && (poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_SHIP_AND_HAND_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_FREIGHT_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_ORDER_DISCOUNT_CODE) || poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_TRADE_IN_CODE))) {
978
979
980
981 if ((poi.getItemUnitPrice() != null) && ((poi.getItemUnitPrice().compareTo(zero.bigDecimalValue()) == 1) || (poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_ORDER_DISCOUNT_CODE)) || (poi.getItemType().getItemTypeCode().equals(PurapConstants.ItemTypeCodes.ITEM_TYPE_TRADE_IN_CODE)))) {
982 if (LOG.isDebugEnabled()) {
983 LOG.debug("lineItemDisplaysOnPdf() Item type is " + poi.getItemType().getItemTypeCode() + ". Unit price is " + poi.getItemUnitPrice() + ". Display on pdf.");
984 }
985 return true;
986 }
987 if (LOG.isDebugEnabled()) {
988 LOG.debug("lineItemDisplaysOnPdf() Item type is " + poi.getItemType().getItemTypeCode() + ". Unit price is " + poi.getItemUnitPrice() + ". Don't display on pdf.");
989 }
990 return false;
991 } else if ((poi.getItemType() != null) && poi.getItemType().isLineItemIndicator()) {
992 if (poi.getItemQuantity() == null && poi.getItemUnitPrice() == null) {
993 if (LOG.isDebugEnabled()) {
994 LOG.debug("lineItemDisplaysOnPdf() Item type is " + poi.getItemType().getItemTypeCode() + " OrderQuantity and unit price are both null. Display on pdf.");
995 }
996 return true;
997 }
998 if ((poi.getItemType().isAmountBasedGeneralLedgerIndicator() && ((poi.getItemUnitPrice() != null) && (poi.getItemUnitPrice().compareTo(zero.bigDecimalValue()) >= 0))) || (((poi.getItemType().isQuantityBasedGeneralLedgerIndicator()) && (poi.getItemQuantity().isGreaterThan(zero))) && (poi.getItemUnitPrice() != null))) {
999 if (LOG.isDebugEnabled()) {
1000 LOG.debug("lineItemDisplaysOnPdf() Item type is " + poi.getItemType().getItemTypeCode() + " OrderQuantity is " + poi.getItemQuantity() + ". Unit price is " + poi.getItemUnitPrice() + ". Display on pdf.");
1001 }
1002 return true;
1003 } else {
1004 if (LOG.isDebugEnabled()) {
1005 LOG.debug("lineItemDisplaysOnPdf() Item type is " + poi.getItemType().getItemTypeCode() + " and item order quantity is " + poi.getItemQuantity() + " and item unit price is " + poi.getItemUnitPrice() + ". Don't display on pdf.");
1006 }
1007 }
1008 }
1009 return false;
1010 }
1011
1012
1013 public String getImageLocations(String existingLocation) {
1014 LOG.info("In Get Image Location");
1015 String filesPathAndName = getClass().getClassLoader().getResource("/").getPath();
1016 filesPathAndName = filesPathAndName.replace("WEB-INF/classes/", "static/images/");
1017 try {
1018 String[] imageNameList = existingLocation.split("/");
1019 LOG.info("File Name" + imageNameList[(imageNameList.length - 1)]);
1020 filesPathAndName = filesPathAndName + (imageNameList[(imageNameList.length - 1)]);
1021 } catch (Exception e) {
1022 LOG.info("Exception when getting the Image Location" + e.getMessage());
1023 }
1024 return filesPathAndName;
1025 }
1026
1027 public String getNoteType(Integer noteTypeId) {
1028 Map criteriaMap = new HashMap();
1029 criteriaMap.put(OLEConstants.NOTE_ID, noteTypeId);
1030 OleNoteType oleNoteType = SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(OleNoteType.class, criteriaMap);
1031 if (oleNoteType != null) {
1032 return oleNoteType.getNoteType();
1033 }
1034 return "";
1035 }
1036
1037 }