Subversion Repositories SmartDukaan

Rev

Rev 5110 | Rev 5411 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1146 chandransh 1
package in.shop2020.hotspot.dashbaord.client.inbox;
2
 
3
import in.shop2020.hotspot.dashbaord.client.event.AddJacketNumberEvent;
2843 chandransh 4
import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;
1146 chandransh 5
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
6
 
5110 mandeep.dh 7
import java.util.Map;
8
import java.util.Map.Entry;
9
 
1146 chandransh 10
import org.enunes.gwt.mvp.client.EventBus;
11
 
12
import com.google.gwt.event.dom.client.ClickEvent;
13
import com.google.gwt.event.dom.client.ClickHandler;
14
import com.google.gwt.user.client.ui.Button;
15
import com.google.gwt.user.client.ui.DialogBox;
16
import com.google.gwt.user.client.ui.HorizontalPanel;
17
import com.google.gwt.user.client.ui.Label;
4286 rajveer 18
import com.google.gwt.user.client.ui.ListBox;
1146 chandransh 19
import com.google.gwt.user.client.ui.TextBox;
20
import com.google.gwt.user.client.ui.VerticalPanel;
2781 chandransh 21
import com.google.gwt.user.client.ui.Widget;
1146 chandransh 22
 
23
public class JacketInfoBox extends DialogBox {
24
	private Label errorLabel = new Label("");
2781 chandransh 25
 
5110 mandeep.dh 26
	private Label warehousePickSuggestion = new Label("");
1146 chandransh 27
	private Label jacketNumberLabel = new Label("Jacket Number");
28
	private TextBox jacketNumberBox = new TextBox();
2781 chandransh 29
 
30
	private Label itemNumberLabel = new Label("Item Number");
31
	private TextBox itemNumberBox = new TextBox();
32
 
4658 mandeep.dh 33
	private Label serialNumberLabel = new Label("Serial No.");
34
	private TextBox serialNumberBox = new TextBox();
2781 chandransh 35
 
36
	private Label billedBy = new Label("Billed by");
37
 
5110 mandeep.dh 38
    private Label warehouseLabel = new Label("Warehouse");
39
    private ListBox warehouseBox = new ListBox();
4286 rajveer 40
 
41
 
1146 chandransh 42
	private Button submitbutton = new Button("Submit");
43
	private VerticalPanel vpanel = new VerticalPanel();
44
 
4286 rajveer 45
 
5110 mandeep.dh 46
	public JacketInfoBox(final EventBus eventBus, final Order order, final String user,
47
	        final BillingType billingType, Map<Long, String> warehouses){
1146 chandransh 48
		vpanel.add(errorLabel);
5110 mandeep.dh 49
		if (order.getPickFromWarehouse() != null) {
50
		    warehousePickSuggestion.setText("Pick from WH: " + order.getPickFromWarehouse());
51
		}
52
 
2352 chandransh 53
		vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));      //Ask for the jacket number
5361 mandeep.dh 54
		if(billingType == BillingType.OURS) {
5110 mandeep.dh 55
		    // Check if we need to suggest Hotspot warehouses ?
56
	        vpanel.add(warehousePickSuggestion);		    
2843 chandransh 57
            vpanel.add(getHorizontalPanel(itemNumberLabel, itemNumberBox));          //Ask for the item number
5110 mandeep.dh 58
            if(order.isSerialized()) {
4658 mandeep.dh 59
                vpanel.add(getHorizontalPanel(serialNumberLabel, serialNumberBox));      //Ask for Serial number only in case of Handsets
2843 chandransh 60
            }
5361 mandeep.dh 61
		}
5110 mandeep.dh 62
 
2781 chandransh 63
		vpanel.add(getHorizontalPanel(billedBy, new Label(user)));
1146 chandransh 64
		vpanel.add(submitbutton);
65
 
66
		setWidget(vpanel);
67
		setAutoHideEnabled(true);
68
		setGlassEnabled(true);
2843 chandransh 69
		if(billingType == BillingType.OURS)
70
		    setText("Enter all the details below:");
71
		else
72
		    setText("Enter Jacket Number below:");
1146 chandransh 73
		setModal(true);
74
 
75
		submitbutton.addClickHandler(new ClickHandler() {
76
 
77
			@Override
78
			public void onClick(ClickEvent event) {
2352 chandransh 79
				long jacketNumber = -1;
4658 mandeep.dh 80
				String serialNumber = null;
2843 chandransh 81
				String itemNumber = "NO_NUMBER";
2352 chandransh 82
				try {
83
					jacketNumber = Long.parseLong(jacketNumberBox.getText());
84
				} catch(NumberFormatException nfe){
85
					nfe.printStackTrace();
1146 chandransh 86
				}
2352 chandransh 87
 
88
				if(jacketNumber <= 0){
89
					errorLabel.setText("Invalid Jacket number.");
90
					return;
91
				}
5110 mandeep.dh 92
 
2843 chandransh 93
				if(billingType == BillingType.OURS){
94
	                itemNumber = itemNumberBox.getText();
95
	                if(itemNumber==null || itemNumber.trim().isEmpty()){
96
	                    errorLabel.setText("Item Number can't be left empty");
97
	                    return;
98
	                }
99
 
5110 mandeep.dh 100
	                if(order.isSerialized()) {
2843 chandransh 101
	                    try {
4658 mandeep.dh 102
	                        serialNumber = serialNumberBox.getText();
2843 chandransh 103
	                    } catch(NumberFormatException nfe){
104
	                        nfe.printStackTrace();
105
	                    }
5110 mandeep.dh 106
 
4658 mandeep.dh 107
	                    if(serialNumber == null){
108
	                        errorLabel.setText("Invalid Serial number");
2843 chandransh 109
	                        return;
110
	                    }
111
	                }
2781 chandransh 112
				}
5110 mandeep.dh 113
 
5361 mandeep.dh 114
				eventBus.fireEvent(new AddJacketNumberEvent(order, jacketNumber, serialNumber, itemNumber.trim(), user, billingType));
2352 chandransh 115
				hide();
116
				clean();
1146 chandransh 117
			}
118
		});
119
	}
120
 
5110 mandeep.dh 121
	public void clean() {
1146 chandransh 122
		jacketNumberBox.setText("");
4658 mandeep.dh 123
		serialNumberBox.setText("");
1146 chandransh 124
		errorLabel.setText("");
5110 mandeep.dh 125
		warehousePickSuggestion.setText("");
1146 chandransh 126
	}
2352 chandransh 127
 
4658 mandeep.dh 128
	private HorizontalPanel getHorizontalPanel(Label label, Widget textBox) {
2352 chandransh 129
		HorizontalPanel hpanel = new HorizontalPanel();
130
		hpanel.setSpacing(5);
131
		hpanel.add(label);
132
		hpanel.add(textBox);
133
		hpanel.setCellWidth(label, "120px");
134
		return hpanel;
135
	}
1146 chandransh 136
}