Subversion Repositories SmartDukaan

Rev

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