| Line 11... |
Line 11... |
| 11 |
from elixir import *
|
11 |
from elixir import *
|
| 12 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
12 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
| 13 |
from sqlalchemy.sql.expression import and_
|
13 |
from sqlalchemy.sql.expression import and_
|
| 14 |
from shop2020.model.v1 import order
|
14 |
from shop2020.model.v1 import order
|
| 15 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
15 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
| - |
|
16 |
from shop2020.clients.InventoryClient import InventoryClient
|
| 16 |
|
17 |
|
| 17 |
def get_new_transaction():
|
18 |
def get_new_transaction():
|
| 18 |
transaction = Transaction()
|
19 |
transaction = Transaction()
|
| 19 |
transaction.createdOn = datetime.datetime.now()
|
20 |
transaction.createdOn = datetime.datetime.now()
|
| 20 |
transaction.status = TransactionStatus.INIT
|
21 |
transaction.status = TransactionStatus.INIT
|
| Line 132... |
Line 133... |
| 132 |
for order in transaction.orders:
|
133 |
for order in transaction.orders:
|
| 133 |
order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|
134 |
order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|
| 134 |
#After we got payment success, we will set logistics info also
|
135 |
#After we got payment success, we will set logistics info also
|
| 135 |
logistics_client = LogisticsClient().get_client()
|
136 |
logistics_client = LogisticsClient().get_client()
|
| 136 |
#FIXME line item is only one now. If multiple will come, need to fix.
|
137 |
#FIXME line item is only one now. If multiple will come, need to fix.
|
| - |
|
138 |
item_id = order.lineitems[0].item_id
|
| 137 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, order.lineitems[0].item_id)
|
139 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id)
|
| 138 |
|
140 |
|
| 139 |
order.warehouse_id = logistics_info.warehouseId
|
141 |
order.warehouse_id = logistics_info.warehouseId
|
| 140 |
order.logistics_provider_id = logistics_info.providerId
|
142 |
order.logistics_provider_id = logistics_info.providerId
|
| 141 |
order.airwaybill_no = logistics_info.airway_billno
|
143 |
order.airwaybill_no = logistics_info.airway_billno
|
| 142 |
order.tracking_id = order.airwaybill_no
|
144 |
order.tracking_id = order.airwaybill_no
|
| 143 |
order.expected_delivery_time = datetime.datetime.now() + datetime.timedelta(days=logistics_info.deliveryTime)
|
145 |
order.expected_delivery_time = datetime.datetime.now() + datetime.timedelta(days=logistics_info.deliveryTime)
|
| - |
|
146 |
|
| - |
|
147 |
catalog_client = InventoryClient().get_client()
|
| - |
|
148 |
catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
|
| 144 |
session.commit()
|
149 |
session.commit()
|
| 145 |
return True
|
150 |
return True
|
| 146 |
|
151 |
|
| 147 |
|
152 |
|
| 148 |
def get_order(order_id):
|
153 |
def get_order(order_id):
|
| Line 174... |
Line 179... |
| 174 |
query = query.filter(Order.created_timestamp >from_date)
|
179 |
query = query.filter(Order.created_timestamp >from_date)
|
| 175 |
if to_date:
|
180 |
if to_date:
|
| 176 |
query = query.filter(Order.created_timestamp < to_date)
|
181 |
query = query.filter(Order.created_timestamp < to_date)
|
| 177 |
return query.all()
|
182 |
return query.all()
|
| 178 |
|
183 |
|
| 179 |
|
- |
|
| 180 |
def change_order_status(self, orderId, status, description):
|
184 |
def change_order_status(self, orderId, status, description):
|
| 181 |
order = get_order(orderId)
|
185 |
order = get_order(orderId)
|
| 182 |
order.status = status
|
186 |
order.status = status
|
| 183 |
order.statusDescription = description
|
187 |
order.statusDescription = description
|
| 184 |
session.commit()
|
188 |
session.commit()
|