Subversion Repositories SmartDukaan

Rev

Rev 13231 | Rev 13233 | 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
 
13228 manish.sha 44
	private CheckBox changeInvoiceType = new CheckBox("Bulk Invoice");
13227 manish.sha 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
 
13231 manish.sha 68
	private Widget tmpLabel; 
69
 
5110 mandeep.dh 70
	public JacketInfoBox(final EventBus eventBus, final Order order, final String user,
13146 manish.sha 71
	        final BillingType billingType, Map<Long, String> warehouses, final Map<Long, Map<String, String>> billTogetherOrdersMap){
1146 chandransh 72
		vpanel.add(errorLabel);
13146 manish.sha 73
 
74
		jacketNumberBox.addKeyPressHandler(new KeyPressHandler() {
75
			@Override
76
			public void onKeyPress(KeyPressEvent event) {
77
				// TODO Auto-generated method stub
78
				if (!Character.isDigit(event.getCharCode())) {
79
			          ((TextBox) event.getSource()).cancelKey();
80
			    }
81
			}
82
		});
83
 
84
		vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));	
85
 
86
		vpanel.add(getHorizontalPanel(billedByLabel, new Label(user)));
87
 
5110 mandeep.dh 88
		if (order.getPickFromWarehouse() != null) {
89
		    warehousePickSuggestion.setText("Pick from WH: " + order.getPickFromWarehouse());
90
		}
7190 amar.kumar 91
 
13146 manish.sha 92
		vpanel.add(warehousePickSuggestion);
93
 
13227 manish.sha 94
		//changeInvoiceType = new CheckBox("BulkInvoice");
95
		changeInvoiceType.setValue(false);
96
 
97
 
98
		vpanel.add(changeInvoiceType);		
99
 
6746 rajveer 100
		if(billingType == BillingType.OURS_EXTERNAL || billingType == BillingType.EXTERNAL){
101
			vpanel.add(getHorizontalPanel(billNumberLabel, billNumber));
102
			if(order.getInvoiceNumber() != null && !order.getInvoiceNumber().trim().equals("")){
103
				billNumber.setText(order.getInvoiceNumber().trim());
104
			}
105
		}
106
 
13228 manish.sha 107
		vpanel.add(new HTML("<br>"));
108
 
13146 manish.sha 109
		hpanel = new HorizontalPanel();
110
		hpanel.setSpacing(5);
13231 manish.sha 111
		tmpLabel = new Label("Order Id");
112
		hpanel.add(tmpLabel);
13232 manish.sha 113
		hpanel.setCellWidth(tmpLabel, "50");
13231 manish.sha 114
		tmpLabel = new Label("Product Name");
115
		hpanel.add(tmpLabel);
116
		hpanel.setCellWidth(tmpLabel, "200");
117
		tmpLabel = new Label("Quantity");
118
		hpanel.add(tmpLabel);
119
		hpanel.setCellWidth(tmpLabel, "50");
120
		tmpLabel = new Label("Item Number");
121
		hpanel.add(tmpLabel);
13232 manish.sha 122
		hpanel.setCellWidth(tmpLabel, "150");
13231 manish.sha 123
		tmpLabel = new Label("Serial Number");
124
		hpanel.add(tmpLabel);
13232 manish.sha 125
		hpanel.setCellWidth(tmpLabel, "150");
13231 manish.sha 126
		tmpLabel = new Label("Freebie Warehouse Id");
127
		hpanel.add(tmpLabel);
13232 manish.sha 128
		hpanel.setCellWidth(tmpLabel, "150");
13231 manish.sha 129
 
13146 manish.sha 130
		vpanel.add(hpanel);
6746 rajveer 131
 
