| Line 571... |
Line 571... |
| 571 |
return True
|
571 |
return True
|
| 572 |
else:
|
572 |
else:
|
| 573 |
logging.warning("Verify called for order no." + str(orderId) +" which is not in verification pending state");
|
573 |
logging.warning("Verify called for order no." + str(orderId) +" which is not in verification pending state");
|
| 574 |
return False
|
574 |
return False
|
| 575 |
|
575 |
|
| 576 |
def accept_order(self, orderId):
|
576 |
def accept_order(orderId):
|
| 577 |
logging.info("Accepting order no: " + str(orderId))
|
577 |
logging.info("Accepting order no: " + str(orderId))
|
| 578 |
order = get_order(orderId)
|
578 |
order = get_order(orderId)
|
| 579 |
if order.status in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]:
|
579 |
if order.status in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]:
|
| 580 |
if not order.cod:
|
580 |
if not order.cod:
|
| 581 |
if order.transaction.status == TransactionStatus.AUTHORIZED:
|
581 |
if order.transaction.status == TransactionStatus.AUTHORIZED:
|
| Line 598... |
Line 598... |
| 598 |
logging.info("Successfully captured payment for merchant txn:" + str(txnId))
|
598 |
logging.info("Successfully captured payment for merchant txn:" + str(txnId))
|
| 599 |
change_transaction_status(txnId, TransactionStatus.IN_PROCESS, "Payment received")
|
599 |
change_transaction_status(txnId, TransactionStatus.IN_PROCESS, "Payment received")
|
| 600 |
else:
|
600 |
else:
|
| 601 |
raise TransactionServiceException(115, "Payment capture failed.")
|
601 |
raise TransactionServiceException(115, "Payment capture failed.")
|
| 602 |
|
602 |
|
| 603 |
def add_billing_details(self, orderId, jacket_number, imei_number, item_number, invoice_number, billed_by, billing_type, vendor_id):
|
603 |
def add_billing_details(orderId, invoice_number, imeiNumber, itemNumber, billedBy, jacketNumber, billingType, vendorId):
|
| 604 |
if jacket_number is None or jacket_number <= 0:
|
604 |
if jacketNumber is None or jacketNumber <= 0:
|
| 605 |
raise TransactionServiceException(110, "Invalid jacket number")
|
605 |
raise TransactionServiceException(110, "Invalid jacket number")
|
| 606 |
|
606 |
|
| 607 |
if billed_by is None or billed_by.strip() == "":
|
607 |
if billedBy is None or billedBy.strip() == "":
|
| 608 |
raise TransactionServiceException(110, "Invalid Biller")
|
608 |
raise TransactionServiceException(110, "Invalid Biller")
|
| 609 |
|
609 |
|
| 610 |
order = Order.get_by(id=orderId)
|
610 |
order = Order.get_by(id=orderId)
|
| 611 |
if not order:
|
611 |
if not order:
|
| 612 |
raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
|
612 |
raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
|
| 613 |
|
613 |
|
| 614 |
if order.status == OrderStatus.ACCEPTED:
|
614 |
if order.status == OrderStatus.ACCEPTED:
|
| 615 |
order.jacket_number = jacket_number
|
615 |
order.jacket_number = jacketNumber
|
| 616 |
if billing_type == BillingType.OURS:
|
616 |
if billingType == BillingType.OURS:
|
| 617 |
if item_number is None or item_number.strip() == "":
|
617 |
if itemNumber is None or itemNumber.strip() == "":
|
| 618 |
raise TransactionServiceException(110, "Invalid item number")
|
618 |
raise TransactionServiceException(110, "Invalid item number")
|
| 619 |
|
619 |
|
| 620 |
order.invoice_number = get_next_invoice_number()
|
620 |
order.invoice_number = get_next_invoice_number()
|
| 621 |
lineitem = order.lineitems[0]
|
621 |
lineitem = order.lineitems[0]
|
| 622 |
if lineitem.productGroup == "Handsets" and imei_number <= 0:
|
622 |
if lineitem.productGroup == "Handsets" and imeiNumber <= 0:
|
| 623 |
raise TransactionServiceException(110, "No IMEI number supplied for a handset.")
|
623 |
raise TransactionServiceException(110, "No IMEI number supplied for a handset.")
|
| 624 |
lineitem.item_number = item_number
|
624 |
lineitem.item_number = itemNumber
|
| 625 |
if imei_number > 0:
|
625 |
if imeiNumber > 0:
|
| 626 |
lineitem.imei_number = str(imei_number)
|
626 |
lineitem.imei_number = str(imeiNumber)
|
| 627 |
else:
|
627 |
else:
|
| 628 |
order.invoice_number = invoice_number
|
628 |
order.invoice_number = invoice_number
|
| 629 |
|
629 |
|
| 630 |
order.status = OrderStatus.BILLED
|
630 |
order.status = OrderStatus.BILLED
|
| 631 |
order.statusDescription = "Order Billed"
|
631 |
order.statusDescription = "Order Billed"
|
| 632 |
order.billing_timestamp = datetime.datetime.now()
|
632 |
order.billing_timestamp = datetime.datetime.now()
|
| 633 |
order.billed_by = billed_by
|
633 |
order.billed_by = billedBy
|
| 634 |
lineitem = order.lineitems[0]
|
634 |
lineitem = order.lineitems[0]
|
| 635 |
item_id = lineitem.item_id
|
635 |
item_id = lineitem.item_id
|
| 636 |
catalog_client = CatalogClient().get_client()
|
636 |
catalog_client = CatalogClient().get_client()
|
| 637 |
'''catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)'''
|
- |
|
| 638 |
item_pricing = catalog_client.getItemPricing(item_id, vendor_id)
|
637 |
item_pricing = catalog_client.getItemPricing(item_id, vendorId)
|
| 639 |
order.vendorId = vendor_id
|
638 |
order.vendorId = vendorId
|
| 640 |
lineitems = order.lineitems
|
639 |
lineitems = order.lineitems
|
| 641 |
for lineitem in lineitems:
|
640 |
for lineitem in lineitems:
|
| 642 |
catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
|
641 |
catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
|
| 643 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
642 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
| 644 |
session.commit()
|
643 |
session.commit()
|
| Line 1587... |
Line 1586... |
| 1587 |
order = get_order(orderId)
|
1586 |
order = get_order(orderId)
|
| 1588 |
order.status = OrderStatus.CANCEL_REQUEST_CONFIRMED
|
1587 |
order.status = OrderStatus.CANCEL_REQUEST_CONFIRMED
|
| 1589 |
order.statusDescription = "Cancellation request confirmed"
|
1588 |
order.statusDescription = "Cancellation request confirmed"
|
| 1590 |
session.commit()
|
1589 |
session.commit()
|
| 1591 |
|
1590 |
|
| - |
|
1591 |
def accept_orders_for_item_id(itemId, inventory):
|
| - |
|
1592 |
"""
|
| - |
|
1593 |
Marks the orders as ACCEPTED for the given itemId and inventory. It also updates the accepted timestamp. If the
|
| - |
|
1594 |
given order is not a COD order, it also captures the payment if the same has not been captured.
|
| - |
|
1595 |
|
| - |
|
1596 |
Parameters:
|
| - |
|
1597 |
- itemId
|
| - |
|
1598 |
- inventory
|
| - |
|
1599 |
"""
|
| - |
|
1600 |
orders = Order.query.filter(Order.status.in_(tuple([OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]))).order_by(Order.expected_shipping_time).all()
|
| - |
|
1601 |
for order in orders:
|
| - |
|
1602 |
if inventory <= 0:
|
| - |
|
1603 |
break
|
| - |
|
1604 |
lineitem = order.lineitems[0]
|
| - |
|
1605 |
if itemId == lineitem.item_id:
|
| 1592 |
|
1606 |
try:
|
| - |
|
1607 |
accept_order(order.id)
|
| - |
|
1608 |
inventory = inventory - lineitem.quantity
|
| - |
|
1609 |
except:
|
| - |
|
1610 |
logging.info("Unable to accept the order")
|
| - |
|
1611 |
return
|
| - |
|
1612 |
|
| 1593 |
def close_session():
|
1613 |
def close_session():
|
| 1594 |
if session.is_active:
|
1614 |
if session.is_active:
|
| 1595 |
print "session is active. closing it."
|
1615 |
print "session is active. closing it."
|
| 1596 |
session.close()
|
1616 |
session.close()
|
| 1597 |
|
1617 |
|