Subversion Repositories SmartDukaan

Rev

Rev 8257 | Rev 8910 | 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();
7561 rajveer 93
//	private Button changeJacketNumber = new Button();
94
//	private Button shiftWarehouse = new Button();
7190 amar.kumar 95
	private Button splitFreebieOrder = new Button();
7822 amar.kumar 96
	private Button changeFreebieItem = new Button();
8182 amar.kumar 97
	private Button splitEbayOrder = new Button();
3463 chandransh 98
 
306 ashish 99
	private String user;
100
	private DetailsMask mask;
677 chandransh 101
	private long warehouseID;
2835 chandransh 102
	private UserType userType;
2843 chandransh 103
	private BillingType billingType;
5110 mandeep.dh 104
	private Map<Long, String> warehouses;
4603 rajveer 105
	private Map<Long, String> providers;
167 ashish 106
 
5110 mandeep.dh 107
	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 108
		this.eventbus = eventbus;
109
		this.order = order;
110
		this.transaction = order2;
306 ashish 111
		this.mask = mask;
112
		this.user = user;
677 chandransh 113
		this.warehouseID = warehouseID;
2835 chandransh 114
		this.userType = userType;
2843 chandransh 115
		this.billingType = billingType;
5110 mandeep.dh 116
		this.warehouses = warehouses;
4606 rajveer 117
		this.providers = providers;
2449 chandransh 118
 
167 ashish 119
		initWidget(binder.createAndBindUi(this));
4359 rajveer 120
		initTableForWE();
2835 chandransh 121
		if(this.userType == UserType.ADMIN){
2509 chandransh 122
			initTableForAdmin();
8303 amar.kumar 123
		} else if(this.userType == UserType.WAREHOUSE_MONITOR){
124
			initTableForWM();
2509 chandransh 125
		}
306 ashish 126
		loadOrderDetails();
167 ashish 127
	}
128
 
2509 chandransh 129
	private void initTableForWE() {
4545 rajveer 130
		header.getColumnFormatter().setWidth(0, "120px");
131
	    header.getColumnFormatter().setWidth(1, "120px");
132
	    header.getColumnFormatter().setWidth(2, "120px");
133
	    header.getColumnFormatter().setWidth(3, "120px");
134
	    header.getColumnFormatter().setWidth(4, "120px");
135
	    header.getColumnFormatter().setWidth(5, "120px");
136
	    header.getColumnFormatter().setWidth(6, "120px");
137
	    header.getColumnFormatter().setWidth(7, "120px");
138
	    header.getColumnFormatter().setWidth(8, "120px");
306 ashish 139
 
4367 rajveer 140
	    //verifyOrder.setText("Verify");
306 ashish 141
	    acceptOrder.setText("Accept");
142
	    notAvailable.setText("Out Of Stock");
143
	    addBillingInfo.setText("Bill");
6746 rajveer 144
	    if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
2843 chandransh 145
	        addBillingInfo.setVisible(false);
2449 chandransh 146
	    printInvoice.setText("Print Invoice");
2610 chandransh 147
	    receiveReturn.setText("Receive Return");
2509 chandransh 148
	    validateDOA.setText("Validate DOA");
4545 rajveer 149
	    validateReturnProduct.setText("Product Usable?");
4248 rajveer 150
	    rejectOrder.setText("Cancel Order");
4361 rajveer 151
	    printAllInvoices.setText("Print All Invoices");
486 rajveer 152
 
4367 rajveer 153
	    //header.setWidget(0, 0, verifyOrder);
154
	    header.setWidget(0, 0, acceptOrder);
155
	    header.setWidget(0, 1, notAvailable);
156
	    header.setWidget(0, 2, addBillingInfo);
157
	    header.setWidget(0, 3, printInvoice);
158
	    header.setWidget(0, 4, receiveReturn);
159
	    header.setWidget(0, 5, validateDOA);
160
	    header.setWidget(0, 6, rejectOrder);
161
	    header.setWidget(0, 7, printAllInvoices);
4495 rajveer 162
	    header.setWidget(0, 8, validateReturnProduct);
2509 chandransh 163
 
164
	    registerButtonHandlersForWE();
4367 rajveer 165
	    if(this.userType == UserType.WAREHOUSE_EXECUTIVE || this.userType == UserType.ADMIN){
166
			implementMaskForWE();
8303 amar.kumar 167
		} else if(this.userType == UserType.WAREHOUSE_MONITOR){
4367 rajveer 168
			implementMaskForWM();
169
		}
170
 
167 ashish 171
	}
172
 
2509 chandransh 173
	private void registerButtonHandlersForWE(){
4367 rajveer 174
		/*
3065 chandransh 175
	    verifyOrder.addClickHandler(new ClickHandler() {
176
 
177
            @Override
178
            public void onClick(ClickEvent event) {
179
                if(verifyOrder.isEnabled()){
180
                    GWT.log("Verify order event fired");
181
                    eventbus.fireEvent(new VerifyOrderEvent(order));
182
                }
183
            }
184
        });
4367 rajveer 185
	    */
3065 chandransh 186
 
306 ashish 187
		acceptOrder.addClickHandler(new ClickHandler() {
188
 
189
			@Override
190
			public void onClick(ClickEvent event) {
2558 chandransh 191
				if(acceptOrder.isEnabled())
306 ashish 192
					eventbus.fireEvent(new AcceptOrderEvent(order));
193
			}
194
		});
486 rajveer 195
 
487 rajveer 196
		notAvailable.addClickHandler(new ClickHandler() {
197
 
198
			@Override
199
			public void onClick(ClickEvent event) {
2558 chandransh 200
				if(notAvailable.isEnabled())
201
					eventbus.fireEvent(new NostockOrderEvent(order));
487 rajveer 202
			}
203
		});
204
 
4248 rajveer 205
		rejectOrder.addClickHandler(new ClickHandler() {
206
 
207
			@Override
208
			public void onClick(ClickEvent event) {
209
				if(rejectOrder.isEnabled()){
210
					RejectReasonBox box = new RejectReasonBox(eventbus, order, user);
211
					box.center();
212
				}
213
			}
214
		});
215
 
306 ashish 216
		addBillingInfo.addClickHandler(new ClickHandler() {
217
 
218
			@Override
219
			public void onClick(ClickEvent event) {
1146 chandransh 220
				if(!addBillingInfo.isEnabled())
221
					return;
306 ashish 222
				BillingInfoBox box = new BillingInfoBox(eventbus, order, user);
223
				box.center();				
224
			}
225
		});
487 rajveer 226
 
2449 chandransh 227
		printInvoice.addClickHandler(new ClickHandler() {
306 ashish 228
 
229
			@Override
230
			public void onClick(ClickEvent event) {
2449 chandransh 231
				if(!printInvoice.isEnabled())
1146 chandransh 232
					return;
6746 rajveer 233
				if(order.getJacketNumber()==0 && (billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)) {
5110 mandeep.dh 234
					JacketInfoBox box = new JacketInfoBox(eventbus, order, user, billingType, warehouses);
1146 chandransh 235
					//box.clean();
236
					box.center();
5110 mandeep.dh 237
				} else{
4361 rajveer 238
					String invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&warehouse=" + warehouseID;
6746 rajveer 239
					if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
2843 chandransh 240
					    invoiceGenerationUrl += "&withBill=true";
241
					else
242
					    invoiceGenerationUrl += "&withBill=false";
1146 chandransh 243
					Window.open(invoiceGenerationUrl, "newWindowName", "window features.");
244
				}
306 ashish 245
			}
246
		});
2588 chandransh 247
 
4361 rajveer 248
		printAllInvoices.addClickHandler(new ClickHandler() {
249
 
250
			@Override
251
			public void onClick(ClickEvent event) {
252
				if(!printAllInvoices.isEnabled()){
253
					return;
254
				}else{
255
					String invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&printAll=true&warehouse=" + warehouseID;
6746 rajveer 256
					if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
4361 rajveer 257
					    invoiceGenerationUrl += "&withBill=true";
258
					else
259
					    invoiceGenerationUrl += "&withBill=false";
260
					Window.open(invoiceGenerationUrl, "newWindowName", "window features.");
261
				}
262
			}
263
		});
264
 
2610 chandransh 265
		receiveReturn.addClickHandler(new ClickHandler() {
2588 chandransh 266
 
267
			@Override
268
			public void onClick(ClickEvent event) {
4478 rajveer 269
				if(!receiveReturn.isEnabled())
270
					return;
271
				ReceiveReturnBox box = new ReceiveReturnBox(eventbus, order);
272
				box.center();
2588 chandransh 273
			}
274
		});
275
 
276
		validateDOA.addClickHandler(new ClickHandler() {
277
 
278
			@Override
279
			public void onClick(ClickEvent event) {
280
				if(!validateDOA.isEnabled())
281
					return;
282
				DoaValidationBox box = new DoaValidationBox(eventbus, order);
283
				box.center();
284
			}
285
		});
4495 rajveer 286
 
287
		validateReturnProduct.addClickHandler(new ClickHandler() {
288
 
289
			@Override
290
			public void onClick(ClickEvent event) {
291
				if(!validateReturnProduct.isEnabled())
292
					return;
293
				ProductValidationBox box = new ProductValidationBox(eventbus, order);
294
				box.center();
295
			}
296
		});
2449 chandransh 297
	}
487 rajveer 298
 
4367 rajveer 299
	private void implementMaskForWM(){
8303 amar.kumar 300
		//TODO Currently a lot of options have been disabled for this case. This would need a revisit based on discussions and requirements
301
		printAllInvoices.setEnabled(false);
302
		addBillingInfo.setEnabled(false);
303
		printInvoice.setEnabled(false);
304
		receiveReturn.setEnabled(false);
305
		validateDOA.setEnabled(false);
306
		validateReturnProduct.setEnabled(false);
307
		flagOrder.setEnabled(false);
308
		requestPickup.setEnabled(false);
309
		authorizePickup.setEnabled(false);
310
		refundOrder.setEnabled(false);
311
		reshipOrder.setEnabled(false);
312
		markLostInTransit.setEnabled(false);
313
		provisionallyCapturePaymentForOrder.setEnabled(false);
314
		addWeight.setEnabled(false);
315
		markDelivered.setEnabled(false);
316
		markRtoInTransit.setEnabled(false);
317
		changeFreebieItem.setEnabled(false);
318
 
319
		switch(mask){
320
        case CAPTURE_IN_PROCESS:
321
            maskButtonsForWM(false, false, false, false, false, false, false); 
322
            break;
323
        case VERIFICATION_PENDING:
324
        case NEW:
325
        case NO_STOCK:
326
        case ACCEPT:
327
        	maskButtonsForWM(true, true, true, true, true, false, true); 
328
			break;
329
        case BILL:
330
        	maskButtonsForWM(false, true, false, true, false, true, false); 
331
			break;
332
		case DELIVERED:
333
		case DOA_REQUEST_AUTHORIZED:	
334
		case DOA_PICKUP_REQUESTED:
335
		case DOA_RETURNED:
336
		case SALES_RETURNED:
337
		case SHIP:
338
			maskButtonsForWM(false, false, false, false, false, true, false); 
339
			break;
340
		default:
341
			maskButtonsForWM(false, false, false, false, false, true, false); 	//Unknown state. Let's not allow any untoward actions.
342
			break;
343
		}
4367 rajveer 344
	}
345
 
2509 chandransh 346
	private void implementMaskForWE(){
306 ashish 347
		switch(mask){
3065 chandransh 348
		case VERIFICATION_PENDING:
4495 rajveer 349
		    maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Do not allow the WE to verify the order.
3065 chandransh 350
		    break;
4421 mandeep.dh 351
		case CAPTURE_IN_PROCESS:
306 ashish 352
		case NEW:
4495 rajveer 353
			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 354
			break;
355
		case ACCEPT:
2843 chandransh 356
		    //TODO: Mask buttons based on the billingType
357
		    if(billingType == BillingType.OURS)
6746 rajveer 358
		        maskButtonsForWE(false, false, false, true, true, false, false, false, false); // For our billing, allow the WE to directly print the invoive.
2843 chandransh 359
		    else
4495 rajveer 360
		        maskButtonsForWE(false, false, false, true, true, false, false, true, false); //For external billing, allow the WE to feed the invoice info.
306 ashish 361
			break;
486 rajveer 362
		case REJECT:
4495 rajveer 363
			maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Can't do anything once the order has been rejected.
486 rajveer 364
			break;
306 ashish 365
		case BILL:
4495 rajveer 366
			maskButtonsForWE(false, false, false, true, false, false, false, false, false); //Allow WE to print the invoice for a billed order.
306 ashish 367
			break;
368
		case SHIP:
4495 rajveer 369
			maskButtonsForWE(false, false, false, false, false, false, false, false, false);
306 ashish 370
			break;
487 rajveer 371
		case NO_STOCK:
4495 rajveer 372
			maskButtonsForWE(true, false, false, false, false, false, false, false, false); //Allow WE to accept a low inventory item. 
487 rajveer 373
			break;
4248 rajveer 374
		case CANCEL_CONFIRMED:
4495 rajveer 375
			maskButtonsForWE(false, true, false, false, false, false, false, false, false); //Allow WE to Cancel a order which is in cancellation pending state. 
4248 rajveer 376
			break;			
2509 chandransh 377
		case DOA_AWAITED:
2610 chandransh 378
		case SALES_RETURN_AWAITED:
4495 rajveer 379
			maskButtonsForWE(false, false, false, false, false, true, false, false, false); //Allow WE to accept the packet.
2509 chandransh 380
			break;
2610 chandransh 381
		case DOA_RECEIVED:
4495 rajveer 382
			maskButtonsForWE(false, false, false, false, false, false, true, false, false); //Allow WE to validate the DOA certificate.
2509 chandransh 383
			break;
4495 rajveer 384
		case RET_RECEIVED:
385
			maskButtonsForWE(false, false, false, false, false, false, false, false, true); //Allow WE to validate the DOA certificate.
386
			break;
387
 
2558 chandransh 388
		default:
4495 rajveer 389
			maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Unknown state, let's disallow any untoward actions.
2558 chandransh 390
			break;
306 ashish 391
		}
392
	}