13146 manish.sha 132
		for(Long orderId : billTogetherOrdersMap.keySet()){
133
			List<TextBox> itemNumbersBoxList = new ArrayList<TextBox>();
134
			List<TextBox> serialNumbersBoxList = new ArrayList<TextBox>();
135
			List<TextBox> freebieWarehouseIdBoxList = new ArrayList<TextBox>();
136
 
137
			long quantity = (long)Double.parseDouble(billTogetherOrdersMap.get(orderId).get("Quantity"));
138
			boolean hasSerialized = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsSerialized"));
139
			boolean hasFreebie = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsFreebie"));
140
			TextBox itemNumber;
141
			TextBox serialNumber;
142
			TextBox freebieWarehouseId;
143
 
144
			if(quantity>1){
145
				if(hasSerialized){
146
					for(long i=0; i<quantity; i++){
147
						hpanel = new HorizontalPanel();
148
						hpanel.setSpacing(5);
13231 manish.sha 149
						tmpLabel = new Label(orderId+"");
150
						hpanel.add(tmpLabel);
151
						hpanel.setCellWidth(tmpLabel, "100");
152
						tmpLabel = new Label(billTogetherOrdersMap.get(orderId).get("ProductName"));
153
						hpanel.add(tmpLabel);
154
						hpanel.setCellWidth(tmpLabel, "200");
155
						tmpLabel = new Label("1");
156
						hpanel.add(tmpLabel);
157
						hpanel.setCellWidth(tmpLabel, "50");
158
 
13146 manish.sha 159
						hpanel.add(new Label(orderId+""));
160
						hpanel.add(new Label(billTogetherOrdersMap.get(orderId).get("ProductName")));
161
						hpanel.add(new Label("1"));
162
						itemNumber = new TextBox();
163
						serialNumber = new TextBox();
164
						freebieWarehouseId = new TextBox();
165
						if(!hasFreebie){
166
							freebieWarehouseId.setEnabled(false);
167
						}
168
						freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {
169
							@Override
170
							public void onKeyPress(KeyPressEvent event) {
171
								// TODO Auto-generated method stub
172
								if (!Character.isDigit(event.getCharCode())) {
173
							          ((TextBox) event.getSource()).cancelKey();
174
							    }
175
							}
176
						});
13231 manish.sha 177
 
13146 manish.sha 178
						hpanel.add(itemNumber);
13231 manish.sha 179
						hpanel.setCellWidth(itemNumber, "100");
13146 manish.sha 180
						hpanel.add(serialNumber);
13231 manish.sha 181
						hpanel.setCellWidth(serialNumber, "100");
13146 manish.sha 182
						hpanel.add(freebieWarehouseId);
13231 manish.sha 183
						hpanel.setCellWidth(freebieWarehouseId, "100");
13146 manish.sha 184
						vpanel.add(hpanel);
185
						itemNumbersBoxList.add(itemNumber);
186
						serialNumbersBoxList.add(serialNumber);
187
						freebieWarehouseIdBoxList.add(freebieWarehouseId);
188
					}
189
				}
190
				else{
191
					hpanel = new HorizontalPanel();
192
					hpanel.setSpacing(5);
13231 manish.sha 193
					tmpLabel = new Label(orderId+"");
194
					hpanel.add(tmpLabel);
195
					hpanel.setCellWidth(tmpLabel, "100");
196
					tmpLabel = new Label(billTogetherOrdersMap.get(orderId).get("ProductName"));
197
					hpanel.add(tmpLabel);
198
					hpanel.setCellWidth(tmpLabel, "200");
199
					tmpLabel = new Label(quantity+"");
200
					hpanel.add(tmpLabel);
201
					hpanel.setCellWidth(tmpLabel, "50");
13146 manish.sha 202
					itemNumber = new TextBox();
203
					serialNumber = new TextBox();
204
					freebieWarehouseId = new TextBox();
205
					serialNumber.setEnabled(false);
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);
13231 manish.sha 219
					hpanel.setCellWidth(itemNumber, "100");
13146 manish.sha 220
					hpanel.add(serialNumber);
13231 manish.sha 221
					hpanel.setCellWidth(serialNumber, "100");
13146 manish.sha 222
					hpanel.add(freebieWarehouseId);
13231 manish.sha 223
					hpanel.setCellWidth(freebieWarehouseId, "100");
13146 manish.sha 224
					vpanel.add(hpanel);
225
					itemNumbersBoxList.add(itemNumber);
226
					serialNumbersBoxList.add(serialNumber);
227
					freebieWarehouseIdBoxList.add(freebieWarehouseId);
228
				}
229
			}
