Subversion Repositories SmartDukaan

Rev

Rev 23532 | Rev 23535 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 23532 Rev 23533
Line 39... Line 39...
39
 
39
 
40
	private static float[] igstWidthsWithDiscount = new float[] { .3f, 2.6f, 0.7f, .4f, 0.7f, 0.5f, .7f, .6f, 0.6f,
40
	private static float[] igstWidthsWithDiscount = new float[] { .3f, 2.6f, 0.7f, .4f, 0.7f, 0.5f, .7f, .6f, 0.6f,
41
			0.9f };
41
			0.9f };
42
	private static float[] stateWidthsWithDiscount = new float[] { .2f, 2.1f, 0.7f, .3f, 0.6f, 0.4f, .7f, .5f, .6f, .5f,
42
	private static float[] stateWidthsWithDiscount = new float[] { .2f, 2.1f, 0.7f, .3f, 0.6f, 0.4f, .7f, .5f, .6f, .5f,
43
			.6f, .8f };
43
			.6f, .8f };
44
	
44
 
45
	private static float[] igstWidths = new float[] { .3f, 2.6f, 0.7f, .4f, 0.7f, 0.5f, .7f, .6f, 0.6f,
45
	private static float[] igstWidths = new float[] { .3f, 2.6f, 0.7f, .4f, 0.7f, .7f, .6f, 0.6f, 0.9f };
46
			0.9f };
-
 
47
	private static float[] stateWidths = new float[] { .2f, 2.1f, 0.7f, .3f, 0.6f, 0.4f, .7f, .5f, .6f, .5f,
46
	private static float[] stateWidths = new float[] { .2f, 2.1f, 0.7f, .3f, 0.6f, .7f, .5f, .6f, .5f, .6f, .8f };
48
			.6f, .8f };
-
 
49
 
47
 
50
	private static final Locale indianLocale = Locale.getDefault();
48
	private static final Locale indianLocale = Locale.getDefault();
51
 
49
 
52
	private static final Logger LOGGER = LoggerFactory.getLogger(PdfUtils.class);
50
	private static final Logger LOGGER = LoggerFactory.getLogger(PdfUtils.class);
53
 
51
 
Line 317... Line 315...
317
				paragraphTitle.setAlignment(Element.ALIGN_CENTER);
315
				paragraphTitle.setAlignment(Element.ALIGN_CENTER);
318
 
316
 
319
				PdfPCell blankCell = new PdfPCell();
317
				PdfPCell blankCell = new PdfPCell();
320
				blankCell.setBorder(Rectangle.NO_BORDER);
318
				blankCell.setBorder(Rectangle.NO_BORDER);
321
				PdfPTable tableCustomerRetailer = new PdfPTable(3);
319
				PdfPTable tableCustomerRetailer = new PdfPTable(3);
322
				tableCustomerRetailer.setWidthPercentage(90);
320
				tableCustomerRetailer.setWidthPercentage(95);
323
				tableCustomerRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
-
 
324
				PdfPCell partnerInfo = new PdfPCell();
321
				PdfPCell partnerInfo = new PdfPCell();
325
				partnerInfo.addElement(new Paragraph(StringUtils.capitalize(customer.getAddress().getName()), FONT_NORMAL));
322
				partnerInfo.addElement(new Paragraph(StringUtils.capitalize(customer.getAddress().getName()), FONT_BOLD));
326
				partnerInfo.addElement(new Paragraph(StringUtils.capitalize(customer.getAddress().getLine1())
323
				partnerInfo.addElement(new Paragraph(StringUtils.capitalize(customer.getAddress().getLine1())
-
 
324
						+ customer.getAddress().getLine2() == null ? ""
327
						+ customer.getAddress().getLine2() == null ?  "" : StringUtils.capitalize(retailer.getAddress().getLine2()) + ", "));
325
								: StringUtils.capitalize(retailer.getAddress().getLine2()) + ", "));
328
				partnerInfo.addElement(new Paragraph(
326
				partnerInfo.addElement(new Paragraph(
329
						StringUtils.capitalize(customer.getAddress().getCity()) + ", "
327
						StringUtils.capitalize(customer.getAddress().getCity()) + ", "
330
								+ StringUtils.capitalize(customer.getAddress().getState()) + "("
328
								+ StringUtils.capitalize(customer.getAddress().getState()) + "("
331
								+ customerAddressStateCode + ")" + "\n" + customer.getAddress().getPinCode(),
329
								+ customerAddressStateCode + ")" + "\n" + customer.getAddress().getPinCode(),
332
						FONT_NORMAL));
330
						FONT_BOLD));
333
				partnerInfo.addElement(new Paragraph("Mobile - " + customer.getMobileNumber(), FONT_NORMAL));
