Subversion Repositories SmartDukaan

Rev

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

Rev 5929 Rev 6318
Line 234... Line 234...
234
    return txn_id
234
    return txn_id
235
 
235
 
236
def create_orders(cart, userId):
236
def create_orders(cart, userId):
237
    cart_lines = cart.lines
237
    cart_lines = cart.lines
238
    orders = []
238
    orders = []
-
 
239
    isGv = False
-
 
240
    if cart.coupon_code:
-
 
241
        try:
-
 
242
            pc = PromotionClient().get_client()
-
 
243
            isGv = pc.isGiftVoucher(cart.coupon_code)
-
 
244
        except:
-
 
245
            isGv = False
239
    
246
        
240
    for line in cart_lines:
247
    for line in cart_lines:
241
        if line.line_status == LineStatus.LINE_ACTIVE:
248
        if line.line_status == LineStatus.LINE_ACTIVE:
242
            quantity_remaining_for_order = line.quantity
249
            quantity_remaining_for_order = line.quantity
243
        
250
        
244
            for discount in line.discounts:
251
            for discount in line.discounts:
245
                i = 0
252
                i = 0
246
                while i < discount.quantity:
253
                while i < discount.quantity:
247
                    t_line_item = create_line_item(line.item_id, line.actual_price - discount.discount)
254
                    t_line_item = create_line_item(line.item_id, line.actual_price - discount.discount)
248
                    t_order = create_order(userId, cart.address_id, t_line_item, cart.pickupStoreId)
255
                    t_order = create_order(userId, cart.address_id, t_line_item, cart.pickupStoreId, discount.discount if isGv else 0)
249
                    orders.append(t_order)
256
                    orders.append(t_order)
250
                    i += 1
257
                    i += 1
251
                quantity_remaining_for_order -= discount.quantity
258
                quantity_remaining_for_order -= discount.quantity
252
            
259
            
253
            i = 0
260
            i = 0
254
            while i < quantity_remaining_for_order:
261
            while i < quantity_remaining_for_order:
255
                t_line_item = create_line_item(line.item_id, line.actual_price)
262
                t_line_item = create_line_item(line.item_id, line.actual_price)
256
                t_order = create_order(userId, cart.address_id, t_line_item, cart.pickupStoreId)
263
                t_order = create_order(userId, cart.address_id, t_line_item, cart.pickupStoreId, 0)
257
                orders.append(t_order)
264
                orders.append(t_order)
258
                i += 1
265
                i += 1
259
    return orders
266
    return orders
260
 
267
 
261
def create_order(userId, address_id, t_line_item, pickupStoreId):
268
def create_order(userId, address_id, t_line_item, pickupStoreId, gvAmount):
262
    user = User.get_by(id=userId)
269
    user = User.get_by(id=userId)
263
    address = Address.get_by(id=address_id)
270
    address = Address.get_by(id=address_id)
264
    t_order = TOrder()
271
    t_order = TOrder()
265
    
272
    
266
    t_order.customer_id = user.id
273
    t_order.customer_id = user.id
Line 273... Line 280...
273
    t_order.customer_city = address.city
280
    t_order.customer_city = address.city
274
    t_order.customer_state = address.state
281
    t_order.customer_state = address.state
275
    t_order.customer_mobilenumber = address.phone
282
    t_order.customer_mobilenumber = address.phone
276
    
283
    
277
    t_order.total_amount = t_line_item.total_price
284
    t_order.total_amount = t_line_item.total_price
-
 
285
    t_order.gvAmount = gvAmount
278
    
286
    
279
    t_order.total_weight = t_line_item.total_weight
287
    t_order.total_weight = t_line_item.total_weight
280
    t_order.lineitems = [t_line_item]
288
    t_order.lineitems = [t_line_item]
281
    
289
    
282
    t_order.status = OrderStatus.PAYMENT_PENDING
290
    t_order.status = OrderStatus.PAYMENT_PENDING