Subversion Repositories SmartDukaan

Rev

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