Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
167 ashish 1
package in.shop2020.hotspot.dashbaord.client.inbox;
2
 
3
import in.shop2020.hotspot.dashbaord.client.event.AcceptOrderEvent;
4421 mandeep.dh 4
import in.shop2020.hotspot.dashbaord.client.event.FlagOrderEvent;
4666 rajveer 5
import in.shop2020.hotspot.dashbaord.client.event.LostInTransitEvent;
6019 rajveer 6
import in.shop2020.hotspot.dashbaord.client.event.MarkRtoInTransitEvent;
487 rajveer 7
import in.shop2020.hotspot.dashbaord.client.event.NostockOrderEvent;
4421 mandeep.dh 8
import in.shop2020.hotspot.dashbaord.client.event.ProvisionalCaptureEvent;
2628 chandransh 9
import in.shop2020.hotspot.dashbaord.client.event.ReshipOrderEvent;
6019 rajveer 10
import in.shop2020.hotspot.dashbaord.client.event.UnacceptOrderEvent;
2843 chandransh 11
import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;
306 ashish 12
import in.shop2020.hotspot.dashbaord.shared.actions.DetailsMask;
167 ashish 13
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
2835 chandransh 14
import in.shop2020.hotspot.dashbaord.shared.actions.UserType;
167 ashish 15
 
4421 mandeep.dh 16
import java.util.Map;
17
 
167 ashish 18
import org.enunes.gwt.mvp.client.EventBus;
19
 
20
import com.google.gwt.core.client.GWT;
21
import com.google.gwt.event.dom.client.ClickEvent;
22
import com.google.gwt.event.dom.client.ClickHandler;
23
import com.google.gwt.resources.client.CssResource;
24
import com.google.gwt.uibinder.client.UiBinder;
25
import com.google.gwt.uibinder.client.UiField;
487 rajveer 26
import com.google.gwt.user.client.Window;
306 ashish 27
import com.google.gwt.user.client.ui.Button;
167 ashish 28
import com.google.gwt.user.client.ui.FlexTable;
306 ashish 29
import com.google.gwt.user.client.ui.HorizontalPanel;
30
import com.google.gwt.user.client.ui.Label;
167 ashish 31
import com.google.gwt.user.client.ui.ResizeComposite;
306 ashish 32
import com.google.gwt.user.client.ui.VerticalPanel;
167 ashish 33
import com.google.gwt.user.client.ui.Widget;
34
 
