Subversion Repositories SmartDukaan

Rev

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

Rev 860 Rev 871
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()