Subversion Repositories SmartDukaan

Rev

Rev 2352 | Rev 2452 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2352 Rev 2449
Line 10... Line 10...
10
 
10
 
11
import java.util.ArrayList;
11
import java.util.ArrayList;
12
import java.util.Date;
12
import java.util.Date;
13
import java.util.List;
13
import java.util.List;
14
 
14
 
-
 
15
/**
-
 
16
 * This class is a facade to the Transaction service and should be used to
-
 
17
 * access all order specific data.
-
 
18
 * 
-
 
19
 * @author Chandranshu
-
 
20
 * 
-
 
21
 */
15
public class TransactionUtils {
22
public class TransactionUtils {
-
 
23
	/**
-
 
24
	 * The human user is concerned only with a consolidated view of actionable
-
 
25
	 * orders. Orders with different statuses in the database can be part of the
-
 
26
	 * same consolidated view. This method uses a mapping of <i>type</i> to
-
 
27
	 * <i>status</i> to get all such orders and return them as order beans.
-
 
28
	 * 
-
 
29
	 * @param type
-
 
30
	 *            The type of orders to return.
-
 
31
	 * @param warehouseId
-
 
32
	 *            The warehouse for which the orders should be queried.
-
 
33
	 * @return A list of orders of the given type to be fulfilled from the given
-
 
34
	 *         warehouse
-
 
35
	 */
16
	public static List<Order> getOrders(OrderType type, long warehouseId){
36
	public static List<Order> getOrders(OrderType type, long warehouseId){
17
		List<OrderStatus> statuses = new ArrayList<OrderStatus>();
37
		List<OrderStatus> statuses = getStatuses(type);
18
		
-
 
19
		switch (type) {
-
 
20
		case ACCEPTED:
-
 
21
			statuses.add(OrderStatus.ACCEPTED);
-
 
22
			break;
-
 
23
 
-
 
24
		case ALL:
-
 
25
			break;
-
 
26
 
-
 
27
		case NEW:
-
 
28
			statuses.add(OrderStatus.SUBMITTED_FOR_PROCESSING);
-
 
29
			statuses.add(OrderStatus.INVENTORY_LOW);
-
 
30
			break;
-
 
31
 
-
 
32
		case BILLED:
-
 
33
			statuses.add(OrderStatus.BILLED);
-
 
34
			break;
-
 
35
 
-
 
36
		case NO_STOCK:
-
 
37
			statuses.add(OrderStatus.INVENTORY_LOW);
-
 
38
			break;
-
 
39
			
-
 
40
		case REJECTED:
-
 
41
			statuses.add(OrderStatus.REJECTED);
-
 
42
			break;
-
 
43
		
-
 
44
		case SHIPPED:
-
 
45
			statuses.add(OrderStatus.SHIPPED_FROM_WH);
-
 
46
			statuses.add(OrderStatus.SHIPPED_TO_LOGST);
-
 
47
			break;
-
 
48
 
-
 
49
		default:
-
 
50
			break;
-
 
51
		}
-
 
52
		
-
 
53
		
38
		
54
		List<Order> orders = new ArrayList<Order>();
39
		List<Order> orders = new ArrayList<Order>();
55
		try{
40
		try{
56
			TransactionServiceClient client = new TransactionServiceClient();
41
			TransactionServiceClient client = new TransactionServiceClient();
57
			Client c = client.getClient();
42
			Client c = client.getClient();
Line 70... Line 55...
70
				Order o = getOrderFromThriftOrder(t_order);
55
				Order o = getOrderFromThriftOrder(t_order);
71
 
56
 
72
				orders.add(o);
57
				orders.add(o);
73
				//check if it has an associated alert
58
				//check if it has an associated alert
74
				List<Alert> alerts = c.getAlerts(t_order.getId(), true);
59
				List<Alert> alerts = c.getAlerts(t_order.getId(), true);
75
				if(alerts != null){
-
 
76
					if (alerts.size() != 0){
60
				if(alerts != null && alerts.size() != 0){
77
						o.setAlert(true);
61
					o.setAlert(true);
78
						o.setStatusMessage(alerts.iterator().next().getComment());
62
					o.setStatusMessage(alerts.iterator().next().getComment());
79
					}
-
 
80
				}else{
63
				} else {
81
					o.setAlert(false);
64
					o.setAlert(false);
82
				}
65
				}
83
			}
66
			}
84
		}catch(Exception e){
67
		}catch(Exception e){
85
			System.out.println(e);
68
			e.printStackTrace();
86
		}
69
		}
87
		return orders;
70
		return orders;
88
	}
71
	}
