Subversion Repositories SmartDukaan

Rev

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

Rev 5661 Rev 5676
Line 45... Line 45...
45
import os
45
import os
46
import sys
46
import sys
47
import time
47
import time
48
import traceback
48
import traceback
49
from shop2020.thriftpy.model.v1.user.ttypes import VoucherType
49
from shop2020.thriftpy.model.v1.user.ttypes import VoucherType
-
 
50
from random import randrange
50
from shop2020.clients.AlertClient import AlertClient
51
from shop2020.clients.AlertClient import AlertClient
51
logging.basicConfig(level=logging.DEBUG)
52
logging.basicConfig(level=logging.DEBUG)
52
 
53
 
53
 
54
 
54
PREPAID_SHIPPING_CUTOFF_TIME = 15
55
PREPAID_SHIPPING_CUTOFF_TIME = 15
Line 370... Line 371...
370
    """
371
    """
371
    user_email = ""
372
    user_email = ""
372
    total_amount = 0.0
373
    total_amount = 0.0
373
    html_table = ""
374
    html_table = ""
374
    order_date = datetime.datetime.now()
375
    order_date = datetime.datetime.now()
375
    
376
 
376
    for order in transaction.orders:
377
    orders = transaction.orders
-
 
378
    html_pickup_text = ""
-
 
379
    random_text = ""
-
 
380
    if order[0].pickupStoreId:
-
 
381
        random_text = str(randrange(100000, 999999))
-
 
382
        html_pickup_text =  "Secret code for your order is " + random_text + ". Please tell store manager this secret code to get the order. " 
-
 
383
                
-
 
384
    for order in orders:
377
        order_date = order.created_timestamp
385
        order_date = order.created_timestamp
378
        user_email = order.customer_email
386
        user_email = order.customer_email
379
        html_tr = "<tr><td align='center'>" + str(order.id) + "</td>"
387
        html_tr = "<tr><td align='center'>" + str(order.id) + "</td>"
-
 
388
 
-
 
389
        if order.pickupStoreId:
-
 
390
            attribute = Attribute()
-
 
391
            attribute.orderId = order.id
-
 
392
            attribute.name = "SECRET_CODE"
-
 
393
            attribute.value = random_text
-
 
394
            session.commit()
380
        
395
        
381
        for lineitem in order.lineitems:
396
        for lineitem in order.lineitems:
382
            lineitem_total_price = round(lineitem.total_price, 2)
397
            lineitem_total_price = round(lineitem.total_price, 2)
383
            
398
            
384
            html_tr += "<td>" + str(lineitem) + "</td>"
399
            html_tr += "<td>" + str(lineitem) + "</td>"
Line 395... Line 410...
395
            <td colspan=4>Total Amount</td>
410
            <td colspan=4>Total Amount</td>
396
            <td> Rs. $total_amount</td>
411
            <td> Rs. $total_amount</td>
397
        </tr>
412
        </tr>
398
        </table>
413
        </table>
399
    </div>
414
    </div>
-
 
415
    """
-
 
416
    html_footer = html_footer + html_pickup_text + """
400
    <p>
417
    <p>
401
        Best Wishes,<br />
418
        Best Wishes,<br />
402
        Saholic Team
419
        Saholic Team
403
    </p>
420
    </p>
404
</div>
421
</div>
Line 844... Line 861...
844
        
861
        
845
        return True
862
        return True
846
    except:
863
    except:
847
        return False
864
        return False
848
    
865
    
-
 
866
def mark_orders_as_returned_from_store(providerId, orderIds):
-
 
867
    try:
-
 
868
        current_timestamp = datetime.datetime.now()
-
 
869
        orders = Order.query.filter_by(logistics_provider_id = providerId, status = OrderStatus.RET_PICKUP_REQUEST_RAISED).all()
-
 
870
        for order in orders:
-
 
871
            if order.id in orderIds:
-
 
872
                order.status = OrderStatus.RET_RETURN_IN_TRANSIT
-
 
873
                order.statusDescription = "Order returned from store"
-
 
874
                order.doa_pickup_timestamp = current_timestamp
-
 
875
        session.commit()
-
 
876
        
-
 
877
        return True
-
 
878
    except:
-
 
879
        return False    
-
 
880
 
-
 
881
def set_order_attributes(orderId, attributes):
-
 
882
    pass
849
def mark_orders_as_picked_up(provider_id, pickup_details):
883
def mark_orders_as_picked_up(provider_id, pickup_details):
850
    for awb, pickup_timestamp in pickup_details.iteritems():
884
    for awb, pickup_timestamp in pickup_details.iteritems():
851
        order = Order.query.filter_by(airwaybill_no=awb, logistics_provider_id = provider_id).first()
885
        order = Order.query.filter_by(airwaybill_no=awb, logistics_provider_id = provider_id).first()
852
        if order == None or order.status != OrderStatus.SHIPPED_FROM_WH:
886
        if order == None or order.status != OrderStatus.SHIPPED_FROM_WH:
853
            #raise TransactionServiceException(102, "No order found for the awb: " + awb)
887
            #raise TransactionServiceException(102, "No order found for the awb: " + awb)
Line 963... Line 997...
963
 
997
 
964
def get_receive_pending_orders(storeId):
998
def get_receive_pending_orders(storeId):
965
    return Order.query.filter_by(pickupStoreId = storeId).filter(Order.status.in_((OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE, OrderStatus.DELIVERED_AT_STORE))).all()
999
    return Order.query.filter_by(pickupStoreId = storeId).filter(Order.status.in_((OrderStatus.SHIPPED_FROM_WH, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_TO_DESTINATION_CITY, OrderStatus.REACHED_DESTINATION_CITY, OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE, OrderStatus.DELIVERED_AT_STORE))).all()
966
 
1000
 
967
def get_received_at_store_orders(storeId):
1001
def get_received_at_store_orders(storeId):
968
    return Order.query.filter_by(pickupStoreId = storeId).filter_by(status = OrderStatus.RECEIVED_AT_STORE).all()
1002
    return Order.query.filter_by(pickupStoreId = storeId).filter(Order.status.in_((OrderStatus.RECEIVED_AT_STORE, OrderStatus.RET_PICKUP_REQUEST_RAISED))).all()
969
 
1003
 
970
def update_non_delivery_reason(provider_id, undelivered_orders):
1004
def update_non_delivery_reason(provider_id, undelivered_orders):
971
    for awb, reason in undelivered_orders.iteritems():
1005
    for awb, reason in undelivered_orders.iteritems():
972
        order = Order.query.filter_by(airwaybill_no=awb, logistics_provider_id = provider_id).first()
1006
        order = Order.query.filter_by(airwaybill_no=awb, logistics_provider_id = provider_id).first()
973
        if order == None or order.status == OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE:
1007
        if order == None or order.status == OrderStatus.FIRST_DELIVERY_ATTEMPT_MADE: