Subversion Repositories SmartDukaan

Rev

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

Rev 4105 Rev 4142
Line 5... Line 5...
5
import in.shop2020.crm.TicketCategory;
5
import in.shop2020.crm.TicketCategory;
6
import in.shop2020.crm.TicketStatus;
6
import in.shop2020.crm.TicketStatus;
7
import in.shop2020.model.v1.order.LineItem;
7
import in.shop2020.model.v1.order.LineItem;
8
import in.shop2020.model.v1.order.Order;
8
import in.shop2020.model.v1.order.Order;
9
import in.shop2020.model.v1.order.OrderStatus;
9
import in.shop2020.model.v1.order.OrderStatus;
-
 
10
import in.shop2020.model.v1.user.Address;
10
import in.shop2020.payments.Attribute;
11
import in.shop2020.payments.Attribute;
11
import in.shop2020.payments.Constants;
12
import in.shop2020.payments.Constants;
12
import in.shop2020.payments.Payment;
13
import in.shop2020.payments.Payment;
13
import in.shop2020.payments.PaymentException;
14
import in.shop2020.payments.PaymentException;
-
 
15
import in.shop2020.payments.PaymentService.Client;
14
import in.shop2020.serving.model.ShipmentUpdate;
16
import in.shop2020.serving.model.ShipmentUpdate;
15
import in.shop2020.serving.services.BlueDartTrackingService;
17
import in.shop2020.serving.services.BlueDartTrackingService;
16
import in.shop2020.thrift.clients.CRMClient;
18
import in.shop2020.thrift.clients.CRMClient;
17
import in.shop2020.thrift.clients.PaymentClient;
19
import in.shop2020.thrift.clients.PaymentClient;
18
import in.shop2020.thrift.clients.TransactionClient;
20
import in.shop2020.thrift.clients.TransactionClient;
-
 
21
import in.shop2020.thrift.clients.UserClient;
19
import in.shop2020.utils.ModelUtils;
22
import in.shop2020.utils.ModelUtils;
20
 
23
 
21
import java.text.SimpleDateFormat;
-
 
22
import java.util.ArrayList;
24
import java.util.ArrayList;
23
import java.util.Date;
-
 
24
import java.util.HashMap;
-
 
25
import java.util.List;
25
import java.util.List;
26
import java.util.Map;
-
 
27
import java.util.TimeZone;
-
 
28
 
26
 
29
import org.apache.log4j.Logger;
27
import org.apache.log4j.Logger;
30
import org.apache.thrift.TException;
28
import org.apache.thrift.TException;
-
 
29
import org.apache.thrift.transport.TTransportException;
31
 
30
 
32
/**
31
/**
33
 * @author vikas
32
 * @author vikas
34
 * 
33
 * 
35
 */
34
 */
36
@SuppressWarnings("serial")
35
@SuppressWarnings("serial")
37
public class UserOrderInfoController extends BaseController {
36
public class UserOrderInfoController extends BaseController {
38
    private static Logger                  log                     = Logger.getLogger(Class.class);
37
    private static Logger                  log                     = Logger.getLogger(Class.class);
39
    private static BlueDartTrackingService blueDartTrackingService = new BlueDartTrackingService();
38
    private static BlueDartTrackingService blueDartTrackingService = new BlueDartTrackingService();
40
 
39
 
41
    private long                           orderId;
40
    private long                 orderId;
42
    private Order                          order;
41
    private Order                order;
43
    private Map<String, String>            userOrder;
-
 
44
    private List<Map<String, String>>      lineItemsList;
42
    private List<Payment>        payments;
45
    private List<Map<String, String>>      paymentsList;
43
    private List<ShipmentUpdate> shipmentUpdates;
46
    private List<ShipmentUpdate>           shipmentUpdates;
44
    private Long                 codTicketId;
47
    private Long                           codTicketId;
45
    private List<Address>        addresses;
48
 
46
 
49
    public UserOrderInfoController() {
47
    public UserOrderInfoController() {
50
        super();
48
        super();
51
    }
49
    }
52
 
50
 
Line 59... Line 57...
59
        } catch (Exception e) {
57
        } catch (Exception e) {
60
            addActionError("Invalid order id or no order selected.");
58
            addActionError("Invalid order id or no order selected.");
61
            return "index";
59
            return "index";
62
        }
60
        }
