| Line 31... |
Line 31... |
| 31 |
|
31 |
|
| 32 |
private static final Font FONT_TITLE = new Font(Font.FontFamily.HELVETICA , 18, Font.BOLD);
|
32 |
private static final Font FONT_TITLE = new Font(Font.FontFamily.HELVETICA , 18, Font.BOLD);
|
| 33 |
private static Font FONT_NORMAL = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
|
33 |
private static Font FONT_NORMAL = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
|
| 34 |
private static Font FONT_BOLD = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.BOLD);
|
34 |
private static Font FONT_BOLD = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.BOLD);
|
| 35 |
//private static Font fontTableHeader = new Font(Font.FontFamily.TIMES_ROMAN, 14, Font.BOLD);
|
35 |
//private static Font fontTableHeader = new Font(Font.FontFamily.TIMES_ROMAN, 14, Font.BOLD);
|
| 36 |
private static final String INVOICE_TITLE = "RETAILER_INVOICE";
|
36 |
private static final String INVOICE_TITLE = "INVOICE";
|
| 37 |
|
37 |
|
| 38 |
private static final Locale indianLocale = Locale.getDefault();
|
38 |
private static final Locale indianLocale = Locale.getDefault();
|
| 39 |
|
39 |
|
| 40 |
private static final Logger LOGGER = LoggerFactory.getLogger(PdfUtils.class);
|
40 |
private static final Logger LOGGER = LoggerFactory.getLogger(PdfUtils.class);
|
| 41 |
|
41 |
|
| 42 |
public static void generateAndWrite(PdfModel pdfModel, OutputStream outputStream){
|
42 |
public static void generateAndWrite(PdfModel pdfModel, OutputStream outputStream){
|
| 43 |
Document document = new Document();
|
43 |
Document document = new Document();
|
| 44 |
|
- |
|
| - |
|
44 |
document.setMargins(0, 0, 25, 0);
|
| 45 |
try {
|
45 |
try {
|
| 46 |
CustomCustomer customer = pdfModel.getCustomer();
|
46 |
CustomCustomer customer = pdfModel.getCustomer();
|
| 47 |
CustomRetailer retailer = pdfModel.getRetailer();
|
47 |
CustomRetailer retailer = pdfModel.getRetailer();
|
| 48 |
boolean gstWithInState = false;
|
48 |
boolean gstWithInState = false;
|
| 49 |
String customerAddressStateCode = "", retailerAddressStateCode = "";
|
49 |
String customerAddressStateCode = "", retailerAddressStateCode = "";
|
| Line 155... |
Line 155... |
| 155 |
//orders.addCell(new Paragraph("Item Total (Rs)", FONT_BOLD));
|
155 |
//orders.addCell(new Paragraph("Item Total (Rs)", FONT_BOLD));
|
| 156 |
|
156 |
|
| 157 |
orders.setHeaderRows(1);
|
157 |
orders.setHeaderRows(1);
|
| 158 |
//orders.setSkipFirstHeader(true);
|
158 |
//orders.setSkipFirstHeader(true);
|
| 159 |
|
159 |
|
| - |
|
160 |
float igstTotalAmount = 0, cgstTotalAmount = 0, sgstTotalAmount = 0;
|
| 160 |
int index = 1;
|
161 |
int index = 1;
|
| 161 |
for(CustomFofoOrderItem orderItem : orderItems){
|
162 |
for(CustomFofoOrderItem orderItem : orderItems){
|
| 162 |
orders.addCell(new Paragraph(String.valueOf(index++), FONT_NORMAL));
|
163 |
orders.addCell(new Paragraph(String.valueOf(index++), FONT_NORMAL));
|
| 163 |
orders.addCell(new Paragraph(orderItem.getDescription(), FONT_NORMAL));
|
164 |
orders.addCell(new Paragraph(orderItem.getDescription(), FONT_NORMAL));
|
| 164 |
orders.addCell(new Paragraph(orderItem.getHsnCode(), FONT_NORMAL));
|
165 |
orders.addCell(new Paragraph(orderItem.getHsnCode(), FONT_NORMAL));
|
| 165 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getQuantity()), FONT_NORMAL));
|
166 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getQuantity()), FONT_NORMAL));
|
| 166 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getRate()), FONT_NORMAL));
|
167 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getRate()), FONT_NORMAL));
|
| 167 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getAmount()), FONT_NORMAL));
|
168 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getAmount()), FONT_NORMAL));
|
| 168 |
if(gstWithInState){
|
169 |
if(gstWithInState){
|
| 169 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getIgstRate()), FONT_NORMAL));
|
170 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getIgstRate()), FONT_NORMAL));
|
| 170 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getIgstAmount()), FONT_NORMAL));
|
171 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getIgstAmount()), FONT_NORMAL));
|
| - |
|
172 |
igstTotalAmount = igstTotalAmount + orderItem.getIgstAmount();
|
| 171 |
}else{
|
173 |
}else{
|
| 172 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getCgstRate()), FONT_NORMAL));
|
174 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getCgstRate()), FONT_NORMAL));
|
| 173 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getCgstAmount()), FONT_NORMAL));
|
175 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getCgstAmount()), FONT_NORMAL));
|
| 174 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getSgstRate()), FONT_NORMAL));
|
176 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getSgstRate()), FONT_NORMAL));
|
| 175 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getSgstAmount()), FONT_NORMAL));
|
177 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getSgstAmount()), FONT_NORMAL));
|
| - |
|
178 |
cgstTotalAmount = cgstTotalAmount + orderItem.getCgstAmount();
|
| - |
|
179 |
sgstTotalAmount = sgstTotalAmount + orderItem.getSgstAmount();
|
| 176 |
}
|
180 |
}
|
| 177 |
orders.addCell(new Paragraph(String.valueOf(orderItem.getItemTotal()), FONT_NORMAL));
|
181 |
orders.addCell(new Paragraph(String.format("%.2f", orderItem.getItemTotal()), FONT_NORMAL));
|
| 178 |
}
|
182 |
}
|
| 179 |
//orders.addCell("1");
|
183 |
//orders.addCell("1");
|
| 180 |
//orders.addCell("Sansui X71Activ Ta2s");
|
184 |
//orders.addCell("Sansui X71Activ Ta2s");
|
| 181 |
//orders.setHeaderRows(1);
|
185 |
//orders.setHeaderRows(1);
|
| 182 |
//orders.getDefaultCell().setBorder(Rectangle.NO_BORDER);
|
186 |
//orders.getDefaultCell().setBorder(Rectangle.NO_BORDER);
|
| Line 190... |
Line 194... |
| 190 |
|
194 |
|
| 191 |
document.add(Chunk.NEWLINE);
|
195 |
document.add(Chunk.NEWLINE);
|
| 192 |
document.add(Chunk.NEWLINE);
|
196 |
document.add(Chunk.NEWLINE);
|
| 193 |
document.add(Chunk.NEWLINE);
|
197 |
document.add(Chunk.NEWLINE);
|
| 194 |
document.add(orders);
|
198 |
document.add(orders);
|
| - |
|
199 |
|
| - |
|
200 |
|
| - |
|
201 |
|
| - |
|
202 |
|
| - |
|
203 |
PdfPTable gstTotalTable = null;
|
| - |
|
204 |
if(gstWithInState){
|
| - |
|
205 |
gstTotalTable = new PdfPTable(3);
|
| - |
|
206 |
gstTotalTable.setWidths(new int[]{8, 1, 1});
|
| - |
|
207 |
}else{
|
| - |
|
208 |
gstTotalTable = new PdfPTable(5);
|
| - |
|
209 |
gstTotalTable.setWidths(new int[]{8, 1, 1, 1, 1});
|
| - |
|
210 |
}
|
| - |
|
211 |
|
| - |
|
212 |
/*for(int i = 0; i < 6; i++){
|
| - |
|
213 |
grandTotalTable.addCell(new Paragraph());
|
| - |
|
214 |
}*/
|
| - |
|
215 |
//PdfPCell grandTotalCell = new PdfPCell(new Paragraph("Grand total", fontBold));
|
| - |
|
216 |
//grandTotalCell.setVerticalAlignment(Element.ALIGN_RIGHT);
|
| - |
|
217 |
Paragraph gstTotalParagraph = new Paragraph("Gst Total", FONT_BOLD);
|
| - |
|
218 |
gstTotalParagraph.setIndentationRight(20);
|
| - |
|
219 |
gstTotalTable.addCell(gstTotalParagraph);
|
| - |
|
220 |
if(gstWithInState){
|
| - |
|
221 |
gstTotalTable.addCell(new Paragraph("IGST", FONT_BOLD));
|
| - |
|
222 |
gstTotalTable.addCell(new Paragraph(String.format("%.2f", igstTotalAmount), FONT_BOLD));
|
| - |
|
223 |
}else{
|
| - |
|
224 |
gstTotalTable.addCell(new Paragraph("CGST", FONT_BOLD));
|
| - |
|
225 |
gstTotalTable.addCell(new Paragraph(String.format("%.2f", cgstTotalAmount), FONT_BOLD));
|
| - |
|
226 |
gstTotalTable.addCell(new Paragraph("SGST", FONT_BOLD));
|
| - |
|
227 |
gstTotalTable.addCell(new Paragraph(String.format("%.2f", sgstTotalAmount), FONT_BOLD));
|
| - |
|
228 |
}
|
| - |
|
229 |
|
| - |
|
230 |
//grandTotalCell.setColspan(6);
|
| - |
|
231 |
document.add(gstTotalTable);
|
| - |
|
232 |
|
| 195 |
PdfPTable grandTotalTable = null;
|
233 |
PdfPTable grandTotalTable = null;
|
| 196 |
if(gstWithInState){
|
234 |
if(gstWithInState){
|
| 197 |
grandTotalTable = new PdfPTable(3);
|
235 |
grandTotalTable = new PdfPTable(3);
|
| 198 |
grandTotalTable.setWidths(new int[]{8, 1, 1});
|
236 |
grandTotalTable.setWidths(new int[]{8, 1, 1});
|
| 199 |
}else{
|
237 |
}else{
|
| Line 209... |
Line 247... |
| 209 |
Paragraph grandTotalParagraph = new Paragraph("Grand total", FONT_BOLD);
|
247 |
Paragraph grandTotalParagraph = new Paragraph("Grand total", FONT_BOLD);
|
| 210 |
grandTotalParagraph.setIndentationRight(20);
|
248 |
grandTotalParagraph.setIndentationRight(20);
|
| 211 |
grandTotalTable.addCell(grandTotalParagraph);
|
249 |
grandTotalTable.addCell(grandTotalParagraph);
|
| 212 |
Paragraph rsParagraph = new Paragraph("Rs.", FONT_BOLD);
|
250 |
Paragraph rsParagraph = new Paragraph("Rs.", FONT_BOLD);
|
| 213 |
grandTotalTable.addCell(rsParagraph);
|
251 |
grandTotalTable.addCell(rsParagraph);
|
| 214 |
Paragraph amountParagraph = new Paragraph(String.valueOf(pdfModel.getTotalAmount()), FONT_BOLD);
|
252 |
Paragraph amountParagraph = new Paragraph(String.format("%.2f", pdfModel.getTotalAmount()), FONT_BOLD);
|
| 215 |
grandTotalTable.addCell(amountParagraph);
|
253 |
grandTotalTable.addCell(amountParagraph);
|
| 216 |
//grandTotalCell.setColspan(6);
|
254 |
|
| 217 |
|
255 |
|
| 218 |
document.add(grandTotalTable);
|
256 |
document.add(grandTotalTable);
|
| 219 |
|
257 |
|
| 220 |
PdfPTable amountInWordsTable = new PdfPTable(3);
|
258 |
PdfPTable amountInWordsTable = new PdfPTable(3);
|
| 221 |
amountInWordsTable.setWidths(new int[]{1, 6, 3});
|
259 |
amountInWordsTable.setWidths(new int[]{1, 6, 3});
|