Subversion Repositories SmartDukaan

Rev

Rev 13146 | Rev 13228 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1146 chandransh 1
package in.shop2020.hotspot.dashbaord.client.inbox;
2
 
3
import in.shop2020.hotspot.dashbaord.client.event.AddJacketNumberEvent;
2843 chandransh 4
import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;
1146 chandransh 5
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
6
 
5411 rajveer 7
import java.util.ArrayList;
13146 manish.sha 8
import java.util.HashMap;
5411 rajveer 9
import java.util.List;
5110 mandeep.dh 10
import java.util.Map;
11
 
1146 chandransh 12
import org.enunes.gwt.mvp.client.EventBus;
13
 
14
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickHandler;
13146 manish.sha 16
import com.google.gwt.event.dom.client.KeyPressEvent;
17
import com.google.gwt.event.dom.client.KeyPressHandler;
1146 chandransh 18
import com.google.gwt.user.client.ui.Button;
13227 manish.sha 19
import com.google.gwt.user.client.ui.CheckBox;
1146 chandransh 20
import com.google.gwt.user.client.ui.DialogBox;
13146 manish.sha 21
import com.google.gwt.user.client.ui.HTML;
22
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
1146 chandransh 23
import com.google.gwt.user.client.ui.HorizontalPanel;
24
import com.google.gwt.user.client.ui.Label;
13146 manish.sha 25
import com.google.gwt.user.client.ui.ScrollPanel;
1146 chandransh 26
import com.google.gwt.user.client.ui.TextBox;
27
import com.google.gwt.user.client.ui.VerticalPanel;
2781 chandransh 28
import com.google.gwt.user.client.ui.Widget;
1146 chandransh 29
 
30
public class JacketInfoBox extends DialogBox {
31
	private Label errorLabel = new Label("");
2781 chandransh 32
 
13146 manish.sha 33
	private Label jacketNumberLabel = new Label("Jacket Number");
6746 rajveer 34
 
5110 mandeep.dh 35
	private Label warehousePickSuggestion = new Label("");
13146 manish.sha 36
 
1146 chandransh 37
	private TextBox jacketNumberBox = new TextBox();
2781 chandransh 38
 
13146 manish.sha 39
	private Label billedByLabel = new Label("Billed By");
2781 chandransh 40
 
13146 manish.sha 41
	private Label billNumberLabel = new Label("Bill Number");
42
	private TextBox billNumber = new TextBox();
2781 chandransh 43
 
13227 manish.sha 44
	private CheckBox changeInvoiceType = new CheckBox("BulkInvoice");
45
 
13146 manish.sha 46
	private VerticalPanel vpanel = new VerticalPanel();
7190 amar.kumar 47
 
13146 manish.sha 48
	private ScrollPanel spanel = new ScrollPanel();
7190 amar.kumar 49
 
13146 manish.sha 50
	private Button submitbutton = new Button("Submit");
2781 chandransh 51
 
13146 manish.sha 52
	private Map<Long, List<String>> itemNumbersMap = new HashMap<Long, List<String>>();
53
 
54
	private Map<Long, List<String>> serialNumbersMap = new HashMap<Long, List<String>>();
55
 
56
	private Map<Long, List<Long>> freebieWarehouseIdMap = new HashMap<Long, List<Long>>();
57
 
58
 
59
	private Map<Long, List<TextBox>> itemNumbersBoxMap= new HashMap<Long, List<TextBox>>();
60
 
61
	private Map<Long, List<TextBox>> serialNumbersBoxMap = new HashMap<Long, List<TextBox>>();
62
 
63
	private Map<Long, List<TextBox>> freebieWarehouseIdBoxMap = new HashMap<Long, List<TextBox>>();
64
 
65
 
66
	private HorizontalPanel hpanel;
67
 
5110 mandeep.dh 68
	public JacketInfoBox(final EventBus eventBus, final Order order, final String user,
13146 manish.sha 69
	        final BillingType billingType, Map<Long, String> warehouses, final Map<Long, Map<String, String>> billTogetherOrdersMap){
1146 chandransh 70
		vpanel.add(errorLabel);
13146 manish.sha 71
 
72
		jacketNumberBox.addKeyPressHandler(new KeyPressHandler() {
73
			@Override
74
			public void onKeyPress(KeyPressEvent event) {
75
				// TODO Auto-generated method stub
76
				if (!Character.isDigit(event.getCharCode())) {
77
			          ((TextBox) event.getSource()).cancelKey();
78
			    }
79
			}
80
		});
81
 
82
		vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));	
