Subversion Repositories SmartDukaan

Rev

Rev 6769 | Rev 7190 | 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
 
6746 rajveer 26
	private Label billNumberLabel = new Label("Bill Number");
27
	private TextBox billNumber = new TextBox();
28
 
5110 mandeep.dh 29
	private Label warehousePickSuggestion = new Label("");
1146 chandransh 30
	private Label jacketNumberLabel = new Label("Jacket Number");
31
	private TextBox jacketNumberBox = new TextBox();
2781 chandransh 32
 
33
	private Label itemNumberLabel = new Label("Item Number");
34
	private TextBox itemNumberBox = new TextBox();
35
 
4658 mandeep.dh 36
	private Label serialNumberLabel = new Label("Serial No.");
37
	private TextBox serialNumberBox = new TextBox();
2781 chandransh 38
 
39
	private Label billedBy = new Label("Billed by");
40
 
5411 rajveer 41
    private Button submitbutton = new Button("Submit");
1146 chandransh 42
	private VerticalPanel vpanel = new VerticalPanel();
43
 
5411 rajveer 44
	private long quantity;
45
	private List<String> serialNumbers;
46
	private List<String> itemNumbers;
5110 mandeep.dh 47
	public JacketInfoBox(final EventBus eventBus, final Order order, final String user,
48
	        final BillingType billingType, Map<Long, String> warehouses){
5411 rajveer 49
		this.quantity = (long)order.getQuantity();
50
		serialNumbers = new ArrayList<String>((int)this.quantity);
51
		itemNumbers = new ArrayList<String>((int)this.quantity);
1146 chandransh 52
		vpanel.add(errorLabel);
5110 mandeep.dh 53
		if (order.getPickFromWarehouse() != null) {
54
		    warehousePickSuggestion.setText("Pick from WH: " + order.getPickFromWarehouse());
55
		}
56
 
2352 chandransh 57
		vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));      //Ask for the jacket number
6746 rajveer 58
		if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL) {
5110 mandeep.dh 59
		    // Check if we need to suggest Hotspot warehouses ?
5530 mandeep.dh 60
	        vpanel.add(warehousePickSuggestion);
61
	        if (order.isHasItemNumber()) {
62
	            vpanel.add(getHorizontalPanel(itemNumberLabel, itemNumberBox));          //Ask for the item number
6746 rajveer 63
	            if(order.getItemNumber() != null && !order.getItemNumber().trim().equals("")){
64
	            	itemNumberBox.setText(order.getItemNumber().trim());
65
				}
5530 mandeep.dh 66
	        }
67
 
5110 mandeep.dh 68
            if(order.isSerialized()) {
4658 mandeep.dh 69
                vpanel.add(getHorizontalPanel(serialNumberLabel, serialNumberBox));      //Ask for Serial number only in case of Handsets
6784 rajveer 70
                if(order.getImeiNumber() != null && !order.getImeiNumber().trim().equals("")){
71
                	serialNumberBox.setText(order.getImeiNumber()+"");
6746 rajveer 72
				}
2843 chandransh 73
            }
5361 mandeep.dh 74
		}
5110 mandeep.dh 75
 
6746 rajveer 76
		if(billingType == BillingType.OURS_EXTERNAL || billingType == BillingType.EXTERNAL){
77
			vpanel.add(getHorizontalPanel(billNumberLabel, billNumber));
78
			if(order.getInvoiceNumber() != null && !order.getInvoiceNumber().trim().equals("")){
79
				billNumber.setText(order.getInvoiceNumber().trim());
80
			}
81
		}
82
 
83
 
2781 chandransh 84
		vpanel.add(getHorizontalPanel(billedBy, new Label(user)));
1146 chandransh 85
		vpanel.add(submitbutton);
86
 
87
		setWidget(vpanel);
88
		setAutoHideEnabled(true);
89
		setGlassEnabled(true);
6746 rajveer 90
		if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL)
2843 chandransh 91
		    setText("Enter all the details below:");
92
		else
93
		    setText("Enter Jacket Number below:");
