Subversion Repositories SmartDukaan

Rev

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