Rev 20773 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.hotspot.dashbaord.client.inbox;import in.shop2020.hotspot.dashbaord.client.event.AddJacketNumberEvent;import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;import in.shop2020.hotspot.dashbaord.shared.actions.Order;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.enunes.gwt.mvp.client.EventBus;import com.google.gwt.event.dom.client.ClickEvent;import com.google.gwt.event.dom.client.ClickHandler;import com.google.gwt.event.dom.client.KeyPressEvent;import com.google.gwt.event.dom.client.KeyPressHandler;import com.google.gwt.user.client.ui.Button;import com.google.gwt.user.client.ui.CheckBox;import com.google.gwt.user.client.ui.DialogBox;import com.google.gwt.user.client.ui.HTML;import com.google.gwt.user.client.ui.HasHorizontalAlignment;import com.google.gwt.user.client.ui.HorizontalPanel;import com.google.gwt.user.client.ui.Label;import com.google.gwt.user.client.ui.ListBox;import com.google.gwt.user.client.ui.ScrollPanel;import com.google.gwt.user.client.ui.TextBox;import com.google.gwt.user.client.ui.VerticalPanel;import com.google.gwt.user.client.ui.Widget;public class JacketInfoBox extends DialogBox {private Label errorLabel = new Label("");//private Label jacketNumberLabel = new Label("Jacket Number");private Label warehousePickSuggestion = new Label("");//private TextBox jacketNumberBox = new TextBox();private Label packageDimensionsLabel = new Label("Package Dimensions");private ListBox packageDimensions = new ListBox();private Label billedByLabel = new Label("Billed By");private Label billNumberLabel = new Label("Bill Number");private TextBox billNumber = new TextBox();// private CheckBox changeInvoiceType = new CheckBox("Bulk Invoice");private VerticalPanel vpanel = new VerticalPanel();private ScrollPanel spanel = new ScrollPanel();private Button submitbutton = new Button("Submit");private Button cancelButton = new Button("Cancel");private Map<Long, List<String>> itemNumbersMap = new HashMap<Long, List<String>>();private Map<Long, List<String>> serialNumbersMap = new HashMap<Long, List<String>>();private Map<Long, List<Long>> freebieWarehouseIdMap = new HashMap<Long, List<Long>>();private Map<Long, List<TextBox>> itemNumbersBoxMap= new HashMap<Long, List<TextBox>>();private Map<Long, List<TextBox>> serialNumbersBoxMap = new HashMap<Long, List<TextBox>>();private Map<Long, List<TextBox>> freebieWarehouseIdBoxMap = new HashMap<Long, List<TextBox>>();private HorizontalPanel hpanel;private Widget tmpLabel;public JacketInfoBox(final EventBus eventBus, final Order order, final String user,final BillingType billingType, Map<Long, String> warehouses, final Map<Long, Map<String, String>> billTogetherOrdersMap){vpanel.add(errorLabel);// jacketNumberBox.addKeyPressHandler(new KeyPressHandler() {// @Override// public void onKeyPress(KeyPressEvent event) {// // TODO Auto-generated method stub// if (!Character.isDigit(event.getCharCode())) {// ((TextBox) event.getSource()).cancelKey();// }// }// });// vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));packageDimensions.addItem("","");packageDimensions.addItem("Box-1 (25 X 16 X 7)","25 X 16 X 7");packageDimensions.addItem("Box-3 (30 X 25 X 11)","30 X 25 X 11");packageDimensions.addItem("Box-A1 (18 X 12.5 X 10)","18 X 12.5 X 10");packageDimensions.addItem("Box-A2 (20 X 17.5 X 12)","20 X 17.5 X 12");packageDimensions.addItem("Box-A3 (22 X 18 X 12)","22 X 18 X 12");vpanel.add(getHorizontalPanel(packageDimensionsLabel, packageDimensions));vpanel.add(getHorizontalPanel(billedByLabel, new Label(user)));if (order.getPickFromWarehouse() != null && billTogetherOrdersMap.size()==1) {warehousePickSuggestion.setText("Pick from WH: " + order.getPickFromWarehouse());vpanel.add(warehousePickSuggestion);}// changeInvoiceType = new CheckBox("BulkInvoice");// changeInvoiceType.setValue(false);// if(!order.getSource().equals("WEBSITE")) {// changeInvoiceType.setEnabled(false);// }////// vpanel.add(changeInvoiceType);if(billingType == BillingType.OURS_EXTERNAL || billingType == BillingType.EXTERNAL){vpanel.add(getHorizontalPanel(billNumberLabel, billNumber));if(order.getInvoiceNumber() != null && !order.getInvoiceNumber().trim().equals("")){billNumber.setText(order.getInvoiceNumber().trim());}}vpanel.add(new HTML("<br>"));hpanel = new HorizontalPanel();hpanel.setSpacing(5);tmpLabel = new Label("Order Id");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");tmpLabel = new Label("Product Name");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "250");tmpLabel = new Label("Quantity");hpanel.add(tmpLabel);// hpanel.setCellWidth(tmpLabel, "50");// tmpLabel = new Label("Item Number");// hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");tmpLabel = new Label("Serial Number");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "200");tmpLabel = new Label("Freebie Warehouse Id");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "200");vpanel.add(hpanel);for(Long orderId : billTogetherOrdersMap.keySet()){List<TextBox> itemNumbersBoxList = new ArrayList<TextBox>();List<TextBox> serialNumbersBoxList = new ArrayList<TextBox>();List<TextBox> freebieWarehouseIdBoxList = new ArrayList<TextBox>();long quantity = (long)Double.parseDouble(billTogetherOrdersMap.get(orderId).get("Quantity"));boolean hasSerialized = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsSerialized"));boolean hasFreebie = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsFreebie"));TextBox itemNumber;TextBox serialNumber;TextBox freebieWarehouseId;if(quantity>1){if(hasSerialized){for(long i=0; i<quantity; i++){hpanel = new HorizontalPanel();hpanel.setSpacing(5);tmpLabel = new Label(orderId+"");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");tmpLabel = new Label(billTogetherOrdersMap.get(orderId).get("ProductName"));hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "250");tmpLabel = new Label("1");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");//hpanel.add(new Label(orderId+""));//hpanel.add(new Label(billTogetherOrdersMap.get(orderId).get("ProductName")));//hpanel.add(new Label("1"));itemNumber = new TextBox();itemNumber.setText("1");serialNumber = new TextBox();freebieWarehouseId = new TextBox();if(!hasFreebie){freebieWarehouseId.setEnabled(false);}freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {@Overridepublic void onKeyPress(KeyPressEvent event) {// TODO Auto-generated method stubif (!Character.isDigit(event.getCharCode())) {((TextBox) event.getSource()).cancelKey();}}});// hpanel.add(itemNumber);// hpanel.setCellWidth(itemNumber, "200");hpanel.add(serialNumber);hpanel.setCellWidth(serialNumber, "200");hpanel.add(freebieWarehouseId);hpanel.setCellWidth(freebieWarehouseId, "200");vpanel.add(hpanel);itemNumbersBoxList.add(itemNumber);serialNumbersBoxList.add(serialNumber);freebieWarehouseIdBoxList.add(freebieWarehouseId);}}else{hpanel = new HorizontalPanel();hpanel.setSpacing(5);tmpLabel = new Label(orderId+"");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");tmpLabel = new Label(billTogetherOrdersMap.get(orderId).get("ProductName"));hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "250");tmpLabel = new Label(quantity+"");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");itemNumber = new TextBox();serialNumber = new TextBox();freebieWarehouseId = new TextBox();serialNumber.setEnabled(false);if(!hasFreebie){freebieWarehouseId.setEnabled(false);}freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {@Overridepublic void onKeyPress(KeyPressEvent event) {// TODO Auto-generated method stubif (!Character.isDigit(event.getCharCode())) {((TextBox) event.getSource()).cancelKey();}}});// hpanel.add(itemNumber);// hpanel.setCellWidth(itemNumber, "200");itemNumber.setText("1");hpanel.add(serialNumber);hpanel.setCellWidth(serialNumber, "200");hpanel.add(freebieWarehouseId);hpanel.setCellWidth(freebieWarehouseId, "200");vpanel.add(hpanel);itemNumbersBoxList.add(itemNumber);serialNumbersBoxList.add(serialNumber);freebieWarehouseIdBoxList.add(freebieWarehouseId);}}else {hpanel = new HorizontalPanel();hpanel.setSpacing(5);tmpLabel = new Label(orderId+"");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");tmpLabel = new Label(billTogetherOrdersMap.get(orderId).get("ProductName"));hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "250");tmpLabel = new Label(quantity+"");hpanel.add(tmpLabel);hpanel.setCellWidth(tmpLabel, "50");itemNumber = new TextBox();serialNumber = new TextBox();freebieWarehouseId = new TextBox();if(!hasSerialized){serialNumber.setEnabled(false);}if(!hasFreebie){freebieWarehouseId.setEnabled(false);}freebieWarehouseId.addKeyPressHandler(new KeyPressHandler() {@Overridepublic void onKeyPress(KeyPressEvent event) {// TODO Auto-generated method stubif (!Character.isDigit(event.getCharCode())) {((TextBox) event.getSource()).cancelKey();}}});// hpanel.add(itemNumber);// hpanel.setCellWidth(itemNumber, "200");itemNumber.setText("1");hpanel.add(serialNumber);hpanel.setCellWidth(serialNumber, "200");hpanel.add(freebieWarehouseId);hpanel.setCellWidth(freebieWarehouseId, "200");vpanel.add(hpanel);itemNumbersBoxList.add(itemNumber);serialNumbersBoxList.add(serialNumber);freebieWarehouseIdBoxList.add(freebieWarehouseId);}//itemNumbersBoxMap, serialNumbersBoxMap, freebieWarehouseIdBoxMapitemNumbersBoxMap.put(orderId, itemNumbersBoxList);serialNumbersBoxMap.put(orderId, serialNumbersBoxList);freebieWarehouseIdBoxMap.put(orderId, freebieWarehouseIdBoxList);}hpanel = new HorizontalPanel();hpanel.setSpacing(5);hpanel.add(submitbutton);hpanel.add(cancelButton);vpanel.add(hpanel);vpanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);setWidget(vpanel);setAutoHideEnabled(false);setGlassEnabled(true);setText("Enter all the details below:");setModal(true);setWidth("1000px");submitbutton.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {long jacketNumber = 1;String itemNumber = "";String serialNumber = "";long freebieWhId = -1;String packageDimension = "";// try {// jacketNumber = Long.parseLong(jacketNumberBox.getText());// } catch(NumberFormatException nfe){// nfe.printStackTrace();// }if(jacketNumber <= 0){errorLabel.setText("Invalid Jacket number.");return;}try{packageDimension = (packageDimensions.getValue(packageDimensions.getSelectedIndex()));System.out.println("Package Dimensions "+packageDimension);}catch(Exception e){e.printStackTrace();}if (packageDimension.isEmpty()){errorLabel.setText("Invalid Package Dimensions");return;}for(Long orderId : billTogetherOrdersMap.keySet()){boolean isSerialized = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsSerialized"));boolean isFreebie = Boolean.parseBoolean(billTogetherOrdersMap.get(orderId).get("IsFreebie"));for(TextBox tb : itemNumbersBoxMap.get(orderId)){itemNumber = tb.getText();if(itemNumber==null || itemNumber.trim().isEmpty()){errorLabel.setText("Item Number can't be left empty for Order Id:- "+ orderId);return;}}if(isSerialized){for(TextBox tb : serialNumbersBoxMap.get(orderId)){serialNumber = tb.getText();if(serialNumber==null || serialNumber.trim().isEmpty()){errorLabel.setText("Serial Number can't be left empty for Order Id:- "+ orderId);return;}}}if(isFreebie){for(TextBox tb : freebieWarehouseIdBoxMap.get(orderId)){try {freebieWhId = Long.parseLong(tb.getText());} catch(NumberFormatException nfe){nfe.printStackTrace();}if(freebieWhId <= 0){errorLabel.setText("Freebie Warehouse Id can't be left empty for Order Id:- "+ orderId);return;}}}}// String invoiceType = !changeInvoiceType.isEnabled() ? "Individual" : changeInvoiceType.getValue() ? "BulkInvoice" : "Individual";String invoiceType = "Individual";setValuesInDesiredMaps(billTogetherOrdersMap);eventBus.fireEvent(new AddJacketNumberEvent(order, billNumber.getText(), jacketNumber, itemNumbersMap, serialNumbersMap, freebieWarehouseIdMap, user, billingType, invoiceType, packageDimension));hide();clean();}});cancelButton.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {hide();clean();}});}public void clean() {// jacketNumberBox.setText("");errorLabel.setText("");warehousePickSuggestion.setText("");}public void setValuesInDesiredMaps(Map<Long, Map<String, String>> billOrdersMap){for(Long orderId : billOrdersMap.keySet()){List<TextBox> itemNumbersBoxList = itemNumbersBoxMap.get(orderId);Map<String, String> orderValuesMap = billOrdersMap.get(orderId);boolean hasSerialized = Boolean.parseBoolean(orderValuesMap.get("IsSerialized"));boolean hasFreebie = Boolean.parseBoolean(orderValuesMap.get("IsFreebie"));List<String> itemNumbers = new ArrayList<String>();for(TextBox tb : itemNumbersBoxList){itemNumbers.add(tb.getText().trim());}itemNumbersMap.put(orderId, itemNumbers);if(hasSerialized){List<TextBox> serialNumbersBoxList = serialNumbersBoxMap.get(orderId);List<String> serialNumbers = new ArrayList<String>();for(TextBox tb : serialNumbersBoxList){serialNumbers.add(tb.getText().trim());}serialNumbersMap.put(orderId, serialNumbers);} else{//itemNumbersMap, serialNumbersMap, freebieWarehouseIdMapserialNumbersMap.put(orderId, new ArrayList<String>());}if(hasFreebie){List<TextBox> freebieWarehouseIdBoxList = freebieWarehouseIdBoxMap.get(orderId);List<Long> freebieWhIds = new ArrayList<Long>();for(TextBox tb : freebieWarehouseIdBoxList){freebieWhIds.add(Long.parseLong(tb.getText().trim()));}freebieWarehouseIdMap.put(orderId, freebieWhIds);} else {freebieWarehouseIdMap.put(orderId, new ArrayList<Long>());}}}private HorizontalPanel getHorizontalPanel(Label label, Widget textBox) {HorizontalPanel hpanel = new HorizontalPanel();hpanel.setSpacing(5);hpanel.add(label);hpanel.add(textBox);hpanel.setCellWidth(label, "120px");return hpanel;}}