63
 
61
 
64
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
 
65
        sdf.setTimeZone(TimeZone.getTimeZone("IST"));
-
 
66
        setUserOrderMap(order, sdf);
-
 
67
        setLineItems(order.getLineitems());
-
 
68
 
-
 
69
        List<Payment> payments = paymentServiceClient.getClient()
62
        payments = paymentServiceClient.getClient()
70
                .getPaymentForTxnId(order.getTransactionId());
63
                .getPaymentForTxnId(order.getTransactionId());
71
        if (payments != null && !payments.isEmpty()) {
-
 
72
            setPayments(payments, sdf, paymentServiceClient);
-
 
73
        }
-
 
74
 
64
 
75
        shipmentUpdates = blueDartTrackingService.getUpdates(order
65
        shipmentUpdates = blueDartTrackingService.getUpdates(order
76
                .getAirwaybill_no());
66
                .getAirwaybill_no());
77
 
67
 
78
        if (order.isCod() && OrderStatus.INIT.equals(order.getStatus())) {
68
        if (order.isCod() && OrderStatus.INIT.equals(order.getStatus())) {
79
            populateCODTicketId(order.getCustomer_id());
69
            populateCODTicketId(order.getCustomer_id());
80
        }
70
        }
81
 
71
 
-
 
72
        if (canEditOrderAddress()) {
-
 
73
            userContextServiceClient = new UserClient().getClient();
-
 
74
            addresses = userContextServiceClient.getAllAddressesForUser(order.getCustomer_id());
-
 
75
        }
-
 
76
 
-
 
77
        return INDEX;
-
 
78
    }
-
 
79
 
-
 
80
    private boolean canEditOrderAddress() {
82
        return "index";
81
        return false;
83
    }
82
    }
84
 
83
 
85
    private void populateCODTicketId(long customerId) {
84
    private void populateCODTicketId(long customerId) {
86
        try {
85
        try {
87
            SearchFilter searchFilter = new SearchFilter();
86
            SearchFilter searchFilter = new SearchFilter();
Line 98... Line 97...
98
        } catch (TException e) {
97
        } catch (TException e) {
99
            log.error("Error fetching tickets for customerId: " + customerId, e);
98
            log.error("Error fetching tickets for customerId: " + customerId, e);
100
        }
99
        }
101
    }
100
    }
102
 
101
 
103
    private void setPayments(List<Payment> payments, SimpleDateFormat sdf,
-
 
104
            PaymentClient paymentServiceClient) throws PaymentException,
-
 