393
 
4495 rajveer 394
	private void maskButtonsForWE(boolean accept, boolean reject, boolean notavailable, boolean printInv, boolean billing, boolean acceptdoa, boolean validatedoa, boolean printAllInvoice, boolean validatereturnproduct){
4367 rajveer 395
	    //verifyOrder.setEnabled(verify);
3065 chandransh 396
	    acceptOrder.setEnabled(accept);
306 ashish 397
		notAvailable.setEnabled(notavailable);
2449 chandransh 398
		printInvoice.setEnabled(printInv);
306 ashish 399
		addBillingInfo.setEnabled(billing);
2610 chandransh 400
		receiveReturn.setEnabled(acceptdoa);
2509 chandransh 401
		validateDOA.setEnabled(validatedoa);
402
		rejectOrder.setEnabled(reject);
4363 rajveer 403
		printAllInvoices.setEnabled(printAllInvoice);
4495 rajveer 404
		validateReturnProduct.setEnabled(validatereturnproduct);
306 ashish 405
	}
2509 chandransh 406
 
8303 amar.kumar 407
	private void maskButtonsForWM(boolean accept, boolean notavailable, boolean updateColor, boolean reject, boolean printAllInvoice, boolean printInv, boolean splitSourceOrder){
408
	    acceptOrder.setEnabled(accept);
409
		notAvailable.setEnabled(notavailable);
410
		changeColor.setEnabled(updateColor);
411
		rejectOrder.setEnabled(reject);
412
		printAllInvoices.setEnabled(printAllInvoice);
413
		printInvoice.setEnabled(printInv);
414
		splitEbayOrder.setEnabled(splitSourceOrder);
415
	}
416
 
417
	private void initTableForWM() {
418
		 if(transaction.isDoaFlag()){
419
		    flagOrder.setText("Unflag");
420
		 } else {
421
		    	flagOrder.setText("Flag");
422
		 }
423
	    requestPickup.setText("Request Pick-up No");
424
	    authorizePickup.setText("Confirm Pick-up");
425
	    reshipOrder.setText("Reship");
426
	    markLostInTransit.setText("Lost In Transit");
427
	    refundOrder.setText("Refund");
428
	    provisionallyCapturePaymentForOrder.setText("Capture provisionally");
429
	    unacceptOrder.setText("Unaccept");
430
 
431
	    header.setWidget(1, 0, flagOrder);
432
	    header.setWidget(1, 1, requestPickup);
433
	    header.setWidget(1, 2, authorizePickup);
434
	    header.setWidget(1, 3, reshipOrder);
435
	    header.setWidget(1, 4, markLostInTransit);
436
	    header.setWidget(1, 5, provisionallyCapturePaymentForOrder);
437
	    header.setWidget(1, 6, refundOrder);
438
	    //header.setWidget(1, 7, unacceptOrder);
439
 
440
	    addWeight.setText("Add weight");
441
	    changeColor.setText("Change Color WH Jacket Courier");
442
	    addDelayReason.setText("Add Delay Reason");
443
	    markDelivered.setText("Mark Delivered");
444
	    markRtoInTransit.setText("Mark RTO");
445
//		changeJacketNumber.setText("Change Jacket");
446
//		shiftWarehouse.setText("Shift Warehouse");
447
	    splitFreebieOrder.setText("Split Freebie Order");
448
	    changeFreebieItem.setText("Change Freebie Item");
449
	    splitEbayOrder.setText("Split Ebay Order");
450
 
451
	    header.setWidget(2, 0, addWeight);
452
	    header.setWidget(2, 1, changeColor);
453
	    header.setWidget(2, 2, addDelayReason);
454
	    header.setWidget(2, 3, markDelivered);
455
	    header.setWidget(2, 4, markRtoInTransit);
456
	    header.setWidget(2, 5, splitFreebieOrder);
457
	    header.setWidget(2, 6, changeFreebieItem);
458
	    if(order.getSource().equals("EBAY")) {
459
	    	header.setWidget(2, 5, splitEbayOrder);
460
	    	if(order.getQuantity()<2) {
461
	    		splitEbayOrder.setEnabled(false);
462
	    	}
463
	    }
464
	    if(order.getTotalWeight() != 0)
465
	        addWeight.setEnabled(false);
466
 
467
	    if(order.getFreebieItemId() == 0) {
468
	        splitFreebieOrder.setEnabled(false);
469
	        changeFreebieItem.setEnabled(false);
470
	    }
471
 
472
	    registerButtonHandlersForAdmin();
473
		implementMaskForWM();
474
	}
475
 
