| Line 7548... |
Line 7548... |
| 7548 |
enddate = to_py_date(enddate).date()
|
7548 |
enddate = to_py_date(enddate).date()
|
| 7549 |
query = query.filter(cast(StoreOrderCollection.pushedAt, DATE) <= enddate)
|
7549 |
query = query.filter(cast(StoreOrderCollection.pushedAt, DATE) <= enddate)
|
| 7550 |
|
7550 |
|
| 7551 |
return query.filter(StoreOrderCollection.pushedToOcr == 1).all()
|
7551 |
return query.filter(StoreOrderCollection.pushedToOcr == 1).all()
|
| 7552 |
|
7552 |
|
| - |
|
7553 |
def update_timestamp_for_amazon_order(orderDeliveryMap):
|
| - |
|
7554 |
for orderId,dateMap in orderDeliveryMap.iteritems():
|
| - |
|
7555 |
order = get_order(orderId)
|
| - |
|
7556 |
order.expected_delivery_time = datetime.datetime.strptime(dateMap.values()[0]+' 15:00:00', '%d-%m-%Y %H:%M:%S')
|
| - |
|
7557 |
order.promised_delivery_time = datetime.datetime.strptime(dateMap.values()[0]+' 15:00:00', '%d-%m-%Y %H:%M:%S')
|
| - |
|
7558 |
promisedShipping = datetime.datetime.strptime(dateMap.keys()[0]+' 15:00:00', '%d-%m-%Y %H:%M:%S')
|
| - |
|
7559 |
order.expected_shipping_time = promisedShipping
|
| - |
|
7560 |
order.promised_shipping_time = promisedShipping
|
| - |
|
7561 |
session.commit()
|
| - |
|
7562 |
return True
|
| - |
|
7563 |
|
| - |
|
7564 |
def update_source_detail_timestamp(id,lastUpdatedOn):
|
| - |
|
7565 |
detail = get_source_detail(id)
|
| - |
|
7566 |
detail.lastUpdatedOn = to_py_date(lastUpdatedOn)
|
| - |
|
7567 |
session.commit()
|
| - |
|
7568 |
return True
|
| 7553 |
|
7569 |
|
| 7554 |
def get_orders_by_mobile_number(mobileNumber):
|
7570 |
def get_orders_by_mobile_number(mobileNumber):
|
| 7555 |
return Order.query.filter(Order.customer_mobilenumber == mobileNumber).all()
|
7571 |
return Order.query.filter(Order.customer_mobilenumber == mobileNumber).all()
|
| 7556 |
|
7572 |
|
| 7557 |
def get_orders_by_amazon_id(amazonId):
|
7573 |
def get_orders_by_amazon_id(amazonId):
|
| Line 7609... |
Line 7625... |
| 7609 |
return query.all()
|
7625 |
return query.all()
|
| 7610 |
|
7626 |
|
| 7611 |
def __update_tax_type(order):
|
7627 |
def __update_tax_type(order):
|
| 7612 |
print "updating tax type"
|
7628 |
print "updating tax type"
|
| 7613 |
|
7629 |
|
| - |
|
7630 |
def create_ebay_order(ebay_order):
|
| - |
|
7631 |
ebayOrder = EbayOrder()
|
| - |
|
7632 |
ebayOrder.orderId = ebay_order.orderId
|
| - |
|
7633 |
ebayOrder.paisaPayId = ebay_order.paisaPayId
|
| - |
|
7634 |
ebayOrder.salesRecordNumber = ebay_order.salesRecordNumber
|
| - |
|
7635 |
ebayOrder.ebayListingId = ebay_order.ebayListingId
|
| - |
|
7636 |
ebayOrder.subsidyAmount = ebay_order.subsidyAmount
|
| - |
|
7637 |
ebayOrder.ebayTxnDate = to_py_date(ebay_order.ebayTxnDate)
|
| - |
|
7638 |
ebayOrder.transactionId = ebay_order.transactionId
|
| - |
|
7639 |
ebayOrder.listingName = ebay_order.listingName
|
| - |
|
7640 |
ebayOrder.listingPrice = ebay_order.listingPrice
|
| - |
|
7641 |
session.commit()
|
| - |
|
7642 |
|
| - |
|
7643 |
def get_ebay_order_by_sales_rec_number(sales_rec_number):
|
| - |
|
7644 |
return EbayOrder.query.filter(EbayOrder.salesRecordNumber == sales_rec_number).one()
|
| - |
|
7645 |
|
| - |
|
7646 |
def get_ebay_order(sales_rec_number, listingId, paisa_pay_id):
|
| - |
|
7647 |
query = EbayOrder.query
|
| - |
|
7648 |
if sales_rec_number:
|
| - |
|
7649 |
query = query.filter(EbayOrder.salesRecordNumber == sales_rec_number)
|
| - |
|
7650 |
if listingId:
|
| - |
|
7651 |
query = query.filter(EbayOrder.ebayListingId == listingId)
|
| - |
|
7652 |
if paisa_pay_id:
|
| - |
|
7653 |
query = query.filter(EbayOrder.paisaPayId == paisa_pay_id)
|
| - |
|
7654 |
return query.all()
|
| - |
|
7655 |
#return EbayOrder.query.filter(EbayOrder.salesRecordNumber == sales_rec_number).filter(EbayOrder.ebayListingId == listingId).one()
|
| - |
|
7656 |
|
| - |
|
7657 |
def get_ebay_order_by_orderId(order_id):
|
| - |
|
7658 |
return EbayOrder.query.filter(EbayOrder.orderId == order_id).one()
|
| - |
|
7659 |
|
| - |
|
7660 |
def update_ebay_order(ebay_order):
|
| - |
|
7661 |
ebayOrder = get_ebay_order_by_orderId(ebay_order.orderId)
|
| - |
|
7662 |
ebayOrder.subsidyAmount = ebay_order.subsidyAmount
|
| - |
|
7663 |
ebayOrder.transactionId = ebay_order.transactionId
|
| - |
|
7664 |
ebayOrder.ebayTxnDate = to_py_date(ebay_order.ebayTxnDate)
|
| - |
|
7665 |
ebayOrder.bluedartPaisaPayRef = ebay_order.bluedartPaisaPayRef
|
| - |
|
7666 |
ebayOrder.listingPrice = ebay_order.listingPrice
|
| - |
|
7667 |
session.commit()
|
| - |
|
7668 |
|
| - |
|
7669 |
def ebay_order_exists(sales_rec_number, ebay_listing_id):
|
| - |
|
7670 |
try:
|
| - |
|
7671 |
ebayOrder = get_ebay_order_by_sales_rec_number(sales_rec_number)
|
| - |
|
7672 |
if ebayOrder.ebayListingId == ebay_listing_id:
|
| - |
|
7673 |
return True
|
| - |
|
7674 |
else:
|
| - |
|
7675 |
return False
|
| - |
|
7676 |
except Exception as e:
|
| - |
|
7677 |
return False
|
| - |
|
7678 |
def update_order_for_ebay(t_order):
|
| - |
|
7679 |
order = get_order(t_order.id)
|
| - |
|
7680 |
order.customer_id = t_order.customer_id
|
| - |
|
7681 |
order.customer_name = t_order.customer_name
|
| - |
|
7682 |
order.customer_city = t_order.customer_city
|
| - |
|
7683 |
order.customer_state = t_order.customer_state
|
| - |
|
7684 |
order.customer_mobilenumber = t_order.customer_mobilenumber
|
| - |
|
7685 |
order.customer_pincode = t_order.customer_pincode
|
| - |
|
7686 |
order.customer_address1 = t_order.customer_address1
|
| - |
|
7687 |
order.customer_address2 = t_order.customer_address2
|
| - |
|
7688 |
order.customer_email = t_order.customer_email
|
| - |
|
7689 |
order.logistics_provider_id = t_order.logistics_provider_id
|
| - |
|
7690 |
order.airwaybill_no = t_order.airwaybill_no
|
| - |
|
7691 |
order.tracking_id = t_order.tracking_id
|
| - |
|
7692 |
order.status = t_order.status
|
| - |
|
7693 |
order.statusDescription = t_order.statusDescription
|
| - |
|
7694 |
order.cod = 0
|
| - |
|
7695 |
order.otg = False
|
| - |
|
7696 |
order.freebieItemId = 0
|
| - |
|
7697 |
order.orderType = OrderType.B2C
|
| - |
|
7698 |
order.source = 6
|
| - |
|
7699 |
|
| - |
|
7700 |
transaction = get_transaction(order.transaction_id)
|
| - |
|
7701 |
transaction.status = TransactionStatus.AUTHORIZED
|
| - |
|
7702 |
transaction.customer_id = t_order.customer_id
|
| - |
|
7703 |
session.commit()
|
| - |
|
7704 |
|
| - |
|
7705 |
def split_ebay_order(order_id, split_order_qty, split_order_item_id, use_power_ship):
|
| - |
|
7706 |
#In case of split now order is always assigned based on the website logic...Also itemId won't work for now
|
| - |
|
7707 |
order = get_order(order_id)
|
| - |
|
7708 |
if split_order_qty >=order.lineitems[0].quantity:
|
| - |
|
7709 |
raise TransactionServiceException(108, "Split Quantity is greater than or equal to order quantity")
|
| - |
|
7710 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT, OrderStatus.CAPTURE_IN_PROCESS, OrderStatus.REJECTED, OrderStatus.ACCEPTED]:
|
| - |
|
7711 |
raise TransactionServiceException(108, "Order not allowed to be split")
|
| - |
|
7712 |
new_order = __clone_order(order, False, False)
|
| - |
|
7713 |
new_order.expected_delivery_time = order.expected_delivery_time
|
| - |
|
7714 |
new_order.promised_delivery_time = order.promised_delivery_time
|
| - |
|
7715 |
new_order.expected_shipping_time = order.expected_shipping_time
|
| - |
|
7716 |
new_order.promised_shipping_time = order.promised_shipping_time
|
| - |
|
7717 |
if use_power_ship:
|
| - |
|
7718 |
new_order.logistics_provider_id = order.logistics_provider_id
|
| - |
|
7719 |
new_order.airwaybill_no = order.airwaybill_no
|
| - |
|
7720 |
new_order.tracking_id = order.tracking_id
|
| - |
|
7721 |
|
| - |
|
7722 |
new_order.lineitems[0].quantity = split_order_qty
|
| - |
|
7723 |
new_order.lineitems[0].total_price = new_order.lineitems[0].unit_price*split_order_qty
|
| - |
|
7724 |
new_order.total_amount = new_order.lineitems[0].total_price
|
| - |
|
7725 |
|
| - |
|
7726 |
order.lineitems[0].quantity = order.lineitems[0].quantity - split_order_qty
|
| - |
|
7727 |
order.lineitems[0].total_price = order.lineitems[0].unit_price * order.lineitems[0].quantity
|
| - |
|
7728 |
order.total_amount = order.lineitems[0].total_price
|
| - |
|
7729 |
|
| - |
|
7730 |
session.commit()
|
| - |
|
7731 |
return new_order
|
| - |
|
7732 |
|
| - |
|
7733 |
def add_or_update_amazon_fba_sales_snapshot(amazonfbasalessnapshot):
|
| - |
|
7734 |
salesnapshotfordate = AmazonFbaSalesSnapshot.get_by(item_id = amazonfbasalessnapshot.item_id,dateOfSale=to_py_date(amazonfbasalessnapshot.dateOfSale).date(),fcLocation=amazonfbasalessnapshot.fcLocation)
|
| - |
|
7735 |
if salesnapshotfordate is None:
|
| - |
|
7736 |
amazon_fba_sales_snapshot = AmazonFbaSalesSnapshot()
|
| - |
|
7737 |
amazon_fba_sales_snapshot.dateOfSale = to_py_date(amazonfbasalessnapshot.dateOfSale).date()
|
| - |
|
7738 |
amazon_fba_sales_snapshot.item_id = amazonfbasalessnapshot.item_id
|
| - |
|
7739 |
amazon_fba_sales_snapshot.totalOrderCount = amazonfbasalessnapshot.totalOrderCount
|
| - |
|
7740 |
amazon_fba_sales_snapshot.amazonFbaInventory = amazonfbasalessnapshot.amazonFbaInventory
|
| - |
|
7741 |
amazon_fba_sales_snapshot.isOutOfStock = amazonfbasalessnapshot.isOutOfStock
|
| - |
|
7742 |
amazon_fba_sales_snapshot.promotionOrderCount = amazonfbasalessnapshot.promotionOrderCount
|
| - |
|
7743 |
amazon_fba_sales_snapshot.totalSale = amazonfbasalessnapshot.totalSale
|
| - |
|
7744 |
amazon_fba_sales_snapshot.promotionSale = amazonfbasalessnapshot.promotionSale
|
| - |
|
7745 |
#if amazonfbasalessnapshot.ourPrice is not None:
|
| - |
|
7746 |
amazon_fba_sales_snapshot.ourPriceSnapshotDate = to_py_date(amazonfbasalessnapshot.ourPriceSnapshotDate)
|
| - |
|
7747 |
amazon_fba_sales_snapshot.ourPrice = amazonfbasalessnapshot.ourPrice
|
| - |
|
7748 |
#if amazonfbasalessnapshot.salePrice is not None:
|
| - |
|
7749 |
amazon_fba_sales_snapshot.salePriceSnapshotDate = to_py_date(amazonfbasalessnapshot.salePriceSnapshotDate)
|
| - |
|
7750 |
amazon_fba_sales_snapshot.salePrice = amazonfbasalessnapshot.salePrice
|
| - |
|
7751 |
#if amazonfbasalessnapshot.minFbaPrice is not None:
|
| - |
|
7752 |
amazon_fba_sales_snapshot.minFbaPriceSnapshotDate = to_py_date(amazonfbasalessnapshot.minFbaPriceSnapshotDate)
|
| - |
|
7753 |
amazon_fba_sales_snapshot.minFbaPrice = amazonfbasalessnapshot.minFbaPrice
|
| - |
|
7754 |
#if amazonfbasalessnapshot.minMfnPrice is not None:
|
| - |
|
7755 |
amazon_fba_sales_snapshot.minMfnPriceSnapshotDate = to_py_date(amazonfbasalessnapshot.minMfnPriceSnapshotDate)
|
| - |
|
7756 |
amazon_fba_sales_snapshot.minMfnPrice = amazonfbasalessnapshot.minMfnPrice
|
| - |
|
7757 |
amazon_fba_sales_snapshot.fcLocation = amazonfbasalessnapshot.fcLocation
|
| - |
|
7758 |
|
| - |
|
7759 |
else:
|
| - |
|
7760 |
if(amazonfbasalessnapshot.totalOrderCount > 0):
|
| - |
|
7761 |
salesnapshotfordate.isOutOfStock = 0
|
| - |
|
7762 |
salesnapshotfordate.promotionOrderCount = amazonfbasalessnapshot.promotionOrderCount
|
| - |
|
7763 |
salesnapshotfordate.totalSale = amazonfbasalessnapshot.totalSale
|
| - |
|
7764 |
salesnapshotfordate.promotionSale = amazonfbasalessnapshot.promotionSale
|
| - |
|
7765 |
salesnapshotfordate.totalOrderCount = amazonfbasalessnapshot.totalOrderCount
|
| - |
|
7766 |
salesnapshotfordate.fcLocation = amazonfbasalessnapshot.fcLocation
|
| - |
|
7767 |
session.commit()
|
| - |
|
7768 |
|
| - |
|
7769 |
def get_amazon_fba_sales_snapshot_for_days(interval):
|
| - |
|
7770 |
query = session.query(Order.status, func.count(Order.id)).group_by(Order.status)
|
| - |
|
7771 |
date = datetime.datetime.now()
|
| - |
|
7772 |
toDate = date-timedelta(days = 1)
|
| - |
|
7773 |
fromDate = toDate-timedelta(days = interval)
|
| - |
|
7774 |
fbasalessnapshot = AmazonFbaSalesSnapshot.query.filter(AmazonFbaSalesSnapshot.dateOfSale.between (fromDate.date(),toDate.date())).order_by(AmazonFbaSalesSnapshot.dateOfSale).all()
|
| - |
|
7775 |
return fbasalessnapshot
|
| - |
|
7776 |
|
| - |
|
7777 |
def create_snapdeal_order(t_snapdeal_order):
|
| - |
|
7778 |
snapdealOrder = SnapdealOrder()
|
| - |
|
7779 |
snapdealOrder.orderId = t_snapdeal_order.orderId
|
| - |
|
7780 |
snapdealOrder.subOrderId = t_snapdeal_order.subOrderId
|
| - |
|
7781 |
snapdealOrder.referenceCode = t_snapdeal_order.referenceCode
|
| - |
|
7782 |
snapdealOrder.productName = t_snapdeal_order.productName
|
| - |
|
7783 |
snapdealOrder.listingPrice = t_snapdeal_order.listingPrice
|
| - |
|
7784 |
snapdealOrder.snapdealTxnDate = to_py_date(t_snapdeal_order.snapdealTxnDate)
|
| - |
|
7785 |
snapdealOrder.maxNlc = t_snapdeal_order.maxNlc
|
| - |
|
7786 |
order = Order.get_by(id=t_snapdeal_order.orderId)
|
| - |
|
7787 |
order.status = OrderStatus.ACCEPTED
|
| - |
|
7788 |
user = None
|
| - |
|
7789 |
try:
|
| - |
|
7790 |
user_client = UserClient().get_client()
|
| - |
|
7791 |
user_to_add = User()
|
| - |
|
7792 |
user_to_add.email = 'SD.'+ str(t_snapdeal_order.orderId) + '@mailinator.com'
|
| - |
|
7793 |
user_to_add.password = 'hSp5gvCsrrhZcceE6mzzOQ'
|
| - |
|
7794 |
user_to_add.communicationEmail = user_to_add.email
|
| - |
|
7795 |
user_to_add.sourceStartTime = int(round(time.time() * 1000))
|
| - |
|
7796 |
user_to_add.sourceId = OrderSource.SNAPDEAL
|
| - |
|
7797 |
user_to_add.sex = Sex.WONT_SAY
|
| - |
|
7798 |
user_to_add = user_client.createUser(user_to_add)
|
| - |
|
7799 |
user = user_to_add
|
| - |
|
7800 |
except:
|
| - |
|
7801 |
pass
|
| - |
|
7802 |
|
| - |
|
7803 |
if user:
|
| - |
|
7804 |
order.customer_id = user.userId
|
| - |
|
7805 |
order.customer_email = user.email
|
| - |
|
7806 |
session.commit()
|
| - |
|
7807 |
|
| - |
|
7808 |
def get_snapdeal_order(order_id, reference_code, subOrder_id):
|
| - |
|
7809 |
query = SnapdealOrder.query
|
| - |
|
7810 |
if order_id:
|
| - |
|
7811 |
query = query.filter(SnapdealOrder.orderId == order_id)
|
| - |
|
7812 |
elif reference_code==subOrder_id:
|
| - |
|
7813 |
if reference_code is None:
|
| - |
|
7814 |
reference_code=''
|
| - |
|
7815 |
query = query.filter(or_(SnapdealOrder.referenceCode == reference_code, SnapdealOrder.subOrderId== subOrder_id))
|
| - |
|
7816 |
else:
|
| - |
|
7817 |
query = query.filter(and_(SnapdealOrder.referenceCode == reference_code, SnapdealOrder.subOrderId== subOrder_id))
|
| - |
|
7818 |
return query.one()
|
| - |
|
7819 |
return query.all()
|
| - |
|
7820 |
|
| - |
|
7821 |
def snapdeal_order_exists(suborder_id, reference_code):
|
| - |
|
7822 |
exists = SnapdealOrder.query.filter_by(subOrderId=suborder_id,referenceCode=reference_code).first()
|
| - |
|
7823 |
if exists is not None:
|
| - |
|
7824 |
return True
|
| - |
|
7825 |
else:
|
| - |
|
7826 |
return False
|
| - |
|
7827 |
|
| - |
|
7828 |
def get_amazon_fba_sales_latest_snapshot_for_item(item_id):
|
| - |
|
7829 |
return AmazonFbaSalesSnapshot.query.filter(AmazonFbaSalesSnapshot.item_id==item_id).filter(AmazonFbaSalesSnapshot.dateOfSale!=datetime.datetime.now().date()).order_by(desc(AmazonFbaSalesSnapshot.dateOfSale)).first()
|
| - |
|
7830 |
|
| - |
|
7831 |
def update_latest_fba_prices_for_item(fbaitemprices):
|
| - |
|
7832 |
fbasalessnapshot = AmazonFbaSalesSnapshot.query.filter(AmazonFbaSalesSnapshot.item_id==fbaitemprices.item_id).order_by(desc(AmazonFbaSalesSnapshot.dateOfSale)).first()
|
| - |
|
7833 |
if(fbasalessnapshot.ourPriceSnapshotDate < to_java_date(fbaitemprices.ourPriceSnapshotDate) and fbaitemprices.ourPrice is not None):
|
| - |
|
7834 |
fbasalessnapshot.ourPriceSnapshotDate = to_py_date(fbaitemprices.ourPriceSnapshotDate)
|
| - |
|
7835 |
fbasalessnapshot.ourPrice = fbaitemprices.ourPrice
|
| - |
|
7836 |
if(fbasalessnapshot.salePriceSnapshotDate < to_java_date(fbaitemprices.salePriceSnapshotDate) and fbaitemprices.salePrice is not None):
|
| - |
|
7837 |
fbasalessnapshot.salePriceSnapshotDate = to_py_date(fbaitemprices.salePriceSnapshotDate)
|
| - |
|
7838 |
fbasalessnapshot.salePrice = fbaitemprices.salePrice
|
| - |
|
7839 |
if(fbasalessnapshot.minFbaPriceSnapshotDate < to_java_date(fbaitemprices.minFbaPriceSnapshotDate) and fbaitemprices.minFbaPrice is not None):
|
| - |
|
7840 |
fbasalessnapshot.minFbaPriceSnapshotDate = to_py_date(fbaitemprices.minFbaPriceSnapshotDate)
|
| - |
|
7841 |
fbasalessnapshot.minFbaPrice = fbaitemprices.minFbaPrice
|
| - |
|
7842 |
if(fbasalessnapshot.minMfnPriceSnapshotDate < to_java_date(fbaitemprices.minMfnPriceSnapshotDate) and fbaitemprices.minMfnPrice is not None):
|
| - |
|
7843 |
fbasalessnapshot.minMfnPriceSnapshotDate = to_py_date(fbaitemprices.minMfnPriceSnapshotDate)
|
| - |
|
7844 |
fbasalessnapshot.minMfnPrice = fbaitemprices.minMfnPrice
|
| - |
|
7845 |
session.commit()
|
| - |
|
7846 |
|
| - |
|
7847 |
def flipkart_order_exists(orderid,suborderid):
|
| - |
|
7848 |
exists = FlipkartOrder.query.filter_by(flipkartOrderId=orderid,flipkartSubOrderId=suborderid).first()
|
| - |
|
7849 |
if exists is not None:
|
| - |
|
7850 |
return True
|
| - |
|
7851 |
else:
|
| - |
|
7852 |
return False
|
| - |
|
7853 |
|
| - |
|
7854 |
def create_flipkart_order(flipkartorder):
|
| - |
|
7855 |
order = FlipkartOrder()
|
| - |
|
7856 |
order.orderId = flipkartorder.orderId
|
| - |
|
7857 |
order.flipkartSubOrderId = flipkartorder.flipkartSubOrderId
|
| - |
|
7858 |
order.flipkartOrderId = flipkartorder.flipkartOrderId
|
| - |
|
7859 |
order.flipkartTxnDate = to_py_date(flipkartorder.flipkartTxnDate)
|
| - |
|
7860 |
order.shippingPrice = flipkartorder.shippingPrice
|
| - |
|
7861 |
order.octroiFee = flipkartorder.octroiFee
|
| - |
|
7862 |
order.emiFee = flipkartorder.emiFee
|
| - |
|
7863 |
order.maxNlc = flipkartorder.maxNlc
|
| - |
|
7864 |
s_order = Order.get_by(id=flipkartorder.orderId)
|
| - |
|
7865 |
if s_order.cod:
|
| - |
|
7866 |
s_order.status = OrderStatus.COD_VERIFICATION_PENDING
|
| - |
|
7867 |
else:
|
| - |
|
7868 |
s_order.status = OrderStatus.ACCEPTED
|
| - |
|
7869 |
s_order.accepted_timetsmap = datetime.datetime.now()
|
| - |
|
7870 |
user = None
|
| - |
|
7871 |
try:
|
| - |
|
7872 |
user_client = UserClient().get_client()
|
| - |
|
7873 |
user_to_add = User()
|
| - |
|
7874 |
user_to_add.email = 'FK.'+ str(flipkartorder.orderId) + '@mailinator.com'
|
| - |
|
7875 |
user_to_add.password = 'gR9zF-Ish2im6tbYFNivgA'
|
| - |
|
7876 |
user_to_add.communicationEmail = user_to_add.email
|
| - |
|
7877 |
user_to_add.sourceStartTime = int(round(time.time() * 1000))
|
| - |
|
7878 |
user_to_add.sourceId = OrderSource.FLIPKART
|
| - |
|
7879 |
user_to_add.sex = Sex.WONT_SAY
|
| - |
|
7880 |
user_to_add = user_client.createUser(user_to_add)
|
| - |
|
7881 |
user = user_to_add
|
| - |
|
7882 |
except:
|
| - |
|
7883 |
pass
|
| - |
|
7884 |
|
| - |
|
7885 |
if user:
|
| - |
|
7886 |
s_order.customer_id = user.userId
|
| - |
|
7887 |
s_order.customer_email = user.email
|
| - |
|
7888 |
|
| - |
|
7889 |
session.commit()
|
| - |
|
7890 |
|
| - |
|
7891 |
def get_flipkart_order(orderid):
|
| - |
|
7892 |
flipkartorder = FlipkartOrder.query.filter_by(orderId=orderid).first()
|
| - |
|
7893 |
if not flipkartorder:
|
| - |
|
7894 |
print "No found order for orderid " + str(orderid)
|
| - |
|
7895 |
raise TransactionServiceException(108, "no such order")
|
| - |
|
7896 |
return flipkartorder
|
| - |
|
7897 |
|
| - |
|
7898 |
def get_flipkart_order_by_subOrderId(flipkartOrderItemId):
|
| - |
|
7899 |
flipkartorder = FlipkartOrder.query.filter_by(flipkartSubOrderId=flipkartOrderItemId).first()
|
| - |
|
7900 |
if not flipkartorder:
|
| - |
|
7901 |
raise TransactionServiceException(108, "no such flipkart order " + str(flipkartOrderItemId))
|
| - |
|
7902 |
return flipkartorder
|
| - |
|
7903 |
|
| - |
|
7904 |
def update_flipkart_order_dates_and_awb(orderid,suborderid,date,awb):
|
| - |
|
7905 |
flipkartorder = FlipkartOrder.query.filter_by(flipkartOrderId=orderid,flipkartSubOrderId=suborderid).first()
|
| - |
|
7906 |
print flipkartorder
|
| - |
|
7907 |
order = get_order(flipkartorder.orderId)
|
| - |
|
7908 |
if not order:
|
| - |
|
7909 |
print "No found order for orderid " + str(orderid)
|
| - |
|
7910 |
raise TransactionServiceException(108, "no such order")
|
| - |
|
7911 |
order.tracking_id = awb
|
| - |
|
7912 |
order.expected_delivery_time = to_py_date(date + 4*24*60*60*1000)
|
| - |
|
7913 |
order.promised_delivery_time = to_py_date(date + 4*24*60*60*1000)
|
| - |
|
7914 |
order.expected_shipping_time = to_py_date(date)
|
| - |
|
7915 |
order.promised_shipping_time = to_py_date(date)
|
| - |
|
7916 |
session.commit()
|
| - |
|
7917 |
|
| 7614 |
def get_order_for_airwayBillNo(airwaybillNo):
|
7918 |
def get_order_for_airwayBillNo(airwaybillNo):
|
| 7615 |
orders = Order.query.filter(Order.airwaybill_no==airwaybillNo).all()
|
7919 |
orders = Order.query.filter(Order.airwaybill_no==airwaybillNo).all()
|
| 7616 |
if not orders:
|
7920 |
if not orders:
|
| 7617 |
orders = []
|
7921 |
orders = []
|
| 7618 |
|
7922 |
|
| Line 7648... |
Line 7952... |
| 7648 |
return len(catalog_client.getAllActivePrivateDeals(allItems, 0)) > 0
|
7952 |
return len(catalog_client.getAllActivePrivateDeals(allItems, 0)) > 0
|
| 7649 |
|
7953 |
|
| 7650 |
|
7954 |
|
| 7651 |
return result
|
7955 |
return result
|
| 7652 |
|
7956 |
|
| - |
|
7957 |
def update_snapdeal_orders_status(orders):
|
| - |
|
7958 |
for statusString, orderList in orders.iteritems():
|
| - |
|
7959 |
if statusString == "Cancelled":
|
| - |
|
7960 |
try:
|
| - |
|
7961 |
for cancel_order in orderList:
|
| - |
|
7962 |
ref_code = cancel_order[0]
|
| - |
|
7963 |
sub_order_code = cancel_order[1]
|
| - |
|
7964 |
snapdeal_order = None
|
| - |
|
7965 |
try:
|
| - |
|
7966 |
snapdeal_order = get_snapdeal_order(None, ref_code, sub_order_code)
|
| - |
|
7967 |
except Exception as e:
|
| - |
|
7968 |
print 'Caught in Updation of Cancelled Orders Getting Snapdeal Order'
|
| - |
|
7969 |
pass
|
| - |
|
7970 |
if snapdeal_order:
|
| - |
|
7971 |
order = get_order(snapdeal_order.orderId)
|
| - |
|
7972 |
if order.status == OrderStatus.SHIPPED_FROM_WH:
|
| - |
|
7973 |
order.status = OrderStatus.SHIPPED_TO_LOGST
|
| - |
|
7974 |
session.commit()
|
| - |
|
7975 |
except Exception as e:
|
| - |
|
7976 |
print 'Caught in Updation of Cancelled Orders'
|
| - |
|
7977 |
print e
|
| - |
|
7978 |
print sys.exc_info()
|
| - |
|
7979 |
|
| - |
|
7980 |
|
| - |
|
7981 |
if statusString == "Delivered":
|
| - |
|
7982 |
try:
|
| - |
|
7983 |
for del_order in orderList:
|
| - |
|
7984 |
ref_code = del_order[0]
|
| - |
|
7985 |
sub_order_code = del_order[1]
|
| - |
|
7986 |
dlvry_timestamp = del_order[2]
|
| - |
|
7987 |
snapdeal_order = None
|
| - |
|
7988 |
try:
|
| - |
|
7989 |
snapdeal_order = get_snapdeal_order(None, ref_code, sub_order_code)
|
| - |
|
7990 |
except Exception as e:
|
| - |
|
7991 |
print 'Caught in Updation of Delivered Orders Getting Snapdeal Order'
|
| - |
|
7992 |
pass
|
| - |
|
7993 |
if snapdeal_order:
|
| - |
|
7994 |
order = get_order(snapdeal_order.orderId)
|
| - |
|
7995 |
if order.status == OrderStatus.SHIPPED_FROM_WH:
|
| - |
|
7996 |
order.delivery_timestamp = datetime.datetime.strptime(dlvry_timestamp, "%Y-%m-%d %H:%M:%S")
|
| - |
|
7997 |
order.receiver = order.customer_name
|
| - |
|
7998 |
order.status = OrderStatus.DELIVERY_SUCCESS
|
| - |
|
7999 |
order.statusDescription = "Order delivered"
|
| - |
|
8000 |
session.commit()
|
| - |
|
8001 |
except Exception as e:
|
| - |
|
8002 |
print 'Caught in Updation of Delivered Orders'
|
| - |
|
8003 |
print e
|
| - |
|
8004 |
print sys.exc_info()
|
| - |
|
8005 |
'''
|
| - |
|
8006 |
try:
|
| - |
|
8007 |
for del_order in delivered_orders:
|
| - |
|
8008 |
ref_code = del_order[0]
|
| - |
|
8009 |
sub_order_code = del_order[1]
|
| - |
|
8010 |
dlvry_timestamp = del_order[2]
|
| - |
|
8011 |
|
| - |
|
8012 |
if snapdeal_order_exists(sub_order_code, ref_code):
|
| - |
|
8013 |
snapdeal_order = get_snapdeal_order(None, None, sub_order_code)
|
| - |
|
8014 |
if snapdeal_order:
|
| - |
|
8015 |
order = get_order(snapdeal_order.orderId)
|
| - |
|
8016 |
if order.status == OrderStatus.SHIPPED_FROM_WH:
|
| - |
|
8017 |
order.delivery_timestamp = datetime.datetime.strptime(dlvry_timestamp, "%Y-%m-%d %H:%M:%S")
|
| - |
|
8018 |
order.receiver = order.customer_name
|
| - |
|
8019 |
order.status = OrderStatus.DELIVERY_SUCCESS
|
| - |
|
8020 |
order.statusDescription = "Order delivered"
|
| - |
|
8021 |
session.commit()
|
| - |
|
8022 |
except Exception as e:
|
| - |
|
8023 |
print e
|
| - |
|
8024 |
print sys.exc_info()
|
| - |
|
8025 |
'''
|
| - |
|
8026 |
|
| - |
|
8027 |
def update_flipkart_orders_status(delivered_orders):
|
| - |
|
8028 |
try:
|
| - |
|
8029 |
for del_order in delivered_orders:
|
| - |
|
8030 |
flipkart_order_id = del_order[0]
|
| - |
|
8031 |
sub_order_code = del_order[1]
|
| - |
|
8032 |
dlvry_timestamp = del_order[2]
|
| - |
|
8033 |
|
| - |
|
8034 |
if flipkart_order_exists(flipkart_order_id,sub_order_code):
|
| - |
|
8035 |
flipkart_order = get_flipkart_order_by_subOrderId(sub_order_code)
|
| - |
|
8036 |
if flipkart_order:
|
| - |
|
8037 |
order = get_order(flipkart_order.orderId)
|
| - |
|
8038 |
if order.status == OrderStatus.SHIPPED_FROM_WH:
|
| - |
|
8039 |
order.delivery_timestamp = datetime.datetime.strptime(dlvry_timestamp, "%Y-%m-%d %H:%M:%S")
|
| - |
|
8040 |
order.receiver = order.customer_name
|
| - |
|
8041 |
order.status = OrderStatus.DELIVERY_SUCCESS
|
| - |
|
8042 |
order.statusDescription = "Order delivered"
|
| - |
|
8043 |
session.commit()
|
| - |
|
8044 |
except Exception as e:
|
| - |
|
8045 |
print e
|
| - |
|
8046 |
print sys.exc_info()
|
| - |
|
8047 |
|
| - |
|
8048 |
'''
|
| - |
|
8049 |
order_ids = delivered_orders.keys()
|
| - |
|
8050 |
for orderId in order_ids:
|
| - |
|
8051 |
order = Order.query.filter(Order.id == orderId).first()
|
| - |
|
8052 |
order.status = OrderStatus.DELIVERY_SUCCESS
|
| - |
|
8053 |
order.statusDescription = "Order delivered"
|
| - |
|
8054 |
order.delivery_timestamp = datetime.datetime.strptime(delivered_orders.get(orderId), "%Y-%m-%d %H:%M:%S")
|
| - |
|
8055 |
session.commit()
|
| - |
|
8056 |
'''
|
| - |
|
8057 |
|
| - |
|
8058 |
def bulk_add_or_update_amazon_fba_sales_snapshot(amazonfbasalessnapshotlist):
|
| - |
|
8059 |
for amazonfbasalessnapshot in amazonfbasalessnapshotlist:
|
| - |
|
8060 |
salesnapshotfordate = AmazonFbaSalesSnapshot.get_by(item_id = amazonfbasalessnapshot.item_id,dateOfSale=to_py_date(amazonfbasalessnapshot.dateOfSale).date(),fcLocation=amazonfbasalessnapshot.fcLocation)
|
| - |
|
8061 |
if salesnapshotfordate is None:
|
| - |
|
8062 |
amazon_fba_sales_snapshot = AmazonFbaSalesSnapshot()
|
| - |
|
8063 |
amazon_fba_sales_snapshot.dateOfSale = to_py_date(amazonfbasalessnapshot.dateOfSale).date()
|
| - |
|
8064 |
amazon_fba_sales_snapshot.item_id = amazonfbasalessnapshot.item_id
|
| - |
|
8065 |
amazon_fba_sales_snapshot.totalOrderCount = amazonfbasalessnapshot.totalOrderCount
|
| - |
|
8066 |
amazon_fba_sales_snapshot.amazonFbaInventory = amazonfbasalessnapshot.amazonFbaInventory
|
| - |
|
8067 |
amazon_fba_sales_snapshot.isOutOfStock = amazonfbasalessnapshot.isOutOfStock
|
| - |
|
8068 |
amazon_fba_sales_snapshot.promotionOrderCount = amazonfbasalessnapshot.promotionOrderCount
|
| - |
|
8069 |
amazon_fba_sales_snapshot.totalSale = amazonfbasalessnapshot.totalSale
|
| - |
|
8070 |
amazon_fba_sales_snapshot.promotionSale = amazonfbasalessnapshot.promotionSale
|
| - |
|
8071 |
#if amazonfbasalessnapshot.ourPrice is not None:
|
| - |
|
8072 |
amazon_fba_sales_snapshot.ourPriceSnapshotDate = to_py_date(amazonfbasalessnapshot.ourPriceSnapshotDate)
|
| - |
|
8073 |
amazon_fba_sales_snapshot.ourPrice = amazonfbasalessnapshot.ourPrice
|
| - |
|
8074 |
#if amazonfbasalessnapshot.salePrice is not None:
|
| - |
|
8075 |
amazon_fba_sales_snapshot.salePriceSnapshotDate = to_py_date(amazonfbasalessnapshot.salePriceSnapshotDate)
|
| - |
|
8076 |
amazon_fba_sales_snapshot.salePrice = amazonfbasalessnapshot.salePrice
|
| - |
|
8077 |
#if amazonfbasalessnapshot.minFbaPrice is not None:
|
| - |
|
8078 |
amazon_fba_sales_snapshot.minFbaPriceSnapshotDate = to_py_date(amazonfbasalessnapshot.minFbaPriceSnapshotDate)
|
| - |
|
8079 |
amazon_fba_sales_snapshot.minFbaPrice = amazonfbasalessnapshot.minFbaPrice
|
| - |
|
8080 |
#if amazonfbasalessnapshot.minMfnPrice is not None:
|
| - |
|
8081 |
amazon_fba_sales_snapshot.minMfnPriceSnapshotDate = to_py_date(amazonfbasalessnapshot.minMfnPriceSnapshotDate)
|
| - |
|
8082 |
amazon_fba_sales_snapshot.minMfnPrice = amazonfbasalessnapshot.minMfnPrice
|
| - |
|
8083 |
amazon_fba_sales_snapshot.fcLocation = amazonfbasalessnapshot.fcLocation
|
| - |
|
8084 |
else:
|
| - |
|
8085 |
if(amazonfbasalessnapshot.totalOrderCount > 0):
|
| - |
|
8086 |
salesnapshotfordate.isOutOfStock = 0
|
| - |
|
8087 |
salesnapshotfordate.promotionOrderCount = amazonfbasalessnapshot.promotionOrderCount
|
| - |
|
8088 |
salesnapshotfordate.totalSale = amazonfbasalessnapshot.totalSale
|
| - |
|
8089 |
salesnapshotfordate.promotionSale = amazonfbasalessnapshot.promotionSale
|
| - |
|
8090 |
salesnapshotfordate.totalOrderCount = amazonfbasalessnapshot.totalOrderCount
|
| - |
|
8091 |
salesnapshotfordate.fcLocation = amazonfbasalessnapshot.fcLocation
|
| - |
|
8092 |
session.commit()
|
| - |
|
8093 |
|
| - |
|
8094 |
def get_created_orders_for_flipkart(flipkartorderids):
|
| - |
|
8095 |
item_ordercount = dict()
|
| - |
|
8096 |
orders = []
|
| - |
|
8097 |
flipkart_orders = session.query(FlipkartOrder).filter(FlipkartOrder.flipkartOrderId.in_(tuple(flipkartorderids))).all()
|
| - |
|
8098 |
print flipkart_orders
|
| - |
|
8099 |
if len(flipkart_orders)!=0:
|
| - |
|
8100 |
for order in flipkart_orders:
|
| - |
|
8101 |
print order.orderId
|
| - |
|
8102 |
orders.append(order.orderId)
|
| - |
|
8103 |
items =session.query(LineItem.item_id,func.count(LineItem.quantity)).join((Order,LineItem.order_id==Order.id)).filter(Order.id.in_(tuple(orders))).filter(Order.status >=3).filter(Order.shipping_timestamp==None).group_by(LineItem.item_id).all()
|
| - |
|
8104 |
else:
|
| - |
|
8105 |
return item_ordercount
|
| - |
|
8106 |
print "items map after query"
|
| - |
|
8107 |
print items
|
| - |
|
8108 |
for item in items:
|
| - |
|
8109 |
print "item id"
|
| - |
|
8110 |
print item[0]
|
| - |
|
8111 |
print "order count"
|
| - |
|
8112 |
print item[1]
|
| - |
|
8113 |
item_ordercount[item[0]] = item[1]
|
| - |
|
8114 |
print item_ordercount
|
| - |
|
8115 |
return item_ordercount
|
| - |
|
8116 |
|
| - |
|
8117 |
def change_easyship_mfn_order_txn_status(transaction_id, new_status, description, pickUp, orderType, source, shipTimestamp, deliveryTimeStamp):
|
| - |
|
8118 |
transaction = get_transaction(transaction_id)
|
| - |
|
8119 |
transaction.status = new_status
|
| - |
|
8120 |
transaction.status_message = description
|
| - |
|
8121 |
## Assign runner in case of delhi pincodes
|
| - |
|
8122 |
if transaction.orders[0].pickupStoreId:
|
| - |
|
8123 |
logistics_client = LogisticsClient().get_client()
|
| - |
|
8124 |
store = logistics_client.getPickupStore(transaction.orders[0].pickupStoreId)
|
| - |
|
8125 |
if delhi_pincodes.__contains__(store.pin):
|
| - |
|
8126 |
pickUp = PickUpType.RUNNER
|
| - |
|
8127 |
|
| - |
|
8128 |
if new_status == TransactionStatus.FAILED:
|
| - |
|
8129 |
for order in transaction.orders:
|
| - |
|
8130 |
order.status = OrderStatus.PAYMENT_FAILED
|
| - |
|
8131 |
order.statusDescription = "Payment Failed"
|
| - |
|
8132 |
elif new_status == TransactionStatus.AUTHORIZED or new_status == TransactionStatus.FLAGGED:
|
| - |
|
8133 |
for order in transaction.orders:
|
| - |
|
8134 |
if new_status == TransactionStatus.AUTHORIZED:
|
| - |
|
8135 |
order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|
| - |
|
8136 |
order.statusDescription = "Submitted to warehouse"
|
| - |
|
8137 |
elif new_status == TransactionStatus.FLAGGED:
|
| - |
|
8138 |
order.status = OrderStatus.PAYMENT_FLAGGED
|
| - |
|
8139 |
order.statusDescription = "Payment flagged by gateway"
|
| - |
|
8140 |
order.cod = False
|
| - |
|
8141 |
order.orderType = orderType
|
| - |
|
8142 |
#After we got payment success, we will set logistics info also
|
| - |
|
8143 |
logistics_client = LogisticsClient().get_client()
|
| - |
|
8144 |
#FIXME line item is only one now. If multiple will come, need to fix.
|
| - |
|
8145 |
item_id = order.lineitems[0].item_id
|
| - |
|
8146 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.PREPAID, pickUp)
|
| - |
|
8147 |
|
| - |
|
8148 |
#current_time = datetime.datetime.now()
|
| - |
|
8149 |
|
| - |
|
8150 |
#logistics_info.deliveryTime = adjust_delivery_time(to_py_date(deliveryTimeStamp), 0)
|
| - |
|
8151 |
#logistics_info.shippingTime = adjust_delivery_time(to_py_date(shipTimestamp), 0)
|
| - |
|
8152 |
#logistics_info.deliveryDelay = 0
|
| - |
|
8153 |
|
| - |
|
8154 |
|
| - |
|
8155 |
order.otg = logistics_info.otgAvailable
|
| - |
|
8156 |
order.warehouse_id = logistics_info.warehouseId
|
| - |
|
8157 |
order.fulfilmentWarehouseId = logistics_info.fulfilmentWarehouseId
|
| - |
|
8158 |
order.logistics_provider_id = 45
|
| - |
|
8159 |
#Start:- Added by Manish Sharma for FedEx Integration - Shipment Creation on 31-Jul-2013
|
| - |
|
8160 |
#order.airwaybill_no = logistics_info.airway_billno
|
| - |
|
8161 |
#order.tracking_id = order.airwaybill_no
|
| - |
|
8162 |
#End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
| - |
|
8163 |
|
| - |
|
8164 |
order.courier_delivery_time = to_py_date(deliveryTimeStamp).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
8165 |
order.expected_shipping_time = to_py_date(shipTimestamp).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
8166 |
order.promised_shipping_time = order.expected_shipping_time
|
| - |
|
8167 |
order.expected_delivery_time = to_py_date(deliveryTimeStamp).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
8168 |
order.promised_delivery_time = order.expected_delivery_time
|
| - |
|
8169 |
|
| - |
|
8170 |
if order.pickupStoreId:
|
| - |
|
8171 |
order.otg = False
|
| - |
|
8172 |
|
| - |
|
8173 |
inventory_client = InventoryClient().get_client()
|
| - |
|
8174 |
if order.productCondition != ProductCondition.BAD:
|
| - |
|
8175 |
inventory_client.reserveItemInWarehouse(item_id, logistics_info.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
| - |
|
8176 |
|
| - |
|
8177 |
try:
|
| - |
|
8178 |
item_pricing = inventory_client.getItemPricing(item_id, -1)
|
| - |
|
8179 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
| - |
|
8180 |
order.lineitems[0].nlc = item_pricing.nlc
|
| - |
|
8181 |
except:
|
| - |
|
8182 |
print "Not able to get transfer price. Skipping"
|
| - |
|
8183 |
|
| - |
|
8184 |
catalog_client = CatalogClient().get_client()
|
| - |
|
8185 |
voucherAmount = catalog_client.getVoucherAmount(item_id, VoucherType.SPICEDECK_MOBILE)
|
| - |
|
8186 |
if voucherAmount:
|
| - |
|
8187 |
__create_recharge_voucher_tracker(order, voucherAmount, VoucherType.SPICEDECK_MOBILE)
|
| - |
|
8188 |
#Note 2 Buy back Offer
|
| - |
|
8189 |
if item_id in (7974, 7558) and transaction.coupon_code is not None and transaction.coupon_code.lower() == "note2buyback":
|
| - |
|
8190 |
order.status = OrderStatus.COD_VERIFICATION_PENDING
|
| - |
|
8191 |
order.statusDescription = "Note 2 Buy Back Offer - Approval Pending from CRM Team"
|
| - |
|
8192 |
order.otg = False
|
| - |
|
8193 |
|
| - |
|
8194 |
elif new_status == TransactionStatus.COD_IN_PROCESS:
|
| - |
|
8195 |
for order in transaction.orders:
|
| - |
|
8196 |
order.status = OrderStatus.COD_VERIFICATION_PENDING
|
| - |
|
8197 |
order.statusDescription = "Verification Pending"
|
| - |
|
8198 |
order.cod = True
|
| - |
|
8199 |
order.orderType = orderType
|
| - |
|
8200 |
#After we got payment success, we will set logistics info also
|
| - |
|
8201 |
logistics_client = LogisticsClient().get_client()
|
| - |
|
8202 |
#FIXME line item is only one now. If multiple will come, need to fix.
|
| - |
|
8203 |
item_id = order.lineitems[0].item_id
|
| - |
|
8204 |
if order.pickupStoreId:
|
| - |
|
8205 |
# Need to send prepaid awb number for store pick up orders
|
| - |
|
8206 |
logistics_info = logistics_client.getLogisticsEstimation(item_id, order.customer_pincode, DeliveryType.COD)
|
| - |
|
8207 |
#//Start:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
| - |
|
8208 |
#prepaid_logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.PREPAID, pickUp)
|
| - |
|
8209 |
#logistics_info.airway_billno = prepaid_logistics_info.airway_billno
|
| - |
|
8210 |
#logistics_info.providerId = prepaid_logistics_info.providerId
|
| - |
|
8211 |
#End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
| - |
|
8212 |
# Will not provide OTG in pickup store
|
| - |
|
8213 |
order.otg = False
|
| - |
|
8214 |
else:
|
| - |
|
8215 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.COD, pickUp)
|
| - |
|
8216 |
order.otg = logistics_info.otgAvailable
|
| - |
|
8217 |
|
| - |
|
8218 |
|
| - |
|
8219 |
#current_time = datetime.datetime.now()
|
| - |
|
8220 |
#logistics_info.deliveryTime = adjust_delivery_time(current_time, logistics_info.deliveryTime)
|
| - |
|
8221 |
#logistics_info.shippingTime = adjust_delivery_time(current_time, logistics_info.shippingTime)
|
| - |
|
8222 |
#logistics_info.deliveryDelay = adjust_delivery_time(current_time, (logistics_info.shippingTime+logistics_info.deliveryDelay))
|
| - |
|
8223 |
|
| - |
|
8224 |
|
| - |
|
8225 |
order.warehouse_id = logistics_info.warehouseId
|
| - |
|
8226 |
order.fulfilmentWarehouseId = logistics_info.fulfilmentWarehouseId
|
| - |
|
8227 |
order.logistics_provider_id = 45
|
| - |
|
8228 |
#Start:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
| - |
|
8229 |
#order.airwaybill_no = logistics_info.airway_billno
|
| - |
|
8230 |
#order.tracking_id = order.airwaybill_no
|
| - |
|
8231 |
#End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
|
| - |
|
8232 |
order.courier_delivery_time = to_py_date(deliveryTimeStamp).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
8233 |
order.expected_shipping_time = to_py_date(shipTimestamp).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
8234 |
order.promised_shipping_time = order.expected_shipping_time
|
| - |
|
8235 |
order.expected_delivery_time = to_py_date(deliveryTimeStamp).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
8236 |
order.promised_delivery_time = order.expected_delivery_time
|
| - |
|
8237 |
|
| - |
|
8238 |
inventory_client = InventoryClient().get_client()
|
| - |
|
8239 |
if order.productCondition != ProductCondition.BAD:
|
| - |
|
8240 |
inventory_client.reserveItemInWarehouse(item_id, logistics_info.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
| - |
|
8241 |
|
| - |
|
8242 |
try:
|
| - |
|
8243 |
item_pricing = inventory_client.getItemPricing(item_id, -1)
|
| - |
|
8244 |
order.lineitems[0].transfer_price = item_pricing.transferPrice
|
| - |
|
8245 |
order.lineitems[0].nlc = item_pricing.nlc
|
| - |
|
8246 |
except:
|
| - |
|
8247 |
print "Not able to get transfer price. Skipping"
|
| - |
|
8248 |
|
| - |
|
8249 |
catalog_client = CatalogClient().get_client()
|
| - |
|
8250 |
voucherAmount = catalog_client.getVoucherAmount(item_id, VoucherType.SPICEDECK_MOBILE)
|
| - |
|
8251 |
if voucherAmount:
|
| - |
|
8252 |
__create_recharge_voucher_tracker(order, voucherAmount, VoucherType.SPICEDECK_MOBILE)
|
| - |
|
8253 |
|
| - |
|
8254 |
|
| - |
|
8255 |
session.commit()
|
| - |
|
8256 |
|
| - |
|
8257 |
if new_status in (TransactionStatus.AUTHORIZED, TransactionStatus.FLAGGED, TransactionStatus.COD_IN_PROCESS):
|
| - |
|
8258 |
try:
|
| - |
|
8259 |
if order.source == OrderSource.WEBSITE:
|
| - |
|
8260 |
if new_status == TransactionStatus.COD_IN_PROCESS:
|
| - |
|
8261 |
transaction_requiring_extra_processing = TransactionRequiringExtraProcessing()
|
| - |
|
8262 |
transaction_requiring_extra_processing.category = 'COD_VERIFICATION'
|
| - |
|
8263 |
transaction_requiring_extra_processing.transaction_id = transaction_id
|
| - |
|
8264 |
session.commit()
|
| - |
|
8265 |
elif new_status == TransactionStatus.FLAGGED:
|
| - |
|
8266 |
transaction_requiring_extra_processing = TransactionRequiringExtraProcessing()
|
| - |
|
8267 |
transaction_requiring_extra_processing.category = 'PAYMENT_FLAGGED'
|
| - |
|
8268 |
transaction_requiring_extra_processing.transaction_id = transaction_id
|
| - |
|
8269 |
session.commit()
|
| - |
|
8270 |
elif order.source == OrderSource.STORE:
|
| - |
|
8271 |
order.otg = False
|
| - |
|
8272 |
session.commit()
|
| - |
|
8273 |
catalog_client = CatalogClient().get_client()
|
| - |
|
8274 |
sourcePricing = catalog_client.getStorePricing(order.lineitems[0].item_id)
|
| - |
|
8275 |
if order.total_amount >= sourcePricing.minPrice:
|
| - |
|
8276 |
order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|
| - |
|
8277 |
order.statusDescription = "Order Accepted"
|
| - |
|
8278 |
session.commit()
|
| - |
|
8279 |
sod = StoreOrderDetail.get_by(orderId = order.id)
|
| - |
|
8280 |
__push_store_collection_to_hotspot(order, "advance", sod.cashAmount, sod.cardAmount)
|
| - |
|
8281 |
|
| - |
|
8282 |
else:
|
| - |
|
8283 |
order.status = OrderStatus.COD_VERIFICATION_PENDING
|
| - |
|
8284 |
order.statusDescription = "Approval Pending"
|
| - |
|
8285 |
content = "<html><body>"
|
| - |
|
8286 |
content += "<h4>Order Id: " + str(order.id) + "</h4>"
|
| - |
|
8287 |
content += "<h4>Product: " + str(order.lineitems[0]) + "</h4>"
|
| - |
|
8288 |
content += "<h4>Min Price: " + str(sourcePricing.minPrice) + "</h4>"
|
| - |
|
8289 |
content += "<h4>Recommended Price: " + str(sourcePricing.recommendedPrice) + "</h4>"
|
| - |
|
8290 |
content += "<h2>Approval Requested for Price: " + str(order.total_amount) + "</h2>"
|
| - |
|
8291 |
content += "<h2>Note 1: If this discount price is approved then reply 'Approved' otherwise 'Not Approved' without changing anythig in the Mail.</h2>"
|
| - |
|
8292 |
content += "<h2>Note 2: For Quick approval using browser <a href='http://support.shop2020.in:8080/Support/price-approval?xszbg=" + base64.b64encode(str(order.id)) + "'>Click Here</a></h2>"
|
| - |
|
8293 |
content += "<br><br></body></html>"
|
| - |
|
8294 |
store = get_hotspot_store(order.storeId, "")
|
| - |
|
8295 |
helper_client = HelperClient().get_client()
|
| - |
|
8296 |
helper_client.saveUserEmailForSending(store.approvalEmail.split(';'), SaholicHelpEmailId, "Price approval requested for " + str(order.lineitems[0]) + " order Id " + str(order.id) + " in store " + store.hotspotId , content, str(transaction_id), "PriceApproval", [], [], order.source)
|
| - |
|
8297 |
session.commit()
|
| - |
|
8298 |
else:
|
| - |
|
8299 |
order.otg = False
|
| - |
|
8300 |
session.commit()
|
| - |
|
8301 |
except Exception as e:
|
| - |
|
8302 |
print "Error inserting transaction Id: " + str(transaction_id) + " due to " + str(e)
|
| - |
|
8303 |
|
| - |
|
8304 |
return True
|
| - |
|
8305 |
|
| - |
|
8306 |
def update_amazon_fba_order_returns(fbaOrderReturns):
|
| - |
|
8307 |
for order_return in fbaOrderReturns:
|
| - |
|
8308 |
orderReturn = AmazonFbaOrderReturns.query.filter(AmazonFbaOrderReturns.amazonOrderId==order_return.amazonOrderId).filter(AmazonFbaOrderReturns.insertionTimestamp == to_py_date(order_return.insertionTimestamp)).filter(AmazonFbaOrderReturns.sku==order_return.sku).first()
|
| - |
|
8309 |
if orderReturn:
|
| - |
|
8310 |
orderReturn.sellableReturnQuantity = order_return.sellableReturnQuantity
|
| - |
|
8311 |
orderReturn.nonSellableReturnQuantity = order_return.nonSellableReturnQuantity
|
| - |
|
8312 |
session.commit()
|
| - |
|
8313 |
else:
|
| - |
|
8314 |
orderReturn = AmazonFbaOrderReturns()
|
| - |
|
8315 |
orderReturn.amazonOrderId = order_return.amazonOrderId
|
| - |
|
8316 |
orderReturn.insertionTimestamp = to_py_date(order_return.insertionTimestamp)
|
| - |
|
8317 |
orderReturn.sku = order_return.sku
|
| - |
|
8318 |
orderReturn.creationTimestamp = to_py_date(order_return.creationTimestamp)
|
| - |
|
8319 |
orderReturn.shippedQuantity = order_return.shippedQuantity
|
| - |
|
8320 |
orderReturn.sellableReturnQuantity = order_return.sellableReturnQuantity
|
| - |
|
8321 |
orderReturn.nonSellableReturnQuantity = order_return.nonSellableReturnQuantity
|
| - |
|
8322 |
session.commit()
|
| - |
|
8323 |
|
| - |
|
8324 |
def get_all_amazon_fba_order_returns(insertionTimestamp):
|
| - |
|
8325 |
returns = AmazonFbaOrderReturns.query.filter(AmazonFbaOrderReturns.insertionTimestamp==to_py_date(insertionTimestamp)).all()
|
| - |
|
8326 |
if not returns:
|
| - |
|
8327 |
returns = []
|
| - |
|
8328 |
return returns
|
| - |
|
8329 |
|
| - |
|
8330 |
def get_total_sale_returns_fba_skus_curent_time(insertionTimestamp):
|
| - |
|
8331 |
allFbaSkuDetails = session.query(AmazonFbaOrderReturns.sku, func.sum(AmazonFbaOrderReturns.shippedQuantity), func.sum(AmazonFbaOrderReturns.sellableReturnQuantity), func.sum(AmazonFbaOrderReturns.nonSellableReturnQuantity)).group_by(AmazonFbaOrderReturns.sku).filter(AmazonFbaOrderReturns.insertionTimestamp == to_py_date(insertionTimestamp)).all()
|
| - |
|
8332 |
|
| - |
|
8333 |
returnAllFbaSkuDetails = {}
|
| - |
|
8334 |
|
| - |
|
8335 |
for fbaSkuDetail in allFbaSkuDetails:
|
| - |
|
8336 |
saleReturnDetail = {}
|
| - |
|
8337 |
saleReturnDetail['Sale'] = fbaSkuDetail[1]
|
| - |
|
8338 |
saleReturnDetail['SaleableReturn'] = fbaSkuDetail[2]
|
| - |
|
8339 |
saleReturnDetail['NonSaleableReturn'] = fbaSkuDetail[3]
|
| - |
|
8340 |
returnAllFbaSkuDetails[fbaSkuDetail[0]]= saleReturnDetail
|
| - |
|
8341 |
|
| - |
|
8342 |
return returnAllFbaSkuDetails
|
| - |
|
8343 |
|
| - |
|
8344 |
def get_amazon_fba_sales_latest_snapshot_for_item_location_wise(item_id,location):
|
| - |
|
8345 |
return AmazonFbaSalesSnapshot.query.filter(AmazonFbaSalesSnapshot.item_id==item_id).filter(AmazonFbaSalesSnapshot.fcLocation==location).filter(AmazonFbaSalesSnapshot.dateOfSale!=datetime.datetime.now().date()).order_by(desc(AmazonFbaSalesSnapshot.dateOfSale)).first()
|
| - |
|
8346 |
|
| - |
|
8347 |
def get_verification_pending_orders_fk():
|
| - |
|
8348 |
retOrders = Order.query.filter(Order.source==OrderSource.FLIPKART).filter(Order.status==OrderStatus.COD_VERIFICATION_PENDING).all()
|
| - |
|
8349 |
retFkOrders = []
|
| - |
|
8350 |
order_ids = []
|
| - |
|
8351 |
if not retOrders:
|
| - |
|
8352 |
return retFkOrders
|
| - |
|
8353 |
else:
|
| - |
|
8354 |
for order in retOrders:
|
| - |
|
8355 |
order_ids.append(order.id)
|
| - |
|
8356 |
retFkOrders = FlipkartOrder.query.filter(FlipkartOrder.orderId.in_(tuple(order_ids)))
|
| - |
|
8357 |
if not retFkOrders:
|
| - |
|
8358 |
retFkOrders = []
|
| - |
|
8359 |
return retFkOrders
|
| - |
|
8360 |
|
| 7653 |
def add_invoice_details_to_orders(transactionId, customerId):
|
8361 |
def add_invoice_details_to_orders(transactionId, customerId):
|
| 7654 |
orders = Order.query.filter_by(transaction_id=transactionId, customer_id=customerId).all()
|
8362 |
orders = Order.query.filter_by(transaction_id=transactionId, customer_id=customerId).all()
|
| 7655 |
if not orders:
|
8363 |
if not orders:
|
| 7656 |
raise TransactionServiceException(101, "No order for the transaction Unable to Print Invoice")
|
8364 |
raise TransactionServiceException(101, "No order for the transaction Unable to Print Invoice")
|
| 7657 |
else:
|
8365 |
else:
|
| 7658 |
invoiceNo = get_next_invoice_number(orders[0].orderType)
|
8366 |
invoiceNo = get_next_invoice_number(orders[0].orderType)
|
| 7659 |
for order in orders:
|
8367 |
for order in orders:
|
| 7660 |
order.invoice_number = invoiceNo
|
8368 |
order.invoice_number = invoiceNo
|
| 7661 |
session.commit()
|
8369 |
session.commit()
|
| 7662 |
|
8370 |
|
| - |
|
8371 |
def get_fa_order_by_fk_order_id(fk_OrderId,fk_OrderItemId):
|
| - |
|
8372 |
faOrder = FlipkartAdvantageOrder.query.filter_by(fkOrderId=fk_OrderId,fkOrderItemId=fk_OrderItemId).first()
|
| - |
|
8373 |
if not faOrder:
|
| - |
|
8374 |
print "Not found order for orderId " + str(fk_OrderId)
|
| - |
|
8375 |
raise TransactionServiceException(108, "no such order")
|
| - |
|
8376 |
|
| - |
|
8377 |
return faOrder
|
| - |
|
8378 |
|
| - |
|
8379 |
def flipkart_fa_order_exists(fk_OrderId,fk_OrderItemId):
|
| - |
|
8380 |
faOrder = FlipkartAdvantageOrder.query.filter_by(fkOrderId=fk_OrderId,fkOrderItemId=fk_OrderItemId).first()
|
| - |
|
8381 |
if not faOrder:
|
| - |
|
8382 |
return False
|
| - |
|
8383 |
else:
|
| - |
|
8384 |
return True
|
| - |
|
8385 |
|
| - |
|
8386 |
def get_all_fa_orders_list(status):
|
| - |
|
8387 |
faOrders = None
|
| - |
|
8388 |
if status == 'all':
|
| - |
|
8389 |
faOrders = FlipkartAdvantageOrder.query.all()
|
| - |
|
8390 |
else:
|
| - |
|
8391 |
faOrders = FlipkartAdvantageOrder.query.filter(FlipkartAdvantageOrder.status==status).all()
|
| - |
|
8392 |
if not faOrders:
|
| - |
|
8393 |
faOrders = []
|
| - |
|
8394 |
return faOrders
|
| - |
|
8395 |
|
| - |
|
8396 |
def add_update_fa_orders_bulk(faOrdersList):
|
| - |
|
8397 |
for faOrder in faOrdersList:
|
| - |
|
8398 |
if faOrder.status == 'approved':
|
| - |
|
8399 |
fa_Order = FlipkartAdvantageOrder()
|
| - |
|
8400 |
fa_Order.fkOrderId = faOrder.fkOrderId
|
| - |
|
8401 |
fa_Order.fkOrderItemId = faOrder.fkOrderItemId
|
| - |
|
8402 |
fa_Order.sku = faOrder.sku
|
| - |
|
8403 |
fa_Order.creationTimestamp = to_py_date(faOrder.creationTimestamp)
|
| - |
|
8404 |
fa_Order.customerName = faOrder.customerName
|
| - |
|
8405 |
fa_Order.customerAddress = faOrder.customerAddress
|
| - |
|
8406 |
fa_Order.pincode = faOrder.pincode
|
| - |
|
8407 |
fa_Order.customerCity = faOrder.customerCity
|
| - |
|
8408 |
fa_Order.customerState = faOrder.customerState
|
| - |
|
8409 |
fa_Order.customerPhone = faOrder.customerPhone
|
| - |
|
8410 |
fa_Order.status = faOrder.status
|
| - |
|
8411 |
fa_Order.quantity = faOrder.quantity
|
| - |
|
8412 |
fa_Order.totalPrice = faOrder.totalPrice
|
| - |
|
8413 |
fa_Order.listPrice = faOrder.listPrice
|
| - |
|
8414 |
fa_Order.modifiedDate = to_py_date(faOrder.modifiedDate)
|
| - |
|
8415 |
fa_Order.listingId = faOrder.listingId
|
| - |
|
8416 |
fa_Order.cancelReason = faOrder.cancelReason
|
| - |
|
8417 |
fa_Order.returnReason = faOrder.returnReason
|
| - |
|
8418 |
fa_Order.freebieItemId = faOrder.freebieItemId
|
| - |
|
8419 |
fa_Order.productTitle = faOrder.productTitle
|
| - |
|
8420 |
else:
|
| - |
|
8421 |
fa_Order = FlipkartAdvantageOrder.query.filter_by(fkOrderId=faOrder.fkOrderId,fkOrderItemId=faOrder.fkOrderItemId).first()
|
| - |
|
8422 |
if fa_Order:
|
| - |
|
8423 |
if fa_Order.status !=faOrder.status:
|
| - |
|
8424 |
fa_Order.status = faOrder.status
|
| - |
|
8425 |
fa_Order.cancelReason = faOrder.cancelReason
|
| - |
|
8426 |
fa_Order.returnReason = faOrder.returnReason
|
| - |
|
8427 |
fa_Order.modifiedDate = to_py_date(faOrder.modifiedDate)
|
| - |
|
8428 |
else:
|
| - |
|
8429 |
fa_Order = FlipkartAdvantageOrder()
|
| - |
|
8430 |
fa_Order.fkOrderId = faOrder.fkOrderId
|
| - |
|
8431 |
fa_Order.fkOrderItemId = faOrder.fkOrderItemId
|
| - |
|
8432 |
fa_Order.sku = faOrder.sku
|
| - |
|
8433 |
fa_Order.creationTimestamp = to_py_date(faOrder.creationTimestamp)
|
| - |
|
8434 |
fa_Order.customerName = faOrder.customerName
|
| - |
|
8435 |
fa_Order.customerAddress = faOrder.customerAddress
|
| - |
|
8436 |
fa_Order.pincode = faOrder.pincode
|
| - |
|
8437 |
fa_Order.customerCity = faOrder.customerCity
|
| - |
|
8438 |
fa_Order.customerState = faOrder.customerState
|
| - |
|
8439 |
fa_Order.customerPhone = faOrder.customerPhone
|
| - |
|
8440 |
fa_Order.status = faOrder.status
|
| - |
|
8441 |
fa_Order.quantity = faOrder.quantity
|
| - |
|
8442 |
fa_Order.totalPrice = faOrder.totalPrice
|
| - |
|
8443 |
fa_Order.listPrice = faOrder.listPrice
|
| - |
|
8444 |
fa_Order.modifiedDate = to_py_date(faOrder.modifiedDate)
|
| - |
|
8445 |
fa_Order.listingId = faOrder.listingId
|
| - |
|
8446 |
fa_Order.cancelReason = faOrder.cancelReason
|
| - |
|
8447 |
fa_Order.returnReason = faOrder.returnReason
|
| - |
|
8448 |
fa_Order.freebieItemId = faOrder.freebieItemId
|
| - |
|
8449 |
fa_Order.productTitle = faOrder.productTitle
|
| - |
|
8450 |
session.commit()
|
| 7663 |
|
8451 |
|
| 7664 |
def get_recharge_order_status(rechargeOrderId, final):
|
8452 |
def get_recharge_order_status(rechargeOrderId, final):
|
| 7665 |
d_rechargeOrder = get_recharge_order(rechargeOrderId)
|
8453 |
d_rechargeOrder = get_recharge_order(rechargeOrderId)
|
| 7666 |
if d_rechargeOrder.status == RechargeOrderStatus.RECHARGE_UNKNOWN:
|
8454 |
if d_rechargeOrder.status == RechargeOrderStatus.RECHARGE_UNKNOWN:
|
| 7667 |
try:
|
8455 |
try:
|
| Line 8555... |
Line 9343... |
| 8555 |
if txnShipSeq.invoiceFormat == 2:
|
9343 |
if txnShipSeq.invoiceFormat == 2:
|
| 8556 |
return 'Bulk'
|
9344 |
return 'Bulk'
|
| 8557 |
else:
|
9345 |
else:
|
| 8558 |
return 'Individual'
|
9346 |
return 'Individual'
|
| 8559 |
|
9347 |
|
| - |
|
9348 |
def create_homeshop_order(hsOrder):
|
| - |
|
9349 |
hs_Order = HsOrder()
|
| - |
|
9350 |
hs_Order.orderId = hsOrder.orderId
|
| - |
|
9351 |
hs_Order.catalogueName = hsOrder.catalogueName
|
| - |
|
9352 |
hs_Order.courierName = hsOrder.courierName
|
| - |
|
9353 |
hs_Order.hsItemId = hsOrder.hsItemId
|
| - |
|
9354 |
hs_Order.hsOrderDate = to_py_date(hsOrder.hsOrderDate)
|
| - |
|
9355 |
hs_Order.hsOrderNo = hsOrder.hsOrderNo
|
| - |
|
9356 |
hs_Order.hsProductId = hsOrder.hsProductId
|
| - |
|
9357 |
hs_Order.hsSubOrderNo = hsOrder.hsSubOrderNo
|
| - |
|
9358 |
hs_Order.paymentMode = hsOrder.paymentMode
|
| - |
|
9359 |
hs_Order.sellerSku = hsOrder.sellerSku
|
| - |
|
9360 |
hs_Order.slaDays = hsOrder.slaDays
|
| - |
|
9361 |
hs_Order.shippingName = hsOrder.shippingName
|
| - |
|
9362 |
order = Order.get_by(id=hsOrder.orderId)
|
| - |
|
9363 |
order.status = OrderStatus.ACCEPTED
|
| - |
|
9364 |
order.accepted_timestamp = datetime.datetime.now()
|
| - |
|
9365 |
user = None
|
| - |
|
9366 |
try:
|
| - |
|
9367 |
user_client = UserClient().get_client()
|
| - |
|
9368 |
user_to_add = User()
|
| - |
|
9369 |
user_to_add.email = 'HS.'+ str(hsOrder.orderId) + '@mailinator.com'
|
| - |
|
9370 |
user_to_add.password = 'ouBPONyDYWfeAFtXeaYRkQ'
|
| - |
|
9371 |
user_to_add.communicationEmail = user_to_add.email
|
| - |
|
9372 |
user_to_add.sourceStartTime = int(round(time.time() * 1000))
|
| - |
|
9373 |
user_to_add.sourceId = OrderSource.HOMESHOP18
|
| - |
|
9374 |
user_to_add.sex = Sex.WONT_SAY
|
| - |
|
9375 |
user_to_add = user_client.createUser(user_to_add)
|
| - |
|
9376 |
user = user_to_add
|
| - |
|
9377 |
except:
|
| - |
|
9378 |
pass
|
| - |
|
9379 |
|
| - |
|
9380 |
if user:
|
| - |
|
9381 |
order.customer_id = user.userId
|
| - |
|
9382 |
order.customer_email = user.email
|
| - |
|
9383 |
session.commit()
|
| - |
|
9384 |
|
| - |
|
9385 |
def get_homeshop_order(order_id, hsOrderNo, hsSubOrderNo):
|
| - |
|
9386 |
query = HsOrder.query
|
| - |
|
9387 |
if order_id:
|
| - |
|
9388 |
query = query.filter(HsOrder.orderId == order_id)
|
| - |
|
9389 |
if hsOrderNo:
|
| - |
|
9390 |
query = query.filter(HsOrder.hsOrderNo == hsOrderNo)
|
| - |
|
9391 |
if hsSubOrderNo:
|
| - |
|
9392 |
query = query.filter(HsOrder.hsSubOrderNo == hsSubOrderNo)
|
| - |
|
9393 |
return query.all()
|
| - |
|
9394 |
|
| - |
|
9395 |
def homeshop_order_exists(hs_OrderNo, hs_SubOrderNo):
|
| - |
|
9396 |
exists = HsOrder.query.filter_by(hsOrderNo=hs_OrderNo,hsSubOrderNo=hs_SubOrderNo).first()
|
| - |
|
9397 |
if exists is not None:
|
| - |
|
9398 |
return True
|
| - |
|
9399 |
else:
|
| - |
|
9400 |
return False
|
| - |
|
9401 |
|
| 8560 |
def split_bulk_order(order_id, split_order_quantity):
|
9402 |
def split_bulk_order(order_id, split_order_quantity):
|
| 8561 |
order = get_order(order_id)
|
9403 |
order = get_order(order_id)
|
| 8562 |
if split_order_quantity >=order.lineitems[0].quantity:
|
9404 |
if split_order_quantity >=order.lineitems[0].quantity:
|
| 8563 |
raise TransactionServiceException(115, "Split Quantity is greater than or equal to order quantity")
|
9405 |
raise TransactionServiceException(115, "Split Quantity is greater than or equal to order quantity")
|
| 8564 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING,
|
9406 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING,
|
| Line 9353... |
Line 10195... |
| 9353 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderId)
|
10195 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderId)
|
| 9354 |
if not returnOrder:
|
10196 |
if not returnOrder:
|
| 9355 |
return None
|
10197 |
return None
|
| 9356 |
return returnOrder
|
10198 |
return returnOrder
|
| 9357 |
|
10199 |
|
| - |
|
10200 |
def refund_return_order(returnOrderInfo, attrList):
|
| - |
|
10201 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderInfo.id)
|
| - |
|
10202 |
if returnOrder.returnStatus not in (OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_VALID], OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_INVALID], OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_LOST_IN_TRANSIT],OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RECEIVED_DAMAGED] ,OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_LOST_IN_TRANSIT], OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PRODUCT_UNUSABLE], OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PRODUCT_USABLE],OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RECEIVED_DAMAGED]):
|
| - |
|
10203 |
print "************returnig false staus check"
|
| - |
|
10204 |
return False
|
| - |
|
10205 |
if returnOrder.returnAction == ReturnAction.REFUND:
|
| - |
|
10206 |
returnOrder.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.REFUND_IN_PROCESS]
|
| - |
|
10207 |
else:
|
| - |
|
10208 |
returnOrder.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.REPLACEMENT_ORDER_CREATED]
|
| - |
|
10209 |
detailsMap = {}
|
| - |
|
10210 |
if returnOrder.refundedAt or returnOrder.replacementOrderId:
|
| - |
|
10211 |
raise TransactionServiceException(145, "Refund/Replacemet already in Process for this return order")
|
| - |
|
10212 |
if returnOrder.receivedQuantity != returnOrder.returnQuantity:
|
| - |
|
10213 |
raise TransactionServiceException(145, "Quantity mismatch Return vs Received")
|
| - |
|
10214 |
detailsMap['RefundReason'] = returnOrderInfo.refundReason
|
| - |
|
10215 |
detailsMap['RefundType'] = returnOrderInfo.refundType
|
| - |
|
10216 |
detailsMap['RefundedBy'] = returnOrderInfo.refundedBy
|
| - |
|
10217 |
detailsMap['RefundAmount'] = returnOrderInfo.refundAmount
|
| - |
|
10218 |
detailsMap['RefundDescription'] = returnOrderInfo.refundDescription
|
| - |
|
10219 |
print detailsMap
|
| - |
|
10220 |
print "*************************8"
|
| - |
|
10221 |
if(not __process_return_order(returnOrder, detailsMap)):
|
| - |
|
10222 |
raise TransactionServiceException(145, "Issue in __process_return_order")
|
| - |
|
10223 |
returnOrder.processedAt = datetime.datetime.now()
|
| - |
|
10224 |
__markReturnTransactionAsProcessed(returnOrder.returnTransaction_id)
|
| - |
|
10225 |
set_order_attributes(returnOrder.orderId, attrList)
|
| - |
|
10226 |
return True
|
| - |
|
10227 |
|
| - |
|
10228 |
def __markReturnTransactionAsProcessed(returnTransactionId):
|
| - |
|
10229 |
returnTransaction = ReturnTransaction.get_by(id=returnTransactionId)
|
| - |
|
10230 |
if returnTransaction is None:
|
| - |
|
10231 |
raise TransactionServiceException(101, "No Return Transaction Found")
|
| - |
|
10232 |
unprocessedOrders = []
|
| - |
|
10233 |
for retOrder in returnTransaction.returnOrders:
|
| - |
|
10234 |
if retOrder.reshippedAt is None and retOrder.refundedAt is None:
|
| - |
|
10235 |
unprocessedOrders.append(retOrder)
|
| - |
|
10236 |
if len(unprocessedOrders) == 0:
|
| - |
|
10237 |
returnTransaction.processedAt = datetime.datetime.now()
|
| - |
|
10238 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[ReturnTransactionStatus.PROCESSED]
|
| - |
|
10239 |
session.commit()
|
| - |
|
10240 |
|
| - |
|
10241 |
|
| 9358 |
def get_return_orders_info_map(order_ids=None, statuses=None):
|
10242 |
def get_return_orders_info_map(order_ids=None, statuses=None):
|
| 9359 |
returnOrdersInfoQuery = ReturnOrderInfo.query
|
10243 |
returnOrdersInfoQuery = ReturnOrderInfo.query
|
| 9360 |
if order_ids is not None and len(order_ids)>0:
|
10244 |
if order_ids is not None and len(order_ids)>0:
|
| 9361 |
returnOrdersInfoQuery = returnOrdersInfoQuery.filter(ReturnOrderInfo.orderId.in_(tuple(order_ids)))
|
10245 |
returnOrdersInfoQuery = returnOrdersInfoQuery.filter(ReturnOrderInfo.orderId.in_(tuple(order_ids)))
|
| 9362 |
if statuses is not None:
|
10246 |
if statuses is not None:
|
| Line 9527... |
Line 10411... |
| 9527 |
|
10411 |
|
| 9528 |
def get_return_transaction(transaction_id):
|
10412 |
def get_return_transaction(transaction_id):
|
| 9529 |
transaction = ReturnTransaction.get_by(id=transaction_id)
|
10413 |
transaction = ReturnTransaction.get_by(id=transaction_id)
|
| 9530 |
if not transaction:
|
10414 |
if not transaction:
|
| 9531 |
raise TransactionServiceException(108, "no such transaction")
|
10415 |
raise TransactionServiceException(108, "no such transaction")
|
| 9532 |
|
- |
|
| 9533 |
return transaction
|
10416 |
return transaction
|
| 9534 |
|
10417 |
|
| 9535 |
def get_return_orders_for_return_transaction(returnTransactionId):
|
10418 |
def get_return_orders_for_return_transaction(returnTransactionId):
|
| 9536 |
returnOrders = ReturnOrderInfo.query.filter_by(returnTransactionId=returnTransactionId).all()
|
10419 |
returnOrders = ReturnOrderInfo.query.filter_by(returnTransactionId=returnTransactionId).all()
|
| 9537 |
|
10420 |
|
| Line 9573... |
Line 10456... |
| 9573 |
else:
|
10456 |
else:
|
| 9574 |
returnOrder.refundDescription = "No Pickup Required for this item. Refund in Process. It takes 7-10 working days to be in actual credit."
|
10457 |
returnOrder.refundDescription = "No Pickup Required for this item. Refund in Process. It takes 7-10 working days to be in actual credit."
|
| 9575 |
else:
|
10458 |
else:
|
| 9576 |
raise TransactionServiceException(114, "This order can't be refunded")
|
10459 |
raise TransactionServiceException(114, "This order can't be refunded")
|
| 9577 |
|
10460 |
|
| 9578 |
__create_refund(order, returnOrder)
|
10461 |
__create_refund(order)
|
| 9579 |
|
10462 |
|
| 9580 |
returnOrder.refundedAt = datetime.datetime.now()
|
10463 |
returnOrder.refundedAt = datetime.datetime.now()
|
| 9581 |
returnOrder.refundedBy = refundedBy
|
10464 |
returnOrder.refundedBy = refundedBy
|
| 9582 |
returnOrder.refundReason = refundReason
|
10465 |
returnOrder.refundReason = refundReason
|
| 9583 |
returnOrder.refundAmount = refundAmount
|
10466 |
returnOrder.refundAmount = refundAmount
|
| Line 9762... |
Line 10645... |
| 9762 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[new_status]
|
10645 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[new_status]
|
| 9763 |
elif new_status == ReturnTransactionStatus.PROCESSED:
|
10646 |
elif new_status == ReturnTransactionStatus.PROCESSED:
|
| 9764 |
if returnOrdersIds and len(returnOrdersIds)>0:
|
10647 |
if returnOrdersIds and len(returnOrdersIds)>0:
|
| 9765 |
unprocessedOrders = []
|
10648 |
unprocessedOrders = []
|
| 9766 |
for retOrder in returnTransaction.returnOrders:
|
10649 |
for retOrder in returnTransaction.returnOrders:
|
| 9767 |
if retOrder.reshippedAt is None and retOrder.refundedAt is None:
|
10650 |
if retOrder.reshippedAt is None or retOrder.refundedAt is None:
|
| 9768 |
unprocessedOrders.append(retOrder)
|
10651 |
unprocessedOrders.append(retOrder)
|
| 9769 |
if len(returnOrdersIds) < len(returnTransaction.returnOrders):
|
10652 |
if len(returnOrdersIds) < len(returnTransaction.returnOrders):
|
| 9770 |
if len(returnOrdersIds) == len(unprocessedOrders):
|
10653 |
if len(returnOrdersIds) == len(unprocessedOrders):
|
| 9771 |
for ret_Order in unprocessedOrders:
|
10654 |
for ret_Order in unprocessedOrders:
|
| 9772 |
if ret_Order.returnAction == ReturnAction.REFUND:
|
10655 |
if ret_Order.returnAction == ReturnAction.REFUND:
|
| Line 9782... |
Line 10665... |
| 9782 |
else:
|
10665 |
else:
|
| 9783 |
ret_Order.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.REPLACEMENT_ORDER_CREATED]
|
10666 |
ret_Order.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.REPLACEMENT_ORDER_CREATED]
|
| 9784 |
returnTransaction.processedAt = datetime.datetime.now()
|
10667 |
returnTransaction.processedAt = datetime.datetime.now()
|
| 9785 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[new_status]
|
10668 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[new_status]
|
| 9786 |
for returnOrderId in returnOrdersIds:
|
10669 |
for returnOrderId in returnOrdersIds:
|
| 9787 |
__process_return_order(get_return_order_info(returnOrderId), returnOrdersAttrMap.get(returnOrderId))
|
10670 |
__process_return_order(get_return_order_info(returnOrderId), returnOrdersAttrMap.get(returnOrderId))
|
| - |
|
10671 |
|
| - |
|
10672 |
elif new_status == ReturnTransactionStatus.COMPLETED:
|
| - |
|
10673 |
mark_return_transaction_complete(returnTransaction.id)
|
| - |
|
10674 |
|
| - |
|
10675 |
elif new_status == ReturnTransactionStatus.CLOSED:
|
| 9788 |
elif new_status == ReturnTransactionStatus.CLOSED and mark_return_transaction_complete(returnTransaction.id):
|
10676 |
if not returnTransaction.status == ReturnTransactionStatus._VALUES_TO_NAMES[ReturnTransactionStatus.COMPLETED]:
|
| - |
|
10677 |
raise
|
| 9789 |
returnTransaction.closedAt = datetime.datetime.now()
|
10678 |
returnTransaction.closedAt = datetime.datetime.now()
|
| 9790 |
for ret_Order in returnTransaction.returnOrders:
|
10679 |
for ret_Order in returnTransaction.returnOrders:
|
| 9791 |
ret_Order.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.CLOSED]
|
10680 |
ret_Order.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.CLOSED]
|
| 9792 |
__communicate_customer_for_closed_transaction(returnTransaction)
|
10681 |
__communicate_customer_for_closed_transaction(returnTransaction)
|
| 9793 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[new_status]
|
10682 |
returnTransaction.status = ReturnTransactionStatus._VALUES_TO_NAMES[new_status]
|
| 9794 |
|
10683 |
|
| 9795 |
session.commit()
|
10684 |
session.commit()
|
| 9796 |
return True
|
10685 |
return True
|
| - |
|
10686 |
|
| 9797 |
|
10687 |
|
| 9798 |
def create_return_pickup_request(returnOrderIds, providerId):
|
10688 |
def create_return_pickup_request(returnOrderIds):
|
| 9799 |
returnPickupRequest = ReturnPickupRequest()
|
10689 |
returnPickupRequest = ReturnPickupRequest()
|
| 9800 |
returnPickupRequest.logisticsProviderId = providerId
|
- |
|
| 9801 |
returnPickupRequest.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PICKUP_REQUESTED]
|
10690 |
returnPickupRequest.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PENDING]
|
| 9802 |
|
10691 |
|
| 9803 |
if len(returnOrderIds) > 0:
|
10692 |
if len(returnOrderIds) > 0:
|
| 9804 |
for returnOrderId in returnOrderIds:
|
10693 |
for returnOrderId in returnOrderIds:
|
| 9805 |
returnOrder = get_return_order_info(returnOrderId)
|
10694 |
returnOrder = get_return_order_info(returnOrderId)
|
| 9806 |
returnOrder.logisticsRequestId = returnPickupRequest.id
|
10695 |
returnOrder.logisticsRequestId = returnPickupRequest.id
|
| 9807 |
session.commit()
|
10696 |
session.commit()
|
| 9808 |
return True
|
10697 |
return returnPickupRequest.id
|
| 9809 |
|
10698 |
|
| 9810 |
return False
|
10699 |
return 0
|
| 9811 |
|
10700 |
|
| 9812 |
def update_return_pickup_request(returnPickupRequest):
|
10701 |
def update_return_pickup_request(returnPickupRequest):
|
| - |
|
10702 |
print returnPickupRequest
|
| 9813 |
try:
|
10703 |
try:
|
| 9814 |
returnPickupReq = ReturnPickupRequest.get_by(id=returnPickupRequest.id)
|
10704 |
returnPickupReq = ReturnPickupRequest.get_by(id=returnPickupRequest.id)
|
| - |
|
10705 |
if returnPickupRequest.pickupStatus == ReturnTxnPickupStatus.PICKUP_REQUESTED:
|
| - |
|
10706 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[returnPickupRequest.pickupStatus]
|
| - |
|
10707 |
|
| 9815 |
if returnPickupRequest.pickupRequestNo:
|
10708 |
if returnPickupRequest.pickupStatus == ReturnTxnPickupStatus.PICKUP_CONFIRMED:
|
| - |
|
10709 |
returnPickupReq.logisticsProviderId = returnPickupRequest.logisticsProviderId
|
| 9816 |
returnPickupReq.pickupRequestNo = returnPickupRequest.pickupRequestNo
|
10710 |
returnPickupReq.pickupRequestNo = returnPickupRequest.pickupRequestNo
|
| 9817 |
returnPickupReq.confirmedAt = datetime.datetime.now()
|
10711 |
returnPickupReq.confirmedAt = datetime.datetime.now()
|
| 9818 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PICKUP_CONFIRMED]
|
10712 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[returnPickupRequest.pickupStatus]
|
| 9819 |
for returnOrder in ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all():
|
10713 |
for returnOrder in ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all():
|
| 9820 |
if returnOrder.returnStatus == OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_REQUEST_RAISED]:
|
10714 |
if returnOrder.returnStatus == OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_REQUEST_RAISED]:
|
| 9821 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_CONFIRMED]
|
10715 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_CONFIRMED]
|
| 9822 |
else:
|
10716 |
else:
|
| 9823 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PICKUP_CONFIRMED]
|
10717 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PICKUP_CONFIRMED]
|
| 9824 |
if returnPickupRequest.pickupStatus == ReturnTxnPickupStatus.PICKUP_SCHEDULED:
|
10718 |
if returnPickupRequest.pickupStatus == ReturnTxnPickupStatus.PICKUP_SCHEDULED:
|
| 9825 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[returnPickupRequest.pickupStatus]
|
10719 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[returnPickupRequest.pickupStatus]
|
| 9826 |
returnPickupReq.promised_pickup_timestamp = datetime.datetime.now()+timedelta(days=2)
|
10720 |
returnPickupReq.promised_pickup_timestamp = to_py_date(returnPickupRequest.promised_pickup_timestamp)
|
| 9827 |
returnOrdersMap = {}
|
10721 |
returnOrdersMap = {}
|
| 9828 |
returnOrders = ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all()
|
10722 |
returnOrders = ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all()
|
| 9829 |
for returnOrder in returnOrders:
|
10723 |
for returnOrder in returnOrders:
|
| 9830 |
returnTxn = returnOrders[0].returnTransaction
|
10724 |
returnTxn = returnOrders[0].returnTransaction
|
| 9831 |
if returnOrdersMap.has_key(returnTxn.address_id):
|
10725 |
if returnOrdersMap.has_key(returnTxn.address_id):
|
| Line 9839... |
Line 10733... |
| 9839 |
for returnOrdersList in returnOrdersMap.values():
|
10733 |
for returnOrdersList in returnOrdersMap.values():
|
| 9840 |
try:
|
10734 |
try:
|
| 9841 |
communicate_pickup_details_to_customer(returnPickupReq, returnOrdersList)
|
10735 |
communicate_pickup_details_to_customer(returnPickupReq, returnOrdersList)
|
| 9842 |
except:
|
10736 |
except:
|
| 9843 |
print "Customer Communication Failed for the pickup Information"
|
10737 |
print "Customer Communication Failed for the pickup Information"
|
| 9844 |
if returnPickupRequest.pickedUpAt:
|
10738 |
if returnPickupRequest.pickupStatus == ReturnTxnPickupStatus.PICKUP_IN_TRANSIT:
|
| 9845 |
returnPickupReq.pickedUpAt = to_py_date(returnPickupRequest.pickedUpAt)
|
10739 |
returnPickupReq.pickedUpAt = to_py_date(returnPickupRequest.pickedUpAt)
|
| 9846 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PICKUP_IN_TRANSIT]
|
10740 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PICKUP_IN_TRANSIT]
|
| 9847 |
for returnOrder in ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all():
|
10741 |
for returnOrder in ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all():
|
| 9848 |
if returnOrder.returnStatus == OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_CONFIRMED]:
|
10742 |
if returnOrder.returnStatus == OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_CONFIRMED]:
|
| 9849 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RETURN_IN_TRANSIT]
|
10743 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RETURN_IN_TRANSIT]
|
| 9850 |
else:
|
10744 |
else:
|
| - |
|
10745 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RETURN_IN_TRANSIT]
|
| - |
|
10746 |
if returnPickupRequest.pickupStatus == ReturnTxnPickupStatus.PICKUP_RECEIVED:
|
| - |
|
10747 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PICKUP_RECEIVED]
|
| - |
|
10748 |
for returnOrder in ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupRequest.id).all():
|
| 9851 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RETURN_IN_TRANSIT]
|
10749 |
if returnOrder.returnStatus not in (OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_VALID], OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_INVALID], OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_LOST_IN_TRANSIT], OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RECEIVED_DAMAGED],OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_VALID],OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_LOST_IN_TRANSIT], OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PRODUCT_UNUSABLE], OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PRODUCT_USABLE], OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RECEIVED_DAMAGED]):
|
| - |
|
10750 |
return False
|
| - |
|
10751 |
returnOrder.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.QUALITY_CHECK]
|
| 9852 |
session.commit()
|
10752 |
session.commit()
|
| 9853 |
return True
|
10753 |
return True
|
| 9854 |
except:
|
10754 |
except:
|
| - |
|
10755 |
traceback.print_exc()
|
| 9855 |
return False
|
10756 |
return False
|
| 9856 |
|
10757 |
|
| 9857 |
def receive_return_pickup(returnOrdersMap, req_id):
|
10758 |
def receive_return_pickup(returnOrdersMap, req_id):
|
| 9858 |
returnPickupReq = ReturnPickupRequest.get_by(id=req_id)
|
10759 |
#returnPickupReq = ReturnPickupRequest.get_by(id=req_id)
|
| 9859 |
returnOrders = ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==req_id).all()
|
10760 |
#returnOrders = ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==req_id).all()
|
| 9860 |
if len(returnOrders)!=len(returnOrdersMap.keys()):
|
10761 |
#if len(returnOrders)!=len(returnOrdersMap.keys()):
|
| 9861 |
raise TransactionServiceException(101, "All Returns Orders Information Missing. Please Fill All Orders Info")
|
10762 |
# raise TransactionServiceException(101, "All Returns Orders Information Missing. Please Fill All Orders Info")
|
| - |
|
10763 |
|
| 9862 |
for returnOrder in returnOrders:
|
10764 |
for returnOrderId in returnOrdersMap.iterkeys():
|
| - |
|
10765 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderId)
|
| - |
|
10766 |
if returnOrder is None:
|
| - |
|
10767 |
raise TransactionServiceException(101, "Return order missing")
|
| 9863 |
returnOrderDetails = returnOrdersMap.get(returnOrder.id)
|
10768 |
returnOrderDetails = returnOrdersMap.get(returnOrder.id)
|
| 9864 |
receiveCondition = ReceivedReturnType._NAMES_TO_VALUES[returnOrderDetails.get('ReceiveCondition')]
|
10769 |
receiveCondition = ReceivedReturnType._NAMES_TO_VALUES[returnOrderDetails.get('ReceiveCondition')]
|
| 9865 |
quantity = int(returnOrderDetails.get('Quantity'))
|
10770 |
quantity = int(returnOrderDetails.get('Quantity'))
|
| - |
|
10771 |
returnOrder.receivedReturnType = receiveCondition
|
| 9866 |
|
10772 |
returnOrder.receivedReturnType = receiveCondition
|
| 9867 |
if returnOrder.returnStatus in [OrderStatus._NAMES_TO_VALUES[OrderStatus.DOA_PICKUP_CONFIRMED], OrderStatus._NAMES_TO_VALUES[OrderStatus.DOA_RETURN_IN_TRANSIT]]:
|
10773 |
if returnOrder.returnStatus in [OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_CONFIRMED], OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RETURN_IN_TRANSIT]]:
|
| 9868 |
if receiveCondition == ReceivedReturnType.PRESTINE:
|
10774 |
if receiveCondition == ReceivedReturnType.PRESTINE:
|
| 9869 |
returnOrder.returnStatus = OrderStatus._NAMES_TO_VALUES[OrderStatus.DOA_RECEIVED_PRESTINE]
|
10775 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RECEIVED_PRESTINE]
|
| 9870 |
elif receiveCondition == ReceivedReturnType.DAMAGED:
|
10776 |
elif receiveCondition == ReceivedReturnType.DAMAGED:
|
| 9871 |
returnOrder.returnStatus = OrderStatus._NAMES_TO_VALUES[OrderStatus.DOA_RECEIVED_DAMAGED]
|
10777 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RECEIVED_DAMAGED]
|
| 9872 |
elif receiveCondition == ReceivedReturnType.LOST_IN_TRANSIT:
|
10778 |
elif receiveCondition == ReceivedReturnType.LOST_IN_TRANSIT:
|
| 9873 |
returnOrder.returnStatus = OrderStatus._NAMES_TO_VALUES[OrderStatus.DOA_LOST_IN_TRANSIT]
|
10779 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_LOST_IN_TRANSIT]
|
| 9874 |
returnOrder.receivedAt = datetime.datetime.now()
|
10780 |
returnOrder.receivedAt = datetime.datetime.now()
|
| 9875 |
returnOrder.receivedQuantity = quantity
|
10781 |
returnOrder.receivedQuantity = quantity
|
| 9876 |
elif returnOrder.returnStatus in [OrderStatus._NAMES_TO_VALUES[OrderStatus.RET_PICKUP_CONFIRMED], OrderStatus._NAMES_TO_VALUES[OrderStatus.RET_RETURN_IN_TRANSIT]]:
|
10782 |
elif returnOrder.returnStatus in [OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PICKUP_CONFIRMED], OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RETURN_IN_TRANSIT]]:
|
| 9877 |
if receiveCondition == ReceivedReturnType.PRESTINE:
|
10783 |
if receiveCondition == ReceivedReturnType.PRESTINE:
|
| 9878 |
returnOrder.returnStatus = OrderStatus._NAMES_TO_VALUES[OrderStatus.RET_RECEIVED_PRESTINE]
|
10784 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RECEIVED_PRESTINE]
|
| 9879 |
elif receiveCondition == ReceivedReturnType.DAMAGED:
|
10785 |
elif receiveCondition == ReceivedReturnType.DAMAGED:
|
| 9880 |
returnOrder.returnStatus = OrderStatus._NAMES_TO_VALUES[OrderStatus.RET_RECEIVED_DAMAGED]
|
10786 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RECEIVED_DAMAGED]
|
| 9881 |
elif receiveCondition == ReceivedReturnType.LOST_IN_TRANSIT:
|
10787 |
elif receiveCondition == ReceivedReturnType.LOST_IN_TRANSIT:
|
| 9882 |
returnOrder.returnStatus = OrderStatus._NAMES_TO_VALUES[OrderStatus.RET_LOST_IN_TRANSIT]
|
10788 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_LOST_IN_TRANSIT]
|
| 9883 |
returnOrder.receivedAt = datetime.datetime.now()
|
10789 |
returnOrder.receivedAt = datetime.datetime.now()
|
| 9884 |
returnOrder.receivedQuantity = quantity
|
10790 |
returnOrder.receivedQuantity = quantity
|
| 9885 |
else:
|
10791 |
else:
|
| 9886 |
return False
|
10792 |
return False
|
| 9887 |
|
10793 |
|
| Line 9889... |
Line 10795... |
| 9889 |
"RET_RECEIVED_PRESTINE" : ScanType.SALE_RET,
|
10795 |
"RET_RECEIVED_PRESTINE" : ScanType.SALE_RET,
|
| 9890 |
"RET_RECEIVED_DAMAGED" : ScanType.SALE_RET_UNUSABLE,
|
10796 |
"RET_RECEIVED_DAMAGED" : ScanType.SALE_RET_UNUSABLE,
|
| 9891 |
"RET_LOST_IN_TRANSIT" : ScanType.LOST_IN_TRANSIT,
|
10797 |
"RET_LOST_IN_TRANSIT" : ScanType.LOST_IN_TRANSIT,
|
| 9892 |
"DOA_RECEIVED_PRESTINE" : ScanType.DOA_IN,
|
10798 |
"DOA_RECEIVED_PRESTINE" : ScanType.DOA_IN,
|
| 9893 |
"DOA_RECEIVED_DAMAGED" : ScanType.DOA_IN,
|
10799 |
"DOA_RECEIVED_DAMAGED" : ScanType.DOA_IN,
|
| 9894 |
"DOA_LOST_IN_TRANSI" : ScanType.LOST_IN_TRANSIT
|
10800 |
"DOA_LOST_IN_TRANSIT" : ScanType.LOST_IN_TRANSIT
|
| 9895 |
}
|
10801 |
}
|
| 9896 |
inventoryClient = InventoryClient().get_client()
|
10802 |
inventoryClient = InventoryClient().get_client()
|
| 9897 |
warehouse = inventoryClient.getWarehouse(returnOrders[0].warehouse_id)
|
10803 |
warehouse = inventoryClient.getWarehouse(returnOrder.warehouse_id)
|
| 9898 |
warehouseClient = WarehouseClient().get_client()
|
10804 |
warehouseClient = WarehouseClient().get_client()
|
| 9899 |
|
10805 |
|
| 9900 |
for returnOrder in returnOrders:
|
10806 |
for returnOrderId in returnOrdersMap.iterkeys():
|
| - |
|
10807 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderId)
|
| 9901 |
returnOrderDetails = returnOrdersMap.get(returnOrder.id)
|
10808 |
returnOrderDetails = returnOrdersMap.get(returnOrder.id)
|
| 9902 |
warehouse = None
|
10809 |
warehouse = inventoryClient.getWarehouse(returnOrder.warehouse_id)
|
| 9903 |
|
10810 |
|
| 9904 |
serialNumbers = []
|
10811 |
serialNumbers = []
|
| 9905 |
if returnOrderDetails.has_key('SerialNumbers'):
|
10812 |
if returnOrderDetails.has_key('SerialNumbers'):
|
| 9906 |
serialNumbers = returnOrderDetails.get('SerialNumbers').split(',')
|
10813 |
serialNumbersSplitted = returnOrderDetails.get('SerialNumbers').split(',')
|
| - |
|
10814 |
serialNumbers = []
|
| - |
|
10815 |
for t in serialNumbersSplitted:
|
| - |
|
10816 |
if t.strip() !="":
|
| - |
|
10817 |
serialNumbers.append(t.strip())
|
| 9907 |
|
10818 |
|
| 9908 |
scanFreebie = False
|
10819 |
scanFreebie = False
|
| 9909 |
if returnOrderDetails.has_key('ScanFreebie') and returnOrderDetails.get('ScanFreebie')=='yes':
|
10820 |
if returnOrderDetails.has_key('ScanFreebie') and returnOrderDetails.get('ScanFreebie')=='yes':
|
| 9910 |
scanFreebie = True
|
10821 |
scanFreebie = True
|
| 9911 |
quantity = int(returnOrderDetails.get('Quantity'))
|
10822 |
quantity = int(returnOrderDetails.get('Quantity'))
|
| 9912 |
|
10823 |
|
| Line 9948... |
Line 10859... |
| 9948 |
try:
|
10859 |
try:
|
| 9949 |
warehouseClient.scanfreebie(order.id, order.freebieItemId, 0, scanType)
|
10860 |
warehouseClient.scanfreebie(order.id, order.freebieItemId, 0, scanType)
|
| 9950 |
except:
|
10861 |
except:
|
| 9951 |
warehouseClient = WarehouseClient().get_client()
|
10862 |
warehouseClient = WarehouseClient().get_client()
|
| 9952 |
warehouseClient.scanfreebie(order.id, order.freebieItemId, 0, scanType)
|
10863 |
warehouseClient.scanfreebie(order.id, order.freebieItemId, 0, scanType)
|
| - |
|
10864 |
|
| 9953 |
|
10865 |
|
| - |
|
10866 |
isValid = returnOrderDetails.get('productUsable')
|
| 9954 |
returnPickupReq.pickupStatus = ReturnTxnPickupStatus._VALUES_TO_NAMES[ReturnTxnPickupStatus.PICKUP_RECEIVED]
|
10867 |
if returnOrder.returnStatus == OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_RECEIVED_PRESTINE]:
|
| - |
|
10868 |
if isValid == "true":
|
| - |
|
10869 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_VALID]
|
| - |
|
10870 |
else:
|
| - |
|
10871 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_CERT_INVALID]
|
| - |
|
10872 |
|
| - |
|
10873 |
elif returnOrder.returnStatus == OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_RECEIVED_PRESTINE]:
|
| - |
|
10874 |
if isValid == "true":
|
| - |
|
10875 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PRODUCT_USABLE]
|
| - |
|
10876 |
else:
|
| - |
|
10877 |
returnOrder.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PRODUCT_UNUSABLE]
|
| 9955 |
session.commit()
|
10878 |
session.commit()
|
| 9956 |
return True
|
10879 |
return True
|
| - |
|
10880 |
|
| 9957 |
|
10881 |
|
| 9958 |
def validate_return_pickup(returnPickupId, returnOrdersMap):
|
10882 |
def validate_return_pickup(returnPickupId, returnOrdersMap):
|
| 9959 |
returnOrders = ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupId).all()
|
10883 |
returnOrders = ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==returnPickupId).all()
|
| 9960 |
if len(returnOrders)!=len(returnOrdersMap.keys()):
|
10884 |
if len(returnOrders)!=len(returnOrdersMap.keys()):
|
| 9961 |
raise TransactionServiceException(101, "All Returns Orders Information Missing. Please Fill All Orders Info")
|
10885 |
raise TransactionServiceException(101, "All Returns Orders Information Missing. Please Fill All Orders Info")
|
| Line 10038... |
Line 10962... |
| 10038 |
if not overrideWarranty and itemCondition is not None:
|
10962 |
if not overrideWarranty and itemCondition is not None:
|
| 10039 |
if itemCondition == 'DAMAGED':
|
10963 |
if itemCondition == 'DAMAGED':
|
| 10040 |
query = query.filter(LineItem.damaged_expiry_timestamp > datetime.datetime.now())
|
10964 |
query = query.filter(LineItem.damaged_expiry_timestamp > datetime.datetime.now())
|
| 10041 |
elif itemCondition == 'DEFECTIVE':
|
10965 |
elif itemCondition == 'DEFECTIVE':
|
| 10042 |
query = query.filter(LineItem.warranty_expiry_timestamp > datetime.datetime.now())
|
10966 |
query = query.filter(LineItem.warranty_expiry_timestamp > datetime.datetime.now())
|
| 10043 |
|
10967 |
|
| 10044 |
orders = query.order_by(desc(Order.delivery_timestamp)).all()
|
10968 |
orders = query.order_by(desc(Order.delivery_timestamp)).all()
|
| 10045 |
return orders
|
10969 |
return orders
|
| 10046 |
|
10970 |
|
| 10047 |
def get_eligible_return_orders_for_pickup(customerId):
|
10971 |
def get_eligible_return_orders_for_pickup(customerId):
|
| 10048 |
return session.query(ReturnOrderInfo).join((ReturnTransaction,ReturnOrderInfo.returnTransaction_id==ReturnTransaction.id)).filter(ReturnTransaction.customer_id==customerId).filter(or_(ReturnOrderInfo.returnStatus==OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PICKUP_REQUEST_RAISED], ReturnOrderInfo.returnStatus==OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_REQUEST_RAISED])).filter(ReturnOrderInfo.logisticsRequestId==None).all()
|
10972 |
return session.query(ReturnOrderInfo).join((ReturnTransaction,ReturnOrderInfo.returnTransaction_id==ReturnTransaction.id)).filter(ReturnTransaction.customer_id==customerId).filter(or_(ReturnOrderInfo.returnStatus==OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_PICKUP_REQUEST_RAISED], ReturnOrderInfo.returnStatus==OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_PICKUP_REQUEST_RAISED])).filter(ReturnOrderInfo.logisticsRequestId==None).all()
|
| 10049 |
|
10973 |
|
| 10050 |
def validate_return_transaction(customerId, returnOrdersMap, itemCondition, overrideWarranty):
|
10974 |
def validate_return_transaction(customerId, returnOrdersMap, itemCondition, overrideWarranty):
|
| 10051 |
eligibleOrders = get_eligible_orders_for_return(customerId, itemCondition, overrideWarranty)
|
10975 |
eligibleOrders = get_eligible_orders_for_return(customerId, itemCondition, overrideWarranty)
|
| 10052 |
|
10976 |
|
| 10053 |
ordersMap = {}
|
10977 |
ordersMap = {}
|
| 10054 |
for order in eligibleOrders:
|
10978 |
for order in eligibleOrders:
|
| 10055 |
ordersMap[order.id] = order.lineitems[0].quantity - order.lineitems[0].returnQty
|
10979 |
ordersMap[order.id] = order.lineitems[0].quantity - order.lineitems[0].returnQty
|
| 10056 |
|
10980 |
|
| 10057 |
for orderId, returnOrderQty in returnOrdersMap.items():
|
10981 |
for orderId, returnOrderQty in returnOrdersMap.items():
|
| 10058 |
if returnOrderQty > ordersMap.get(orderId):
|
10982 |
if returnOrderQty > ordersMap.get(orderId):
|
| 10059 |
return False
|
10983 |
return False
|
| 10060 |
return True
|
10984 |
return True
|
| 10061 |
|
10985 |
|
| 10062 |
def get_return_pickup_request(returnPickupId):
|
10986 |
def get_return_pickup_request(returnPickupId):
|
| 10063 |
return ReturnPickupRequest.get_by(id=returnPickupId)
|
10987 |
return ReturnPickupRequest.get_by(id=returnPickupId)
|
| 10064 |
|
10988 |
|
| - |
|
10989 |
def mark_return_not_required_orders_as_processed(t_returnOrderInfo):
|
| - |
|
10990 |
returnOrderInfo = ReturnOrderInfo.get_by(id=t_returnOrderInfo.id)
|
| - |
|
10991 |
if returnOrderInfo is None:
|
| - |
|
10992 |
raise TransactionServiceException(101, "No Return Order Found")
|
| - |
|
10993 |
|
| - |
|
10994 |
if returnOrderInfo.returnPickupType == ReturnPickupType.NOT_REQUIRED:
|
| - |
|
10995 |
if returnOrderInfo.returnAction == ReturnAction.REPLACEMENT or t_returnOrderInfo.refundType!= RefundType.WALLET:
|
| - |
|
10996 |
raise TransactionServiceException(101, "Refund Type not Defined for return order:- "+str(returnOrderInfo.id))
|
| - |
|
10997 |
|
| - |
|
10998 |
detailsMap = {}
|
| - |
|
10999 |
if returnOrderInfo.refundedAt :
|
| - |
|
11000 |
raise TransactionServiceException(145, "Refund already in Process for this return order")
|
| - |
|
11001 |
detailsMap['RefundReason'] = "As per Customer Request"
|
| - |
|
11002 |
detailsMap['RefundType'] = t_returnOrderInfo.refundType
|
| - |
|
11003 |
detailsMap['RefundedBy'] = t_returnOrderInfo.refundedBy
|
| - |
|
11004 |
detailsMap['RefundAmount'] = t_returnOrderInfo.refundAmount
|
| - |
|
11005 |
returnOrderInfo.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.REFUND_IN_PROCESS]
|
| - |
|
11006 |
if(not __process_return_order(returnOrderInfo, detailsMap)):
|
| - |
|
11007 |
raise TransactionServiceException(145, "Issue in __process_return_order")
|
| - |
|
11008 |
returnOrderInfo.processedAt = datetime.datetime.now()
|
| - |
|
11009 |
returnOrderInfo.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.REFUND_DONE]
|
| - |
|
11010 |
session.commit()
|
| - |
|
11011 |
__markReturnTransactionAsProcessed(returnOrderInfo.returnTransaction_id)
|
| - |
|
11012 |
return True
|
| 10065 |
|
11013 |
|
| 10066 |
def mark_return_not_required_orders_as_processed(returnTransactionId):
|
- |
|
| 10067 |
returnTransaction = ReturnTransaction.get_by(id=returnTransactionId)
|
- |
|
| 10068 |
if returnTransaction is None:
|
- |
|
| 10069 |
raise TransactionServiceException(101, "No Return Transaction Found")
|
- |
|
| 10070 |
|
- |
|
| 10071 |
eligibleOrders = []
|
- |
|
| 10072 |
for returnOrder in returnTransaction.returnOrders:
|
- |
|
| 10073 |
if returnOrder.returnPickupType == ReturnPickupType.NOT_REQUIRED:
|
- |
|
| 10074 |
if returnOrder.returnAction and returnOrder.refundType == RefundType.INIT:
|
- |
|
| 10075 |
raise TransactionServiceException(101, "Refund Type not Defined for return order:- "+str(returnOrder.id))
|
- |
|
| 10076 |
eligibleOrders.append(returnOrder)
|
- |
|
| 10077 |
|
- |
|
| 10078 |
|
- |
|
| 10079 |
returnOrdersAttrMap = {}
|
- |
|
| 10080 |
returnOrderIds = []
|
- |
|
| 10081 |
|
- |
|
| 10082 |
for returnOrder in eligibleOrders:
|
- |
|
| 10083 |
returnOrderIds.append(returnOrder.id)
|
- |
|
| 10084 |
if returnOrder.returnAction:
|
- |
|
| 10085 |
detailsMap = {}
|
- |
|
| 10086 |
if returnOrder.refundedAt:
|
- |
|
| 10087 |
raise TransactionServiceException(145, "Refund already in Process for this return order")
|
- |
|
| 10088 |
detailsMap['RefundReason'] = "As per Customer Request"
|
- |
|
| 10089 |
detailsMap['RefundType'] = returnOrder.refundType
|
- |
|
| 10090 |
detailsMap['RefundedBy'] = "CRM Executive"
|
- |
|
| 10091 |
detailsMap['RefundAmount'] = returnOrder.refundAmount
|
- |
|
| 10092 |
returnOrdersAttrMap[returnOrder.id] = detailsMap
|
- |
|
| 10093 |
|
- |
|
| 10094 |
|
- |
|
| 10095 |
return change_return_transaction_status(returnTransactionId, ReturnTransactionStatus.PROCESSED, returnOrderIds, returnOrdersAttrMap)
|
- |
|
| 10096 |
|
11014 |
|
| 10097 |
def get_all_return_orders_for_return_pickup_request(logisticsRequestId):
|
11015 |
def get_all_return_orders_for_return_pickup_request(logisticsRequestId):
|
| 10098 |
return ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==logisticsRequestId).all()
|
11016 |
return ReturnOrderInfo.query.filter(ReturnOrderInfo.logisticsRequestId==logisticsRequestId).all()
|
| 10099 |
|
11017 |
|
| 10100 |
def __clone_return_order(returnOrder, splitReturnOrderQty):
|
11018 |
def __clone_return_order(returnOrder, splitOrderQty):
|
| - |
|
11019 |
if returnOrder.returnQuantity <= splitOrderQty or splitOrderQty<=0:
|
| - |
|
11020 |
raise TransactionServiceException(101, "SplitQty canot be equal to or greater than parent return order returnQty")
|
| - |
|
11021 |
returnOrder.returnQuantity = returnOrder.returnQuantity - splitOrderQty
|
| 10101 |
returnOrderInfo = ReturnOrderInfo()
|
11022 |
new_return_order = ReturnOrderInfo()
|
| - |
|
11023 |
new_return_order.returnTransaction = returnOrder.returnTransaction
|
| - |
|
11024 |
new_return_order.masterOrderId = returnOrder.masterOrderId
|
| 10102 |
returnOrderInfo.orderId = returnOrder.orderId
|
11025 |
new_return_order.orderId = returnOrder.orderId
|
| 10103 |
returnOrderInfo.lineItemId = returnOrder.lineItemId
|
11026 |
new_return_order.lineItemId = returnOrder.lineItemId
|
| - |
|
11027 |
new_return_order.logisticsRequestId = returnOrder.logisticsRequestId
|
| 10104 |
returnOrderInfo.returnQuantity = splitReturnOrderQty
|
11028 |
new_return_order.returnQuantity = splitOrderQty
|
| - |
|
11029 |
new_return_order.receivedQuantity = returnOrder.receivedQuantity
|
| 10105 |
returnOrderInfo.createdAt = datetime.datetime.now()
|
11030 |
new_return_order.createdAt = returnOrder.createdAt
|
| 10106 |
if itemCondition=="DAMAGED":
|
11031 |
new_return_order.processedAt = returnOrder.processedAt
|
| 10107 |
returnOrderInfo.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.RET_REQUEST_RECEIVED]
|
11032 |
new_return_order.returnStatus = returnOrder.returnStatus
|
| 10108 |
else:
|
11033 |
new_return_order.reshippedAt = returnOrder.reshippedAt
|
| - |
|
11034 |
new_return_order.receivedAt = returnOrder.receivedAt
|
| 10109 |
returnOrderInfo.returnStatus = OrderStatus._VALUES_TO_NAMES[OrderStatus.DOA_REQUEST_RECEIVED]
|
11035 |
new_return_order.refundReason = returnOrder.refundReason
|
| - |
|
11036 |
new_return_order.refundedBy = returnOrder.refundedBy
|
| 10110 |
returnOrderInfo.masterOrderId = order.logisticsTransactionId
|
11037 |
new_return_order.refundedAt = returnOrder.refundedAt
|
| 10111 |
returnOrderInfo.warehouse_id = order.warehouse_id
|
11038 |
new_return_order.warehouse_id = returnOrder.warehouse_id
|
| - |
|
11039 |
new_return_order.refundAmount = returnOrder.refundAmount
|
| - |
|
11040 |
new_return_order.refundType = returnOrder.refundType
|
| 10112 |
returnOrderInfo.returnAction = returnInfo.returnAction
|
11041 |
new_return_order.refundDescription = returnOrder.refundDescription
|
| - |
|
11042 |
new_return_order.returnPickupType = returnOrder.returnPickupType
|
| - |
|
11043 |
new_return_order.shippingType = returnOrder.shippingType
|
| - |
|
11044 |
new_return_order.replacementOrderId = returnOrder.replacementOrderId
|
| - |
|
11045 |
new_return_order.receivedReturnType = returnOrder.receivedReturnType
|
| 10113 |
returnOrderInfo.freebieItemId = order.freebieItemId
|
11046 |
new_return_order.freebieItemId = returnOrder.freebieItemId
|
| - |
|
11047 |
new_return_order.returnAction = returnOrder.returnAction
|
| 10114 |
returnOrderInfo.returnTxnResolutionStatus = ReturnTxnResolutionStatus._VALUES_TO_NAMES[ReturnTxnResolutionStatus.PENDING]
|
11048 |
new_return_order.returnTxnResolutionStatus = returnOrder.returnTxnResolutionStatus
|
| - |
|
11049 |
new_return_order.lineitem = returnOrder.lineitem
|
| - |
|
11050 |
new_return_order.returnPickUpRequest = returnOrder.returnPickUpRequest
|
| - |
|
11051 |
return new_return_order
|
| - |
|
11052 |
|
| 10115 |
|
11053 |
|
| 10116 |
def get_seller_info(sellerId):
|
11054 |
def get_seller_info(sellerId):
|
| 10117 |
sellerInfo = SellerInfo()
|
11055 |
sellerInfo = SellerInfo()
|
| 10118 |
seller = Seller.get_by(id=sellerId)
|
11056 |
seller = Seller.get_by(id=sellerId)
|
| 10119 |
if seller is None:
|
11057 |
if seller is None:
|
| Line 10134... |
Line 11072... |
| 10134 |
|
11072 |
|
| 10135 |
def get_warehouse_address(addressId):
|
11073 |
def get_warehouse_address(addressId):
|
| 10136 |
address = WarehouseAddressMaster.get_by(id=addressId)
|
11074 |
address = WarehouseAddressMaster.get_by(id=addressId)
|
| 10137 |
return to_t_warehouse_address(address)
|
11075 |
return to_t_warehouse_address(address)
|
| 10138 |
|
11076 |
|
| 10139 |
def split_return_order_info(returnOrderId, splitReturnOrderQty):
|
11077 |
def split_return_order_info(returnOrderId, splitOrderQty):
|
| 10140 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderId)
|
11078 |
returnOrder = ReturnOrderInfo.get_by(id=returnOrderId)
|
| 10141 |
if returnOrder is None:
|
11079 |
if returnOrder is None:
|
| 10142 |
raise TransactionServiceException(101, "No Return Order is there with this Order Id")
|
11080 |
raise TransactionServiceException(101, "No Return Order is there with this Order Id")
|
| - |
|
11081 |
new_return_order = __clone_return_order(returnOrder, splitOrderQty)
|
| - |
|
11082 |
session.commit()
|
| - |
|
11083 |
return new_return_order
|
| 10143 |
|
11084 |
|
| 10144 |
#Seller would be used to get tin number
|
11085 |
#Seller would be used to get tin number
|
| 10145 |
def __get_seller(warehouse_id):
|
11086 |
def __get_seller(warehouse_id):
|
| 10146 |
#As of now we have hardcoded the company and
|
11087 |
#As of now we have hardcoded the company and
|
| 10147 |
#seller would be returned on basis warehouse and company
|
11088 |
#seller would be returned on basis warehouse and company
|
| Line 10151... |
Line 11092... |
| 10151 |
return sellerId
|
11092 |
return sellerId
|
| 10152 |
|
11093 |
|
| 10153 |
def add_shipment_delay(shipmentDelayDetail):
|
11094 |
def add_shipment_delay(shipmentDelayDetail):
|
| 10154 |
returnList = []
|
11095 |
returnList = []
|
| 10155 |
for delayObj in shipmentDelayDetail:
|
11096 |
for delayObj in shipmentDelayDetail:
|
| 10156 |
print delayObj.orderId
|
- |
|
| 10157 |
print delayObj.delayReason
|
- |
|
| 10158 |
print delayObj.delayReasonText
|
- |
|
| 10159 |
print delayObj.delay
|
- |
|
| 10160 |
order = get_order(delayObj.orderId)
|
11097 |
order = get_order(delayObj.orderId)
|
| 10161 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.ACCEPTED]:
|
11098 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.ACCEPTED]:
|
| 10162 |
returnList.append(delayObj.orderId)
|
11099 |
returnList.append(delayObj.orderId)
|
| 10163 |
continue
|
11100 |
continue
|
| 10164 |
try:
|
11101 |
try:
|
| Line 10167... |
Line 11104... |
| 10167 |
returnList.append(delayObj.orderId)
|
11104 |
returnList.append(delayObj.orderId)
|
| 10168 |
continue
|
11105 |
continue
|
| 10169 |
if not result:
|
11106 |
if not result:
|
| 10170 |
returnList.append(delayObj.orderId)
|
11107 |
returnList.append(delayObj.orderId)
|
| 10171 |
return returnList
|
11108 |
return returnList
|
| 10172 |
|
- |
|
| 10173 |
|
- |
|
| 10174 |
|
11109 |
|
| 10175 |
#Buyer can be anyone based on logic
|
11110 |
#Buyer can be anyone based on logic
|
| 10176 |
def __get_buyer(warehouse_id):
|
11111 |
def __get_buyer(warehouse_id):
|
| 10177 |
#As of now we have hardcoded the company and
|
11112 |
#As of now we have hardcoded the company and
|
| 10178 |
#seller would be returned on basis warehouse and company
|
11113 |
#seller would be returned on basis warehouse and company
|