83
 
84
		vpanel.add(getHorizontalPanel(billedByLabel, new Label(user)));
85
 
5110 mandeep.dh 86
		if (order.getPickFromWarehouse() != null) {
87
		    warehousePickSuggestion.setText("Pick from WH: " + order.getPickFromWarehouse());
88
		}
7190 amar.kumar 89
 
13146 manish.sha 90
		vpanel.add(warehousePickSuggestion);
91
 
13227 manish.sha 92
		//changeInvoiceType = new CheckBox("BulkInvoice");
93
		changeInvoiceType.setValue(false);
94
 
95
 
96
		vpanel.add(changeInvoiceType);		
97
 
6746 rajveer 98
		if(billingType == BillingType.OURS_EXTERNAL || billingType == BillingType.EXTERNAL){
99
			vpanel.add(getHorizontalPanel(billNumberLabel, billNumber));
100
			if(order.getInvoiceNumber() != null && !order.getInvoiceNumber().trim().equals("")){
101
				billNumber.setText(order.getInvoiceNumber().trim());
102
			}
103
		}
104
 
13146 manish.sha 105
		hpanel = new HorizontalPanel();
106
		hpanel.setSpacing(5);
107
		hpanel.add(new Label("Order Id"));
108
		hpanel.add(new Label("Product Name"));