2509 chandransh 476
	private void initTableForAdmin() {
477
	    if(transaction.isDoaFlag()){
478
	    	flagOrder.setText("Unflag");
479
	    } else {
480
	    	flagOrder.setText("Flag");
481
	    }
482
 
483
	    requestPickup.setText("Request Pick-up No");
4455 rajveer 484
	    authorizePickup.setText("Confirm Pick-up");
2509 chandransh 485
	    reshipOrder.setText("Reship");
4666 rajveer 486
	    markLostInTransit.setText("Lost In Transit");
2509 chandransh 487
	    refundOrder.setText("Refund");
4545 rajveer 488
	    provisionallyCapturePaymentForOrder.setText("Capture provisionally");
6019 rajveer 489
	    unacceptOrder.setText("Unaccept");
2509 chandransh 490
 
2558 chandransh 491
	    header.setWidget(1, 0, flagOrder);
492
	    header.setWidget(1, 1, requestPickup);
493
	    header.setWidget(1, 2, authorizePickup);
494
	    header.setWidget(1, 3, reshipOrder);
4666 rajveer 495
	    header.setWidget(1, 4, markLostInTransit);
4421 mandeep.dh 496
	    header.setWidget(1, 5, provisionallyCapturePaymentForOrder);
2558 chandransh 497
	    header.setWidget(1, 6, refundOrder);
6019 rajveer 498
	    //header.setWidget(1, 7, unacceptOrder);
2509 chandransh 499
 
3463 chandransh 500
	    addWeight.setText("Add weight");
7562 rajveer 501
	    changeColor.setText("Change Color WH Jacket Courier");
3553 chandransh 502
	    addDelayReason.setText("Add Delay Reason");
4712 rajveer 503
	    markDelivered.setText("Mark Delivered");
6019 rajveer 504
	    markRtoInTransit.setText("Mark RTO");
7561 rajveer 505
//	    changeJacketNumber.setText("Change Jacket");
506
//	    shiftWarehouse.setText("Shift Warehouse");
7190 amar.kumar 507
	    splitFreebieOrder.setText("Split Freebie Order");
7822 amar.kumar 508
	    changeFreebieItem.setText("Change Freebie Item");
8182 amar.kumar 509
	    splitEbayOrder.setText("Split Ebay Order");
3463 chandransh 510
 
511
	    header.setWidget(2, 0, addWeight);
512
	    header.setWidget(2, 1, changeColor);
3553 chandransh 513
	    header.setWidget(2, 2, addDelayReason);
4712 rajveer 514
	    header.setWidget(2, 3, markDelivered);
6019 rajveer 515
	    header.setWidget(2, 4, markRtoInTransit);
7561 rajveer 516
//	    header.setWidget(2, 5, changeJacketNumber);
517
//	    header.setWidget(2, 6, shiftWarehouse);
518
	    header.setWidget(2, 5, splitFreebieOrder);
7822 amar.kumar 519
	    header.setWidget(2, 6, changeFreebieItem);
8182 amar.kumar 520
	    if(order.getSource().equals("EBAY")) {
521
	    	header.setWidget(2, 5, splitEbayOrder);
8257 amar.kumar 522
	    	if(order.getQuantity()<2) {
523
	    		splitEbayOrder.setEnabled(false);
524
	    	}
8182 amar.kumar 525
	    }
3463 chandransh 526
	    if(order.getTotalWeight() != 0)
527
	        addWeight.setEnabled(false);
528
 
7192 amar.kumar 529
	    if(order.getFreebieItemId() == 0) {
7191 amar.kumar 530
	        splitFreebieOrder.setEnabled(false);
7822 amar.kumar 531
	        changeFreebieItem.setEnabled(false);
7191 amar.kumar 532
	    }
533
 
2509 chandransh 534
	    registerButtonHandlersForAdmin();
3729 chandransh 535
		implementMaskForAdmin();
2509 chandransh 536
	}
306 ashish 537
 
