Subversion Repositories SmartDukaan

Rev

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