Subversion Repositories SmartDukaan

Rev

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