2509 chandransh 538
	private void registerButtonHandlersForAdmin(){
539
		flagOrder.addClickHandler(new ClickHandler() {
540
 
541
			@Override
542
			public void onClick(ClickEvent event) {
543
				if(flagOrder.isEnabled()){
544
					eventbus.fireEvent(new FlagOrderEvent(order));
545
				}
546
			}
547
		});
548
 
549
		requestPickup.addClickHandler(new ClickHandler() {
550
 
551
			@Override
552
			public void onClick(ClickEvent event) {
2513 chandransh 553
				if(requestPickup.isEnabled()){
554
					GWT.log("Raising a pickup request for: " + order.getOrderId());
4578 rajveer 555
					ChoosePickupProviderBox box = new ChoosePickupProviderBox(eventbus, order, providers);
556
					box.center();
2513 chandransh 557
				}
2509 chandransh 558
			}
559
		});
560
 
561
		authorizePickup.addClickHandler(new ClickHandler() {
562
 
563
			@Override
564
			public void onClick(ClickEvent event) {
2526 chandransh 565
				if(!authorizePickup.isEnabled())
566
					return;
4603 rajveer 567
				PickupAuthorizationInfoBox box = new PickupAuthorizationInfoBox(eventbus, order, providers);
2526 chandransh 568
				box.center();
2509 chandransh 569
			}
570
		});
571
 
2628 chandransh 572
		reshipOrder.addClickHandler(new ClickHandler() {
573
 
574
			@Override
575
			public void onClick(ClickEvent event) {
576
				if(reshipOrder.isEnabled()){
577
					GWT.log("Reshipping the order: " + order.getOrderId());
578
					eventbus.fireEvent(new ReshipOrderEvent(order));
579
				}
580
			}
581
		});
4421 mandeep.dh 582
 
4666 rajveer 583
		markLostInTransit.addClickHandler(new ClickHandler() {
584
 
585
			@Override
586
			public void onClick(ClickEvent event) {
587
				if(markLostInTransit.isEnabled()){
588
					GWT.log("Mark Lost in Transit to the order: " + order.getOrderId());
589
					eventbus.fireEvent(new LostInTransitEvent(order));
590
				}
591
			}
592
		});
593
 
594
		provisionallyCapturePaymentForOrder.addClickHandler(new ClickHandler() {
4421 mandeep.dh 595
 
596
	        @Override
597
	        public void onClick(ClickEvent event) {
598
	            if(provisionallyCapturePaymentForOrder.isEnabled()) {
599
	                GWT.log("Provisionally capturing payment for order: " + order.getOrderId());
600
	                eventbus.fireEvent(new ProvisionalCaptureEvent(order));
601
	            }
602
	        }
603
	    });
604
 
2509 chandransh 605
		refundOrder.addClickHandler(new ClickHandler() {
606
 
607
			@Override
608
			public void onClick(ClickEvent event) {
2747 chandransh 609
				if(refundOrder.isEnabled()){
610
					RejectReasonBox box = new RejectReasonBox(eventbus, order, user);
2558 chandransh 611
					//box.clear();
4092 chandransh 612
					box.center();
2558 chandransh 613
				}
2509 chandransh 614
			}
615
		});
3463 chandransh 616
 
617
		addWeight.addClickHandler(new ClickHandler() {
618
 
619
            @Override
620
            public void onClick(ClickEvent event) {
621
                if(addWeight.isEnabled()){
622
                    AddWeightBox box = new AddWeightBox(eventbus, order);
623
                    box.center();
624
                }
625
            }
626
        });
627
 
628
		changeColor.addClickHandler(new ClickHandler() {
629
 
630
            @Override
631
            public void onClick(ClickEvent event) {
3473 chandransh 632
                if(changeColor.isEnabled()){
633
                    ChooseColorBox box = new ChooseColorBox(eventbus, order);
634
                    box.center();
635
                }
3463 chandransh 636
            }
637
        });
638
 
3553 chandransh 639
		addDelayReason.addClickHandler(new ClickHandler() {
640
 
641
            @Override
642
            public void onClick(ClickEvent event) {
643
                AddDelayReasonBox box = new AddDelayReasonBox(eventbus, order);
644
                box.center();
645
            }
646
        });
647
 
4712 rajveer 648
		markDelivered.addClickHandler(new ClickHandler() {
649
 
650
            @Override
651
            public void onClick(ClickEvent event) {
652
                MarkDeliveredBox box = new MarkDeliveredBox(eventbus, order);
653
                box.center();
654
            }
655
        });
656
 
6019 rajveer 657
		markRtoInTransit.addClickHandler(new ClickHandler() {
658
 
659
            @Override
660
            public void onClick(ClickEvent event) {
661
                eventbus.fireEvent(new MarkRtoInTransitEvent(order));
662
            }
663
        });
664
 
7561 rajveer 665
//		changeJacketNumber.addClickHandler(new ClickHandler() {
666
//            
667
//            @Override
668
//            public void onClick(ClickEvent event) {
669
//            	ChangeJacketBox box = new ChangeJacketBox(eventbus, order);
670
//                box.center();
671
//            }
672
//        });
6019 rajveer 673
 
674
		unacceptOrder.addClickHandler(new ClickHandler() {
675
 
676
			@Override
677
			public void onClick(ClickEvent event) {
678
				if(unacceptOrder.isEnabled())
679
					eventbus.fireEvent(new UnacceptOrderEvent(order));
680
			}
681
		});
682
 
683
 
7561 rajveer 684
//		shiftWarehouse.addClickHandler(new ClickHandler() {
685
//            
686
//            @Override
687
//            public void onClick(ClickEvent event) {
688
//                if(shiftWarehouse.isEnabled()){
689
//                    ChooseWarehouseBox box = new ChooseWarehouseBox(eventbus, order);
690
//                    box.center();
691
//                }
692
//            }
693
//        });
7190 amar.kumar 694
 
695
		splitFreebieOrder.addClickHandler(new ClickHandler() {
696
 
697
            @Override
698
            public void onClick(ClickEvent event) {
699
                if(splitFreebieOrder.isEnabled()){
700
                    SplitFreebieOrderBox box = new SplitFreebieOrderBox(eventbus, order);
701
                    box.center();
702
                }
703
            }
704
        });
7822 amar.kumar 705
 
8182 amar.kumar 706
		splitEbayOrder.addClickHandler(new ClickHandler() {
707
 
708
            @Override
709
            public void onClick(ClickEvent event) {
710
                if(splitEbayOrder.isEnabled()){
711
                    SplitEbayOrderBox box = new SplitEbayOrderBox(eventbus, order);
712
                    box.center();
713
                }
714
            }
715
        });
716
 
7822 amar.kumar 717
		changeFreebieItem.addClickHandler(new ClickHandler() {
718
 
719
            @Override
720
            public void onClick(ClickEvent event) {
721
                if(changeFreebieItem.isEnabled()){
722
                    ChangeFreebieItemBox box = new ChangeFreebieItemBox(eventbus, order);
723
                    box.center();
724
                }
725
            }
726
        });
2509 chandransh 727
	}