109
		hpanel.add(new HTML("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
110
		hpanel.add(new Label("Quantity"));
111
		hpanel.add(new Label("Item Number"));
112
		hpanel.add(new HTML("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
113
		hpanel.add(new Label("Serial Number"));
114
		hpanel.add(new HTML("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
115
		hpanel.add(new Label("Freebie Warehouse Id"));
116
		vpanel.add(hpanel);
6746 rajveer 117
 
13146 manish.sha 118
		for(Long orderId : billTogetherOrdersMap.keySet()){
119
			List<TextBox> itemNumbersBoxList = new ArrayList<TextBox>();
120
			List<TextBox> serialNumbersBoxList = new ArrayList<TextBox>();
121
			List<TextBox> freebieWarehouseIdBoxList = new ArrayList<TextBox>();
122
 
123
			long quantity = (long)Double.parseDouble(billTogetherOrdersMap.get(orderId).get("Quantity"));
124
			boolean hasSerialized = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsSerialized"));
125
			boolean hasFreebie = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsFreebie"));
126
			TextBox itemNumber;
127
			TextBox serialNumber;
128
			TextBox freebieWarehouseId;
129
 
130
			if(quantity>1){
131
				if(hasSerialized){
132
					for(long i=0; i<quantity; i++){
133
						hpanel = new HorizontalPanel();
134
						hpanel.setSpacing(5);
135
						hpanel.add(new Label(orderId+""));
136
						hpanel.add(new Label(billTogetherOrdersMap.get(orderId).get("ProductName")));
137
						hpanel.add(new Label("1"));
138
						itemNumber = new TextBox();
139
						serialNumber = new TextBox();
140
						freebieWarehouseId = new TextBox();
141
						if(!hasFreebie){
142
							freebieWarehouseId.setEnabled(false);
143
						}
144
						freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {
145
							@Override
146
							public void onKeyPress(KeyPressEvent event) {
147
								// TODO Auto-generated method stub
148
								if (!Character.isDigit(event.getCharCode())) {
149
							          ((TextBox) event.getSource()).cancelKey();
150
							    }
151
							}
152
						});
153
						hpanel.add(itemNumber);
154
						hpanel.add(serialNumber);
155
						hpanel.add(freebieWarehouseId);
156
						vpanel.add(hpanel);
157
						itemNumbersBoxList.add(itemNumber);
158
						serialNumbersBoxList.add(serialNumber);
159
						freebieWarehouseIdBoxList.add(freebieWarehouseId);
160
					}
161
				}
162
				else{
163
					hpanel = new HorizontalPanel();
164
					hpanel.setSpacing(5);
165
					hpanel.add(new Label(orderId+""));
166
					hpanel.add(new Label(billTogetherOrdersMap.get(orderId).get("ProductName")));
167
					hpanel.add(new Label(quantity+""));
168
					itemNumber = new TextBox();
169
					serialNumber = new TextBox();
170
					freebieWarehouseId = new TextBox();
171
					serialNumber.setEnabled(false);
172
					if(!hasFreebie){
173
						freebieWarehouseId.setEnabled(false);
174
					}
175
					freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {
176
						@Override
177
						public void onKeyPress(KeyPressEvent event) {
178
							// TODO Auto-generated method stub
179
							if (!Character.isDigit(event.getCharCode())) {
180
						          ((TextBox) event.getSource()).cancelKey();
181
						    }
182
						}
183
					});
184
					hpanel.add(itemNumber);
185
					hpanel.add(serialNumber);
186
					hpanel.add(freebieWarehouseId);
187
					vpanel.add(hpanel);
188
					itemNumbersBoxList.add(itemNumber);
189
					serialNumbersBoxList.add(serialNumber);
190
					freebieWarehouseIdBoxList.add(freebieWarehouseId);
191
				}
192
			}
193
			else {
194
 
195
				hpanel = new HorizontalPanel();
196
				hpanel.setSpacing(5);
197
				hpanel.add(new Label(orderId+""));
198
				hpanel.add(new Label(billTogetherOrdersMap.get(orderId).get("ProductName")));
199
				hpanel.add(new Label(quantity+""));
200
				itemNumber = new TextBox();
201
				serialNumber = new TextBox();
202
				freebieWarehouseId = new TextBox();
203
				if(!hasSerialized){
204
					serialNumber.setEnabled(false);
205
				}
206
				if(!hasFreebie){
207
					freebieWarehouseId.setEnabled(false);
208
				}
209
				freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {
210
					@Override
211
					public void onKeyPress(KeyPressEvent event) {
212
						// TODO Auto-generated method stub
213
						if (!Character.isDigit(event.getCharCode())) {
214
					          ((TextBox) event.getSource()).cancelKey();
215
					    }
216
					}
217
				});
218
				hpanel.add(itemNumber);
219
				hpanel.add(serialNumber);
220
				hpanel.add(freebieWarehouseId);
221
				vpanel.add(hpanel);
222
				itemNumbersBoxList.add(itemNumber);
223
				serialNumbersBoxList.add(serialNumber);
224
				freebieWarehouseIdBoxList.add(freebieWarehouseId);
225
			}
226
 
227
			//itemNumbersBoxMap, serialNumbersBoxMap, freebieWarehouseIdBoxMap
228
			itemNumbersBoxMap.put(orderId, itemNumbersBoxList);
229
			serialNumbersBoxMap.put(orderId, serialNumbersBoxList);
230
			freebieWarehouseIdBoxMap.put(orderId, freebieWarehouseIdBoxList);
231
		}
232
 
1146 chandransh 233
		vpanel.add(submitbutton);
13146 manish.sha 234
		vpanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
1146 chandransh 235
		setWidget(vpanel);
236
		setAutoHideEnabled(true);
237
		setGlassEnabled(true);
13146 manish.sha 238
		setText("Enter all the details below:");
1146 chandransh 239
		setModal(true);
13146 manish.sha 240
		setWidth("1000px");
241
 
242
 
1146 chandransh 243
		submitbutton.addClickHandler(new ClickHandler() {
244
			@Override
245
			public void onClick(ClickEvent event) {
2352 chandransh 246
				long jacketNumber = -1;
13146 manish.sha 247
				String itemNumber = "";
5442 rajveer 248
				String serialNumber = "";
13146 manish.sha 249
				long freebieWhId = -1;
2352 chandransh 250
				try {
251
					jacketNumber = Long.parseLong(jacketNumberBox.getText());
252
				} catch(NumberFormatException nfe){
253
					nfe.printStackTrace();
1146 chandransh 254
				}
2352 chandransh 255
 
256
				if(jacketNumber <= 0){
257
					errorLabel.setText("Invalid Jacket number.");
258
					return;
259
				}
13146 manish.sha 260
 
261
				for(Long orderId : billTogetherOrdersMap.keySet()){
262
					boolean isSerialized = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsSerialized"));
263
					boolean isFreebie = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsFreebie"));
264
					for(TextBox tb : itemNumbersBoxMap.get(orderId)){
265
						itemNumber = tb.getText();
266
						if(itemNumber==null || itemNumber.trim().isEmpty()){
267
	                        errorLabel.setText("Item Number can't be left empty for Order Id:- "+ orderId);
5530 mandeep.dh 268
	                        return;
269
	                    }
7190 amar.kumar 270
					}
13146 manish.sha 271
 
272
					if(isSerialized){
273
						for(TextBox tb : serialNumbersBoxMap.get(orderId)){
274
							serialNumber = tb.getText();
275
							if(serialNumber==null || serialNumber.trim().isEmpty()){
276
		                        errorLabel.setText("Serial Number can't be left empty for Order Id:- "+ orderId);
277
		                        return;
278
		                    }
279
						}
5411 rajveer 280
					}
13146 manish.sha 281
 
282
					if(isFreebie){
283
						for(TextBox tb : freebieWarehouseIdBoxMap.get(orderId)){
284
							try {
285
								freebieWhId = Long.parseLong(tb.getText());
286
							} catch(NumberFormatException nfe){
287
								nfe.printStackTrace();
288
							}
289
 
290
							if(freebieWhId <= 0){
291
								errorLabel.setText("Freebie Warehouse Id can't be left empty for Order Id:- "+ orderId);
292
								return;
293
							}
294
						}
295
					}
5411 rajveer 296
				}
13227 manish.sha 297
 
298
				String invoiceType = changeInvoiceType.getValue() ? "BulkInvoice" : "Individual";
13146 manish.sha 299
				setValuesInDesiredMaps(billTogetherOrdersMap);
300
				eventBus.fireEvent(new AddJacketNumberEvent(order, billNumber.getText(), jacketNumber, itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap, user, billingType));
2352 chandransh 301
				hide();
302
				clean();
1146 chandransh 303
			}
304
		});
305
	}
306
 
5110 mandeep.dh 307
	public void clean() {
1146 chandransh 308
		jacketNumberBox.setText("");
309
		errorLabel.setText("");
5110 mandeep.dh 310
		warehousePickSuggestion.setText("");
1146 chandransh 311
	}
2352 chandransh 312
 
13146 manish.sha 313
	public void setValuesInDesiredMaps(Map<Long, Map<String, String>> billOrdersMap){
314
		for(Long orderId : billOrdersMap.keySet()){
315
			List<TextBox> itemNumbersBoxList = itemNumbersBoxMap.get(orderId);
316
 
317
			Map<String, String> orderValuesMap = billOrdersMap.get(orderId);
318
			boolean hasSerialized = Boolean.parseBoolean(orderValuesMap.get("IsSerialized"));
319
			boolean hasFreebie = Boolean.parseBoolean(orderValuesMap.get("IsFreebie"));
320
 
321
			List<String> itemNumbers = new ArrayList<String>();
322
 
323
			for(TextBox tb : itemNumbersBoxList){
324
				itemNumbers.add(tb.getText().trim());
325
			}
326
 
327
			itemNumbersMap.put(orderId, itemNumbers);
328
 
329
			if(hasSerialized){
330
				List<TextBox> serialNumbersBoxList = serialNumbersBoxMap.get(orderId);
331
				List<String> serialNumbers = new ArrayList<String>();
332
				for(TextBox tb : serialNumbersBoxList){
333
					serialNumbers.add(tb.getText().trim());
334
				}
335
				serialNumbersMap.put(orderId, serialNumbers);
336
			} else{
337
				//itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap
338
				serialNumbersMap.put(orderId, new ArrayList<String>());
339
			}
340
 
341
			if(hasFreebie){
342
				List<TextBox> freebieWarehouseIdBoxList = freebieWarehouseIdBoxMap.get(orderId);
343
				List<Long> freebieWhIds = new ArrayList<Long>();
344
				for(TextBox tb : freebieWarehouseIdBoxList){
345
					freebieWhIds.add(Long.parseLong(tb.getText().trim()));
346
				}
347
				freebieWarehouseIdMap.put(orderId, freebieWhIds);
348
			} else {
349
				freebieWarehouseIdMap.put(orderId, new ArrayList<Long>());
350
			}
351
		}
352
	}
353
 
4658 mandeep.dh 354
	private HorizontalPanel getHorizontalPanel(Label label, Widget textBox) {
2352 chandransh 355
		HorizontalPanel hpanel = new HorizontalPanel();
356
		hpanel.setSpacing(5);
357
		hpanel.add(label);
358
		hpanel.add(textBox);
359
		hpanel.setCellWidth(label, "120px");
360
		return hpanel;
361
	}
1146 chandransh 362
}