| Line 1249... |
Line 1249... |
| 1249 |
print sys.exc_info()[0]
|
1249 |
print sys.exc_info()[0]
|
| 1250 |
print 'Could not scan out orders due to: ' + e.message
|
1250 |
print 'Could not scan out orders due to: ' + e.message
|
| 1251 |
raise TransactionServiceException(110, e.message)
|
1251 |
raise TransactionServiceException(110, e.message)
|
| 1252 |
elif billingType == BillingType.OURS_EXTERNAL:
|
1252 |
elif billingType == BillingType.OURS_EXTERNAL:
|
| 1253 |
try:
|
1253 |
try:
|
| - |
|
1254 |
if ItemType.SERIALIZED == item.type:
|
| 1254 |
serialNumber = serialNumbers[0]
|
1255 |
serialNumber = serialNumbers[0]
|
| - |
|
1256 |
else:
|
| - |
|
1257 |
serialNumber = ""
|
| 1255 |
warehouse_client = WarehouseClient().get_client()
|
1258 |
warehouse_client = WarehouseClient().get_client()
|
| 1256 |
inventoryItem = warehouse_client.scanForOursExternalSale(lineitem.item_id, serialNumber, lineitem.item_number, invoice_number, order.fulfilmentWarehouseId, lineitem.transfer_price, order.id)
|
1259 |
inventoryItem = warehouse_client.scanForOursExternalSale(lineitem.item_id, serialNumber, lineitem.item_number, invoice_number, order.fulfilmentWarehouseId, lineitem.transfer_price, order.id)
|
| 1257 |
lineitem.transfer_price = inventoryItem.unitPrice
|
1260 |
lineitem.transfer_price = inventoryItem.unitPrice
|
| 1258 |
order.vendorId = inventoryItem.supplierId
|
1261 |
order.vendorId = inventoryItem.supplierId
|
| 1259 |
except WarehouseServiceException as e:
|
1262 |
except WarehouseServiceException as e:
|
| Line 2147... |
Line 2150... |
| 2147 |
session.commit()
|
2150 |
session.commit()
|
| 2148 |
|
2151 |
|
| 2149 |
# For OUR warehouses, we need to scan in items for every return
|
2152 |
# For OUR warehouses, we need to scan in items for every return
|
| 2150 |
inventoryClient = InventoryClient().get_client()
|
2153 |
inventoryClient = InventoryClient().get_client()
|
| 2151 |
warehouse = inventoryClient.getWarehouse(order.warehouse_id)
|
2154 |
warehouse = inventoryClient.getWarehouse(order.warehouse_id)
|
| 2152 |
if warehouse.billingType == BillingType.OURS:
|
2155 |
if warehouse.billingType == BillingType.OURS or warehouse.billingType == BillingType.OURS_EXTERNAL:
|
| 2153 |
lineitem = order.lineitems[0]
|
2156 |
lineitem = order.lineitems[0]
|
| 2154 |
catalogClient = CatalogClient().get_client()
|
2157 |
catalogClient = CatalogClient().get_client()
|
| 2155 |
item = catalogClient.getItem(lineitem.item_id)
|
2158 |
item = catalogClient.getItem(lineitem.item_id)
|
| 2156 |
warehouse_client = WarehouseClient().get_client()
|
2159 |
warehouse_client = WarehouseClient().get_client()
|
| - |
|
2160 |
if warehouse.billingType == BillingType.OURS or scanType != ScanType.SALE_RET:
|
| 2157 |
if item.type == ItemType.SERIALIZED:
|
2161 |
if item.type == ItemType.SERIALIZED:
|
| 2158 |
warehouse_client.scanSerializedItemForOrder(lineitem.serial_number, scanType, order.id, order.fulfilmentWarehouseId, lineitem.quantity, order.warehouse_id)
|
2162 |
warehouse_client.scanSerializedItemForOrder(lineitem.serial_number, scanType, order.id, order.fulfilmentWarehouseId, lineitem.quantity, order.warehouse_id)
|
| 2159 |
else:
|
2163 |
else:
|
| 2160 |
warehouse_client.scanForOrder(None, scanType, lineitem.quantity, order.id, order.fulfilmentWarehouseId, order.warehouse_id)
|
2164 |
warehouse_client.scanForOrder(None, scanType, lineitem.quantity, order.id, order.fulfilmentWarehouseId, order.warehouse_id)
|
| - |
|
2165 |
if scanType == ScanType.SALE_RET and warehouse.billingType == BillingType.OURS_EXTERNAL:
|
| - |
|
2166 |
warehouse_client.scanForOursExternalSaleReturn(order.id, lineitem.transfer_price)
|
| 2161 |
return True
|
2167 |
return True
|
| 2162 |
|
2168 |
|
| 2163 |
def reship_order(order_id):
|
2169 |
def reship_order(order_id):
|
| 2164 |
"""
|
2170 |
"""
|
| 2165 |
If the order is in RTO_RECEIVED_PRESTINE or DOA_CERT_INVALID state, it does the following:
|
2171 |
If the order is in RTO_RECEIVED_PRESTINE or DOA_CERT_INVALID state, it does the following:
|
| Line 2417... |
Line 2423... |
| 2417 |
|
2423 |
|
| 2418 |
# For orders that are cancelled after being billed, we need to scan in the scanned out
|
2424 |
# For orders that are cancelled after being billed, we need to scan in the scanned out
|
| 2419 |
# inventory item and change availability accordingly
|
2425 |
# inventory item and change availability accordingly
|
| 2420 |
inventoryClient = InventoryClient().get_client()
|
2426 |
inventoryClient = InventoryClient().get_client()
|
| 2421 |
warehouse = inventoryClient.getWarehouse(order.warehouse_id)
|
2427 |
warehouse = inventoryClient.getWarehouse(order.warehouse_id)
|
| 2422 |
if warehouse.billingType == BillingType.OURS:
|
2428 |
if warehouse.billingType == BillingType.OURS or warehouse.billingType == BillingType.OURS_EXTERNAL:
|
| 2423 |
if order.status in [OrderStatus.BILLED, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_FROM_WH] or (order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED and order.previousStatus in [OrderStatus.BILLED, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_FROM_WH]):
|
2429 |
if order.status in [OrderStatus.BILLED, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_FROM_WH] or (order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED and order.previousStatus in [OrderStatus.BILLED, OrderStatus.SHIPPED_TO_LOGST, OrderStatus.SHIPPED_FROM_WH]):
|
| 2424 |
lineitem = order.lineitems[0]
|
2430 |
lineitem = order.lineitems[0]
|
| 2425 |
catalogClient = CatalogClient().get_client()
|
2431 |
catalogClient = CatalogClient().get_client()
|
| 2426 |
item = catalogClient.getItem(lineitem.item_id)
|
2432 |
item = catalogClient.getItem(lineitem.item_id)
|
| 2427 |
warehouseClient = WarehouseClient().get_client()
|
2433 |
warehouseClient = WarehouseClient().get_client()
|
| - |
|
2434 |
if warehouse.billingType == BillingType.OURS:
|
| 2428 |
if ItemType.SERIALIZED == item.type:
|
2435 |
if ItemType.SERIALIZED == item.type:
|
| 2429 |
warehouseClient.scanSerializedItemForOrder(lineitem.serial_number, ScanType.SALE_RET, order.id, order.fulfilmentWarehouseId, lineitem.quantity, order.warehouse_id)
|
2436 |
warehouseClient.scanSerializedItemForOrder(lineitem.serial_number, ScanType.SALE_RET, order.id, order.fulfilmentWarehouseId, lineitem.quantity, order.warehouse_id)
|
| 2430 |
else:
|
2437 |
else:
|
| 2431 |
warehouseClient.scanForOrder(None, ScanType.SALE_RET, lineitem.quantity, order.id, order.fulfilmentWarehouseId, order.warehouse_id)
|
2438 |
warehouseClient.scanForOrder(None, ScanType.SALE_RET, lineitem.quantity, order.id, order.fulfilmentWarehouseId, order.warehouse_id)
|
| - |
|
2439 |
if warehouse.billingType == BillingType.OURS_EXTERNAL:
|
| - |
|
2440 |
warehouseClient.scanForOursExternalSaleReturn(order.id, lineitem.transfer_price)
|
| 2432 |
|
2441 |
|
| 2433 |
order.status = status_transition[order.status]
|
2442 |
order.status = status_transition[order.status]
|
| 2434 |
order.refund_timestamp = datetime.datetime.now()
|
2443 |
order.refund_timestamp = datetime.datetime.now()
|
| 2435 |
order.refunded_by = refunded_by
|
2444 |
order.refunded_by = refunded_by
|
| 2436 |
order.refund_reason = reason
|
2445 |
order.refund_reason = reason
|