Subversion Repositories SmartDukaan

Rev

Rev 5411 | Rev 5530 | 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
 
5411 rajveer 7
import java.util.ArrayList;
8
import java.util.List;
5110 mandeep.dh 9
import java.util.Map;
10
 
1146 chandransh 11
import org.enunes.gwt.mvp.client.EventBus;
12
 
13
import com.google.gwt.event.dom.client.ClickEvent;
14
import com.google.gwt.event.dom.client.ClickHandler;
15
import com.google.gwt.user.client.ui.Button;
16
import com.google.gwt.user.client.ui.DialogBox;
17
import com.google.gwt.user.client.ui.HorizontalPanel;
18
import com.google.gwt.user.client.ui.Label;
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
 
5411 rajveer 38
    private Button submitbutton = new Button("Submit");
1146 chandransh 39
	private VerticalPanel vpanel = new VerticalPanel();
40
 
5411 rajveer 41
	private long quantity;
42
	private List<String> serialNumbers;
43
	private List<String> itemNumbers;
5110 mandeep.dh 44
	public JacketInfoBox(final EventBus eventBus, final Order order, final String user,
45
	        final BillingType billingType, Map<Long, String> warehouses){
5411 rajveer 46
		this.quantity = (long)order.getQuantity();
47
		serialNumbers = new ArrayList<String>((int)this.quantity);
48
		itemNumbers = new ArrayList<String>((int)this.quantity);
1146 chandransh 49
		vpanel.add(errorLabel);
5110 mandeep.dh 50
		if (order.getPickFromWarehouse() != null) {
51
		    warehousePickSuggestion.setText("Pick from WH: " + order.getPickFromWarehouse());
52
		}
53
 
2352 chandransh 54
		vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));      //Ask for the jacket number
5361 mandeep.dh 55
		if(billingType == BillingType.OURS) {
5110 mandeep.dh 56
		    // Check if we need to suggest Hotspot warehouses ?
57
	        vpanel.add(warehousePickSuggestion);		    
2843 chandransh 58
            vpanel.add(getHorizontalPanel(itemNumberLabel, itemNumberBox));          //Ask for the item number
5110 mandeep.dh 59
            if(order.isSerialized()) {
4658 mandeep.dh 60
                vpanel.add(getHorizontalPanel(serialNumberLabel, serialNumberBox));      //Ask for Serial number only in case of Handsets
2843 chandransh 61
            }
5361 mandeep.dh 62
		}
5110 mandeep.dh 63
 
2781 chandransh 64
		vpanel.add(getHorizontalPanel(billedBy, new Label(user)));
1146 chandransh 65
		vpanel.add(submitbutton);
66
 
67
		setWidget(vpanel);
68
		setAutoHideEnabled(true);
69
		setGlassEnabled(true);
2843 chandransh 70
		if(billingType == BillingType.OURS)
71
		    setText("Enter all the details below:");
72
		else
73
		    setText("Enter Jacket Number below:");
1146 chandransh 74
		setModal(true);
75
 
76
		submitbutton.addClickHandler(new ClickHandler() {
77
 
78
			@Override
79
			public void onClick(ClickEvent event) {
2352 chandransh 80
				long jacketNumber = -1;
5442 rajveer 81
				String serialNumber = "";
82
				String itemNumber = "";
2352 chandransh 83
				try {
84
					jacketNumber = Long.parseLong(jacketNumberBox.getText());
85
				} catch(NumberFormatException nfe){
86
					nfe.printStackTrace();
1146 chandransh 87
				}
2352 chandransh 88
 
89
				if(jacketNumber <= 0){
90
					errorLabel.setText("Invalid Jacket number.");
91
					return;
92
				}
5110 mandeep.dh 93
 
2843 chandransh 94
				if(billingType == BillingType.OURS){
95
	                itemNumber = itemNumberBox.getText();
96
	                if(itemNumber==null || itemNumber.trim().isEmpty()){
97
	                    errorLabel.setText("Item Number can't be left empty");
98
	                    return;
99
	                }
5411 rajveer 100
	                itemNumber = itemNumber.trim();
2843 chandransh 101
 
5110 mandeep.dh 102
	                if(order.isSerialized()) {
2843 chandransh 103
	                    try {
4658 mandeep.dh 104
	                        serialNumber = serialNumberBox.getText();
2843 chandransh 105
	                    } catch(NumberFormatException nfe){
106
	                        nfe.printStackTrace();
107
	                    }
5110 mandeep.dh 108
 
5442 rajveer 109
	                    if(serialNumber == null || serialNumber.isEmpty()){
4658 mandeep.dh 110
	                        errorLabel.setText("Invalid Serial number");
2843 chandransh 111
	                        return;
112
	                    }
5411 rajveer 113
	                    serialNumber = serialNumber.trim();
2843 chandransh 114
	                }
2781 chandransh 115
				}
5411 rajveer 116
 
117
				serialNumbers.add(serialNumber);
118
				itemNumbers.add(itemNumber);
119
				if(billingType == BillingType.OURS && order.isSerialized() && quantity > 1) {
120
					quantity = quantity - 1; 
121
					itemNumberBox.setText("");
122
					serialNumberBox.setText("");
123
					errorLabel.setText( quantity + " more items need to be scanned. Scan next item.");
124
					return;
125
				}
126
 
127
				if(billingType == BillingType.OURS && !order.isSerialized()){
128
					for(int i=1; i<(int)quantity; i++){
129
						serialNumbers.add(serialNumber);
130
						itemNumbers.add(itemNumber);		
131
					}
132
				}
133
 
134
				eventBus.fireEvent(new AddJacketNumberEvent(order, jacketNumber, serialNumbers, itemNumbers, user, billingType));
2352 chandransh 135
				hide();
136
				clean();
1146 chandransh 137
			}
138
		});
139
	}
140
 
5110 mandeep.dh 141
	public void clean() {
1146 chandransh 142
		jacketNumberBox.setText("");
4658 mandeep.dh 143
		serialNumberBox.setText("");
1146 chandransh 144
		errorLabel.setText("");
5110 mandeep.dh 145
		warehousePickSuggestion.setText("");
1146 chandransh 146
	}
2352 chandransh 147
 
4658 mandeep.dh 148
	private HorizontalPanel getHorizontalPanel(Label label, Widget textBox) {
2352 chandransh 149
		HorizontalPanel hpanel = new HorizontalPanel();
150
		hpanel.setSpacing(5);
151
		hpanel.add(label);
152
		hpanel.add(textBox);
153
		hpanel.setCellWidth(label, "120px");
154
		return hpanel;
155
	}
1146 chandransh 156
}