Rev 21249 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.hotspot.dashbaord.client.inbox;import in.shop2020.hotspot.dashbaord.client.event.AcceptOrderEvent;import in.shop2020.hotspot.dashbaord.client.event.FlagOrderEvent;import in.shop2020.hotspot.dashbaord.client.event.LostInTransitEvent;import in.shop2020.hotspot.dashbaord.client.event.MarkRtoInTransitEvent;import in.shop2020.hotspot.dashbaord.client.event.NostockOrderEvent;import in.shop2020.hotspot.dashbaord.client.event.ProvisionalCaptureEvent;import in.shop2020.hotspot.dashbaord.client.event.ReshipOrderEvent;import in.shop2020.hotspot.dashbaord.client.event.UnacceptOrderEvent;import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;import in.shop2020.hotspot.dashbaord.shared.actions.DetailsMask;import in.shop2020.hotspot.dashbaord.shared.actions.Order;import in.shop2020.hotspot.dashbaord.shared.actions.UserType;import java.util.Map;import net.customware.gwt.dispatch.client.DispatchAsync;import org.enunes.gwt.mvp.client.EventBus;import com.google.gwt.core.client.GWT;import com.google.gwt.event.dom.client.ClickEvent;import com.google.gwt.event.dom.client.ClickHandler;import com.google.gwt.resources.client.CssResource;import com.google.gwt.uibinder.client.UiBinder;import com.google.gwt.uibinder.client.UiField;import com.google.gwt.user.client.Window;import com.google.gwt.user.client.ui.Button;import com.google.gwt.user.client.ui.FlexTable;import com.google.gwt.user.client.ui.HorizontalPanel;import com.google.gwt.user.client.ui.Label;import com.google.gwt.user.client.ui.ResizeComposite;import com.google.gwt.user.client.ui.VerticalPanel;import com.google.gwt.user.client.ui.Widget;import com.google.gwt.user.client.ui.DialogBox;public class OrderDetails extends ResizeComposite{public interface Listener{void onClick();}interface OrderDetailsUiBinder extends UiBinder<Widget, OrderDetails>{ }interface SelectionStyle extends CssResource{String blueLabel();String greenLabel();}private static final OrderDetailsUiBinder binder = GWT.create(OrderDetailsUiBinder.class);@UiField FlexTable header;@UiField FlexTable table;@UiField HorizontalPanel orderDetails;@UiField VerticalPanel orderDetails1;@UiField VerticalPanel orderDetails2;@UiField VerticalPanel orderDetails3;@UiField VerticalPanel orderDetails4;@UiField VerticalPanel orderDetails5;@UiField SelectionStyle selectionStyle;private final EventBus eventbus;private Order order;private Order transaction;//Buttons for the Warehouse Executive//private Button verifyOrder = new Button();private Button acceptOrder = new Button();private Button rejectOrder = new Button();private Button printAllInvoices = new Button();private Button notAvailable= new Button();private Button addBillingInfo= new Button();private Button printInvoice = new Button();private Button receiveReturn = new Button();private Button validateDOA = new Button();private Button validateReturnProduct = new Button();//Buttons for the Admin to track orderprivate Button flagOrder = new Button();private Button requestPickup = new Button();private Button authorizePickup = new Button();private Button refundOrder = new Button();private Button reshipOrder = new Button();private Button markLostInTransit = new Button();private Button provisionallyCapturePaymentForOrder = new Button();//Buttons for the Admin to edit order detailsprivate Button addWeight = new Button();private Button changeColor = new Button();private Button addDelayReason = new Button();private Button markDelivered = new Button();private Button markRtoInTransit = new Button();private Button unacceptOrder = new Button();// private Button changeJacketNumber = new Button();// private Button shiftWarehouse = new Button();private Button splitFreebieOrder = new Button();private Button changeFreebieItem = new Button();private Button splitEbayOrder = new Button();private String user;private DetailsMask mask;private long warehouseID;private UserType userType;private BillingType billingType;private Map<Long, String> warehouses;private Map<Long, String> providers;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){this.eventbus = eventbus;this.order = order;this.transaction = order2;this.mask = mask;this.user = user;this.warehouseID = warehouseID;this.userType = userType;this.billingType = billingType;this.warehouses = warehouses;this.providers = providers;initWidget(binder.createAndBindUi(this));if(this.userType != UserType.WAREHOUSE_OBSERVER) {initTableForWE();}if(this.userType == UserType.ADMIN){initTableForAdmin();} else if(this.userType == UserType.WAREHOUSE_MONITOR){initTableForWM();}loadOrderDetails();}private void initTableForWE() {header.getColumnFormatter().setWidth(0, "120px");header.getColumnFormatter().setWidth(1, "120px");header.getColumnFormatter().setWidth(2, "120px");header.getColumnFormatter().setWidth(3, "120px");header.getColumnFormatter().setWidth(4, "120px");header.getColumnFormatter().setWidth(5, "120px");header.getColumnFormatter().setWidth(6, "120px");header.getColumnFormatter().setWidth(7, "120px");header.getColumnFormatter().setWidth(8, "120px");//verifyOrder.setText("Verify");acceptOrder.setText("Accept");notAvailable.setText("Out Of Stock");addBillingInfo.setText("Bill");if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)addBillingInfo.setVisible(false);printInvoice.setText("Print Invoice");receiveReturn.setText("Receive Return");validateDOA.setText("Validate DOA");validateReturnProduct.setText("Product Usable?");rejectOrder.setText("Cancel Order");printAllInvoices.setText("Print All Invoices");//header.setWidget(0, 0, verifyOrder);header.setWidget(0, 0, acceptOrder);header.setWidget(0, 1, notAvailable);header.setWidget(0, 2, addBillingInfo);header.setWidget(0, 3, printInvoice);header.setWidget(0, 4, receiveReturn);header.setWidget(0, 5, validateDOA);header.setWidget(0, 6, rejectOrder);header.setWidget(0, 7, printAllInvoices);header.setWidget(0, 8, validateReturnProduct);markRtoInTransit.setText("Mark RTO");header.setWidget(2, 4, markRtoInTransit);registerButtonHandlersForWE();if(this.userType == UserType.WAREHOUSE_EXECUTIVE || this.userType == UserType.ADMIN){implementMaskForWE();} else if(this.userType == UserType.WAREHOUSE_MONITOR){implementMaskForWM();}}private void registerButtonHandlersForWE(){/*verifyOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(verifyOrder.isEnabled()){GWT.log("Verify order event fired");eventbus.fireEvent(new VerifyOrderEvent(order));}}});*/acceptOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!acceptOrder.isEnabled())return;if(order.getAcceptTogetherOrdersMap()!=null && order.getAcceptTogetherOrdersMap().size()==1){eventbus.fireEvent(new AcceptOrderEvent(order));}if(order.getAcceptTogetherOrdersMap()!=null && order.getAcceptTogetherOrdersMap().size()>1){AcceptOrderConfirmationBox acceptConfirmBox = new AcceptOrderConfirmationBox(eventbus, order, order.getAcceptTogetherOrdersMap());acceptConfirmBox.setPopupPosition(Window.getClientWidth()/15, Window.getClientHeight()/15);acceptConfirmBox.show();}}});notAvailable.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(notAvailable.isEnabled())eventbus.fireEvent(new NostockOrderEvent(order));}});rejectOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(rejectOrder.isEnabled()){RejectReasonBox box = new RejectReasonBox(eventbus, order, user);box.center();}}});addBillingInfo.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!addBillingInfo.isEnabled())return;BillingInfoBox box = new BillingInfoBox(eventbus, order, user);box.center();}});printInvoice.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!printInvoice.isEnabled())return;if(order.getJacketNumber()==0 && (billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)) {long total_quantity_to_bill = 0;boolean hasNonSerialized = false;for(Long orderId : order.getBillTogetherOrdersMap().keySet()){boolean hasSerialized = Boolean.parseBoolean(order.getBillTogetherOrdersMap().get(orderId).get("IsSerialized"));if (hasSerialized){total_quantity_to_bill += (long)Double.parseDouble(order.getBillTogetherOrdersMap().get(orderId).get("Quantity"));}else{hasNonSerialized = true;}}DialogBox box;if (total_quantity_to_bill >= 10 && !hasNonSerialized){box = new BulkBillingInfoBox(eventbus, order, user, billingType, warehouses, order.getBillTogetherOrdersMap());}else{box = new JacketInfoBox(eventbus, order, user, billingType, warehouses, order.getBillTogetherOrdersMap());}box.setPopupPosition(Window.getClientWidth()/10, Window.getClientHeight()/10);box.show();} else{String invoiceGenerationUrl = null;if(warehouseID == 0) {invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&warehouse=" + order.getWarehouseId() + "&withBill=true" ;if(order.getLogisticsTransactionId()!=null){invoiceGenerationUrl = invoiceGenerationUrl + "&logisticsTxnId=" + order.getLogisticsTransactionId();}} else {invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&warehouse=" + warehouseID ;if(order.getLogisticsTransactionId()!=null){invoiceGenerationUrl = invoiceGenerationUrl + "&logisticsTxnId=" + order.getLogisticsTransactionId();}if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)invoiceGenerationUrl += "&withBill=true";elseinvoiceGenerationUrl += "&withBill=false";}Window.open(invoiceGenerationUrl, "newWindowName", "window features.");}}});printAllInvoices.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!printAllInvoices.isEnabled()){return;}else{String invoiceGenerationUrl = GWT.getHostPageBaseURL() + "invoice/?id=" + order.getOrderId() + "&printAll=true&warehouse=" + warehouseID + "&logisticsTxnId=" + order.getLogisticsTransactionId();if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)invoiceGenerationUrl += "&withBill=true";elseinvoiceGenerationUrl += "&withBill=false";Window.open(invoiceGenerationUrl, "newWindowName", "window features.");}}});receiveReturn.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!receiveReturn.isEnabled())return;ReceiveReturnBox box = new ReceiveReturnBox(eventbus, order);box.center();}});validateDOA.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!validateDOA.isEnabled())return;DoaValidationBox box = new DoaValidationBox(eventbus, order);box.center();}});validateReturnProduct.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!validateReturnProduct.isEnabled())return;ProductValidationBox box = new ProductValidationBox(eventbus, order);box.center();}});markRtoInTransit.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {eventbus.fireEvent(new MarkRtoInTransitEvent(order));}});}private void implementMaskForWM(){/*boolean accept, boolean notavailable, boolean updateColor, boolean reject,boolean printAllInvoice, boolean printInv, boolean splitSourceOrder, boolean markDelivery,boolean reqPickup, boolean authPickup, boolean reship, boolean lostInTransit, boolean acceptdoa,boolean validatedoa, boolean validatereturnproduct*///TODO Currently a lot of options have been disabled for this case. This would need a revisit based on discussions and requirementsprintAllInvoices.setEnabled(false);addBillingInfo.setEnabled(false);printInvoice.setEnabled(false);//receiveReturn.setEnabled(false);//validateDOA.setEnabled(false);//validateReturnProduct.setEnabled(false);flagOrder.setEnabled(false);//requestPickup.setEnabled(false);//authorizePickup.setEnabled(false);refundOrder.setEnabled(false);//reshipOrder.setEnabled(false);//markLostInTransit.setEnabled(false);provisionallyCapturePaymentForOrder.setEnabled(false);addWeight.setEnabled(false);//markDelivered.setEnabled(false);//markRtoInTransit.setEnabled(false);changeFreebieItem.setEnabled(false);switch(mask){case CAPTURE_IN_PROCESS:maskButtonsForWM(false, false, false, false, false, false, false, false,false, false, false, false, false, false, false);break;case VERIFICATION_PENDING:case NEW:case NO_STOCK:case ACCEPT:maskButtonsForWM(true, true, true, true, true, false, true, false,false, false, false, false, false, false, false);break;case BILL:maskButtonsForWM(false, true, false, true, false, true, false, true,false, false, false, false, false, false, false);break;case DELIVERED:maskButtonsForWM(false, false, false, false, false, true, false, false,false, false, false, false, false, false, false);case DOA_REQUEST_AUTHORIZED:maskButtonsForWM(false, false, false, false, false, true, false, false,false, false, false, false, false, false, false);case DOA_PICKUP_REQUESTED:maskButtonsForWM(false, false, false, false, false, true, false, false,true, true, false, false, false, false, false);case DOA_RETURNED:case SALES_RETURNED:maskButtonsForWM(false, false, false, false, false, true, false, false,false, false, true, false, false, false, false);case SHIP:maskButtonsForWM(false, false, false, false, false, true, false, true,false, false, false, true, false, false, false);break;default:maskButtonsForWM(false, false, false, false, false, true, false, false,false, false, false, false, false, false, false); //Unknown state. Let's not allow any untoward actions.break;}}private void implementMaskForWE(){switch(mask){case VERIFICATION_PENDING:maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Do not allow the WE to verify the order.break;case CAPTURE_IN_PROCESS:case NEW: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.break;case ACCEPT://TODO: Mask buttons based on the billingTypeif(billingType == BillingType.OURS)maskButtonsForWE(false, false, false, true, true, false, false, false, false); // For our billing, allow the WE to directly print the invoive.elsemaskButtonsForWE(false, false, false, true, true, false, false, true, false); //For external billing, allow the WE to feed the invoice info.break;case REJECT:maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Can't do anything once the order has been rejected.break;case BILL:maskButtonsForWE(false, false, false, true, false, false, false, false, false); //Allow WE to print the invoice for a billed order.break;case SHIP:maskButtonsForWE(false, false, false, false, false, false, false, false, false);break;case NO_STOCK:maskButtonsForWE(true, false, false, false, false, false, false, false, false); //Allow WE to accept a low inventory item.break;case CANCEL_CONFIRMED:maskButtonsForWE(false, true, false, false, false, false, false, false, false); //Allow WE to Cancel a order which is in cancellation pending state.break;case DOA_AWAITED:case SALES_RETURN_AWAITED:maskButtonsForWE(false, false, false, false, false, true, false, false, false); //Allow WE to accept the packet.break;case DOA_RECEIVED:maskButtonsForWE(false, false, false, false, false, false, true, false, false); //Allow WE to validate the DOA certificate.break;case RET_RECEIVED:maskButtonsForWE(false, false, false, false, false, false, false, false, true); //Allow WE to validate the DOA certificate.break;default:maskButtonsForWE(false, false, false, false, false, false, false, false, false); //Unknown state, let's disallow any untoward actions.break;}}private void maskButtonsForWE(boolean accept, boolean reject, boolean notavailable, boolean printInv, boolean billing, boolean acceptdoa, boolean validatedoa, boolean printAllInvoice, boolean validatereturnproduct){//verifyOrder.setEnabled(verify);acceptOrder.setEnabled(accept);notAvailable.setEnabled(notavailable);printInvoice.setEnabled(printInv);addBillingInfo.setEnabled(billing);receiveReturn.setEnabled(acceptdoa);validateDOA.setEnabled(validatedoa);rejectOrder.setEnabled(reject);printAllInvoices.setEnabled(printAllInvoice);validateReturnProduct.setEnabled(validatereturnproduct);}private void maskButtonsForWM(boolean accept, boolean notavailable, boolean updateColor, boolean reject,boolean printAllInvoice, boolean printInv, boolean splitSourceOrder, boolean markDelivery,boolean reqPickup, boolean authPickup, boolean reship, boolean lostInTransit, boolean acceptdoa,boolean validatedoa, boolean validatereturnproduct){acceptOrder.setEnabled(accept);notAvailable.setEnabled(notavailable);changeColor.setEnabled(updateColor);rejectOrder.setEnabled(reject);printAllInvoices.setEnabled(printAllInvoice);printInvoice.setEnabled(printInv);splitEbayOrder.setEnabled(splitSourceOrder);markDelivered.setEnabled(markDelivery);requestPickup.setEnabled(reqPickup);authorizePickup.setEnabled(authPickup);reshipOrder.setEnabled(reship);markLostInTransit.setEnabled(lostInTransit);receiveReturn.setEnabled(acceptdoa);validateDOA.setEnabled(validatedoa);validateReturnProduct.setEnabled(validatereturnproduct);}private void initTableForWM() {if(transaction.isDoaFlag()){flagOrder.setText("Unflag");} else {flagOrder.setText("Flag");}requestPickup.setText("Request Pick-up No");authorizePickup.setText("Confirm Pick-up");reshipOrder.setText("Reship");markLostInTransit.setText("Lost In Transit");refundOrder.setText("Refund");provisionallyCapturePaymentForOrder.setText("Capture provisionally");unacceptOrder.setText("Unaccept");header.setWidget(1, 0, flagOrder);header.setWidget(1, 1, requestPickup);header.setWidget(1, 2, authorizePickup);header.setWidget(1, 3, reshipOrder);header.setWidget(1, 4, markLostInTransit);header.setWidget(1, 5, provisionallyCapturePaymentForOrder);header.setWidget(1, 6, refundOrder);//header.setWidget(1, 7, unacceptOrder);addWeight.setText("Add weight");changeColor.setText("Change Color WH Jacket Courier");addDelayReason.setText("Add Delay Reason");markDelivered.setText("Mark Delivered");markRtoInTransit.setText("Mark RTO");// changeJacketNumber.setText("Change Jacket");// shiftWarehouse.setText("Shift Warehouse");splitFreebieOrder.setText("Split Freebie Order");changeFreebieItem.setText("Change Freebie Item");splitEbayOrder.setText("Split Order");header.setWidget(2, 0, addWeight);header.setWidget(2, 1, changeColor);header.setWidget(2, 2, addDelayReason);header.setWidget(2, 3, markDelivered);header.setWidget(2, 4, markRtoInTransit);header.setWidget(2, 5, splitFreebieOrder);header.setWidget(2, 6, changeFreebieItem);header.setWidget(2, 7, splitEbayOrder);if(order.getQuantity()<2) {splitEbayOrder.setEnabled(false);}if(order.getTotalWeight() != 0)addWeight.setEnabled(false);if(order.getFreebieItemId() == 0) {splitFreebieOrder.setEnabled(false);changeFreebieItem.setEnabled(false);}registerButtonHandlersForAdmin();implementMaskForWM();}private void initTableForAdmin() {if(transaction.isDoaFlag()){flagOrder.setText("Unflag");} else {flagOrder.setText("Flag");}requestPickup.setText("Request Pick-up No");authorizePickup.setText("Confirm Pick-up");reshipOrder.setText("Reship");markLostInTransit.setText("Lost In Transit");refundOrder.setText("Refund");provisionallyCapturePaymentForOrder.setText("Capture provisionally");unacceptOrder.setText("Unaccept");header.setWidget(1, 0, flagOrder);header.setWidget(1, 1, requestPickup);header.setWidget(1, 2, authorizePickup);header.setWidget(1, 3, reshipOrder);header.setWidget(1, 4, markLostInTransit);header.setWidget(1, 5, provisionallyCapturePaymentForOrder);header.setWidget(1, 6, refundOrder);header.setWidget(1, 7, unacceptOrder);addWeight.setText("Add weight");changeColor.setText("Change Color WH Jacket Courier");addDelayReason.setText("Add Delay Reason");markDelivered.setText("Mark Delivered");markRtoInTransit.setText("Mark RTO");// changeJacketNumber.setText("Change Jacket");// shiftWarehouse.setText("Shift Warehouse");splitFreebieOrder.setText("Split Freebie Order");changeFreebieItem.setText("Change Freebie Item");splitEbayOrder.setText("Split Order");header.setWidget(2, 0, addWeight);header.setWidget(2, 1, changeColor);header.setWidget(2, 2, addDelayReason);header.setWidget(2, 3, markDelivered);header.setWidget(2, 4, markRtoInTransit);// header.setWidget(2, 5, changeJacketNumber);// header.setWidget(2, 6, shiftWarehouse);header.setWidget(2, 5, splitFreebieOrder);header.setWidget(2, 6, changeFreebieItem);header.setWidget(2, 7, splitEbayOrder);if(order.getQuantity()<2) {splitEbayOrder.setEnabled(false);}if(order.getTotalWeight() != 0)addWeight.setEnabled(false);if(order.getFreebieItemId() == 0) {splitFreebieOrder.setEnabled(false);changeFreebieItem.setEnabled(false);}registerButtonHandlersForAdmin();implementMaskForAdmin();}private void registerButtonHandlersForAdmin(){flagOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(flagOrder.isEnabled()){eventbus.fireEvent(new FlagOrderEvent(order));}}});requestPickup.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(requestPickup.isEnabled()){GWT.log("Raising a pickup request for: " + order.getOrderId());ChoosePickupProviderBox box = new ChoosePickupProviderBox(eventbus, order, providers);box.center();}}});authorizePickup.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(!authorizePickup.isEnabled())return;PickupAuthorizationInfoBox box = new PickupAuthorizationInfoBox(eventbus, order, providers);box.center();}});reshipOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(reshipOrder.isEnabled()){GWT.log("Reshipping the order: " + order.getOrderId());eventbus.fireEvent(new ReshipOrderEvent(order));}}});markLostInTransit.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(markLostInTransit.isEnabled()){GWT.log("Mark Lost in Transit to the order: " + order.getOrderId());eventbus.fireEvent(new LostInTransitEvent(order));}}});provisionallyCapturePaymentForOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(provisionallyCapturePaymentForOrder.isEnabled()) {GWT.log("Provisionally capturing payment for order: " + order.getOrderId());eventbus.fireEvent(new ProvisionalCaptureEvent(order));}}});refundOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(refundOrder.isEnabled()){RejectReasonBox box = new RejectReasonBox(eventbus, order, user);//box.clear();box.center();}}});addWeight.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(addWeight.isEnabled()){AddWeightBox box = new AddWeightBox(eventbus, order);box.center();}}});changeColor.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(changeColor.isEnabled()){ChooseColorBox box = new ChooseColorBox(eventbus, order);box.center();}}});addDelayReason.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {AddDelayReasonBox box = new AddDelayReasonBox(eventbus, order);box.center();}});markDelivered.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {MarkDeliveredBox box = new MarkDeliveredBox(eventbus, order);box.center();}});markRtoInTransit.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {eventbus.fireEvent(new MarkRtoInTransitEvent(order));}});// changeJacketNumber.addClickHandler(new ClickHandler() {//// @Override// public void onClick(ClickEvent event) {// ChangeJacketBox box = new ChangeJacketBox(eventbus, order);// box.center();// }// });unacceptOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(unacceptOrder.isEnabled()){UnacceptConfirmationBox box = new UnacceptConfirmationBox(eventbus, order);box.center();}}});// shiftWarehouse.addClickHandler(new ClickHandler() {//// @Override// public void onClick(ClickEvent event) {// if(shiftWarehouse.isEnabled()){// ChooseWarehouseBox box = new ChooseWarehouseBox(eventbus, order);// box.center();// }// }// });splitFreebieOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(splitFreebieOrder.isEnabled()){SplitFreebieOrderBox box = new SplitFreebieOrderBox(eventbus, order);box.center();}}});splitEbayOrder.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(splitEbayOrder.isEnabled()){SplitEbayOrderBox box = new SplitEbayOrderBox(eventbus, order);box.center();}}});changeFreebieItem.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {if(changeFreebieItem.isEnabled()){ChangeFreebieItemBox box = new ChangeFreebieItemBox(eventbus, order);box.center();}}});}private void implementMaskForAdmin(){unacceptOrder.setEnabled(false);switch(mask){case CAPTURE_IN_PROCESS: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.break;case VERIFICATION_PENDING:case NEW:case NO_STOCK:case BILL: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.break;case ACCEPT: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.unacceptOrder.setEnabled(true);break;case DELIVERED:maskButtonsForAdmin(false, false, false, false, false, true, false, false); //Allow the OM to flag and request pickup.break;case DOA_REQUEST_AUTHORIZED:maskButtonsForAdmin(true, true, false, false, false, true, false, false); //Allow the OM to flag and request pickup.break;case DOA_PICKUP_REQUESTED:maskButtonsForAdmin(true, true, true, false, false, true, false, false); //Allow the OM to either re-request a pickup no. or authorize pickup by entering onebreak;case DOA_RETURNED:case SALES_RETURNED:maskButtonsForAdmin(false, false, false, true, true, true, false, false); //Allow the OM to either reship the order or refund itbreak;case SHIP:maskButtonsForAdmin(false, false, false, false, false, true, false, true); //Allow the OM to either reship the order or refund itbreak;default:maskButtonsForAdmin(false, false, false, false, false, true, false, false); //Unknown state. Let's not allow any untoward actions.break;}}private void maskButtonsForAdmin(boolean flag, boolean reqPickup, boolean authPickup, boolean reship,boolean refund, boolean printInv, boolean provisionallyCapturePayment, boolean lostInTransit){flagOrder.setEnabled(flag);requestPickup.setEnabled(reqPickup);authorizePickup.setEnabled(authPickup);reshipOrder.setEnabled(reship);provisionallyCapturePaymentForOrder.setEnabled(provisionallyCapturePayment);refundOrder.setEnabled(refund);printInvoice.setEnabled(printInv);markLostInTransit.setEnabled(lostInTransit);}private void loadOrderDetails(){if(transaction.getDealText()!=null &&!transaction.getDealText().isEmpty()) {orderDetails1.add(getHorizontalPanel("DEAL TEXT: ", transaction.getDealText()));}orderDetails1.add(getHorizontalPanel("PRODUCT GROUP: ", transaction.getProductGroup()));orderDetails1.add(getHorizontalPanel("BRAND: ", transaction.getBrand()));orderDetails1.add(getHorizontalPanel("MODEL: ", getModelDisplayName(transaction)));orderDetails1.add(getHorizontalPanel("Item ID: ", transaction.getItemId()+""));orderDetails1.add(getHorizontalPanel("DELAY REASON: ", transaction.getDelayReason()));orderDetails1.add(getHorizontalPanel("ALERT: ", transaction.getAlert().toString()));orderDetails2.add(getHorizontalPanel("NAME: ", transaction.getCustomerName()));orderDetails2.add(getHorizontalPanel("ADDRESS: ", getDisplayAddress(transaction)));orderDetails2.add(getHorizontalPanel("MOBILE NUMBER: ", transaction.getCustomerMobileNumber()));if(transaction.getExtraInfo()!=null && !transaction.getExtraInfo().isEmpty()) {orderDetails2.add(getHorizontalPanel("EXTRA INFO: ", transaction.getExtraInfo()));}orderDetails3.add(getHorizontalPanel("TOTAL WEIGHT: ", transaction.getTotalWeight()+""));orderDetails3.add(getHorizontalPanel("TOTAL AMOUNT(Rs): ", transaction.getTotalAmount()+""));orderDetails3.add(getHorizontalPanel("FULFIL FROM: ", transaction.getPickFromWarehouse()+""));orderDetails3.add(getHorizontalPanel("ORDER TYPE: ", transaction.getOrderType()+""));if(transaction.getQuantity()>1)orderDetails3.add(getHorizontalPanel("BULK ORDER: ", transaction.getQuantity()+""));if(transaction.getFreebieItemId()>0)orderDetails3.add(getHorizontalPanel("FREEBIE ITEMID: ", transaction.getFreebieItemId()+""));if(transaction.getLogisticsTransactionId()!=null && !transaction.getLogisticsTransactionId().isEmpty()){orderDetails3.add(getHorizontalPanel("MASTER ORDER ID: ", transaction.getLogisticsTransactionId()+""));}orderDetails4.add(getHorizontalPanel("AIRWAY BILL NO: ", transaction.getAirwayBillNo()));orderDetails4.add(getHorizontalPanel("INVOICE NUMBER: ", transaction.getInvoiceNumber()));orderDetails4.add(getHorizontalPanel("JACKET NUMBER: ", transaction.getJacketNumber() + ""));orderDetails4.add(getHorizontalPanel("ITEM NO: ", getDisplayNameForNullableString(transaction.getItemNumber())));orderDetails4.add(getHorizontalPanel("IMEI NO: ", transaction.getImeiNumber() + ""));orderDetails4.add(getHorizontalPanel("BILLED BY: ", transaction.getBilledBy()));}private HorizontalPanel getHorizontalPanel(String labelText, String valueText) {HorizontalPanel hpanel = new HorizontalPanel();hpanel.setSpacing(5);hpanel.add(new Label(labelText));hpanel.add(new Label(valueText));hpanel.setCellWidth(hpanel.getWidget(0), "128px");hpanel.setCellWidth(hpanel.getWidget(1), "128px");hpanel.getWidget(0).setStyleName(selectionStyle.blueLabel());hpanel.getWidget(1).setStyleName(selectionStyle.greenLabel());return hpanel;}private String getModelDisplayName(Order order){String modelName = "";if(order.getModelName()!=null)modelName = order.getModelName() + " ";if(order.getModelNumber()!=null)modelName = modelName + order.getModelNumber();if(order.getColor()!=null)modelName = modelName + " (" + order.getColor() + ")";return modelName;}private String getDisplayAddress(Order order){StringBuilder displayAddress = new StringBuilder();displayAddress.append(order.getCustomerAddress1() + "\n");displayAddress.append(order.getCustomerAddress2() + "\n");displayAddress.append(order.getCustomerCity() + "\n");displayAddress.append(order.getCustomerState() + " PIN - " + order.getCustomerPincode());return displayAddress.toString();}private String getDisplayNameForNullableString(String s) {if (s == null)return "";return s;}}