Subversion Repositories SmartDukaan

Rev

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