| Line 572... |
Line 572... |
| 572 |
item_id = order.lineitems[0].item_id
|
572 |
item_id = order.lineitems[0].item_id
|
| 573 |
if pickUp == PickUpType.RUNNER or pickUp == PickUpType.SELF:
|
573 |
if pickUp == PickUpType.RUNNER or pickUp == PickUpType.SELF:
|
| 574 |
current_time = datetime.datetime.now()
|
574 |
current_time = datetime.datetime.now()
|
| 575 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.PREPAID, pickUp)
|
575 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.PREPAID, pickUp)
|
| 576 |
order.logistics_provider_id = logistics_info.providerId
|
576 |
order.logistics_provider_id = logistics_info.providerId
|
| - |
|
577 |
if pdu.isFofo:
|
| - |
|
578 |
###For fofo always use RQuick - Surface i.e. 48
|
| - |
|
579 |
order.logistics_provider_id = 48
|
| - |
|
580 |
logistics_info.deliveryTime = logistics_info.shippingTime + 1
|
| - |
|
581 |
|
| 577 |
if pdu.isFofo and fofoWarehousesMap:
|
582 |
if fofoWarehousesMap:
|
| 578 |
order.fulfilmentWarehouseId = fofoWarehousesMap.get(item_id).id
|
583 |
order.fulfilmentWarehouseId = fofoWarehousesMap.get(item_id).id
|
| 579 |
order.warehouse_id = fofoWarehousesMap.get(item_id).billingWarehouseId
|
584 |
order.warehouse_id = fofoWarehousesMap.get(item_id).billingWarehouseId
|
| 580 |
else:
|
585 |
else:
|
| 581 |
order.warehouse_id = logistics_info.warehouseId
|
586 |
order.warehouse_id = logistics_info.warehouseId
|
| 582 |
order.fulfilmentWarehouseId = logistics_info.fulfilmentWarehouseId
|
587 |
order.fulfilmentWarehouseId = logistics_info.fulfilmentWarehouseId
|
| 583 |
|
588 |
|
| 584 |
logistics_info.deliveryTime = adjust_delivery_time(current_time, logistics_info.deliveryTime)
|
589 |
logistics_info.deliveryTime = adjust_delivery_time(current_time, logistics_info.deliveryTime)
|
| Line 593... |
Line 598... |
| 593 |
order.otg = False
|
598 |
order.otg = False
|
| 594 |
|
599 |
|
| 595 |
|
600 |
|
| 596 |
inventory_client = InventoryClient().get_client()
|
601 |
inventory_client = InventoryClient().get_client()
|
| 597 |
|
602 |
|
| 598 |
# if OrderType.B2B == order.orderType:
|
- |
|
| 599 |
# #get state
|
- |
|
| 600 |
# stateMaster = fetchStateMaster()
|
- |
|
| 601 |
# stateId = -1
|
- |
|
| 602 |
# for k, v in stateMaster.iteritems():
|
- |
|
| 603 |
# if v.stateName == order.customer_state:
|
- |
|
| 604 |
# stateId = k
|
- |
|
| 605 |
# break
|
- |
|
| 606 |
# if stateId == -1:
|
- |
|
| 607 |
# raise TransactionServiceException(108, "No such State")
|
- |
|
| 608 |
# if not inventory_client.isAlive():
|
- |
|
| 609 |
# inventory_client = InventoryClient().get_client()
|
- |
|
| 610 |
# ffWarehouse = inventory_client.getWarehouse(order.fulfilmentWarehouseId)
|
- |
|
| 611 |
# if stateId!= ffWarehouse.stateId:
|
- |
|
| 612 |
# goodWhIds = inventory_client.getOursGoodWarehouseIdsForLocation(stateId)
|
- |
|
| 613 |
# if goodWhIds is None or len(goodWhIds) == 0:
|
- |
|
| 614 |
# raise TransactionServiceException(108, "No availability from this location")
|
- |
|
| 615 |
# fulfilmentWarehouseId = goodWhIds[0]
|
- |
|
| 616 |
# for goodWhId in goodWhIds:
|
- |
|
| 617 |
# availability = inventory_client.getItemAvailibilityAtWarehouse(goodWhId, order.lineitems[0].item_id)
|
- |
|
| 618 |
# if availability > 0:
|
- |
|
| 619 |
# fulfilmentWarehouseId = goodWhId
|
- |
|
| 620 |
# break
|
- |
|
| 621 |
#
|
- |
|
| 622 |
# order.fulfilmentWarehouseId = fulfilmentWarehouseId
|
- |
|
| 623 |
# fulfillmentWh = inventory_client.getWarehouse(fulfilmentWarehouseId)
|
- |
|
| 624 |
# order.warehouse_id = fulfillmentWh.billingWarehouseId
|
- |
|
| 625 |
|
- |
|
| 626 |
if order.pickupStoreId:
|
- |
|
| 627 |
order.otg = False
|
- |
|
| 628 |
|
- |
|
| 629 |
if order.productCondition != ProductCondition.BAD:
|
603 |
if order.productCondition != ProductCondition.BAD:
|
| 630 |
inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
604 |
inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
| 631 |
|
605 |
|
| 632 |
elif order.source == OrderSource.WEBSITE:
|
606 |
elif order.source == OrderSource.WEBSITE:
|
| 633 |
try:
|
607 |
try:
|
| Line 658... |
Line 632... |
| 658 |
subOrderAmountsMap[long(order.lineitems[0].unit_price)] = order
|
632 |
subOrderAmountsMap[long(order.lineitems[0].unit_price)] = order
|
| 659 |
|
633 |
|
| 660 |
order.fulfilmentWarehouseId = fulfilmentWhId
|
634 |
order.fulfilmentWarehouseId = fulfilmentWhId
|
| 661 |
order.warehouse_id = billingWarehouseId
|
635 |
order.warehouse_id = billingWarehouseId
|
| 662 |
|
636 |
|
| 663 |
# fulfilmentWarehouseId = fulfilmentWhId
|
- |
|
| 664 |
# if OrderType.B2B == order.orderType:
|
- |
|
| 665 |
# #get state
|
- |
|
| 666 |
# stateMaster = fetchStateMaster()
|
- |
|
| 667 |
# stateId = -1
|
- |
|
| 668 |
# for k, v in stateMaster.iteritems():
|
- |
|
| 669 |
# if v.stateName == order.customer_state:
|
- |
|
| 670 |
# stateId = k
|
- |
|
| 671 |
# break
|
- |
|
| 672 |
# if stateId == -1:
|
- |
|
| 673 |
# raise TransactionServiceException(108, "No such State")
|
- |
|
| 674 |
# if not inventory_client.isAlive():
|
- |
|
| 675 |
# inventory_client = InventoryClient().get_client()
|
- |
|
| 676 |
# ffWarehouse = inventory_client.getWarehouse(order.fulfilmentWarehouseId)
|
- |
|
| 677 |
# if stateId!= ffWarehouse.stateId:
|
- |
|
| 678 |
# goodWhIds = inventory_client.getOursGoodWarehouseIdsForLocation(stateId)
|
- |
|
| 679 |
# if goodWhIds is None or len(goodWhIds) == 0:
|
- |
|
| 680 |
# raise TransactionServiceException(108, "No availability from this location")
|
- |
|
| 681 |
# fulfilmentWarehouseId = goodWhIds[0]
|
- |
|
| 682 |
# for goodWhId in goodWhIds:
|
- |
|
| 683 |
# availability = inventory_client.getItemAvailibilityAtWarehouse(goodWhId, order.lineitems[0].item_id)
|
- |
|
| 684 |
# if availability > 0:
|
- |
|
| 685 |
# fulfilmentWarehouseId = goodWhId
|
- |
|
| 686 |
# break
|
- |
|
| 687 |
#
|
- |
|
| 688 |
# order.fulfilmentWarehouseId = fulfilmentWarehouseId
|
- |
|
| 689 |
# fulfillmentWh = inventory_client.getWarehouse(fulfilmentWarehouseId)
|
- |
|
| 690 |
# order.warehouse_id = fulfillmentWh.billingWarehouseId
|
- |
|
| 691 |
|
- |
|
| 692 |
if order.pickupStoreId:
|
- |
|
| 693 |
order.otg = False
|
- |
|
| 694 |
|
637 |
|
| 695 |
if order.productCondition != ProductCondition.BAD:
|
638 |
if order.productCondition != ProductCondition.BAD:
|
| 696 |
inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
639 |
inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
| 697 |
|
640 |
|
| 698 |
try:
|
641 |
try:
|
| Line 741... |
Line 684... |
| 741 |
shippingTime = adjust_delivery_time(current_time, shipping_delay)
|
684 |
shippingTime = adjust_delivery_time(current_time, shipping_delay)
|
| 742 |
delivery_delay = adjust_delivery_time(current_time, shipping_delay+delivery_delay)
|
685 |
delivery_delay = adjust_delivery_time(current_time, shipping_delay+delivery_delay)
|
| 743 |
#Otg is currently available to both type of users.
|
686 |
#Otg is currently available to both type of users.
|
| 744 |
order.otg = costingAndDeliveryEstimateObj.otgAvailable
|
687 |
order.otg = costingAndDeliveryEstimateObj.otgAvailable
|
| 745 |
|
688 |
|
| - |
|
689 |
#If RQuick Surface then dont change shipping details
|
| - |
|
690 |
if order.logistics_provider_id != 48:
|
| 746 |
order.logistics_provider_id = costingAndDeliveryEstimateObj.logistics_provider_id
|
691 |
order.logistics_provider_id = costingAndDeliveryEstimateObj.logistics_provider_id
|
| 747 |
#Start:- Added by Manish Sharma for FedEx Integration - Shipment Creation on 31-Jul-2013
|
692 |
#Start:- Added by Manish Sharma for FedEx Integration - Shipment Creation on 31-Jul-2013
|
| 748 |
#order.airwaybill_no = logistics_info.airway_billno
|
693 |
#order.airwaybill_no = logistics_info.airway_billno
|
| 749 |
#order.tracking_id = order.airwaybill_no
|
694 |
#order.tracking_id = order.airwaybill_no
|
| 750 |
#End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
695 |
#End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
| 751 |
#TODO APR2516 Promised Delivery Time should also consider delivery delay.
|
696 |
#TODO APR2516 Promised Delivery Time should also consider delivery delay.
|
| 752 |
order.courier_delivery_time = (current_time + datetime.timedelta(days=delivery_delay)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
697 |
order.courier_delivery_time = (current_time + datetime.timedelta(days=delivery_delay)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| 753 |
order.expected_shipping_time = (current_time + datetime.timedelta(days=shippingTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
698 |
order.expected_shipping_time = (current_time + datetime.timedelta(days=shippingTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| 754 |
order.promised_shipping_time = order.expected_shipping_time
|
699 |
order.promised_shipping_time = order.expected_shipping_time
|
| 755 |
order.expected_delivery_time = (current_time + datetime.timedelta(days=deliveryTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
700 |
order.expected_delivery_time = (current_time + datetime.timedelta(days=deliveryTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| 756 |
order.promised_delivery_time = order.expected_delivery_time
|
701 |
order.promised_delivery_time = order.expected_delivery_time
|
| 757 |
itemLevelLogisticsCost = round((order.total_weight *logisticsCost)/transactionWeight, 2)
|
702 |
itemLevelLogisticsCost = round((order.total_weight *logisticsCost)/transactionWeight, 2)
|
| 758 |
logisticsCostInOrders = logisticsCostInOrders + itemLevelLogisticsCost
|
703 |
logisticsCostInOrders = logisticsCostInOrders + itemLevelLogisticsCost
|
| 759 |
order.lineitems[0].logisticsCost = itemLevelLogisticsCost
|
704 |
order.lineitems[0].logisticsCost = itemLevelLogisticsCost
|
| 760 |
order.lineitems[0].codCollectionCharges = 0
|
705 |
order.lineitems[0].codCollectionCharges = 0
|
| 761 |
|
706 |
|