331
				partnerInfo.addElement(new Paragraph("Mobile - " + customer.getMobileNumber(), FONT_NORMAL));
334
				if (customer.getGstNumber() != null && !customer.getGstNumber().isEmpty()) {
332
				if (customer.getGstNumber() != null && !customer.getGstNumber().isEmpty()) {
335
					partnerInfo
-
 
336
							.addElement(new Paragraph("GST Number - " + customer.getGstNumber(), FONT_NORMAL));
333
					partnerInfo.addElement(new Paragraph("GST Number - " + customer.getGstNumber(), FONT_BOLD));
337
				}
334
				}
338
				partnerInfo.setBorder(Rectangle.NO_BORDER);
-
 
339
				
-
 
340
				
335
 
341
				PdfPCell sellerParty = new PdfPCell();
336
				PdfPCell sellerParty = new PdfPCell();
-
 
337
				sellerParty.addElement(new Paragraph(StringUtils.capitalize(retailer.getAddress().getName()), FONT_NORMAL));
342
				sellerParty.addElement(new Paragraph(StringUtils.capitalize(retailer.getAddress().getName()), FONT_BOLD));
338
				sellerParty.addElement(new Paragraph(StringUtils.capitalize(retailer.getAddress().getName()), FONT_NORMAL));
343
				sellerParty.addElement(new Paragraph(
339
				sellerParty.addElement(new Paragraph(
-
 
340
								(retailer.getAddress().getLine1() == null ? ""
344
						(retailer.getAddress().getLine1() == null ?  "" : StringUtils.capitalize(retailer.getAddress().getLine1()) + ", ")
341
										: StringUtils.capitalize(retailer.getAddress().getLine1()) + ", ")
-
 
342
										+ (retailer.getAddress().getLine2() == null ? ""
345
						+ (retailer.getAddress().getLine2() == null ?  "" : StringUtils.capitalize(retailer.getAddress().getLine2()) + ", ")
343
												: StringUtils.capitalize(retailer.getAddress().getLine2()) + ", ")
346
						+ StringUtils.capitalize(retailer.getAddress().getCity()) + "-"
344
										+ StringUtils.capitalize(retailer.getAddress().getCity()) + "-"
347
						+ retailer.getAddress().getPinCode() + ", " + retailer.getAddress().getState() + "("
345
										+ retailer.getAddress().getPinCode() + ", " + retailer.getAddress().getState()
348
						+ (stateGst ? customerAddressStateCode : retailerAddressStateCode) + ")", FONT_BOLD));
346
										+ "(" + (stateGst ? customerAddressStateCode : retailerAddressStateCode) + ")",
349
				sellerParty
347
								FONT_BOLD));
350
						.addElement(new Paragraph("Contact No.- " + retailer.getAddress().getPhoneNumber(), FONT_BOLD));
348
				sellerParty.addElement(new Paragraph("Contact No.- " + retailer.getAddress().getPhoneNumber(), FONT_NORMAL));
351
				sellerParty.addElement(new Paragraph("GST NO. " + retailer.getGstNumber(), FONT_BOLD));
349
				sellerParty.addElement(new Paragraph("GST NO. " + retailer.getGstNumber(), FONT_BOLD));
352
				sellerParty.setBorder(Rectangle.NO_BORDER);
-
 
353
 
350
 
354
				PdfPTable tableInvoiceDateRetailer = new PdfPTable(1);
351
				PdfPTable tableInvoiceDateRetailer = new PdfPTable(1);
355
				tableInvoiceDateRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
352
				tableInvoiceDateRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
356
 
353
 
357
				PdfPTable tableInvoiceDate = new PdfPTable(2);
354
				PdfPTable tableInvoiceDate = new PdfPTable(2);
358
				tableInvoiceDate.getDefaultCell().setBorder(Rectangle.NO_BORDER);
355
				tableInvoiceDate.getDefaultCell().setBorder(Rectangle.NO_BORDER);
-
 
356
				tableInvoiceDate.setWidthPercentage(90);
359
 
357
 
-
 
358
				PdfPCell debitNoteDetails = new PdfPCell(new Paragraph("Debit Note Details", FONT_BOLD));
-
 
359
				debitNoteDetails.setColspan(2);
-
 
360
				debitNoteDetails.setBorder(Rectangle.NO_BORDER);
-
 
361
				
360
				PdfPCell debitNoteNumberKey = new PdfPCell(new Paragraph("Debit Note No:", FONT_NORMAL));
362
				PdfPCell debitNoteNumberKey = new PdfPCell(new Paragraph("Debit Note No:", FONT_NORMAL));
361
				debitNoteNumberKey.setBorder(Rectangle.NO_BORDER);
363
				debitNoteNumberKey.setBorder(Rectangle.NO_BORDER);
