Subversion Repositories SmartDukaan

Rev

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