728
 
729
	private void implementMaskForAdmin(){
730
		switch(mask){
4421 mandeep.dh 731
        case CAPTURE_IN_PROCESS:
4682 rajveer 732
            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 733
            break;
734
        case VERIFICATION_PENDING:
3729 chandransh 735
        case NEW:
736
        case NO_STOCK:
737
        case ACCEPT:
738
        case BILL:
4682 rajveer 739
			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 740
			break;
2509 chandransh 741
		case DELIVERED:
4666 rajveer 742
			maskButtonsForAdmin(false, false, false, false, false, true, false, false);	//Allow the OM to flag and request pickup.
4455 rajveer 743
			break;
744
		case DOA_REQUEST_AUTHORIZED:	
4666 rajveer 745
			maskButtonsForAdmin(true, true, false, false, false, true, false, false);	//Allow the OM to flag and request pickup.
2509 chandransh 746
			break;
747
		case DOA_PICKUP_REQUESTED:
4666 rajveer 748
			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 749
			break;
2610 chandransh 750
		case DOA_RETURNED:
2509 chandransh 751
		case SALES_RETURNED:
4666 rajveer 752
			maskButtonsForAdmin(false, false, false, true, true, true, false, false);	//Allow the OM to either reship the order or refund it
2509 chandransh 753
			break;
4666 rajveer 754
		case SHIP:
755
			maskButtonsForAdmin(false, false, false, false, false, true, false, true);	//Allow the OM to either reship the order or refund it
756
			break;
2558 chandransh 757
		default:
4666 rajveer 758
			maskButtonsForAdmin(false, false, false, false, false, true, false, false);	//Unknown state. Let's not allow any untoward actions.
2558 chandransh 759
			break;
2509 chandransh 760
		}
761
	}
762
 
4421 mandeep.dh 763
	private void maskButtonsForAdmin(boolean flag, boolean reqPickup, boolean authPickup, boolean reship,
4666 rajveer 764
	                                 boolean refund, boolean printInv, boolean provisionallyCapturePayment, boolean lostInTransit)
4421 mandeep.dh 765
	{
2509 chandransh 766
		flagOrder.setEnabled(flag);
767
		requestPickup.setEnabled(reqPickup);
768
		authorizePickup.setEnabled(authPickup);
769
		reshipOrder.setEnabled(reship);
4421 mandeep.dh 770
		provisionallyCapturePaymentForOrder.setEnabled(provisionallyCapturePayment);
2509 chandransh 771
		refundOrder.setEnabled(refund);
4309 rajveer 772
		printInvoice.setEnabled(printInv);
4666 rajveer 773
		markLostInTransit.setEnabled(lostInTransit);
2509 chandransh 774
	}
775
 
