Subversion Repositories SmartDukaan

Rev

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

Rev 4741 Rev 4749
Line 754... Line 754...
754
        for order in orders:
754
        for order in orders:
755
            order.status = OrderStatus.SHIPPED_FROM_WH
755
            order.status = OrderStatus.SHIPPED_FROM_WH
756
            order.statusDescription = "Order shipped from warehouse"
756
            order.statusDescription = "Order shipped from warehouse"
757
            order.shipping_timestamp = current_timestamp
757
            order.shipping_timestamp = current_timestamp
758
        session.commit()
758
        session.commit()
-
 
759
        
-
 
760
        try:
-
 
761
            enqueue_shipping_confirmation_email(orders)
-
 
762
        except Exception as e:
-
 
763
            print e
-
 
764
        
759
        return True
765
        return True
760
    except:
766
    except:
761
        return False
767
        return False
762
    
768
    
763
def mark_orders_as_picked_up(provider_id, pickup_details):
769
def mark_orders_as_picked_up(provider_id, pickup_details):
Line 2293... Line 2299...
2293
        query = query.filter(PaymentSettlement.settlementDate >= settlement_date_from)
2299
        query = query.filter(PaymentSettlement.settlementDate >= settlement_date_from)
2294
        
2300
        
2295
    if settlement_date_to:
2301
    if settlement_date_to:
2296
        query = query.filter(PaymentSettlement.settlementDate <= settlement_date_to)
2302
        query = query.filter(PaymentSettlement.settlementDate <= settlement_date_to)
2297
    
2303
    
2298
    settlements = query.all()
2304
    if is_refund is True:
-
 
2305
        query = query.filter(PaymentSettlement.netCollection < 0.0)
2299
    
2306
    else:
2300
    if is_refund:
-
 
2301
        return [settlement for settlement in settlements if settlement.netCollection < 0.0]
2307
        query = query.filter(PaymentSettlement.netCollection > 0.0)
2302
    
2308
    
2303
    return settlements
2309
    return query.all()
2304
 
2310
 
2305
def get_reshipped_order_ids(order_ids):
2311
def get_reshipped_order_ids(order_ids):
2306
    reshipped_order_ids = []
2312
    reshipped_order_ids = []
2307
    return [order.new_order_id for order in Order.query.filter(Order.new_order_id.in_(order_ids)).all()]
2313
    return [order.new_order_id for order in Order.query.filter(Order.new_order_id.in_(order_ids)).all()]
2308
 
2314
 
-
 
2315
def get_shipping_confirmation_email_body(order):
-
 
2316
    
-
 
2317
    html = """
-
 
2318
<html>
-
 
2319
<body>
-
 
2320
<div>
-
 
2321
    <p>Dear Customer,</p>
-
 
2322
    <p>
-
 
2323
        We are pleased to inform that we have shipped the order : $order_id for your product $product_name on $shipping_datetime. 
-
 
2324
        The shipment will be delivered to you via Bluedart/Aramex Courier Service vide AWB# $awb.
-
 
2325
    </p>
-
 
2326
    <p>
-
 
2327
        Expected delivery date for your order is $expected_delivery_date. 
-
 
2328
        The product can be delivered to you between business hours of 10am to 6pm. 
-
 
2329
        You can login to your account on our site and under "Open Orders", please click the AWB and check the current shipment updates for your product.
-
 
2330
    </p>
-
 
2331
    <p>
-
 
2332
        For scheduling the delivery of your product at some specific timings, we recommend you to contact the helpline for Bluedart/Aramex with your complete AWB#.
-
 
2333
    </p>
-
 
2334
    <p>Bluedart: 011-66111234<br />Aramex:  0124- 39419900</p>
-
 
2335
    <p>
-
 
2336
        Warm Regards,<br />
-
 
2337
        Saholic Team
-
 
2338
    </p>
-
 
2339
</body>
-
 
2340
</html>
-
 
2341
    """
-
 
2342
    dt = datetime.datetime.strptime(str(order.shipping_timestamp), "%Y-%m-%d %H:%M:%S")
-
 
2343
    shipping_date = dt.strftime("%A, %d. %B %Y %I:%M%p")
-
 
2344
    product = "%s %s %s" % (order.lineitems[0].brand, order.lineitems[0].model_name, order.lineitems[0].model_number)
-
 
2345
    new_expected_delivery_date = adjust_delivery_time(datetime.datetime.now(), (order.promised_delivery_time - order.promised_shipping_time).days)
-
 
2346
    
-
 
2347
    info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date)
-
 
2348
    email_html = Template(html).substitute(info)
-
 
2349
 
-
 
2350
def enqueue_shipping_confirmation_email(orders):
-
 
2351
 
-
 
2352
    helperClient = HelperClient().get_client()
-
 
2353
 
-
 
2354
    for order in orders:
-
 
2355
        try:
-
 
2356
            emailSubject = 'Shipping Details for Order ID: ' + str(order.id)
-
 
2357
            emailBody = get_shipping_confirmation_email_body(order)
-
 
2358
            helperClient.saveUserEmailForSending(order, None, emailSubject, emailBody, '', 'ShippingConfirmation')
-
 
2359
        except Exception as e:
-
 
2360
            print e
-
 
2361
    
2309
def close_session():
2362
def close_session():
2310
    if session.is_active:
2363
    if session.is_active:
2311
        print "session is active. closing it."
2364
        print "session is active. closing it."
2312
        session.close()
2365
        session.close()
2313
 
2366