Subversion Repositories SmartDukaan

Rev

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