| Line 148... |
Line 148... |
| 148 |
logistics_client = LogisticsClient().get_client()
|
148 |
logistics_client = LogisticsClient().get_client()
|
| 149 |
#FIXME line item is only one now. If multiple will come, need to fix.
|
149 |
#FIXME line item is only one now. If multiple will come, need to fix.
|
| 150 |
item_id = order.lineitems[0].item_id
|
150 |
item_id = order.lineitems[0].item_id
|
| 151 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id)
|
151 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id)
|
| 152 |
|
152 |
|
| - |
|
153 |
current_time = datetime.datetime.now()
|
| - |
|
154 |
logistics_info.deliveryTime = adjust_delivery_time(current_time, logistics_info.deliveryTime)
|
| - |
|
155 |
|
| 153 |
order.warehouse_id = logistics_info.warehouseId
|
156 |
order.warehouse_id = logistics_info.warehouseId
|
| 154 |
order.logistics_provider_id = logistics_info.providerId
|
157 |
order.logistics_provider_id = logistics_info.providerId
|
| 155 |
order.airwaybill_no = logistics_info.airway_billno
|
158 |
order.airwaybill_no = logistics_info.airway_billno
|
| 156 |
order.tracking_id = order.airwaybill_no
|
159 |
order.tracking_id = order.airwaybill_no
|
| 157 |
order.expected_delivery_time = datetime.datetime.now() + datetime.timedelta(days=logistics_info.deliveryTime)
|
160 |
order.expected_delivery_time = current_time + datetime.timedelta(days=logistics_info.deliveryTime)
|
| 158 |
|
161 |
|
| 159 |
catalog_client = InventoryClient().get_client()
|
162 |
catalog_client = InventoryClient().get_client()
|
| 160 |
catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
|
163 |
catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
|
| 161 |
|
164 |
|
| 162 |
item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
|
165 |
item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
|
| 163 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
166 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
| 164 |
|
167 |
|
| 165 |
session.commit()
|
168 |
session.commit()
|
| 166 |
return True
|
169 |
return True
|
| 167 |
|
170 |
|
| - |
|
171 |
def adjust_delivery_time(order_time, delivery_days):
|
| - |
|
172 |
order_date = order_time.date()
|
| - |
|
173 |
|
| - |
|
174 |
delivery_date = order_date + datetime.timedelta(days = delivery_days)
|
| - |
|
175 |
final_delivery_date = delivery_date
|
| - |
|
176 |
|
| - |
|
177 |
time_format = "%Y-%m-%d %H:%M:%S.%f"
|
| - |
|
178 |
t = time.strptime(str(order_time), time_format)
|
| - |
|
179 |
midnightTime = datetime.datetime(*t[:3])
|
| - |
|
180 |
fromDate = to_java_date(midnightTime)
|
| - |
|
181 |
toDate = -1L
|
| - |
|
182 |
|
| - |
|
183 |
logistics_client = LogisticsClient().get_client()
|
| - |
|
184 |
holiday_dates = logistics_client.getHolidays(fromDate, toDate)
|
| - |
|
185 |
holiday_dates = [(to_py_date(h_date)).date() for h_date in holiday_dates]
|
| - |
|
186 |
|
| - |
|
187 |
while order_date <= final_delivery_date:
|
| - |
|
188 |
if order_date.weekday() == 6 or is_holiday(holiday_dates, order_date):
|
| - |
|
189 |
delivery_days = delivery_days + 1
|
| - |
|
190 |
final_delivery_date = final_delivery_date + datetime.timedelta(days = 1)
|
| - |
|
191 |
order_date = order_date + datetime.timedelta(days = 1)
|
| - |
|
192 |
return delivery_days
|
| - |
|
193 |
|
| - |
|
194 |
|
| - |
|
195 |
|
| - |
|
196 |
def is_holiday(holidays, date):
|
| - |
|
197 |
try:
|
| - |
|
198 |
holidays.index(date)
|
| - |
|
199 |
return 1
|
| - |
|
200 |
except:
|
| - |
|
201 |
return 0
|
| - |
|
202 |
|
| 168 |
def enqueue_transaction_info_email(transaction_id):
|
203 |
def enqueue_transaction_info_email(transaction_id):
|
| 169 |
transaction = get_transaction(transaction_id)
|
204 |
transaction = get_transaction(transaction_id)
|
| 170 |
|
205 |
|
| 171 |
html_header = """
|
206 |
html_header = """
|
| 172 |
<html>
|
207 |
<html>
|
| Line 505... |
Line 540... |
| 505 |
return Order.query.filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).count()
|
540 |
return Order.query.filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).count()
|
| 506 |
|
541 |
|
| 507 |
def get_cust_count_with_successful_txn():
|
542 |
def get_cust_count_with_successful_txn():
|
| 508 |
return session.query(Order.customer_id).filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).distinct().count()
|
543 |
return session.query(Order.customer_id).filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).distinct().count()
|
| 509 |
|
544 |
|
| 510 |
def get_max_valid_order_amount():
|
545 |
def get_valid_orders_amount_range():
|
| 511 |
orders = Order.query.filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).all()
|
- |
|
| 512 |
order_amounts = [o.total_amount for o in orders]
|
- |
|
| 513 |
return max(order_amounts)
|
- |
|
| 514 |
|
- |
|
| 515 |
def get_min_valid_order_amount():
|
- |
|
| 516 |
orders = Order.query.filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).all()
|
546 |
orders = Order.query.filter(Order.status >= OrderStatus.SUBMITTED_FOR_PROCESSING).all()
|
| 517 |
order_amounts = [o.total_amount for o in orders]
|
547 |
order_amounts = [o.total_amount for o in orders]
|
| 518 |
return min(order_amounts)
|
548 |
return [min(order_amounts), max(order_amounts)]
|
| 519 |
|
549 |
|
| 520 |
def close_session():
|
550 |
def close_session():
|
| 521 |
if session.is_active:
|
551 |
if session.is_active:
|
| 522 |
print "session is active. closing it."
|
552 |
print "session is active. closing it."
|
| 523 |
session.close()
|
553 |
session.close()
|
| 524 |
|
554 |
|