Subversion Repositories SmartDukaan

Rev

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