35
public class OrderDetails extends ResizeComposite{
36
 
37
	public interface Listener{
38
		void onClick();
39
	}
40
 
585 chandransh 41
	interface OrderDetailsUiBinder extends UiBinder<Widget, OrderDetails>{ }
167 ashish 42
 
43
	interface SelectionStyle extends CssResource{
306 ashish 44
		String blueLabel();
45
		String greenLabel();
167 ashish 46
	}
47
 
585 chandransh 48
	private static final OrderDetailsUiBinder binder = GWT.create(OrderDetailsUiBinder.class);
167 ashish 49
 
50
	@UiField FlexTable header;
51
	@UiField FlexTable table;
306 ashish 52
	@UiField HorizontalPanel orderDetails;
53
	@UiField VerticalPanel orderDetails1;
54
	@UiField VerticalPanel orderDetails2;
55
	@UiField VerticalPanel orderDetails3;
56
	@UiField VerticalPanel orderDetails4;
57
	@UiField VerticalPanel orderDetails5;
58
	@UiField SelectionStyle selectionStyle;
167 ashish 59
 
60
 
61
	private final EventBus eventbus;
62
	private Order order;
63
	private Order transaction;
2509 chandransh 64
 
3065 chandransh 65
	//Buttons for the Warehouse Executive
4367 rajveer 66
	//private Button verifyOrder = new Button();
306 ashish 67
	private Button acceptOrder = new Button();
68
	private Button rejectOrder = new Button();
4361 rajveer 69
	private Button printAllInvoices = new Button();
306 ashish 70
	private Button notAvailable= new Button();
71
	private Button addBillingInfo= new Button();
2449 chandransh 72
	private Button printInvoice = new Button();
2610 chandransh 73
	private Button receiveReturn = new Button();
2509 chandransh 74
	private Button validateDOA = new Button();
4495 rajveer 75
	private Button validateReturnProduct = new Button();
677 chandransh 76
 
3463 chandransh 77
	//Buttons for the Admin to track order
2509 chandransh 78
	private Button flagOrder = new Button();
79
	private Button requestPickup = new Button();
80
	private Button authorizePickup = new Button();
81
	private Button refundOrder = new Button();
4421 mandeep.dh 82
	private Button reshipOrder = new Button();
4666 rajveer 83
	private Button markLostInTransit = new Button();
4421 mandeep.dh 84
	private Button provisionallyCapturePaymentForOrder = new Button();
2509 chandransh 85
 
3463 chandransh 86
	//Buttons for the Admin to edit order details
87
	private Button addWeight = new Button();
88
	private Button changeColor = new Button();
3553 chandransh 89
	private Button addDelayReason = new Button();
4712 rajveer 90
	private Button markDelivered = new Button();
6019 rajveer 91
	private Button markRtoInTransit = new Button();
92
	private Button unacceptOrder = new Button();
93
	private Button changeJacketNumber = new Button();
3463 chandransh 94
	private Button shiftWarehouse = new Button();
95
 
306 ashish 96
	private String user;
97
	private DetailsMask mask;
677 chandransh 98
	private long warehouseID;
2835 chandransh 99
	private UserType userType;
2843 chandransh 100
	private BillingType billingType;
5110 mandeep.dh 101
	private Map<Long, String> warehouses;
4603 rajveer 102
	private Map<Long, String> providers;
167 ashish 103
 
5110 mandeep.dh 104
	public OrderDetails(EventBus eventbus, Order order, Order order2, DetailsMask mask, String user, long warehouseID, UserType userType, BillingType billingType, Map<Long, String> warehouses,  Map<Long, String> providers){
167 ashish 105
		this.eventbus = eventbus;
106
		this.order = order;
107
		this.transaction = order2;
306 ashish 108
		this.mask = mask;
109
		this.user = user;
677 chandransh 110
		this.warehouseID = warehouseID;
2835 chandransh 111
		this.userType = userType;
2843 chandransh 112
		this.billingType = billingType;
5110 mandeep.dh 113
		this.warehouses = warehouses;
4606 rajveer 114
		this.providers = providers;
2449 chandransh 115
 
167 ashish 116
		initWidget(binder.createAndBindUi(this));
4359 rajveer 117
		initTableForWE();
2835 chandransh 118
		if(this.userType == UserType.ADMIN){
2509 chandransh 119
			initTableForAdmin();
120
		}
306 ashish 121
		loadOrderDetails();
167 ashish 122
	}
123
 
2509 chandransh 124
	private void initTableForWE() {
4545 rajveer 125
		header.getColumnFormatter().setWidth(0, "120px");
126
	    header.getColumnFormatter().setWidth(1, "120px");
127
	    header.getColumnFormatter().setWidth(2, "120px");
128
	    header.getColumnFormatter().setWidth(3, "120px");
129
	    header.getColumnFormatter().setWidth(4, "120px");
130
	    header.getColumnFormatter().setWidth(5, "120px");
131
	    header.getColumnFormatter().setWidth(6, "120px");
132
	    header.getColumnFormatter().setWidth(7, "120px");
133
	    header.getColumnFormatter().setWidth(8, "120px");
306 ashish 134
 
4367 rajveer 135
	    //verifyOrder.setText("Verify");
306 ashish 136
	    acceptOrder.setText("Accept");
137
	    notAvailable.setText("Out Of Stock");
138
	    addBillingInfo.setText("Bill");
6746 rajveer 139
	    if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
2843 chandransh 140
	        addBillingInfo.setVisible(false);
2449 chandransh 141
	    printInvoice.setText("Print Invoice");
2610 chandransh 142
	    receiveReturn.setText("Receive Return");
2509 chandransh 143
	    validateDOA.setText("Validate DOA");
4545 rajveer 144
	    validateReturnProduct.setText("Product Usable?");
4248 rajveer 145
	    rejectOrder.setText("Cancel Order");
4361 rajveer 146
	    printAllInvoices.setText("Print All Invoices");
486 rajveer 147
 
4367 rajveer 148
	    //header.setWidget(0, 0, verifyOrder);
149
	    header.setWidget(0, 0, acceptOrder);
150
	    header.setWidget(0, 1, notAvailable);
151
	    header.setWidget(0, 2, addBillingInfo);
152
	    header.setWidget(0, 3, printInvoice);
153
	    header.setWidget(0, 4, receiveReturn);
154
	    header.setWidget(0, 5, validateDOA);
155
	    header.setWidget(0, 6, rejectOrder);
156
	    header.setWidget(0, 7, printAllInvoices);
4495 rajveer 157
	    header.setWidget(0, 8, validateReturnProduct);
2509 chandransh 158
 
159
	    registerButtonHandlersForWE();
4367 rajveer 160
	    if(this.userType == UserType.WAREHOUSE_EXECUTIVE || this.userType == UserType.ADMIN){
161
			implementMaskForWE();
162
		}
163
		if(this.userType == UserType.WAREHOUSE_MONITOR){
164
			implementMaskForWM();
165
		}
166
 
167 ashish 167
	}
168
 
2509 chandransh 169
	private void registerButtonHandlersForWE(){
4367 rajveer 170
		/*
3065 chandransh 171
	    verifyOrder.addClickHandler(new ClickHandler() {
172
 
173
            @Override
174
            public void onClick(ClickEvent event) {
175
                if(verifyOrder.isEnabled()){
176
                    GWT.log("Verify order event fired");
177
                    eventbus.fireEvent(new VerifyOrderEvent(order));
178
                }
179
            }
180
        });
4367 rajveer 181
	    */
3065 chandransh 182
 
306 ashish 183
		acceptOrder.addClickHandler(new ClickHandler() {
184
 
185
			@Override
186
			public void onClick(ClickEvent event) {
2558 chandransh 187
				if(acceptOrder.isEnabled())
306 ashish 188
					eventbus.fireEvent(new AcceptOrderEvent(order));
189
			}
190
		});
486 rajveer 191
 
487 rajveer 192
		notAvailable.addClickHandler(new ClickHandler() {
193
 
194
			@Override
195
			public void onClick(ClickEvent event) {
2558 chandransh 196
				if(notAvailable.isEnabled())
197
					eventbus.fireEvent(new NostockOrderEvent(order));
487 rajveer 198
			}
199
		});
200
 
4248 rajveer 201
		rejectOrder.addClickHandler(new ClickHandler() {
202
 
203
			@Override
204
			public void onClick(ClickEvent event) {
205
				if(rejectOrder.isEnabled()){
206
					RejectReasonBox box = new RejectReasonBox(eventbus, order, user);
207
					box.center();
208
				}
209
			}
210
		});
211
 
306 ashish 212
		addBillingInfo.addClickHandler(new ClickHandler() {
213
 
214
			@Override
215
			public void onClick(ClickEvent event) {
1146 chandransh 216
				if(!addBillingInfo.isEnabled())
217
					return;
306 ashish 218
				BillingInfoBox box = new BillingInfoBox(eventbus, order, user);
219
				box.center();				
220
			}
221
		});
487 rajveer 222
 
2449 chandransh 223
		printInvoice.addClickHandler(new ClickHandler() {
306 ashish 224
 
225
			@Override
226
			public void onClick(ClickEvent event) {
2449 chandransh 227
				if(!printInvoice.isEnabled())
1146 chandransh 228
					return;
6746 rajveer 229
				if(order.getJacketNumber()==0 && (billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)) {
5110 mandeep.dh 230
					JacketInfoBox box = new JacketInfoBox(eventbus, order, user, billingType, warehouses);
1146 chandransh 231
					//box.clean();
232
					box.center();
5110 mandeep.dh 233
				} else{
4361 rajveer 234
					String invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&warehouse=" + warehouseID;
6746 rajveer 235
					if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
2843 chandransh 236
					    invoiceGenerationUrl += "&withBill=true";
237
					else
238
					    invoiceGenerationUrl += "&withBill=false";
1146 chandransh 239
					Window.open(invoiceGenerationUrl, "newWindowName", "window features.");
240
				}
306 ashish 241
			}
242
		});
2588 chandransh 243
 
4361 rajveer 244
		printAllInvoices.addClickHandler(new ClickHandler() {
245
 
246
			@Override
247
			public void onClick(ClickEvent event) {
248
				if(!printAllInvoices.isEnabled()){
249
					return;
250
				}else{
251
					String invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&printAll=true&warehouse=" + warehouseID;
6746 rajveer 252
					if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
4361 rajveer 253
					    invoiceGenerationUrl += "&withBill=true";
254
					else
255
					    invoiceGenerationUrl += "&withBill=false";
256
					Window.open(invoiceGenerationUrl, "newWindowName", "window features.");
257
				}
258
			}
259
		});
260
 
2610 chandransh 261
		receiveReturn.addClickHandler(new ClickHandler() {
2588 chandransh 262
 
263
			@Override
264
			public void onClick(ClickEvent event) {
4478 rajveer 265
				if(!receiveReturn.isEnabled())
266
					return;
267
				ReceiveReturnBox box = new ReceiveReturnBox(eventbus, order);
268
				box.center();
2588 chandransh 269
			}
270
		});
271
 
272
		validateDOA.addClickHandler(new ClickHandler() {
273
 
274
			@Override
275
			public void onClick(ClickEvent event) {
276
				if(!validateDOA.isEnabled())
277
					return;
278
				DoaValidationBox box = new DoaValidationBox(eventbus, order);
279
				box.center();
280
			}
281
		});
4495 rajveer 282
 
283
		validateReturnProduct.addClickHandler(new ClickHandler() {
284
 
285
			@Override
286
			public void onClick(ClickEvent event) {
287
				if(!validateReturnProduct.isEnabled())
288
					return;
289
				ProductValidationBox box = new ProductValidationBox(eventbus, order);
290
				box.center();
291
			}
292
		});
2449 chandransh 293
	}
487 rajveer 294
 
4367 rajveer 295
	private void implementMaskForWM(){
4495 rajveer 296
		maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Unknown state, let's disallow any untoward actions.
4367 rajveer 297
	}
298
 
2509 chandransh 299
	private void implementMaskForWE(){
306 ashish 300
		switch(mask){
3065 chandransh 301
		case VERIFICATION_PENDING:
4495 rajveer 302
		    maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Do not allow the WE to verify the order.
3065 chandransh 303
		    break;
4421 mandeep.dh 304
		case CAPTURE_IN_PROCESS:
306 ashish 305
		case NEW:
4495 rajveer 306
			maskButtonsForWE(true, false, true, false, false, false, false, false, false);  //Allow the WE to either accept the order or mark it as out of stock.
306 ashish 307
			break;
308
		case ACCEPT:
2843 chandransh 309
		    //TODO: Mask buttons based on the billingType
310
		    if(billingType == BillingType.OURS)
6746 rajveer 311
		        maskButtonsForWE(false, false, false, true, true, false, false, false, false); // For our billing, allow the WE to directly print the invoive.
2843 chandransh 312
		    else
4495 rajveer 313
		        maskButtonsForWE(false, false, false, true, true, false, false, true, false); //For external billing, allow the WE to feed the invoice info.
306 ashish 314
			break;
486 rajveer 315
		case REJECT:
4495 rajveer 316
			maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Can't do anything once the order has been rejected.
486 rajveer 317
			break;
306 ashish 318
		case BILL:
4495 rajveer 319
			maskButtonsForWE(false, false, false, true, false, false, false, false, false); //Allow WE to print the invoice for a billed order.
306 ashish 320
			break;
321
		case SHIP:
4495 rajveer 322
			maskButtonsForWE(false, false, false, false, false, false, false, false, false);
306 ashish 323
			break;
487 rajveer 324
		case NO_STOCK:
4495 rajveer 325
			maskButtonsForWE(true, false, false, false, false, false, false, false, false); //Allow WE to accept a low inventory item. 
487 rajveer 326
			break;
4248 rajveer 327
		case CANCEL_CONFIRMED:
4495 rajveer 328
			maskButtonsForWE(false, true, false, false, false, false, false, false, false); //Allow WE to Cancel a order which is in cancellation pending state. 
4248 rajveer 329
			break;			
2509 chandransh 330
		case DOA_AWAITED:
2610 chandransh 331
		case SALES_RETURN_AWAITED:
4495 rajveer 332
			maskButtonsForWE(false, false, false, false, false, true, false, false, false); //Allow WE to accept the packet.
2509 chandransh 333
			break;
2610 chandransh 334
		case DOA_RECEIVED:
4495 rajveer 335
			maskButtonsForWE(false, false, false, false, false, false, true, false, false); //Allow WE to validate the DOA certificate.
2509 chandransh 336
			break;
4495 rajveer 337
		case RET_RECEIVED:
338
			maskButtonsForWE(false, false, false, false, false, false, false, false, true); //Allow WE to validate the DOA certificate.
339
			break;
340
 
2558 chandransh 341
		default:
4495 rajveer 342
			maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Unknown state, let's disallow any untoward actions.
2558 chandransh 343
			break;
306 ashish 344
		}
345
	}
346
 
4495 rajveer 347
	private void maskButtonsForWE(boolean accept, boolean reject, boolean notavailable, boolean printInv, boolean billing, boolean acceptdoa, boolean validatedoa, boolean printAllInvoice, boolean validatereturnproduct){
4367 rajveer 348
	    //verifyOrder.setEnabled(verify);
3065 chandransh 349
	    acceptOrder.setEnabled(accept);
306 ashish 350
		notAvailable.setEnabled(notavailable);
2449 chandransh 351
		printInvoice.setEnabled(printInv);
306 ashish 352
		addBillingInfo.setEnabled(billing);
2610 chandransh 353
		receiveReturn.setEnabled(acceptdoa);
2509 chandransh 354
		validateDOA.setEnabled(validatedoa);
355
		rejectOrder.setEnabled(reject);
4363 rajveer 356
		printAllInvoices.setEnabled(printAllInvoice);
4495 rajveer 357
		validateReturnProduct.setEnabled(validatereturnproduct);
306 ashish 358
	}
2509 chandransh 359
 
360
	private void initTableForAdmin() {
361
	    if(transaction.isDoaFlag()){
362
	    	flagOrder.setText("Unflag");
363
	    } else {
364
	    	flagOrder.setText("Flag");
365
	    }
366
 
367
	    requestPickup.setText("Request Pick-up No");
4455 rajveer 368
	    authorizePickup.setText("Confirm Pick-up");
2509 chandransh 369
	    reshipOrder.setText("Reship");
4666 rajveer 370
	    markLostInTransit.setText("Lost In Transit");
2509 chandransh 371
	    refundOrder.setText("Refund");
4545 rajveer 372
	    provisionallyCapturePaymentForOrder.setText("Capture provisionally");
6019 rajveer 373
	    unacceptOrder.setText("Unaccept");
2509 chandransh 374
 
2558 chandransh 375
	    header.setWidget(1, 0, flagOrder);
376
	    header.setWidget(1, 1, requestPickup);
377
	    header.setWidget(1, 2, authorizePickup);
378
	    header.setWidget(1, 3, reshipOrder);
4666 rajveer 379
	    header.setWidget(1, 4, markLostInTransit);
4421 mandeep.dh 380
	    header.setWidget(1, 5, provisionallyCapturePaymentForOrder);
2558 chandransh 381
	    header.setWidget(1, 6, refundOrder);
6019 rajveer 382
	    //header.setWidget(1, 7, unacceptOrder);
2509 chandransh 383
 
3463 chandransh 384
	    addWeight.setText("Add weight");
385
	    changeColor.setText("Change Color");
3553 chandransh 386
	    addDelayReason.setText("Add Delay Reason");
4712 rajveer 387
	    markDelivered.setText("Mark Delivered");
6019 rajveer 388
	    markRtoInTransit.setText("Mark RTO");
389
	    changeJacketNumber.setText("Change Jacket");
3463 chandransh 390
	    shiftWarehouse.setText("Shift Warehouse");
391
 
392
	    header.setWidget(2, 0, addWeight);
393
	    header.setWidget(2, 1, changeColor);
3553 chandransh 394
	    header.setWidget(2, 2, addDelayReason);
4712 rajveer 395
	    header.setWidget(2, 3, markDelivered);
6019 rajveer 396
	    header.setWidget(2, 4, markRtoInTransit);
397
	    header.setWidget(2, 5, changeJacketNumber);
3463 chandransh 398
	    header.setWidget(2, 6, shiftWarehouse);
399
 
400
	    if(order.getTotalWeight() != 0)
401
	        addWeight.setEnabled(false);
402
 
2509 chandransh 403
	    registerButtonHandlersForAdmin();
3729 chandransh 404
		implementMaskForAdmin();
2509 chandransh 405
	}
306 ashish 406
 
2509 chandransh 407
	private void registerButtonHandlersForAdmin(){
408
		flagOrder.addClickHandler(new ClickHandler() {
409
 
410
			@Override
411
			public void onClick(ClickEvent event) {
412
				if(flagOrder.isEnabled()){
413
					eventbus.fireEvent(new FlagOrderEvent(order));
414
				}
415
			}
416
		});
417
 
418
		requestPickup.addClickHandler(new ClickHandler() {
419
 
420
			@Override
421
			public void onClick(ClickEvent event) {
2513 chandransh 422
				if(requestPickup.isEnabled()){
423
					GWT.log("Raising a pickup request for: " + order.getOrderId());
4578 rajveer 424
					ChoosePickupProviderBox box = new ChoosePickupProviderBox(eventbus, order, providers);
425
					box.center();
2513 chandransh 426
				}
2509 chandransh 427
			}
428
		});
429
 
430
		authorizePickup.addClickHandler(new ClickHandler() {
431
 
432
			@Override
433
			public void onClick(ClickEvent event) {
2526 chandransh 434
				if(!authorizePickup.isEnabled())
435
					return;
4603 rajveer 436
				PickupAuthorizationInfoBox box = new PickupAuthorizationInfoBox(eventbus, order, providers);
2526 chandransh 437
				box.center();
2509 chandransh 438
			}
439
		});
440
 
2628 chandransh 441
		reshipOrder.addClickHandler(new ClickHandler() {
442
 
443
			@Override
444
			public void onClick(ClickEvent event) {
445
				if(reshipOrder.isEnabled()){
446
					GWT.log("Reshipping the order: " + order.getOrderId());
447
					eventbus.fireEvent(new ReshipOrderEvent(order));
448
				}
449
			}
450
		});
4421 mandeep.dh 451
 
4666 rajveer 452
		markLostInTransit.addClickHandler(new ClickHandler() {
453
 
454
			@Override
455
			public void onClick(ClickEvent event) {
456
				if(markLostInTransit.isEnabled()){
457
					GWT.log("Mark Lost in Transit to the order: " + order.getOrderId());
458
					eventbus.fireEvent(new LostInTransitEvent(order));
459
				}
460
			}
461
		});
462
 
463
		provisionallyCapturePaymentForOrder.addClickHandler(new ClickHandler() {
4421 mandeep.dh 464
 
465
	        @Override
466
	        public void onClick(ClickEvent event) {
467
	            if(provisionallyCapturePaymentForOrder.isEnabled()) {
468
	                GWT.log("Provisionally capturing payment for order: " + order.getOrderId());
469
	                eventbus.fireEvent(new ProvisionalCaptureEvent(order));
470
	            }
471
	        }
472
	    });
473
 
2509 chandransh 474
		refundOrder.addClickHandler(new ClickHandler() {
475
 
476
			@Override
477
			public void onClick(ClickEvent event) {
2747 chandransh 478
				if(refundOrder.isEnabled()){
479
					RejectReasonBox box = new RejectReasonBox(eventbus, order, user);
2558 chandransh 480
					//box.clear();
4092 chandransh 481
					box.center();
2558 chandransh 482
				}
2509 chandransh 483
			}
484
		});
3463 chandransh 485
 
486
		addWeight.addClickHandler(new ClickHandler() {
487
 
488
            @Override
489
            public void onClick(ClickEvent event) {
490
                if(addWeight.isEnabled()){
491
                    AddWeightBox box = new AddWeightBox(eventbus, order);
492
                    box.center();
493
                }
494
            }
495
        });
496
 
497
		changeColor.addClickHandler(new ClickHandler() {
498
 
499
            @Override
500
            public void onClick(ClickEvent event) {
3473 chandransh 501
                if(changeColor.isEnabled()){
502
                    ChooseColorBox box = new ChooseColorBox(eventbus, order);
503
                    box.center();
504
                }
3463 chandransh 505
            }
506
        });
507
 
3553 chandransh 508
		addDelayReason.addClickHandler(new ClickHandler() {
509
 
510
            @Override
511
            public void onClick(ClickEvent event) {
512
                AddDelayReasonBox box = new AddDelayReasonBox(eventbus, order);
513
                box.center();
514
            }
515
        });
516
 
4712 rajveer 517
		markDelivered.addClickHandler(new ClickHandler() {
518
 
519
            @Override
520
            public void onClick(ClickEvent event) {
521
                MarkDeliveredBox box = new MarkDeliveredBox(eventbus, order);
522
                box.center();
523
            }
524
        });
525
 
6019 rajveer 526
		markRtoInTransit.addClickHandler(new ClickHandler() {
527
 
528
            @Override
529
            public void onClick(ClickEvent event) {
530
                eventbus.fireEvent(new MarkRtoInTransitEvent(order));
531
            }
532
        });
533
 
534
		changeJacketNumber.addClickHandler(new ClickHandler() {
535
 
536
            @Override
537
            public void onClick(ClickEvent event) {
538
            	ChangeJacketBox box = new ChangeJacketBox(eventbus, order);
539
                box.center();
540
            }
541
        });
542
 
543
		unacceptOrder.addClickHandler(new ClickHandler() {
544
 
545
			@Override
546
			public void onClick(ClickEvent event) {
547
				if(unacceptOrder.isEnabled())
548
					eventbus.fireEvent(new UnacceptOrderEvent(order));
549
			}
550
		});
551
 
552
 
3463 chandransh 553
		shiftWarehouse.addClickHandler(new ClickHandler() {
554
 
555
            @Override
556
            public void onClick(ClickEvent event) {
3473 chandransh 557
                if(shiftWarehouse.isEnabled()){
558
                    ChooseWarehouseBox box = new ChooseWarehouseBox(eventbus, order);
559
                    box.center();
560
                }
3463 chandransh 561
            }
562
        });
2509 chandransh 563
	}
564
 
565
	private void implementMaskForAdmin(){
566
		switch(mask){
4421 mandeep.dh 567
        case CAPTURE_IN_PROCESS:
4682 rajveer 568
            maskButtonsForAdmin(false, false, false, false, false, true, true, false); //Allow the OM to refund a COD order or an order with low inventory or when a customer calls or writes to cancel an order.
4421 mandeep.dh 569
            break;
570
        case VERIFICATION_PENDING:
3729 chandransh 571
        case NEW:
572
        case NO_STOCK:
573
        case ACCEPT:
574
        case BILL:
4682 rajveer 575
			maskButtonsForAdmin(false, false, false, false, false, true, false, false); //Allow the OM to refund a COD order or an order with low inventory or when a customer calls or writes to cancel an order.
2558 chandransh 576
			break;
2509 chandransh 577
		case DELIVERED:
4666 rajveer 578
			maskButtonsForAdmin(false, false, false, false, false, true, false, false);	//Allow the OM to flag and request pickup.
4455 rajveer 579
			break;
580
		case DOA_REQUEST_AUTHORIZED:	
4666 rajveer 581
			maskButtonsForAdmin(true, true, false, false, false, true, false, false);	//Allow the OM to flag and request pickup.
2509 chandransh 582
			break;
583
		case DOA_PICKUP_REQUESTED:
4666 rajveer 584
			maskButtonsForAdmin(true, true, true, false, false, true, false, false);	//Allow the OM to either re-request a pickup no. or authorize pickup by entering one
2509 chandransh 585
			break;
2610 chandransh 586
		case DOA_RETURNED:
2509 chandransh 587
		case SALES_RETURNED:
4666 rajveer 588
			maskButtonsForAdmin(false, false, false, true, true, true, false, false);	//Allow the OM to either reship the order or refund it
2509 chandransh 589
			break;
4666 rajveer 590
		case SHIP:
591
			maskButtonsForAdmin(false, false, false, false, false, true, false, true);	//Allow the OM to either reship the order or refund it
592
			break;
2558 chandransh 593
		default:
4666 rajveer 594
			maskButtonsForAdmin(false, false, false, false, false, true, false, false);	//Unknown state. Let's not allow any untoward actions.
2558 chandransh 595
			break;
2509 chandransh 596
		}
597
	}
598
 
4421 mandeep.dh 599
	private void maskButtonsForAdmin(boolean flag, boolean reqPickup, boolean authPickup, boolean reship,
4666 rajveer 600
	                                 boolean refund, boolean printInv, boolean provisionallyCapturePayment, boolean lostInTransit)
4421 mandeep.dh 601
	{
2509 chandransh 602
		flagOrder.setEnabled(flag);
603
		requestPickup.setEnabled(reqPickup);
604
		authorizePickup.setEnabled(authPickup);
605
		reshipOrder.setEnabled(reship);
4421 mandeep.dh 606
		provisionallyCapturePaymentForOrder.setEnabled(provisionallyCapturePayment);
2509 chandransh 607
		refundOrder.setEnabled(refund);
4309 rajveer 608
		printInvoice.setEnabled(printInv);
4666 rajveer 609
		markLostInTransit.setEnabled(lostInTransit);
2509 chandransh 610
	}
611
 
306 ashish 612
	private void loadOrderDetails(){
4175 rajveer 613
		orderDetails1.add(getHorizontalPanel("FREE ITEM:    ", transaction.getDealText()));
966 chandransh 614
		orderDetails1.add(getHorizontalPanel("PRODUCT GROUP: ", transaction.getProductGroup()));
615
		orderDetails1.add(getHorizontalPanel("BRAND:   	     ", transaction.getBrand()));
616
		orderDetails1.add(getHorizontalPanel("MODEL:         ", getModelDisplayName(transaction)));
617
		orderDetails1.add(getHorizontalPanel("Item ID:       ", transaction.getItemId()+""));
4175 rajveer 618
 
3553 chandransh 619
		orderDetails1.add(getHorizontalPanel("DELAY REASON:  ", transaction.getDelayReason()));
4004 chandransh 620
		orderDetails1.add(getHorizontalPanel("ALERT:         ", transaction.getAlert().toString()));
306 ashish 621
 
966 chandransh 622
		orderDetails2.add(getHorizontalPanel("NAME:          ", transaction.getCustomerName()));
623
		orderDetails2.add(getHorizontalPanel("ADDRESS:       ", getDisplayAddress(transaction)));
624
		orderDetails2.add(getHorizontalPanel("MOBILE NUMBER: ", transaction.getCustomerMobileNumber()));
306 ashish 625
 
966 chandransh 626
		orderDetails3.add(getHorizontalPanel("TOTAL WEIGHT:      ", transaction.getTotalWeight()+""));
627
		orderDetails3.add(getHorizontalPanel("TOTAL AMOUNT(Rs):  ", transaction.getTotalAmount()+""));
5276 mandeep.dh 628
        orderDetails3.add(getHorizontalPanel("FULFIL FROM:       ", transaction.getPickFromWarehouse()+""));
5527 anupam.sin 629
        orderDetails3.add(getHorizontalPanel("ORDER TYPE:       ", transaction.getOrderType()+""));
5387 rajveer 630
        if(transaction.getQuantity()>1)
631
        	orderDetails3.add(getHorizontalPanel("BULK ORDER:          ", transaction.getQuantity()+""));
306 ashish 632
 
5527 anupam.sin 633
 
966 chandransh 634
		orderDetails4.add(getHorizontalPanel("AIRWAY BILL NO:  ", transaction.getAirwayBillNo()));
635
		orderDetails4.add(getHorizontalPanel("INVOICE NUMBER:  ", transaction.getInvoiceNumber()));
636
		orderDetails4.add(getHorizontalPanel("JACKET NUMBER:   ", transaction.getJacketNumber() + ""));
2781 chandransh 637
        orderDetails4.add(getHorizontalPanel("ITEM NO:         ", getDisplayNameForNullableString(transaction.getItemNumber())));
638
        orderDetails4.add(getHorizontalPanel("IMEI NO:         ", transaction.getImeiNumber() + ""));
639
 
966 chandransh 640
		orderDetails4.add(getHorizontalPanel("BILLED BY:       ", transaction.getBilledBy()));		
641
	}
639 chandransh 642
 
966 chandransh 643
	private HorizontalPanel getHorizontalPanel(String labelText, String valueText) {
644
		HorizontalPanel hpanel = new HorizontalPanel();
639 chandransh 645
		hpanel.setSpacing(5);
966 chandransh 646
		hpanel.add(new Label(labelText));
647
		hpanel.add(new Label(valueText));
639 chandransh 648
		hpanel.setCellWidth(hpanel.getWidget(0), "128px");
649
		hpanel.setCellWidth(hpanel.getWidget(1), "128px");
650
		hpanel.getWidget(0).setStyleName(selectionStyle.blueLabel());
651
		hpanel.getWidget(1).setStyleName(selectionStyle.greenLabel());
966 chandransh 652
		return hpanel;
653
	}
306 ashish 654
 
966 chandransh 655
	private String getModelDisplayName(Order order){
656
		String modelName = "";
657
		if(order.getModelName()!=null)
658
			modelName = order.getModelName() + " ";
659
		if(order.getModelNumber()!=null)
660
			modelName = modelName + order.getModelNumber();
661
		if(order.getColor()!=null)
662
			modelName = modelName + " (" + order.getColor() + ")";
663
		return modelName;
306 ashish 664
	}
966 chandransh 665
 
666
	private String getDisplayAddress(Order order){
667
		StringBuilder displayAddress = new StringBuilder();
668
		displayAddress.append(order.getCustomerAddress1() + "\n");
669
		displayAddress.append(order.getCustomerAddress2() + "\n");
670
		displayAddress.append(order.getCustomerCity() + "\n");
671
		displayAddress.append(order.getCustomerState() + "   PIN - " +  order.getCustomerPincode());
672
		return displayAddress.toString();
673
	}
2781 chandransh 674
 
675
    private String getDisplayNameForNullableString(String s) {
676
        if (s == null)
677
            return "";
678
        return s;
679
    }
167 ashish 680
}