230
			else {
231
 
232
				hpanel = new HorizontalPanel();
233
				hpanel.setSpacing(5);
13231 manish.sha 234
				tmpLabel = new Label(orderId+"");
235
				hpanel.add(tmpLabel);
236
				hpanel.setCellWidth(tmpLabel, "100");
237
				tmpLabel = new Label(billTogetherOrdersMap.get(orderId).get("ProductName"));
238
				hpanel.add(tmpLabel);
239
				hpanel.setCellWidth(tmpLabel, "200");
240
				tmpLabel = new Label(quantity+"");
241
				hpanel.add(tmpLabel);
242
				hpanel.setCellWidth(tmpLabel, "50");
13146 manish.sha 243
				itemNumber = new TextBox();
244
				serialNumber = new TextBox();
245
				freebieWarehouseId = new TextBox();
246
				if(!hasSerialized){
247
					serialNumber.setEnabled(false);
248
				}
249
				if(!hasFreebie){
250
					freebieWarehouseId.setEnabled(false);
251
				}
252
				freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {
253
					@Override
254
					public void onKeyPress(KeyPressEvent event) {
255
						// TODO Auto-generated method stub
256
						if (!Character.isDigit(event.getCharCode())) {
257
					          ((TextBox) event.getSource()).cancelKey();
258
					    }
259
					}
260
				});
261
				hpanel.add(itemNumber);
13231 manish.sha 262
				hpanel.setCellWidth(itemNumber, "100");
13146 manish.sha 263
				hpanel.add(serialNumber);
13231 manish.sha 264
				hpanel.setCellWidth(serialNumber, "100");
13146 manish.sha 265
				hpanel.add(freebieWarehouseId);
13231 manish.sha 266
				hpanel.setCellWidth(freebieWarehouseId, "100");
13146 manish.sha 267
				vpanel.add(hpanel);
268
				itemNumbersBoxList.add(itemNumber);
269
				serialNumbersBoxList.add(serialNumber);
270
				freebieWarehouseIdBoxList.add(freebieWarehouseId);
271
			}
272
 
273
			//itemNumbersBoxMap, serialNumbersBoxMap, freebieWarehouseIdBoxMap
274
			itemNumbersBoxMap.put(orderId, itemNumbersBoxList);
275
			serialNumbersBoxMap.put(orderId, serialNumbersBoxList);
276
			freebieWarehouseIdBoxMap.put(orderId, freebieWarehouseIdBoxList);
277
		}
278
 
1146 chandransh 279
		vpanel.add(submitbutton);
13146 manish.sha 280
		vpanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
1146 chandransh 281
		setWidget(vpanel);
282
		setAutoHideEnabled(true);
283
		setGlassEnabled(true);
13146 manish.sha 284
		setText("Enter all the details below:");
1146 chandransh 285
		setModal(true);
13146 manish.sha 286
		setWidth("1000px");
287
 
288
 
1146 chandransh 289
		submitbutton.addClickHandler(new ClickHandler() {
290
			@Override
291
			public void onClick(ClickEvent event) {
2352 chandransh 292
				long jacketNumber = -1;
13146 manish.sha 293
				String itemNumber = "";
5442 rajveer 294
				String serialNumber = "";
13146 manish.sha 295
				long freebieWhId = -1;
2352 chandransh 296
				try {
297
					jacketNumber = Long.parseLong(jacketNumberBox.getText());
298
				} catch(NumberFormatException nfe){
299
					nfe.printStackTrace();
1146 chandransh 300
				}
2352 chandransh 301
 
302
				if(jacketNumber <= 0){
303
					errorLabel.setText("Invalid Jacket number.");
304
					return;
305
				}
13146 manish.sha 306
 
307
				for(Long orderId : billTogetherOrdersMap.keySet()){
308
					boolean isSerialized = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsSerialized"));
309
					boolean isFreebie = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsFreebie"));
310
					for(TextBox tb : itemNumbersBoxMap.get(orderId)){
311
						itemNumber = tb.getText();
312
						if(itemNumber==null || itemNumber.trim().isEmpty()){
313
	                        errorLabel.setText("Item Number can't be left empty for Order Id:- "+ orderId);
5530 mandeep.dh 314
	                        return;
315
	                    }
7190 amar.kumar 316
					}
13146 manish.sha 317
 
318
					if(isSerialized){
319
						for(TextBox tb : serialNumbersBoxMap.get(orderId)){
320
							serialNumber = tb.getText();
321
							if(serialNumber==null || serialNumber.trim().isEmpty()){
322
		                        errorLabel.setText("Serial Number can't be left empty for Order Id:- "+ orderId);
323
		                        return;
324
		                    }
325
						}
5411 rajveer 326
					}
13146 manish.sha 327
 
328
					if(isFreebie){
329
						for(TextBox tb : freebieWarehouseIdBoxMap.get(orderId)){
330
							try {
331
								freebieWhId = Long.parseLong(tb.getText());
332
							} catch(NumberFormatException nfe){
333
								nfe.printStackTrace();
334
							}
335
 
336
							if(freebieWhId <= 0){
337
								errorLabel.setText("Freebie Warehouse Id can't be left empty for Order Id:- "+ orderId);
338
								return;
339
							}
340
						}
341
					}
5411 rajveer 342
				}
13227 manish.sha 343
 
344
				String invoiceType = changeInvoiceType.getValue() ? "BulkInvoice" : "Individual";
13146 manish.sha 345
				setValuesInDesiredMaps(billTogetherOrdersMap);
346
				eventBus.fireEvent(new AddJacketNumberEvent(order, billNumber.getText(), jacketNumber, itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap, user, billingType));
2352 chandransh 347
				hide();
348
				clean();
1146 chandransh 349
			}
350
		});
