Subversion Repositories SmartDukaan

Rev

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