1146 chandransh 94
		setModal(true);
95
 
96
		submitbutton.addClickHandler(new ClickHandler() {
97
 
98
			@Override
99
			public void onClick(ClickEvent event) {
2352 chandransh 100
				long jacketNumber = -1;
5442 rajveer 101
				String serialNumber = "";
102
				String itemNumber = "";
2352 chandransh 103
				try {
104
					jacketNumber = Long.parseLong(jacketNumberBox.getText());
105
				} catch(NumberFormatException nfe){
106
					nfe.printStackTrace();
1146 chandransh 107
				}
2352 chandransh 108
 
109
				if(jacketNumber <= 0){
110
					errorLabel.setText("Invalid Jacket number.");
111
					return;
112
				}
5110 mandeep.dh 113
 
6746 rajveer 114
				if(billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL){
5530 mandeep.dh 115
				    if (order.isHasItemNumber()) {
116
	                    itemNumber = itemNumberBox.getText();
117
	                    if(itemNumber==null || itemNumber.trim().isEmpty()){
118
	                        errorLabel.setText("Item Number can't be left empty");
119
	                        return;
120
	                    }
121
	                    itemNumber = itemNumber.trim();				        
122
				    }
123
 
5110 mandeep.dh 124
	                if(order.isSerialized()) {
2843 chandransh 125
	                    try {
4658 mandeep.dh 126
	                        serialNumber = serialNumberBox.getText();
2843 chandransh 127
	                    } catch(NumberFormatException nfe){
128
	                        nfe.printStackTrace();
129
	                    }
5110 mandeep.dh 130
 
5442 rajveer 131
	                    if(serialNumber == null || serialNumber.isEmpty()){
4658 mandeep.dh 132
	                        errorLabel.setText("Invalid Serial number");
2843 chandransh 133
	                        return;
134
	                    }
5411 rajveer 135
	                    serialNumber = serialNumber.trim();
2843 chandransh 136
	                }
2781 chandransh 137
				}
5411 rajveer 138
 
139
				serialNumbers.add(serialNumber);
140
				itemNumbers.add(itemNumber);
6746 rajveer 141
				if(quantity > 1 && (billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL) && order.isSerialized()) {
5411 rajveer 142
					quantity = quantity - 1; 
143
					itemNumberBox.setText("");
144
					serialNumberBox.setText("");
145
					errorLabel.setText( quantity + " more items need to be scanned. Scan next item.");
146
					return;
147
				}
148
 
6746 rajveer 149
				if((billingType == BillingType.OURS || billingType == BillingType.OURS_EXTERNAL) && !order.isSerialized()){
5411 rajveer 150
					for(int i=1; i<(int)quantity; i++){
151
						serialNumbers.add(serialNumber);
152
						itemNumbers.add(itemNumber);		
153
					}
154
				}
155
 
6769 rajveer 156
				eventBus.fireEvent(new AddJacketNumberEvent(order, billNumber.getText(), jacketNumber, serialNumbers, itemNumbers, user, billingType));
2352 chandransh 157
				hide();
158
				clean();
1146 chandransh 159
			}
160
		});
161
	}
162
 
5110 mandeep.dh 163
	public void clean() {
1146 chandransh 164
		jacketNumberBox.setText("");
4658 mandeep.dh 165
		serialNumberBox.setText("");
6769 rajveer 166
		billNumber.setText("");
1146 chandransh 167
		errorLabel.setText("");
5110 mandeep.dh 168
		warehousePickSuggestion.setText("");
1146 chandransh 169
	}
2352 chandransh 170
 
4658 mandeep.dh 171
	private HorizontalPanel getHorizontalPanel(Label label, Widget textBox) {
2352 chandransh 172
		HorizontalPanel hpanel = new HorizontalPanel();
173
		hpanel.setSpacing(5);
174
		hpanel.add(label);
175
		hpanel.add(textBox);
176
		hpanel.setCellWidth(label, "120px");
177
		return hpanel;
178
	}
1146 chandransh 179
}