Subversion Repositories SmartDukaan

Rev

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