89
 
72
 
-
 
73
	/**
-
 
74
	 * Calls the same method of the transaction service and returns the status
-
 
75
	 * returned. Catches all exceptions that are raised and returns false in
-
 
76
	 * that case.
-
 
77
	 * 
-
 
78
	 * @param warehouseId
-
 
79
	 *            The warehouse for which the orders should be marked as
-
 
80
	 *            manifested.
-
 
81
	 * @param providerId
-
 
82
	 *            The provider for which the orders should be marked as
-
 
83
	 *            manifested.
-
 
84
	 * @return True if everything goes fine, false otherwise.
-
 
85
	 */
90
	public static boolean markOrdersAsManifested(long warehouseId, String providerId){
86
	public static boolean markOrdersAsManifested(long warehouseId, String providerId){
91
		try {
87
		try {
92
			long provider_id = Long.parseLong(providerId);
88
			long provider_id = Long.parseLong(providerId);
93
			TransactionServiceClient client = new TransactionServiceClient();
89
			TransactionServiceClient client = new TransactionServiceClient();
94
			Client c = client.getClient();
90
			Client c = client.getClient();
Line 96... Line 92...
96
		}catch(Exception e){
92
		}catch(Exception e){
97
			e.printStackTrace();
93
			e.printStackTrace();
98
			return false;
94
			return false;
99
		}
95
		}
100
	}
96
	}
101
	
97
 
102
	/**
98
	/**
-
 
99
	 * 
103
	 * @param t_order
100
	 * @param t_order
104
	 * @return
101
	 *            A thrift order object with line items.
-
 
102
	 * @return an Order bean which can be used for rendering on the client side.
105
	 */
103
	 */
106
	public static Order getOrderFromThriftOrder(in.shop2020.model.v1.order.Order t_order) {
104
	public static Order getOrderFromThriftOrder(in.shop2020.model.v1.order.Order t_order) {
107
		LineItem lineItem = t_order.getLineitems().get(0);
105
		LineItem lineItem = t_order.getLineitems().get(0);
108
		Order order = new Order(t_order.getId(),
106
		Order order = new Order(t_order.getId(),
109
				t_order.getCustomer_id(),
107
				t_order.getCustomer_id(),
Line 131... Line 129...
131
				t_order.getBatchNo(), t_order.getSerialNo(),
129
				t_order.getBatchNo(), t_order.getSerialNo(),
132
				false);
130
				false);
133
		return order;
131
		return order;
134
	}
132
	}
135
 
133
 
-
 
134
	/**
-
 
135
	 * This method maps a given type to a list of statuses.
-
 
136
	 * 
-
 
137
	 * @param type
-
 
138
	 *            The type of orders to fetch.
-
 
139
	 * @return The list of Thrift statuses associated with a particular order
-
 
140
	 *         type.
-
 
141
	 */
-
 
142
	private static List<OrderStatus> getStatuses(OrderType type) {
-
 
143
		List<OrderStatus> statuses = new ArrayList<OrderStatus>();
-
 
144
		
-
 
145
		switch (type) {
-
 
146
		case ACCEPTED:
-
 
147
			statuses.add(OrderStatus.ACCEPTED);
-
 
148
			break;
-
 
149
 
-
 
150
		case ALL:
-
 
151
			break;
-
 
152
 
-
 
153
		case NEW:
-
 
154
			statuses.add(OrderStatus.SUBMITTED_FOR_PROCESSING);
-
 
155
			statuses.add(OrderStatus.INVENTORY_LOW);
-
 
156
			break;
-
 
157
 
-
 
158
		case BILLED:
-
 
159
			statuses.add(OrderStatus.BILLED);
-
 
160
			break;
-
 
161
 
-
 
162
		case NO_STOCK:
-
 
163
			statuses.add(OrderStatus.INVENTORY_LOW);
-
 
164
			break;
-
 
165
			
-
 
166
		case REJECTED:
-
 
167
			statuses.add(OrderStatus.REJECTED);
-
 
168
			break;
-
 
169
		
-
 
170
		case SHIPPED:
-
 
171
			statuses.add(OrderStatus.SHIPPED_FROM_WH);
-
 
172
			statuses.add(OrderStatus.SHIPPED_TO_LOGST);
-
 
173
			break;
-
 
174
 
-
 
175
		case DELIVERED:
-
 
176
			statuses.add(OrderStatus.DELIVERY_SUCCESS);
-
 
177
			break;
-
 
178
			
-
 
179
		default:
-
 
180
			break;
-
 
181
		}
-
 
182
		return statuses;
-
 
183
	}
136
}
184
}