| Line 609... |
Line 609... |
| 609 |
session.commit()
|
609 |
session.commit()
|
| 610 |
raise TransactionServiceException(122, "Unable to capture payment due to connection issue.")
|
610 |
raise TransactionServiceException(122, "Unable to capture payment due to connection issue.")
|
| 611 |
else:
|
611 |
else:
|
| 612 |
raise TransactionServiceException(115, "Payment capture failed.")
|
612 |
raise TransactionServiceException(115, "Payment capture failed.")
|
| 613 |
|
613 |
|
| 614 |
def add_billing_details(orderId, invoice_number, imeiNumber, itemNumber, billedBy, jacketNumber, billingType, vendorId):
|
614 |
def add_billing_details(orderId, invoice_number, serialNumber, itemNumber, billedBy, jacketNumber, billingType, vendorId):
|
| 615 |
if jacketNumber is None or jacketNumber <= 0:
|
615 |
if jacketNumber is None or jacketNumber <= 0:
|
| 616 |
raise TransactionServiceException(110, "Invalid jacket number")
|
616 |
raise TransactionServiceException(110, "Invalid jacket number")
|
| 617 |
|
617 |
|
| 618 |
if billedBy is None or billedBy.strip() == "":
|
618 |
if billedBy is None or billedBy.strip() == "":
|
| 619 |
raise TransactionServiceException(110, "Invalid Biller")
|
619 |
raise TransactionServiceException(110, "Invalid Biller")
|
| Line 628... |
Line 628... |
| 628 |
if itemNumber is None or itemNumber.strip() == "":
|
628 |
if itemNumber is None or itemNumber.strip() == "":
|
| 629 |
raise TransactionServiceException(110, "Invalid item number")
|
629 |
raise TransactionServiceException(110, "Invalid item number")
|
| 630 |
|
630 |
|
| 631 |
order.invoice_number = get_next_invoice_number()
|
631 |
order.invoice_number = get_next_invoice_number()
|
| 632 |
lineitem = order.lineitems[0]
|
632 |
lineitem = order.lineitems[0]
|
| 633 |
if lineitem.productGroup == "Handsets" and imeiNumber <= 0:
|
633 |
if lineitem.productGroup == "Handsets" and not serialNumber:
|
| 634 |
raise TransactionServiceException(110, "No IMEI number supplied for a handset.")
|
634 |
raise TransactionServiceException(110, "No Serial Number supplied for a handset.")
|
| 635 |
lineitem.item_number = itemNumber
|
635 |
lineitem.item_number = itemNumber
|
| 636 |
if imeiNumber > 0:
|
636 |
if serialNumber:
|
| 637 |
lineitem.imei_number = str(imeiNumber)
|
637 |
lineitem.serial_number = serialNumber
|
| 638 |
else:
|
638 |
else:
|
| 639 |
order.invoice_number = invoice_number
|
639 |
order.invoice_number = invoice_number
|
| 640 |
|
640 |
|
| 641 |
order.status = OrderStatus.BILLED
|
641 |
order.status = OrderStatus.BILLED
|
| 642 |
order.statusDescription = "Order Billed"
|
642 |
order.statusDescription = "Order Billed"
|
| Line 664... |
Line 664... |
| 664 |
|
664 |
|
| 665 |
# For Mahipal warehouse, we need to scan out items for every billed order
|
665 |
# For Mahipal warehouse, we need to scan out items for every billed order
|
| 666 |
if order.warehouse_id == 7:
|
666 |
if order.warehouse_id == 7:
|
| 667 |
try:
|
667 |
try:
|
| 668 |
warehouse_client = WarehouseClient().get_client()
|
668 |
warehouse_client = WarehouseClient().get_client()
|
| 669 |
inventoryItem = warehouse_client.getInventoryItem(str(imeiNumber))
|
669 |
inventoryItem = warehouse_client.getInventoryItem(serialNumber)
|
| 670 |
if (inventoryItem.itemId != item_id):
|
670 |
if (inventoryItem.itemId != item_id):
|
| 671 |
item = catalog_client.getItem(inventoryItem.itemId)
|
671 |
item = catalog_client.getItem(inventoryItem.itemId)
|
| 672 |
lineitem = order.lineitems[0]
|
672 |
lineitem = order.lineitems[0]
|
| 673 |
scanItemString = " ".join([item.brand, item.modelName, item.modelNumber, item.color])
|
673 |
scanItemString = " ".join([item.brand, item.modelName, item.modelNumber, item.color])
|
| 674 |
lineItemString = " ".join([lineitem.brand, lineitem.model_name, lineitem.model_number, lineitem.color])
|
674 |
lineItemString = " ".join([lineitem.brand, lineitem.model_name, lineitem.model_number, lineitem.color])
|
| 675 |
raise TransactionServiceException(110, 'Trying to scan ' + scanItemString + ' instead of ' + lineItemString)
|
675 |
raise TransactionServiceException(110, 'Trying to scan ' + scanItemString + ' instead of ' + lineItemString)
|
| 676 |
inventoryItem = warehouse_client.scanSerializedItemForOrder(str(imeiNumber), ScanType.SALE, orderId, order.warehouse_id)
|
676 |
inventoryItem = warehouse_client.scanSerializedItemForOrder(serialNumber, ScanType.SALE, orderId, order.warehouse_id)
|
| 677 |
lineitem.transfer_price = inventoryItem.unitPrice
|
677 |
lineitem.transfer_price = inventoryItem.unitPrice
|
| 678 |
order.vendorId = inventoryItem.supplierId
|
678 |
order.vendorId = inventoryItem.supplierId
|
| 679 |
except WarehouseServiceException as e:
|
679 |
except WarehouseServiceException as e:
|
| 680 |
print sys.exc_info()[0]
|
680 |
print sys.exc_info()[0]
|
| 681 |
print 'Could not scan out orders due to: ' + e.message
|
681 |
print 'Could not scan out orders due to: ' + e.message
|
| Line 1099... |
Line 1099... |
| 1099 |
warehouse_client = WarehouseClient().get_client()
|
1099 |
warehouse_client = WarehouseClient().get_client()
|
| 1100 |
lineitem = order.lineitems[0]
|
1100 |
lineitem = order.lineitems[0]
|
| 1101 |
|
1101 |
|
| 1102 |
# Inventory should not be updated for DOA returns
|
1102 |
# Inventory should not be updated for DOA returns
|
| 1103 |
if order.status == OrderStatus.RTO_IN_TRANSIT:
|
1103 |
if order.status == OrderStatus.RTO_IN_TRANSIT:
|
| 1104 |
warehouse_client.scanSerializedItemForOrder(str(lineitem.imei_number), ScanType.SALE_RET, order.id, order.warehouse_id)
|
1104 |
warehouse_client.scanSerializedItemForOrder(lineitem.serial_number, ScanType.SALE_RET, order.id, order.warehouse_id)
|
| 1105 |
# In case of RTOs increasing availibility only if we receive item in prestine state
|
1105 |
# In case of RTOs increasing availibility only if we receive item in prestine state
|
| 1106 |
if not receiveCondition:
|
1106 |
if not receiveCondition:
|
| 1107 |
catalog_client = CatalogClient().get_client()
|
1107 |
catalog_client = CatalogClient().get_client()
|
| 1108 |
catalog_client.addInventory(lineitem.item_id, order.warehouse_id, lineitem.quantity)
|
1108 |
catalog_client.addInventory(lineitem.item_id, order.warehouse_id, lineitem.quantity)
|
| 1109 |
elif order.status in [OrderStatus.DOA_PICKUP_CONFIRMED, OrderStatus.DOA_RETURN_IN_TRANSIT]:
|
1109 |
elif order.status in [OrderStatus.DOA_PICKUP_CONFIRMED, OrderStatus.DOA_RETURN_IN_TRANSIT]:
|
| 1110 |
warehouse_client.scanSerializedItemForOrder(str(lineitem.imei_number), ScanType.DOA_IN, order.id, order.warehouse_id)
|
1110 |
warehouse_client.scanSerializedItemForOrder(lineitem.serial_number, ScanType.DOA_IN, order.id, order.warehouse_id)
|
| 1111 |
except:
|
1111 |
except:
|
| 1112 |
print sys.exc_info()[0]
|
1112 |
print sys.exc_info()[0]
|
| 1113 |
print 'Could not scan in sales return orders'
|
1113 |
print 'Could not scan in sales return orders'
|
| 1114 |
|
1114 |
|
| 1115 |
if order.status in [OrderStatus.DOA_PICKUP_CONFIRMED, OrderStatus.DOA_RETURN_IN_TRANSIT]:
|
1115 |
if order.status in [OrderStatus.DOA_PICKUP_CONFIRMED, OrderStatus.DOA_RETURN_IN_TRANSIT]:
|