362
				PdfPCell debitNoteNumberValue = new PdfPCell(new Paragraph(debitNotePdfModel.getDebitNoteNumber(), FONT_NORMAL));
364
				PdfPCell debitNoteNumberValue = new PdfPCell(new Paragraph(debitNotePdfModel.getDebitNoteNumber(), FONT_NORMAL));
363
				debitNoteNumberValue.setBorder(Rectangle.NO_BORDER);
365
				debitNoteNumberValue.setBorder(Rectangle.NO_BORDER);
364
 
366
 
365
				PdfPCell debitNoteDateKey = new PdfPCell(new Paragraph("Debit Note Dt:", FONT_NORMAL));
367
				PdfPCell debitNoteDateKey = new PdfPCell(new Paragraph("Debit Note Dt:", FONT_NORMAL));
366
				debitNoteDateKey.setBorder(Rectangle.NO_BORDER);
368
				debitNoteDateKey.setBorder(Rectangle.NO_BORDER);
367
				
369
 
-
 
370
				PdfPCell debitNoteDateValue = new PdfPCell(
368
				PdfPCell debitNoteDateValue = new PdfPCell(new Paragraph(debitNotePdfModel.getDebitNoteDate(), FONT_NORMAL));
371
						new Paragraph(debitNotePdfModel.getDebitNoteDate(), FONT_NORMAL));
369
				debitNoteDateValue.setBorder(Rectangle.NO_BORDER);
372
				debitNoteDateValue.setBorder(Rectangle.NO_BORDER);
370
 
373
 
371
				PdfPCell invoiceNumberKey = new PdfPCell(new Paragraph("For Invoice No:", FONT_NORMAL));
374
				PdfPCell invoiceNumberKey = new PdfPCell(new Paragraph("For Invoice No:", FONT_NORMAL));
372
				invoiceNumberKey.setBorder(Rectangle.NO_BORDER);
375
				invoiceNumberKey.setBorder(Rectangle.NO_BORDER);
373
				PdfPCell invoiceNumberValue = new PdfPCell(new Paragraph(pdfModel.getInvoiceNumber(), FONT_NORMAL));
376
				PdfPCell invoiceNumberValue = new PdfPCell(new Paragraph(pdfModel.getInvoiceNumber(), FONT_NORMAL));
Line 375... Line 378...
375
 
378
 
376
				PdfPCell dateKey = new PdfPCell(new Paragraph("Invoice Dt:", FONT_NORMAL));
379
				PdfPCell dateKey = new PdfPCell(new Paragraph("Invoice Dt:", FONT_NORMAL));
377
				dateKey.setBorder(Rectangle.NO_BORDER);
380
				dateKey.setBorder(Rectangle.NO_BORDER);
378
				PdfPCell dateValue = new PdfPCell(new Paragraph(pdfModel.getInvoiceDate(), FONT_NORMAL));
381
				PdfPCell dateValue = new PdfPCell(new Paragraph(pdfModel.getInvoiceDate(), FONT_NORMAL));
379
				dateValue.setBorder(Rectangle.NO_BORDER);
382
				dateValue.setBorder(Rectangle.NO_BORDER);
380
				
383
 
-
 
384
				tableInvoiceDate.addCell(debitNoteDetails);
381
				tableInvoiceDate.addCell(debitNoteNumberKey);
385
				tableInvoiceDate.addCell(debitNoteNumberKey);
382
				tableInvoiceDate.addCell(debitNoteNumberValue);
386
				tableInvoiceDate.addCell(debitNoteNumberValue);
383
				
-
 
384
				tableInvoiceDate.addCell(debitNoteDateKey);
387
				tableInvoiceDate.addCell(debitNoteDateKey);
385
				tableInvoiceDate.addCell(debitNoteDateValue);
388
				tableInvoiceDate.addCell(debitNoteDateValue);
386
 
-
 
387
				tableInvoiceDate.addCell(invoiceNumberKey);
389
				tableInvoiceDate.addCell(invoiceNumberKey);
388
				tableInvoiceDate.addCell(invoiceNumberValue);
390
				tableInvoiceDate.addCell(invoiceNumberValue);
389
 
-
 
390
				tableInvoiceDate.addCell(dateKey);
391
				tableInvoiceDate.addCell(dateKey);
391
				tableInvoiceDate.addCell(dateValue);
392
				tableInvoiceDate.addCell(dateValue);
392
				tableInvoiceDateRetailer.addCell(tableInvoiceDate);
-
 
393
				tableInvoiceDateRetailer.addCell(sellerParty);
-
 
394
 
393
 
395
				tableCustomerRetailer.addCell(partnerInfo);
394
				tableCustomerRetailer.addCell(partnerInfo);
396
				tableCustomerRetailer.addCell(blankCell);
395
				tableCustomerRetailer.addCell(tableInvoiceDate);
