| Line 20... |
Line 20... |
| 20 |
from shop2020.model.v1 import order
|
20 |
from shop2020.model.v1 import order
|
| 21 |
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
|
21 |
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
|
| 22 |
Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
|
22 |
Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
|
| 23 |
OrderInventory, Alert
|
23 |
OrderInventory, Alert
|
| 24 |
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
|
24 |
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
|
| - |
|
25 |
from shop2020.thriftpy.generic.ttypes import ExceptionType
|
| 25 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType
|
26 |
from shop2020.thriftpy.logistics.ttypes import DeliveryType
|
| 26 |
from shop2020.thriftpy.model.v1.catalog.ttypes import BillingType, \
|
27 |
from shop2020.thriftpy.model.v1.catalog.ttypes import BillingType, \
|
| 27 |
InventoryServiceException
|
28 |
InventoryServiceException
|
| 28 |
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
|
29 |
from shop2020.thriftpy.model.v1.order.ttypes import TransactionServiceException, \
|
| 29 |
TransactionStatus, OrderStatus, DelayReason, ExtraTransactionProcessingType, \
|
30 |
TransactionStatus, OrderStatus, DelayReason, ExtraTransactionProcessingType, \
|
| 30 |
HotspotAction, TimeoutSummary
|
31 |
HotspotAction, TimeoutSummary
|
| 31 |
from shop2020.thriftpy.payments.ttypes import PaymentException
|
32 |
from shop2020.thriftpy.payments.ttypes import PaymentException
|
| 32 |
from shop2020.thriftpy.purchase.ttypes import PurchaseOrder, LineItem as POLineItem
|
33 |
from shop2020.thriftpy.purchase.ttypes import PurchaseOrder, \
|
| - |
|
34 |
LineItem as POLineItem
|
| 33 |
from shop2020.thriftpy.warehouse.ttypes import ScanType
|
35 |
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
|
| - |
|
36 |
WarehouseServiceException
|
| 34 |
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
|
37 |
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part
|
| 35 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
38 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
| 36 |
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
|
39 |
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
|
| 37 |
from sqlalchemy.sql import func
|
40 |
from sqlalchemy.sql import func
|
| 38 |
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
|
41 |
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct
|
| Line 658... |
Line 661... |
| 658 |
lineitems = order.lineitems
|
661 |
lineitems = order.lineitems
|
| 659 |
for lineitem in lineitems:
|
662 |
for lineitem in lineitems:
|
| 660 |
catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
|
663 |
catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
|
| 661 |
|
664 |
|
| 662 |
# Putting NULL as transfer price for cases where its missing
|
665 |
# Putting NULL as transfer price for cases where its missing
|
| 663 |
if item_pricing is not None:
|
666 |
if item_pricing is not None:
|
| 664 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
667 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
| 665 |
session.commit()
|
- |
|
| 666 |
|
668 |
|
| 667 |
# For Mahipal warehouse, we need to scan out items for every billed order
|
669 |
# For Mahipal warehouse, we need to scan out items for every billed order
|
| 668 |
if order.warehouse_id == 7:
|
670 |
if order.warehouse_id == 7:
|
| 669 |
try:
|
671 |
try:
|
| 670 |
warehouse_client = WarehouseClient().get_client()
|
672 |
warehouse_client = WarehouseClient().get_client()
|
| 671 |
inventoryItem = warehouse_client.getInventoryItem(str(imeiNumber))
|
673 |
inventoryItem = warehouse_client.getInventoryItem(str(imeiNumber))
|
| - |
|
674 |
if (inventoryItem.itemId != item_id):
|
| - |
|
675 |
item = catalog_client.getItem(inventoryItem.itemId)
|
| - |
|
676 |
lineitem = order.lineitems[0]
|
| - |
|
677 |
scanItemString = " ".join([item.brand, item.modelName, item.modelNumber, item.color])
|
| - |
|
678 |
lineItemString = " ".join([lineitem.brand, lineitem.model_name, lineitem.model_number, lineitem.color])
|
| - |
|
679 |
raise TransactionServiceException(110, 'Trying to scan ' + scanItemString + ' instead of ' + lineItemString)
|
| 672 |
transferPrice = warehouse_client.scanSerializedItemForOrder(inventoryItem.id, ScanType.SALE, orderId)
|
680 |
transferPrice = warehouse_client.scanSerializedItemForOrder(inventoryItem.id, ScanType.SALE, orderId)
|
| 673 |
# order.transfer_price = transferPrice
|
681 |
order.transfer_price = transferPrice
|
| 674 |
except:
|
682 |
except WarehouseServiceException as e:
|
| 675 |
print sys.exc_info()[0]
|
683 |
print sys.exc_info()[0]
|
| 676 |
print 'Could not scan out orders'
|
684 |
print 'Could not scan out orders due to: ' + e.message
|
| - |
|
685 |
if e.exceptionType == ExceptionType.ILLEGAL_ARGUMENTS:
|
| - |
|
686 |
raise TransactionServiceException(110, e.message)
|
| 677 |
|
687 |
|
| - |
|
688 |
session.commit()
|
| 678 |
return True
|
689 |
return True
|
| 679 |
else:
|
690 |
else:
|
| 680 |
return False
|
691 |
return False
|
| 681 |
|
692 |
|
| 682 |
def batch_orders(warehouseId):
|
693 |
def batch_orders(warehouseId):
|