Subversion Repositories SmartDukaan

Rev

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

Rev 21866 Rev 21901
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
}