306 ashish 776
	private void loadOrderDetails(){
7198 amar.kumar 777
		if(transaction.getDealText()!=null &&!transaction.getDealText().isEmpty()) {
778
			orderDetails1.add(getHorizontalPanel("DEAL TEXT:    ", transaction.getDealText()));
779
		}
966 chandransh 780
		orderDetails1.add(getHorizontalPanel("PRODUCT GROUP: ", transaction.getProductGroup()));
781
		orderDetails1.add(getHorizontalPanel("BRAND:   	     ", transaction.getBrand()));
782
		orderDetails1.add(getHorizontalPanel("MODEL:         ", getModelDisplayName(transaction)));
783
		orderDetails1.add(getHorizontalPanel("Item ID:       ", transaction.getItemId()+""));
4175 rajveer 784
 
3553 chandransh 785
		orderDetails1.add(getHorizontalPanel("DELAY REASON:  ", transaction.getDelayReason()));
4004 chandransh 786
		orderDetails1.add(getHorizontalPanel("ALERT:         ", transaction.getAlert().toString()));
306 ashish 787
 
966 chandransh 788
		orderDetails2.add(getHorizontalPanel("NAME:          ", transaction.getCustomerName()));
789
		orderDetails2.add(getHorizontalPanel("ADDRESS:       ", getDisplayAddress(transaction)));
790
		orderDetails2.add(getHorizontalPanel("MOBILE NUMBER: ", transaction.getCustomerMobileNumber()));
7198 amar.kumar 791
		if(transaction.getExtraInfo()!=null && !transaction.getExtraInfo().isEmpty()) {
792
			orderDetails2.add(getHorizontalPanel("EXTRA INFO: ", transaction.getExtraInfo()));
793
		}
306 ashish 794
 
966 chandransh 795
		orderDetails3.add(getHorizontalPanel("TOTAL WEIGHT:      ", transaction.getTotalWeight()+""));
796
		orderDetails3.add(getHorizontalPanel("TOTAL AMOUNT(Rs):  ", transaction.getTotalAmount()+""));
5276 mandeep.dh 797
        orderDetails3.add(getHorizontalPanel("FULFIL FROM:       ", transaction.getPickFromWarehouse()+""));
5527 anupam.sin 798
        orderDetails3.add(getHorizontalPanel("ORDER TYPE:       ", transaction.getOrderType()+""));
5387 rajveer 799
        if(transaction.getQuantity()>1)
800
        	orderDetails3.add(getHorizontalPanel("BULK ORDER:          ", transaction.getQuantity()+""));
7198 amar.kumar 801
        if(transaction.getFreebieItemId()>0)
802
        	orderDetails3.add(getHorizontalPanel("FREEBIE ITEMID:       ", transaction.getFreebieItemId()+""));
5527 anupam.sin 803
 
966 chandransh 804
		orderDetails4.add(getHorizontalPanel("AIRWAY BILL NO:  ", transaction.getAirwayBillNo()));
805
		orderDetails4.add(getHorizontalPanel("INVOICE NUMBER:  ", transaction.getInvoiceNumber()));
806
		orderDetails4.add(getHorizontalPanel("JACKET NUMBER:   ", transaction.getJacketNumber() + ""));
2781 chandransh 807
        orderDetails4.add(getHorizontalPanel("ITEM NO:         ", getDisplayNameForNullableString(transaction.getItemNumber())));
808
        orderDetails4.add(getHorizontalPanel("IMEI NO:         ", transaction.getImeiNumber() + ""));
809
 
966 chandransh 810
		orderDetails4.add(getHorizontalPanel("BILLED BY:       ", transaction.getBilledBy()));		
811
	}
639 chandransh 812
 
966 chandransh 813
	private HorizontalPanel getHorizontalPanel(String labelText, String valueText) {
814
		HorizontalPanel hpanel = new HorizontalPanel();
639 chandransh 815
		hpanel.setSpacing(5);
966 chandransh 816
		hpanel.add(new Label(labelText));
817
		hpanel.add(new Label(valueText));
639 chandransh 818
		hpanel.setCellWidth(hpanel.getWidget(0), "128px");
819
		hpanel.setCellWidth(hpanel.getWidget(1), "128px");
820
		hpanel.getWidget(0).setStyleName(selectionStyle.blueLabel());
821
		hpanel.getWidget(1).setStyleName(selectionStyle.greenLabel());
966 chandransh 822
		return hpanel;
823
	}
306 ashish 824
 
966 chandransh 825
	private String getModelDisplayName(Order order){
826
		String modelName = "";
827
		if(order.getModelName()!=null)
828
			modelName = order.getModelName() + " ";
829
		if(order.getModelNumber()!=null)
830
			modelName = modelName + order.getModelNumber();
831
		if(order.getColor()!=null)
832
			modelName = modelName + " (" + order.getColor() + ")";
833
		return modelName;
306 ashish 834
	}
966 chandransh 835
 
836
	private String getDisplayAddress(Order order){
837
		StringBuilder displayAddress = new StringBuilder();
838
		displayAddress.append(order.getCustomerAddress1() + "\n");
839
		displayAddress.append(order.getCustomerAddress2() + "\n");
840
		displayAddress.append(order.getCustomerCity() + "\n");
841
		displayAddress.append(order.getCustomerState() + "   PIN - " +  order.getCustomerPincode());
842
		return displayAddress.toString();
843
	}
2781 chandransh 844
 
845
    private String getDisplayNameForNullableString(String s) {
846
        if (s == null)
847
            return "";
848
        return s;
849
    }
167 ashish 850
}