105
            TException {
-
 
106
        paymentsList = new ArrayList<Map<String, String>>();
-
 
107
        for (Payment payment : payments) {
102
    public String getPaymentGateway(Payment payment) {
108
            Map<String, String> paymentMap = new HashMap<String, String>();
-
 
109
            if (payment.getAuthCode() != null
-
 
110
                    && !payment.getAuthCode().isEmpty()) {
-
 
111
                paymentMap.put("authcode", payment.getAuthCode());
-
 
112
            }
-
 
113
            if (payment.getDescription() != null
-
 
114
                    && !payment.getDescription().isEmpty()) {
-
 
115
                paymentMap.put("description", payment.getDescription());
-
 
116
            }
-
 
117
            if (payment.getErrorCode() != null
-
 
118
                    && !payment.getErrorCode().isEmpty()) {
-
 
119
                paymentMap.put("errorcode", payment.getErrorCode());
-
 
120
            }
-
 
121
            if (payment.getGatewayPaymentId() != null
-
 
122
                    && !payment.getGatewayPaymentId().isEmpty()) {
-
 
123
                paymentMap.put("gatewaypaymentid",
-
 
124
                        payment.getGatewayPaymentId());
-
 
125
            }
-
 
126
            if (payment.getGatewayTxnDate() != null
-
 
127
                    && !payment.getGatewayTxnDate().isEmpty()) {
-
 
128
                paymentMap.put("gatewaytxndt", payment.getGatewayTxnDate());
-
 
129
            }
-
 
130
            if (payment.getGatewayTxnId() != null
-
 
131
                    && !payment.getGatewayTxnId().isEmpty()) {
-
 
132
                paymentMap.put("gatewaytxnid", payment.getGatewayTxnId());
-
 
133
            }
-
 
134
            if (payment.getGatewayTxnStatus() != null
-
 
135
                    && !payment.getGatewayTxnStatus().isEmpty()) {
-
 
136
                paymentMap.put("gatewaytxnstatus",
-
 
137
                        payment.getGatewayTxnStatus());
-
 
138
            }
-
 
139
            if (payment.getReferenceCode() != null
-
 
140
                    && !payment.getReferenceCode().isEmpty()) {
-
 
141
                paymentMap.put("refcode", payment.getReferenceCode());
-
 
142
            }
-
 
143
            if (payment.getSessionId() != null
-
 
144
                    && !payment.getSessionId().isEmpty()) {
-
 
145
                paymentMap.put("sessioid", payment.getSessionId());
-
 
146
            }
-
 
147
            paymentMap.put("amount", Double.toString(payment.getAmount()));
-
 
148
            paymentMap.put("status", payment.getStatus().name());
-
 
149
            try {
-
 
150
                paymentMap.put("gatewayname", paymentServiceClient.getClient()
-
 
151
                        .getPaymentGateway(payment.getGatewayId()).getName());
-
 
152
            } catch (TException e) {
103
        String gatewayName = "";
153
                log.warn("No payment gateway set", e);
-
 
154
            }
-
 
155
            paymentMap.put("paymethod",
-
 
156
                    getPaymentMethod(payment.getAttributes()));
-
 
157
 
104
 
-
 
105
        try {
158
            if (payment.getSuccessTimestamp() != 0) {
106
            Client paymentServiceClient = new PaymentClient().getClient();
159
                paymentMap.put("successts",
107
            gatewayName = paymentServiceClient.getPaymentGateway(payment.getGatewayId()).getName();
160
                        sdf.format(new Date(payment.getSuccessTimestamp())));
108
        } catch (TTransportException e) {
161
            }
109
        } catch (PaymentException e) {
162
            paymentsList.add(paymentMap);
110
        } catch (TException e) {
163
        }
111
        }
-
 
112
 
-
 
113
        return gatewayName;
164
    }
114
    }
165
 
115
 
166
    private void setLineItems(List<LineItem> lineitems) {
116
    public String getProductName(LineItem lineItem) {
167
        lineItemsList = new ArrayList<Map<String, String>>();
-
 
168
        for (LineItem lItem : lineitems) {
-
 
169
            Map<String, String> lineItemMap = new HashMap<String, String>();
-
 
170
            lineItemMap.put("name",
-
 
171
                    ModelUtils.extractProductNameFromLineItem(lItem) + " " + lItem.getColor());
117
        String name = ModelUtils.extractProductNameFromLineItem(lineItem);
172
            lineItemMap.put("quantity", Double.toString(lItem.getQuantity()));
-
 
173
            lineItemMap.put("unit_price",
-
 
174
                    Double.toString(lItem.getUnit_price()));
-
 
-
 
118
 
175
            lineItemMap.put("total_price",
119
        if (lineItem.getColor() != null) {
176
                    Double.toString(lItem.getTotal_price()));
120
            name += "(" + lineItem.getColor() + ")";
177
            lineItemsList.add(lineItemMap);
-
 
178
        }
121
        }
-
 
122
 
-
 
123
        return name;
179
    }
124
    }
180
 
125
 
