| 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:
|