Subversion Repositories SmartDukaan

Rev

Rev 7510 | Rev 8020 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7473 vikram.rag 1
package com.amazonservices.mws.orders.samples;
2
 
3
import java.text.SimpleDateFormat;
4
import java.util.ArrayList;
5
import java.util.Calendar;
6
import java.util.Date;
7
import java.util.List;
8
import java.util.Random;
9
 
10
import org.apache.thrift.TException;
11
import org.apache.thrift.transport.TTransportException;
12
import in.shop2020.logistics.PickUpType;
13
import in.shop2020.model.v1.catalog.Item;
14
import in.shop2020.model.v1.order.LineItem;
15
import in.shop2020.model.v1.order.Order;
16
import in.shop2020.model.v1.order.OrderSource;
17
import in.shop2020.model.v1.order.OrderStatus;
18
import in.shop2020.model.v1.order.OrderType;
19
import in.shop2020.model.v1.order.SourceDetail;
20
import in.shop2020.model.v1.order.Transaction;
21
import in.shop2020.model.v1.order.TransactionStatus;
22
import in.shop2020.model.v1.user.User;
23
import in.shop2020.model.v1.user.UserContextException;
24
import in.shop2020.payments.PaymentStatus;
25
import in.shop2020.serving.model.ShipmentUpdate;
26
import in.shop2020.thrift.clients.CatalogClient;
27
import in.shop2020.thrift.clients.HelperClient;
28
import in.shop2020.thrift.clients.PaymentClient;
29
import in.shop2020.thrift.clients.TransactionClient;
30
import in.shop2020.thrift.clients.UserClient;
31
 
32
public class AmazonOrder {
33
 
34
    /**
35
     * 
36
     */
37
    private static final long serialVersionUID = 1L;
38
    private String tempUserEmail;
39
    private List<Order> orders = new ArrayList<Order>();
40
 
41
    public long persistTransaction(com.amazonservices.mws.orders.model.Order amazonitem,List<com.amazonservices.mws.orders.model.OrderItem> amazonItems) {
42
 
43
    	/**
44
    	 * 0.Create user
45
    	 * 1.Make a transaction object comprised of Order which in turn contains lineitem.
46
    	 * 2.Call create_transaction
47
    	 * 3.retrieve that order
48
    	 */
49
 
50
    	Transaction txnObj = new Transaction();
51
 
52
    	long tempUserId = -1;
53
 
54
    	try {
55
    		TransactionClient tcl = new TransactionClient();
56
    		//Source Id for store website is 2 and our normal website is 1
7510 kshitij.so 57
    		SourceDetail detail = tcl.getClient().getSourceDetail(3);
7473 vikram.rag 58
    		tempUserEmail=detail.getEmail();
59
    		try {
60
    			UserClient ucl = new UserClient();
61
    			User user = ucl.getClient().getUserByEmail(tempUserEmail);
62
    			tempUserId = user.getUserId();
63
    		} catch (Exception e) {
64
    			//////////////log.error("Unable to get user for id " + tempUserId, e);
65
    		}
66
    	} catch(Exception e) {
67
    		//////////////log.error("Unable to get default source", e);
68
    	}
69
    	txnObj.setShoppingCartid(0);
70
    	txnObj.setCustomer_id(tempUserId);
71
    	txnObj.setCreatedOn(Calendar.getInstance().getTimeInMillis());
72
    	txnObj.setTransactionStatus(TransactionStatus.INIT);
73
    	txnObj.setStatusDescription("New Amazon Order");
74
    	txnObj.setCoupon_code("");
75
    	txnObj.setEmiSchemeId(0);
76
 
77
    	//if(createOrder(tempUserId) ==  null) {
78
    	//////////////log.error("Unable to create transaction");
79
    	//setErrorMsg("Unable to create order. Please try again.");
80
    	//    return "error-result";
81
    	//}
82
    	for(com.amazonservices.mws.orders.model.OrderItem amazonItemlist: amazonItems){
83
    		int netQuantity = amazonItemlist.getQuantityOrdered() - amazonItemlist.getQuantityShipped();
84
    		for (int i=0;i<netQuantity;i++){
85
				orders.add(createOrder(tempUserEmail,tempUserId,amazonItemlist,amazonitem));
86
			}
87
    	}
88
 
89
    	txnObj.setOrders(orders);
90
    	TransactionClient tcl;
91
    	long txnId = 0;
92
    	try {
93
    		tcl = new TransactionClient();
94
    		txnId = tcl.getClient().createTransaction(txnObj);
95
    		System.out.println("Transaction ID is : " + txnId);
96
    		return txnId;
97
    	} catch (Exception e) {
98
    		//////////////log.error("Unable to create transaction", e);
99
    		//setErrorMsg("Unable to create order. Please try again.");
100
    		System.out.println("Could not Create Transaction ......");
101
    		return -1;
102
    	}
103
    }
104
 
105
    public Order createOrder(String tempUserEmail,long userId,com.amazonservices.mws.orders.model.OrderItem aitem1,com.amazonservices.mws.orders.model.Order aitem) {
106
        LineItem lineObj = createLineItem(aitem1);
107
        if (lineObj == null) {
108
            return null;
109
        }
110
        Order order = new Order();
111
 
112
        order.setCustomer_id(userId);
113
        order.setCustomer_email(tempUserEmail);
114
        order.setCustomer_name(aitem.getBuyerName());
115
        order.setCustomer_address1(aitem.getShippingAddress().getAddressLine1());
7552 vikram.rag 116
        if(aitem.getShippingAddress().getAddressLine3()!=null){
117
        	order.setCustomer_address2(aitem.getShippingAddress().getAddressLine2() +" " +aitem.getShippingAddress().getAddressLine3());
118
        }
119
        else{
120
        	order.setCustomer_address2(aitem.getShippingAddress().getAddressLine2());        	
121
        }
7473 vikram.rag 122
        order.setCustomer_city(aitem.getShippingAddress().getCity());
123
        order.setCustomer_state(aitem.getShippingAddress().getStateOrRegion());
124
        order.setCustomer_pincode(aitem.getShippingAddress().getPostalCode());
7552 vikram.rag 125
        String phoneNo = aitem.getShippingAddress().getPhone();
126
        order.setCustomer_mobilenumber(phoneNo.substring(phoneNo.length() - 10));
7473 vikram.rag 127
        order.setTotal_amount(Double.parseDouble(aitem1.getItemPrice().getAmount())/aitem1.getQuantityOrdered());
128
        order.setStatus(OrderStatus.PAYMENT_PENDING);
129
        order.setStatusDescription("Initiated");
130
        order.setCreated_timestamp(Calendar.getInstance().getTimeInMillis());
131
        order.setTotal_weight(lineObj.getTotal_weight());
132
 
133
        order.setSource(3);
134
        order.setAdvanceAmount(0.0);
135
 
136
        List<LineItem> lines = new ArrayList<LineItem>();
137
        lines.add(lineObj);
138
        order.setLineitems(lines);
139
        return order;
140
    }
141
 
142
    public in.shop2020.model.v1.order.LineItem createLineItem(com.amazonservices.mws.orders.model.OrderItem amazonOrderItem) {
143
        LineItem lineitem = new LineItem();
144
 
145
        Item item = null;
146
        try {
147
            CatalogClient ccl = new CatalogClient();
148
            item = ccl.getClient().getItem(Long.valueOf(amazonOrderItem.getSellerSKU()));
149
        } catch (Exception e) {
150
            //////////////log.error("Unable to get the item from catalog service, ItemId : " + product_id, e);
151
            //setErrorMsg("Unable to create order. Please try again.");
152
            return null;
153
        }
154
        lineitem.setProductGroup(item.getProductGroup());
155
        lineitem.setBrand(item.getBrand());
156
        lineitem.setModel_number(item.getModelNumber());
157
        lineitem.setModel_name(item.getModelName());
158
        if(item.getColor() == null || item.getColor().isEmpty()) {
159
            lineitem.setColor("");
160
        } else {
161
            lineitem.setColor(item.getColor());
162
        }
163
        lineitem.setExtra_info(item.getFeatureDescription());
164
        lineitem.setItem_id(item.getId());
165
        lineitem.setQuantity(1.0);
166
        lineitem.setUnit_price(Double.valueOf(amazonOrderItem.getItemPrice().getAmount()));
167
        lineitem.setTotal_price(Double.valueOf(amazonOrderItem.getItemPrice().getAmount()));
168
        lineitem.setUnit_weight(item.getWeight());
169
        lineitem.setTotal_weight(item.getWeight());
170
        lineitem.setDealText("");
171
 
172
        if(item.getWarrantyPeriod() > 0) {
173
            //Computing Manufacturer Warranty expiry date
174
            Calendar cal = Calendar.getInstance();
175
            cal.add(Calendar.MONTH, item.getWarrantyPeriod());
176
            cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
177
            lineitem.setWarrantry_expiry_timestamp(cal.getTimeInMillis());
178
        }
179
 
180
        return lineitem;
181
    }
182
 
183
    }