181
    private void setUserOrderMap(Order order, SimpleDateFormat sdf) {
-
 
182
        userOrder = new HashMap<String, String>();
-
 
183
        userOrder.put("id", Long.toString(order.getId()));
-
 
184
        if (order.getCreated_timestamp() != 0) {
-
 
185
            userOrder.put("created",
-
 
186
                    sdf.format(new Date(order.getCreated_timestamp())));
-
 
187
        }
-
 
188
        if (order.getDelivery_timestamp() != 0) {
126
    public int convertDouble(double value) {
189
            userOrder.put("delivered",
-
 
190
                    sdf.format(new Date(order.getDelivery_timestamp())));
-
 
191
        }
-
 
192
        if (order.getAccepted_timestamp() != 0) {
-
 
193
            userOrder.put("accepted",
127
        return (int)value;
194
                    sdf.format(new Date(order.getAccepted_timestamp())));
-
 
195
        }
-
 
196
        if (order.getBilling_timestamp() != 0) {
-
 
197
            userOrder.put("billingts",
-
 
198
                    sdf.format(new Date(order.getBilling_timestamp())));
-
 
199
        }
-
 
200
        if (order.getExpected_delivery_time() != 0) {
-
 
201
            userOrder.put("expdelivery",
-
 
202
                    sdf.format(new Date(order.getExpected_delivery_time())));
-
 
203
        }
128
    }
204
        if (order.getShipping_timestamp() != 0) {
-
 
205
            userOrder.put("shippingts",
-
 
206
                    sdf.format(new Date(order.getShipping_timestamp())));
-
 
207
        }
129
 
208
        if (order.getPickup_timestamp() != 0) {
130
    public String getAddress(Order order) {
209
            userOrder.put("pickupts",
-
 
210
                    sdf.format(new Date(order.getPickup_timestamp())));
-
 
211
        }
-
 
212
        if (order.getOutofstock_timestamp() != 0) {
-
 
213
            userOrder.put("outofstockts",
-
 
214
                    sdf.format(new Date(order.getOutofstock_timestamp())));
-
 
215
        }
-
 
216
        
-
 
217
        userOrder.put("serialno", Long.toString(order.getSerialNo()));
-
 
218
        userOrder.put("airwaybillno", order.getAirwaybill_no());
-
 
219
        userOrder.put("billedby", order.getBilled_by());
-
 
220
        userOrder.put("invoiceno", order.getInvoice_number());
-
 
221
        userOrder.put("receiver", order.getReceiver());
-
 
222
        userOrder.put("status", order.getStatusDescription());
-
 
223
        userOrder.put("trackingid", order.getTracking_id());
-
 
224
        userOrder.put("promiseddelivery", sdf.format(new Date(order.getPromised_delivery_time())));
-
 
225
        userOrder.put("expectedshipping", sdf.format(new Date(order.getExpected_shipping_time())));
-
 
226
        userOrder.put("promisedshipping", sdf.format(new Date(order.getPromised_shipping_time())));
-
 
227
        userOrder.put("delayreason", order.getDelayReason() != null ? order.getDelayReason().name() : "");
-
 
228
        userOrder.put("amount", Double.toString(order.getTotal_amount()));
-
 
229
        userOrder.put("shipping", ModelUtils.extractAddressFromOrder(order));
131
        return ModelUtils.extractAddressFromOrder(order);
230
    }
132
    }
231
 
133
 
232
    public String getPaymentMethod(List<Attribute> paymentAttributes) {
134
    public String getPaymentMethod(List<Attribute> paymentAttributes) {
233
        String paymentMethod = null;
135
        String paymentMethod = null;
234
        if (paymentAttributes == null || paymentAttributes.isEmpty()) {
136
        if (paymentAttributes == null || paymentAttributes.isEmpty()) {
Line 249... Line 151...
249
        } catch (NumberFormatException e) {
151
        } catch (NumberFormatException e) {
250
            log.error(e);
152
            log.error(e);
251
        }
153
        }
252
    }
154
    }
253
 
155
 
254
    public Map<String, String> getUserOrder() {
-
 
255
        return userOrder;
-
 
256
    }
-
 
257
 
-
 
258
    public List<Map<String, String>> getLineItemsList() {
-
 
259
        return lineItemsList;
-
 
260
    }
-
 
261
 
-
 
262
    public List<Map<String, String>> getPaymentsList() {
156
    public List<Payment> getPayments() {
263
        return paymentsList;
157
        return payments;
264
    }
158
    }
265
 
159
 
266
    public List<ShipmentUpdate> getShipmentUpdates() {
160
    public List<ShipmentUpdate> getShipmentUpdates() {
267
        return shipmentUpdates;
161
        return shipmentUpdates;
268
    }
162
    }
Line 284... Line 178...
284
    }
178
    }
285
 
179
 
286
    public void setCodTicketId(Long codTicketId) {
180
    public void setCodTicketId(Long codTicketId) {
287
        this.codTicketId = codTicketId;
181
        this.codTicketId = codTicketId;
288
    }
182
    }
-
 
183
 
-
 
184
    public List<Address> getAddresses() {
-
 
185
        return addresses;
-
 
186
    }
-
 
187
 
-
 
188
    public void setAddresses(List<Address> addresses) {
-
 
189
        this.addresses = addresses;
-
 
190
    }
289
}
191
}
290
192