351
	}
352
 
5110 mandeep.dh 353
	public void clean() {
1146 chandransh 354
		jacketNumberBox.setText("");
355
		errorLabel.setText("");
5110 mandeep.dh 356
		warehousePickSuggestion.setText("");
1146 chandransh 357
	}
2352 chandransh 358
 
13146 manish.sha 359
	public void setValuesInDesiredMaps(Map<Long, Map<String, String>> billOrdersMap){
360
		for(Long orderId : billOrdersMap.keySet()){
361
			List<TextBox> itemNumbersBoxList = itemNumbersBoxMap.get(orderId);
362
 
363
			Map<String, String> orderValuesMap = billOrdersMap.get(orderId);
364
			boolean hasSerialized = Boolean.parseBoolean(orderValuesMap.get("IsSerialized"));
365
			boolean hasFreebie = Boolean.parseBoolean(orderValuesMap.get("IsFreebie"));
366
 
367
			List<String> itemNumbers = new ArrayList<String>();
368
 
369
			for(TextBox tb : itemNumbersBoxList){
370
				itemNumbers.add(tb.getText().trim());
371
			}
372
 
373
			itemNumbersMap.put(orderId, itemNumbers);
374
 
375
			if(hasSerialized){
376
				List<TextBox> serialNumbersBoxList = serialNumbersBoxMap.get(orderId);
377
				List<String> serialNumbers = new ArrayList<String>();
378
				for(TextBox tb : serialNumbersBoxList){
379
					serialNumbers.add(tb.getText().trim());
380
				}
381
				serialNumbersMap.put(orderId, serialNumbers);
382
			} else{
383
				//itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap
384
				serialNumbersMap.put(orderId, new ArrayList<String>());
385
			}
386
 
387
			if(hasFreebie){
388
				List<TextBox> freebieWarehouseIdBoxList = freebieWarehouseIdBoxMap.get(orderId);
389
				List<Long> freebieWhIds = new ArrayList<Long>();
390
				for(TextBox tb : freebieWarehouseIdBoxList){
391
					freebieWhIds.add(Long.parseLong(tb.getText().trim()));
392
				}
393
				freebieWarehouseIdMap.put(orderId, freebieWhIds);
394
			} else {
395
				freebieWarehouseIdMap.put(orderId, new ArrayList<Long>());
396
			}
397
		}
398
	}
399
 
4658 mandeep.dh 400
	private HorizontalPanel getHorizontalPanel(Label label, Widget textBox) {
2352 chandransh 401
		HorizontalPanel hpanel = new HorizontalPanel();
402
		hpanel.setSpacing(5);
403
		hpanel.add(label);
404
		hpanel.add(textBox);
405
		hpanel.setCellWidth(label, "120px");
406
		return hpanel;
407
	}
1146 chandransh 408
}