| Line 38... |
Line 38... |
| 38 |
Document document = new Document();
|
38 |
Document document = new Document();
|
| 39 |
|
39 |
|
| 40 |
try {
|
40 |
try {
|
| 41 |
CustomCustomer customer = pdfModel.getCustomer();
|
41 |
CustomCustomer customer = pdfModel.getCustomer();
|
| 42 |
CustomRetailer retailer = pdfModel.getRetailer();
|
42 |
CustomRetailer retailer = pdfModel.getRetailer();
|
| - |
|
43 |
boolean gstWithInState = false;
|
| - |
|
44 |
String customerAddressStateCode = "", retailerAddressStateCode = "";
|
| - |
|
45 |
if(customer.getAddress().getState().equals(retailer.getAddress().getState())){
|
| - |
|
46 |
gstWithInState = true;
|
| - |
|
47 |
customerAddressStateCode = Utils.getStateCode(customer.getAddress().getState());
|
| - |
|
48 |
}else{
|
| - |
|
49 |
customerAddressStateCode = Utils.getStateCode(customer.getAddress().getState());
|
| - |
|
50 |
retailerAddressStateCode = Utils.getStateCode(retailer.getAddress().getState());
|
| - |
|
51 |
}
|
| 43 |
Set<CustomFofoOrderItem> orderItems = pdfModel.getOrderItems();
|
52 |
Set<CustomFofoOrderItem> orderItems = pdfModel.getOrderItems();
|
| 44 |
|
53 |
|
| 45 |
PdfWriter.getInstance(document,outputStream);
|
54 |
PdfWriter.getInstance(document,outputStream);
|
| 46 |
|
55 |
|
| 47 |
document.open();
|
56 |
document.open();
|
| Line 56... |
Line 65... |
| 56 |
PdfPTable tableCustomerRetailer = new PdfPTable(3);
|
65 |
PdfPTable tableCustomerRetailer = new PdfPTable(3);
|
| 57 |
tableCustomerRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
|
66 |
tableCustomerRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
|
| 58 |
PdfPCell columnCustomerInfo = new PdfPCell();
|
67 |
PdfPCell columnCustomerInfo = new PdfPCell();
|
| 59 |
columnCustomerInfo.addElement(new Paragraph(customer.getName(), FONT_NORMAL));
|
68 |
columnCustomerInfo.addElement(new Paragraph(customer.getName(), FONT_NORMAL));
|
| 60 |
columnCustomerInfo.addElement(new Paragraph(customer.getAddress().getLine1() + customer.getAddress().getLine2(), FONT_NORMAL));
|
69 |
columnCustomerInfo.addElement(new Paragraph(customer.getAddress().getLine1() + customer.getAddress().getLine2(), FONT_NORMAL));
|
| 61 |
columnCustomerInfo.addElement(new Paragraph(customer.getAddress().getCity() + ", " + customer.getAddress().getState() + "\n" + customer.getAddress().getPinCode(), FONT_NORMAL));
|
70 |
columnCustomerInfo.addElement(new Paragraph(customer.getAddress().getCity() + ", " + customer.getAddress().getState() + "(" + customerAddressStateCode + ")" + "\n" + customer.getAddress().getPinCode(), FONT_NORMAL));
|
| 62 |
columnCustomerInfo.addElement(new Paragraph(customer.getMobileNumber(), FONT_NORMAL));
|
71 |
columnCustomerInfo.addElement(new Paragraph(customer.getMobileNumber(), FONT_NORMAL));
|
| 63 |
columnCustomerInfo.setBorder(Rectangle.NO_BORDER);
|
72 |
columnCustomerInfo.setBorder(Rectangle.NO_BORDER);
|
| 64 |
PdfPCell columnRetailerInfo = new PdfPCell();
|
73 |
PdfPCell columnRetailerInfo = new PdfPCell();
|
| 65 |
//columnRetailerInfo.addElement(new Paragraph("Invoice No:"));
|
74 |
//columnRetailerInfo.addElement(new Paragraph("Invoice No:"));
|
| 66 |
columnRetailerInfo.addElement(new Paragraph(retailer.getBusinessName(), FONT_BOLD));
|
75 |
columnRetailerInfo.addElement(new Paragraph(retailer.getBusinessName(), FONT_BOLD));
|
| 67 |
// columnRetailerInfo.addElement(new Paragraph("Plot No. 485, Udyog Vihar Phase V, Gurgoan-122016", FONT_BOLD));
|
76 |
// columnRetailerInfo.addElement(new Paragraph("Plot No. 485, Udyog Vihar Phase V, Gurgoan-122016", FONT_BOLD));
|
| 68 |
columnRetailerInfo.addElement(new Paragraph(retailer.getAddress().getLine1() + ", " + retailer.getAddress().getLine2() + ", " + retailer.getAddress().getCity() + "-" + retailer.getAddress().getPinCode() + ", " + retailer.getAddress().getState(), FONT_BOLD));
|
77 |
columnRetailerInfo.addElement(new Paragraph(retailer.getAddress().getLine1() + ", " + retailer.getAddress().getLine2() + ", " + retailer.getAddress().getCity() + "-" + retailer.getAddress().getPinCode() + ", " + retailer.getAddress().getState() + "(" + retailerAddressStateCode + ")", FONT_BOLD));
|
| 69 |
columnRetailerInfo.addElement(new Paragraph("Contact No.- "+retailer.getMobileNumber(), FONT_BOLD));
|
78 |
columnRetailerInfo.addElement(new Paragraph("Contact No.- "+retailer.getMobileNumber(), FONT_BOLD));
|
| 70 |
columnRetailerInfo.addElement(new Paragraph("TIN NO. " + retailer.getTinNumber(), FONT_BOLD));
|
79 |
columnRetailerInfo.addElement(new Paragraph("TIN NO. " + retailer.getTinNumber(), FONT_BOLD));
|
| 71 |
columnRetailerInfo.setBorder(Rectangle.NO_BORDER);
|
80 |
columnRetailerInfo.setBorder(Rectangle.NO_BORDER);
|
| 72 |
PdfPTable tableInvoiceDateRetailer = new PdfPTable(1);
|
81 |
PdfPTable tableInvoiceDateRetailer = new PdfPTable(1);
|
| 73 |
tableInvoiceDateRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
|
82 |
tableInvoiceDateRetailer.getDefaultCell().setBorder(Rectangle.NO_BORDER);
|
| Line 94... |
Line 103... |
| 94 |
|
103 |
|
| 95 |
tableCustomerRetailer.addCell(columnCustomerInfo);
|
104 |
tableCustomerRetailer.addCell(columnCustomerInfo);
|
| 96 |
tableCustomerRetailer.addCell(blankCell);
|
105 |
tableCustomerRetailer.addCell(blankCell);
|
| 97 |
tableCustomerRetailer.addCell(tableInvoiceDateRetailer);
|
106 |
tableCustomerRetailer.addCell(tableInvoiceDateRetailer);
|
| 98 |
|
107 |
|
| - |
|
108 |
PdfPTable orders = null;
|
| - |
|
109 |
if(gstWithInState){
|
| - |
|
110 |
orders = new PdfPTable(9);
|
| 99 |
|
111 |
}else{
|
| 100 |
PdfPTable orders = new PdfPTable(8);
|
112 |
orders = new PdfPTable(11);
|
| - |
|
113 |
}
|
| 101 |
//PdfPCell orderDetail = new PdfPCell(new Paragraph("Order Details:"));
|
114 |
//PdfPCell orderDetail = new PdfPCell(new Paragraph("Order Details:"));
|
| 102 |
/*PdfPTable ordersTable = new PdfPTable(8);
|
115 |
/*PdfPTable ordersTable = new PdfPTable(8);
|
| 103 |
PdfPCell srNo = new PdfPCell(new Paragraph("Sr No"));
|
116 |
PdfPCell srNo = new PdfPCell(new Paragraph("Sr No"));
|
| 104 |
PdfPCell description = new PdfPCell(new Paragraph("Description"));
|
117 |
PdfPCell description = new PdfPCell(new Paragraph("Description"));
|
| 105 |
PdfPCell quantity = new PdfPCell(new Paragraph("Quantity"));
|
118 |
PdfPCell quantity = new PdfPCell(new Paragraph("Quantity"));
|
| Line 116... |
Line 129... |
| 116 |
taxRate.setBorder(Rectangle.NO_BORDER);
|
129 |
taxRate.setBorder(Rectangle.NO_BORDER);
|
| 117 |
tax.setBorder(Rectangle.NO_BORDER);
|
130 |
tax.setBorder(Rectangle.NO_BORDER);
|
| 118 |
itemTotal.setBorder(Rectangle.NO_BORDER);*/
|
131 |
itemTotal.setBorder(Rectangle.NO_BORDER);*/
|
| 119 |
orders.addCell(new Paragraph("Sr No", FONT_BOLD));
|
132 |
orders.addCell(new Paragraph("Sr No", FONT_BOLD));
|
| 120 |
orders.addCell(new Paragraph("Description", FONT_BOLD));
|
133 |
orders.addCell(new Paragraph("Description", FONT_BOLD));
|
| - |
|
134 |
orders.addCell(new Paragraph("HSN Code", FONT_BOLD));
|
| 121 |
orders.addCell(new Paragraph("Quantity", FONT_BOLD));
|
135 |
orders.addCell(new Paragraph("Quantity", FONT_BOLD));
|
| 122 |
orders.addCell(new Paragraph("Rate (Rs)", FONT_BOLD));
|
136 |
orders.addCell(new Paragraph("Rate (Rs)", FONT_BOLD));
|
| 123 |
orders.addCell(new Paragraph("Amount (Rs)", FONT_BOLD));
|
137 |
orders.addCell(new Paragraph("Amount (Rs)", FONT_BOLD));
|
| - |
|
138 |
if(gstWithInState){
|
| 124 |
orders.addCell(new Paragraph("Tax Rate%", FONT_BOLD));
|
139 |
orders.addCell(new Paragraph("IGST Rate%", FONT_BOLD));
|
| - |
|
140 |
orders.addCell(new Paragraph("IGST Amount", FONT_BOLD));
|
| - |
|
141 |
orders.setWidths(new int[]{1, 3, 1, 1, 1, 1, 1, 1, 1});
|
| - |
|
142 |
}else{
|
| 125 |
orders.addCell(new Paragraph("Tax (Rs)", FONT_BOLD));
|
143 |
orders.addCell(new Paragraph("CGST Rate%", FONT_BOLD));
|
| - |
|
144 |
orders.addCell(new Paragraph("CGST Amount", FONT_BOLD));
|
| 126 |
orders.addCell(new Paragraph("Item Total (Rs)", FONT_BOLD));
|
145 |
orders.addCell(new Paragraph("SGST Rate%", FONT_BOLD));
|
| - |
|
146 |
orders.addCell(new Paragraph("SGST Amount", FONT_BOLD));
|
| 127 |
orders.setWidths(new int[]{1, 3, 1, 1, 1, 1, 1, 1});
|
147 |
orders.setWidths(new int[]{1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1});
|
| - |
|
148 |
}
|
| - |
|
149 |
|
| - |
|
150 |
//orders.addCell(new Paragraph("Item Total (Rs)", FONT_BOLD));
|
| - |
|
151 |
|
| 128 |
orders.setHeaderRows(1);
|
152 |
orders.setHeaderRows(1);
|
| 129 |
//orders.setSkipFirstHeader(true);
|
153 |
//orders.setSkipFirstHeader(true);
|
| - |
|
154 |
|
| 130 |
int index = 1;
|
155 |
int index = 1;
|
| 131 |
for(CustomFofoOrderItem orderItem : orderItems){
|
156 |
for(CustomFofoOrderItem orderItem : orderItems){
|
| 132 |
orders.addCell(new Paragraph(String.valueOf(index++), FONT_NORMAL));
|
157 |
orders.addCell(new Paragraph(String.valueOf(index++), FONT_NORMAL));
|
| 133 |
orders.addCell(new Paragraph(orderItem.getDescription(), FONT_NORMAL));
|
158 |
orders.addCell(new Paragraph(orderItem.getDescription(), FONT_NORMAL));
|
| - |
|
159 |
orders.addCell(new Paragraph(orderItem.getHsnCode(), FONT_NORMAL));
|
| 134 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getQuantity()), FONT_NORMAL));
|
160 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getQuantity()), FONT_NORMAL));
|
| 135 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getRate()), FONT_NORMAL));
|
161 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getRate()), FONT_NORMAL));
|
| 136 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getAmount()), FONT_NORMAL));
|
162 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getAmount()), FONT_NORMAL));
|
| - |
|
163 |
float totalTaxRate = orderItem.getIgstRate() + orderItem.getSgstRate() + orderItem.getCgstRate();
|
| - |
|
164 |
float taxableAmount = pdfModel.getTotalAmount() / (1 + (totalTaxRate / 100));
|
| - |
|
165 |
if(gstWithInState){
|
| - |
|
166 |
float igstAmount = (taxableAmount * orderItem.getIgstRate()) / 100;
|
| 137 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getTaxRate()), FONT_NORMAL));
|
167 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getIgstRate()), FONT_NORMAL));
|
| - |
|
168 |
orders.addCell(new Paragraph(String.valueOf(igstAmount), FONT_NORMAL));
|
| - |
|
169 |
}else{
|
| - |
|
170 |
float cgstAmount = (taxableAmount * orderItem.getCgstRate()) / 100;
|
| - |
|
171 |
float sgstAmount = (taxableAmount * orderItem.getSgstRate()) / 100;
|
| - |
|
172 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getCgstRate()), FONT_NORMAL));
|
| - |
|
173 |
orders.addCell(new Paragraph(String.valueOf(cgstAmount), FONT_NORMAL));
|
| 138 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getTax()), FONT_NORMAL));
|
174 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getSgstRate()), FONT_NORMAL));
|
| - |
|
175 |
orders.addCell(new Paragraph(String.valueOf(sgstAmount), FONT_NORMAL));
|
| - |
|
176 |
}
|
| 139 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getItemTotal()), FONT_NORMAL));
|
177 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getItemTotal()), FONT_NORMAL));
|
| 140 |
}
|
178 |
}
|
| 141 |
//orders.addCell("1");
|
179 |
//orders.addCell("1");
|
| 142 |
//orders.addCell("Sansui X71Activ Ta2s");
|
180 |
//orders.addCell("Sansui X71Activ Ta2s");
|
| 143 |
//orders.setHeaderRows(1);
|
181 |
//orders.setHeaderRows(1);
|
| Line 152... |
Line 190... |
| 152 |
|
190 |
|
| 153 |
document.add(Chunk.NEWLINE);
|
191 |
document.add(Chunk.NEWLINE);
|
| 154 |
document.add(Chunk.NEWLINE);
|
192 |
document.add(Chunk.NEWLINE);
|
| 155 |
document.add(Chunk.NEWLINE);
|
193 |
document.add(Chunk.NEWLINE);
|
| 156 |
document.add(orders);
|
194 |
document.add(orders);
|
| - |
|
195 |
PdfPTable grandTotalTable = null;
|
| - |
|
196 |
if(gstWithInState){
|
| 157 |
PdfPTable grandTotalTable = new PdfPTable(3);
|
197 |
grandTotalTable = new PdfPTable(3);
|
| 158 |
grandTotalTable.setWidths(new int[]{8, 1, 1});
|
198 |
grandTotalTable.setWidths(new int[]{8, 1, 1});
|
| - |
|
199 |
}else{
|
| - |
|
200 |
grandTotalTable = new PdfPTable(5);
|
| - |
|
201 |
grandTotalTable.setWidths(new int[]{8, 1, 1, 1, 1});
|
| - |
|
202 |
}
|
| - |
|
203 |
|
| 159 |
/*for(int i = 0; i < 6; i++){
|
204 |
/*for(int i = 0; i < 6; i++){
|
| 160 |
grandTotalTable.addCell(new Paragraph());
|
205 |
grandTotalTable.addCell(new Paragraph());
|
| 161 |
}*/
|
206 |
}*/
|
| 162 |
//PdfPCell grandTotalCell = new PdfPCell(new Paragraph("Grand total", fontBold));
|
207 |
//PdfPCell grandTotalCell = new PdfPCell(new Paragraph("Grand total", fontBold));
|
| 163 |
//grandTotalCell.setVerticalAlignment(Element.ALIGN_RIGHT);
|
208 |
//grandTotalCell.setVerticalAlignment(Element.ALIGN_RIGHT);
|
| Line 199... |
Line 244... |
| 199 |
document.add(itemSerialNumbers);
|
244 |
document.add(itemSerialNumbers);
|
| 200 |
document.close(); // no need to close PDFwriter?
|
245 |
document.close(); // no need to close PDFwriter?
|
| 201 |
|
246 |
|
| 202 |
} catch (DocumentException e) {
|
247 |
} catch (DocumentException e) {
|
| 203 |
LOGGER.error("Unable to write data to pdf file : ", e);
|
248 |
LOGGER.error("Unable to write data to pdf file : ", e);
|
| - |
|
249 |
} catch (Exception e) {
|
| - |
|
250 |
// TODO Auto-generated catch block
|
| - |
|
251 |
e.printStackTrace();
|
| 204 |
}
|
252 |
}
|
| 205 |
}
|
253 |
}
|
| 206 |
}
|
254 |
}
|