Subversion Repositories SmartDukaan

Rev

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