397
				tableCustomerRetailer.addCell(tableInvoiceDateRetailer);
396
				tableCustomerRetailer.addCell(sellerParty);
398
 
397
 
399
				PdfPTable orders = null;
398
				PdfPTable orders = null;
400
				if (stateGst) {
399
				if (stateGst) {
401
					orders = new PdfPTable(stateWidths.length);
400
					orders = new PdfPTable(stateWidths.length);
402
					orders.setWidths(stateWidths);
401
					orders.setWidths(stateWidths);
Line 425... Line 424...
425
					// 1});
424
					// 1});
426
					// total 8f
425
					// total 8f
427
				}
426
				}
428
				orders.addCell(new Paragraph("Total", FONT_BOLD));
427
				orders.addCell(new Paragraph("Total", FONT_BOLD));
429
 
428
 
430
 
-
 
431
				orders.setHeaderRows(1);
429
				orders.setHeaderRows(1);
432
 
430
 
433
				float igstTotalAmount = 0, cgstTotalAmount = 0, sgstTotalAmount = 0;
431
				float igstTotalAmount = 0, cgstTotalAmount = 0, sgstTotalAmount = 0;
434
				int index = 1;
432
				int index = 1;
435
				for (CustomOrderItem orderItem : orderItems) {
433
				for (CustomOrderItem orderItem : orderItems) {
Line 450... Line 448...
450
						orders.addCell(new Paragraph(String.format("%.2f", orderItem.getSgstAmount()), FONT_NORMAL));
448
						orders.addCell(new Paragraph(String.format("%.2f", orderItem.getSgstAmount()), FONT_NORMAL));
451
						cgstTotalAmount = cgstTotalAmount + orderItem.getCgstAmount();
449
						cgstTotalAmount = cgstTotalAmount + orderItem.getCgstAmount();
452
						sgstTotalAmount = sgstTotalAmount + orderItem.getSgstAmount();
450
						sgstTotalAmount = sgstTotalAmount + orderItem.getSgstAmount();
453
					}
451
					}
454
					orders.addCell(new Paragraph(String.format("%.0f", orderItem.getNetAmount()), FONT_NORMAL));
452
					orders.addCell(new Paragraph(String.format("%.0f", orderItem.getNetAmount()), FONT_NORMAL));
455
					// orders.addCell(new Paragraph(String.format("%.2f",
-
 
456
					// orderItem.getItemTotal()), FONT_NORMAL));
453
					LOGGER.info("IN FOR LOOP");
457
				}
454
				}
458
 
455
 
459
				document.add(paragraphTitle);
456
				document.add(paragraphTitle);
460
				document.add(Chunk.NEWLINE);
-
 
-
 
457
 
461
				document.add(Chunk.NEWLINE);
458
				document.add(Chunk.NEWLINE);
462
				document.add(tableCustomerRetailer);
459
				document.add(tableCustomerRetailer);
463
 
460
 
464
				document.add(Chunk.NEWLINE);
461
				document.add(Chunk.NEWLINE);
465
				document.add(orders);
462
				document.add(orders);
Line 494... Line 491...
494
				String amountInWords = toAmountInWords(pdfModel.getTotalAmount());
491
				String amountInWords = toAmountInWords(pdfModel.getTotalAmount());
495
				amountInWordsTable.addCell(new Paragraph(amountInWords.toString(), FONT_BOLD));
492
				amountInWordsTable.addCell(new Paragraph(amountInWords.toString(), FONT_BOLD));
496
				amountInWordsTable.addCell(new Paragraph("E & O.E", FONT_NORMAL));
493
				amountInWordsTable.addCell(new Paragraph("E & O.E", FONT_NORMAL));
497
				document.add(amountInWordsTable);
494
				document.add(amountInWordsTable);
498
 
495
 
499
/*				StringBuffer sb = new StringBuffer();
-
 
500
				List<String> tncs = pdfModel.getTncs();
-
 
501
				for (String tnc : tncs) {
-
 
502
					sb.append(tnc).append("\n");
-
 
503
				}
-
 
504
 
-
 
505
				Paragraph warningParagraph = new Paragraph(sb.toString(), FONT_NORMAL);
-
 
506
				warningParagraph.setIndentationLeft(40);
-
 
507
				document.add(Chunk.NEWLINE);
-
 
508
				document.add(warningParagraph);*/
-
 
509
				document.newPage();
496
				document.newPage();
510
			}
497
			}
511
			document.close(); // no need to close PDFwriter?
498
			document.close(); // no need to close PDFwriter?
512
		} catch (DocumentException e) {
499
		} catch (DocumentException e) {
513
			LOGGER.error("Unable to write data to pdf file : ", e);
500
			LOGGER.error("Unable to write data to pdf file : ", e);