Subversion Repositories SmartDukaan

Rev

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