Subversion Repositories SmartDukaan

Rev

Rev 12773 | Rev 12925 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 12773 Rev 12888
Line 232... Line 232...
232
                    if ds_item.sellingPrice != amazonItem.sellingPrice:
232
                    if ds_item.sellingPrice != amazonItem.sellingPrice:
233
                        sync = False
233
                        sync = False
234
                if amazonItem.isFbb:
234
                if amazonItem.isFbb:
235
                    if ds_item.sellingPrice != amazonItem.fbbPrice:
235
                    if ds_item.sellingPrice != amazonItem.fbbPrice:
236
                        sync = False
236
                        sync = False
-
 
237
                if amazonItem.isFbg:
-
 
238
                    if ds_item.sellingPrice != amazonItem.fbgPrice:
-
 
239
                        sync = False
237
                if sync:
240
                if sync:
238
                    amazonItem.fbaPrice = item.sellingPrice
241
                    amazonItem.fbaPrice = item.sellingPrice
239
                    amazonItem.sellingPrice=item.sellingPrice
242
                    amazonItem.sellingPrice=item.sellingPrice
240
                    amazonItem.fbbPrice=item.sellingPrice 
243
                    amazonItem.fbbPrice=item.sellingPrice 
-
 
244
                    amazonItem.fbgPrice=item.sellingPrice
241
                    amazonItem.mfnPriceLastUpdatedOn = datetime.datetime.now()
245
                    amazonItem.mfnPriceLastUpdatedOn = datetime.datetime.now()
242
                    amazonItem.fbaPriceLastUpdatedOn = datetime.datetime.now()
246
                    amazonItem.fbaPriceLastUpdatedOn = datetime.datetime.now()
243
                    amazonItem.fbbPriceLastUpdatedOn = datetime.datetime.now()
247
                    amazonItem.fbbPriceLastUpdatedOn = datetime.datetime.now()
-
 
248
                    amazonItem.fbgPriceLastUpdatedOn = datetime.datetime.now()
244
                    message +="Amazon Prices Synced."
249
                    message +="Amazon Prices Synced."
245
                else:
250
                else:
246
                    message +="Amazon Prices Not Synced."
251
                    message +="Amazon Prices Not Synced."
247
                                
252
                                
248
            message += "Selling Price is changed from {0} to {1}.\n".format(ds_item.sellingPrice, item.sellingPrice)
253
            message += "Selling Price is changed from {0} to {1}.\n".format(ds_item.sellingPrice, item.sellingPrice)
Line 1825... Line 1830...
1825
def get_all_amazon_listed_items():
1830
def get_all_amazon_listed_items():
1826
    return session.query(Amazonlisted).all()
1831
    return session.query(Amazonlisted).all()
1827
 
1832
 
1828
def get_amazon_item_details(amazonItemId):
1833
def get_amazon_item_details(amazonItemId):
1829
    amazonlisted = Amazonlisted.get_by(itemId=amazonItemId)
1834
    amazonlisted = Amazonlisted.get_by(itemId=amazonItemId)
1830
    fbaPromo, fbbPromo = __get_amazon_promotion_attributes_for_item(amazonItemId)
1835
    fbaPromo, fbbPromo, fbgPromo = __get_amazon_promotion_attributes_for_item(amazonItemId)
1831
    return amazonlisted, fbaPromo, fbbPromo
1836
    return amazonlisted, fbaPromo, fbbPromo, fbgPromo
1832
 
1837
 
1833
 
1838
 
1834
def update_amazon_item_details(amazonlisted):
1839
def update_amazon_item_details(amazonlisted):
1835
    amazon_listed = Amazonlisted.get_by(itemId = amazonlisted.itemid)
1840
    amazon_listed = Amazonlisted.get_by(itemId = amazonlisted.itemid)
1836
    amazon_listed.isFba=amazonlisted.isFba
1841
    amazon_listed.isFba=amazonlisted.isFba
1837
    amazon_listed.isFbb=amazonlisted.isFbb
1842
    amazon_listed.isFbb=amazonlisted.isFbb
-
 
1843
    amazon_listed.isFbg=amazonlisted.isFbg
1838
    amazon_listed.isNonFba=amazonlisted.isNonFba
1844
    amazon_listed.isNonFba=amazonlisted.isNonFba
1839
    amazon_listed.isInventoryOverride=amazonlisted.isInventoryOverride
1845
    amazon_listed.isInventoryOverride=amazonlisted.isInventoryOverride
1840
    amazon_listed.handlingTime=amazonlisted.handlingTime
1846
    amazon_listed.handlingTime=amazonlisted.handlingTime
1841
    amazon_listed.isCustomTime=amazonlisted.isCustomTime
1847
    amazon_listed.isCustomTime=amazonlisted.isCustomTime
1842
    amazon_listed.taxCode=amazonlisted.taxCode
1848
    amazon_listed.taxCode=amazonlisted.taxCode
1843
    amazon_listed.fbbtaxCode=amazonlisted.fbbtaxCode
1849
    amazon_listed.fbbtaxCode=amazonlisted.fbbtaxCode
-
 
1850
    amazon_listed.fbgtaxCode=amazonlisted.fbgtaxCode
1844
    if (amazon_listed.sellingPrice != amazonlisted.sellingPrice) and amazonlisted.sellingPrice > 0:
1851
    if (amazon_listed.sellingPrice != amazonlisted.sellingPrice) and amazonlisted.sellingPrice > 0:
1845
        amazon_listed.mfnPriceLastUpdatedOn = datetime.datetime.now()
1852
        amazon_listed.mfnPriceLastUpdatedOn = datetime.datetime.now()
1846
        amazon_listed.sellingPrice=amazonlisted.sellingPrice
1853
        amazon_listed.sellingPrice=amazonlisted.sellingPrice
1847
    if (amazon_listed.fbaPrice != amazonlisted.fbaPrice) and amazonlisted.fbaPrice > 0:
1854
    if (amazon_listed.fbaPrice != amazonlisted.fbaPrice) and amazonlisted.fbaPrice > 0:
1848
        amazon_listed.fbaPriceLastUpdatedOn = datetime.datetime.now()
1855
        amazon_listed.fbaPriceLastUpdatedOn = datetime.datetime.now()
1849
        amazon_listed.fbaPrice=amazonlisted.fbaPrice
1856
        amazon_listed.fbaPrice=amazonlisted.fbaPrice
1850
    if (amazon_listed.fbbPrice != amazonlisted.fbbPrice) and amazonlisted.fbbPrice > 0:
1857
    if (amazon_listed.fbbPrice != amazonlisted.fbbPrice) and amazonlisted.fbbPrice > 0:
1851
        amazon_listed.fbbPriceLastUpdatedOn = datetime.datetime.now()
1858
        amazon_listed.fbbPriceLastUpdatedOn = datetime.datetime.now()
1852
        amazon_listed.fbbPrice=amazonlisted.fbbPrice
1859
        amazon_listed.fbbPrice=amazonlisted.fbbPrice
-
 
1860
    if (amazon_listed.fbgPrice != amazonlisted.fbgPrice) and amazonlisted.fbgPrice > 0:
-
 
1861
        amazon_listed.fbgPriceLastUpdatedOn = datetime.datetime.now()
-
 
1862
        amazon_listed.fbgPrice=amazonlisted.fbgPrice
1853
    amazon_listed.suppressMfnPriceUpdate=amazonlisted.suppressMfnPriceUpdate
1863
    amazon_listed.suppressMfnPriceUpdate=amazonlisted.suppressMfnPriceUpdate
1854
    amazon_listed.suppressFbaPriceUpdate=amazonlisted.suppressFbaPriceUpdate
1864
    amazon_listed.suppressFbaPriceUpdate=amazonlisted.suppressFbaPriceUpdate
1855
    amazon_listed.suppressFbbPriceUpdate=amazonlisted.suppressFbbPriceUpdate
1865
    amazon_listed.suppressFbbPriceUpdate=amazonlisted.suppressFbbPriceUpdate
-
 
1866
    amazon_listed.suppressFbgPriceUpdate=amazonlisted.suppressFbgPriceUpdate
1856
    amazon_listed.overrrideWanlc = amazonlisted.overrrideWanlc
1867
    amazon_listed.overrrideWanlc = amazonlisted.overrrideWanlc
1857
    amazon_listed.exceptionalWanlc = amazonlisted.exceptionalWanlc
1868
    amazon_listed.exceptionalWanlc = amazonlisted.exceptionalWanlc
1858
    amazon_listed.autoDecrement = amazonlisted.autoDecrement
1869
    amazon_listed.autoDecrement = amazonlisted.autoDecrement
1859
    amazon_listed.autoIncrement = amazonlisted.autoIncrement
1870
    amazon_listed.autoIncrement = amazonlisted.autoIncrement
1860
    amazon_listed.autoFavourite = amazonlisted.autoFavourite
1871
    amazon_listed.autoFavourite = amazonlisted.autoFavourite
Line 1864... Line 1875...
1864
        amazon_listed.fbaPromoPrice = amazonlisted.fbaPromoPrice
1875
        amazon_listed.fbaPromoPrice = amazonlisted.fbaPromoPrice
1865
        amazon_listed.fbaPriceLastUpdatedOn = datetime.datetime.now()
1876
        amazon_listed.fbaPriceLastUpdatedOn = datetime.datetime.now()
1866
    if amazon_listed.fbbPromoPrice != amazonlisted.fbbPromoPrice and amazonlisted.fbbPromoPrice > 0:
1877
    if amazon_listed.fbbPromoPrice != amazonlisted.fbbPromoPrice and amazonlisted.fbbPromoPrice > 0:
1867
        amazon_listed.fbbPromoPrice = amazonlisted.fbbPromoPrice
1878
        amazon_listed.fbbPromoPrice = amazonlisted.fbbPromoPrice
1868
        amazon_listed.fbbPriceLastUpdatedOn = datetime.datetime.now()
1879
        amazon_listed.fbbPriceLastUpdatedOn = datetime.datetime.now()
-
 
1880
    if amazon_listed.fbgPromoPrice != amazonlisted.fbgPromoPrice and amazonlisted.fbgPromoPrice > 0:
-
 
1881
        amazon_listed.fbgPromoPrice = amazonlisted.fbgPromoPrice
-
 
1882
        amazon_listed.fbgPriceLastUpdatedOn = datetime.datetime.now()
1869
    session.commit()
1883
    session.commit()
1870
   
1884
   
1871
def add_amazon_item(amazonlisted):
1885
def add_amazon_item(amazonlisted):
1872
    if (not amazonlisted) or (not amazonlisted.itemid) or (not amazonlisted.asin):
1886
    if (not amazonlisted) or (not amazonlisted.itemid) or (not amazonlisted.asin):
1873
        return
1887
        return
Line 1931... Line 1945...
1931
            amazon_item.fbbPrice = amazonlisted.fbbPrice 
1945
            amazon_item.fbbPrice = amazonlisted.fbbPrice 
1932
            amazon_item.fbbPriceLastUpdatedOnSc = datetime.datetime.now()
1946
            amazon_item.fbbPriceLastUpdatedOnSc = datetime.datetime.now()
1933
            amazon_item.fbbPriceLastUpdatedOn = datetime.datetime.now()
1947
            amazon_item.fbbPriceLastUpdatedOn = datetime.datetime.now()
1934
        amazon_item.isFbb = False
1948
        amazon_item.isFbb = False
1935
        amazon_item.suppressFbbPriceUpdate = False
1949
        amazon_item.suppressFbbPriceUpdate = False
-
 
1950
        if amazonlisted.fbgPrice: 
-
 
1951
            amazon_item.fbgPrice = amazonlisted.fbbPrice 
-
 
1952
            amazon_item.fbgPriceLastUpdatedOnSc = datetime.datetime.now()
-
 
1953
            amazon_item.fbgPriceLastUpdatedOn = datetime.datetime.now()
-
 
1954
        amazon_item.isFbg = False
-
 
1955
        amazon_item.suppressFbgPriceUpdate = False
1936
        amazon_item.autoDecrement = True
1956
        amazon_item.autoDecrement = True
1937
        amazon_item.autoIncrement = True
1957
        amazon_item.autoIncrement = True
1938
 
1958
 
1939
    elif (amazonItem.asin!=amazonlisted.asin):
1959
    elif (amazonItem.asin!=amazonlisted.asin):
1940
        if amazonlisted.asin:
1960
        if amazonlisted.asin:
Line 2025... Line 2045...
2025
        for sku in skuList:
2045
        for sku in skuList:
2026
            amazonItem = Amazonlisted.get_by(itemId=sku)
2046
            amazonItem = Amazonlisted.get_by(itemId=sku)
2027
            amazonItem.fbbPriceLastUpdatedOnSc = to_py_date(timestamp)
2047
            amazonItem.fbbPriceLastUpdatedOnSc = to_py_date(timestamp)
2028
            session.commit()
2048
            session.commit()
2029
        return True
2049
        return True
-
 
2050
    elif feedType == 'FbgPricing':
-
 
2051
        for sku in skuList:
-
 
2052
            amazonItem = Amazonlisted.get_by(itemId=sku)
-
 
2053
            amazonItem.fbgPriceLastUpdatedOnSc = to_py_date(timestamp)
-
 
2054
            session.commit()
-
 
2055
        return True
2030
    elif feedType== 'FullFbaPricing':
2056
    elif feedType== 'FullFbaPricing':
2031
        for sku in skuList:
2057
        for sku in skuList:
2032
            amazonItem = Amazonlisted.get_by(itemId=sku)
2058
            amazonItem = Amazonlisted.get_by(itemId=sku)
2033
            amazonItem.fbaPriceLastUpdatedOnSc = to_py_date(timestamp)
2059
            amazonItem.fbaPriceLastUpdatedOnSc = to_py_date(timestamp)
2034
            session.commit()
2060
            session.commit()
Line 2043... Line 2069...
2043
        for sku in skuList:
2069
        for sku in skuList:
2044
            amazonItem = Amazonlisted.get_by(itemId=sku)
2070
            amazonItem = Amazonlisted.get_by(itemId=sku)
2045
            amazonItem.isFba = True
2071
            amazonItem.isFba = True
2046
            session.commit()
2072
            session.commit()
2047
        return True
2073
        return True
-
 
2074
    elif (feedType=='FbgListingFeed'):
-
 
2075
        for sku in skuList:
-
 
2076
            amazonItem = Amazonlisted.get_by(itemId=sku)
-
 
2077
            amazonItem.isFbg = True
-
 
2078
            session.commit()
-
 
2079
        return True
2048
    elif (feedType=='NonFbaListingFeed'):
2080
    elif (feedType=='NonFbaListingFeed'):
2049
        for sku in skuList:
2081
        for sku in skuList:
2050
            amazonItem = Amazonlisted.get_by(itemId=sku)
2082
            amazonItem = Amazonlisted.get_by(itemId=sku)
2051
            amazonItem.isNonFba = True 
2083
            amazonItem.isNonFba = True 
2052
            session.commit()
2084
            session.commit()
Line 2853... Line 2885...
2853
        d_amazonPromotion.promotionActive = False
2885
        d_amazonPromotion.promotionActive = False
2854
        if d_amazonPromotion.sku.startswith('FBA'):
2886
        if d_amazonPromotion.sku.startswith('FBA'):
2855
            d_amazonPromotion.stateId = 1
2887
            d_amazonPromotion.stateId = 1
2856
        elif d_amazonPromotion.sku.startswith('FBB'):
2888
        elif d_amazonPromotion.sku.startswith('FBB'):
2857
            d_amazonPromotion.stateId = 2
2889
            d_amazonPromotion.stateId = 2
-
 
2890
        elif d_amazonPromotion.sku.startswith('FBG'):
-
 
2891
            d_amazonPromotion.stateId = 3
2858
        else:
2892
        else:
2859
            raise CatalogServiceException(101, "Amazon Promotion Illegal sku id "+sku)
2893
            raise CatalogServiceException(101, "Amazon Promotion Illegal sku id "+sku)
2860
        d_amazonPromotion.promotionType = amazonPromotion.promotionType
2894
        d_amazonPromotion.promotionType = amazonPromotion.promotionType
2861
        if d_amazonPromotion.promotionType == AmazonPromotionType._NAMES_TO_VALUES.get('LONGTERM'):
2895
        if d_amazonPromotion.promotionType == AmazonPromotionType._NAMES_TO_VALUES.get('LONGTERM'):
2862
            amazonItem = get_amazon_item_details(int(d_amazonPromotion.sku[3:]))
2896
            amazonItem = get_amazon_item_details(int(d_amazonPromotion.sku[3:]))
Line 2865... Line 2899...
2865
            if d_amazonPromotion.stateId == 1:
2899
            if d_amazonPromotion.stateId == 1:
2866
                amazonItem[0].fbaPromoPrice =  amazonPromotion.salePrice
2900
                amazonItem[0].fbaPromoPrice =  amazonPromotion.salePrice
2867
                amazonItem[0].fbaPromoStartDate = to_py_date(amazonPromotion.startDate)
2901
                amazonItem[0].fbaPromoStartDate = to_py_date(amazonPromotion.startDate)
2868
                amazonItem[0].fbaPromoEndDate =  to_py_date(amazonPromotion.endDate)
2902
                amazonItem[0].fbaPromoEndDate =  to_py_date(amazonPromotion.endDate)
2869
                amazonItem[0].fbaPromoActive = False
2903
                amazonItem[0].fbaPromoActive = False
2870
            else:
2904
            elif d_amazonPromotion.stateId == 2:
2871
                amazonItem[0].fbbPromoPrice =  amazonPromotion.salePrice
2905
                amazonItem[0].fbbPromoPrice =  amazonPromotion.salePrice
2872
                amazonItem[0].fbbPromoStartDate = to_py_date(amazonPromotion.startDate)
2906
                amazonItem[0].fbbPromoStartDate = to_py_date(amazonPromotion.startDate)
2873
                amazonItem[0].fbbPromoEndDate =  to_py_date(amazonPromotion.endDate)
2907
                amazonItem[0].fbbPromoEndDate =  to_py_date(amazonPromotion.endDate)
2874
                amazonItem[0].fbbPromoActive = False
2908
                amazonItem[0].fbbPromoActive = False
-
 
2909
            else:
-
 
2910
                amazonItem[0].fbgPromoPrice =  amazonPromotion.salePrice
-
 
2911
                amazonItem[0].fbgPromoStartDate = to_py_date(amazonPromotion.startDate)
-
 
2912
                amazonItem[0].fbgPromoEndDate =  to_py_date(amazonPromotion.endDate)
-
 
2913
                amazonItem[0].fbgPromoActive = False
2875
        else:
2914
        else:
2876
            d_amazonPromotion.promotionActive = True
2915
            d_amazonPromotion.promotionActive = True
2877
    session.commit()
2916
    session.commit()
2878
    return True
2917
    return True
2879
 
2918
 
Line 2919... Line 2958...
2919
        amp.updatedOnMarketplace = datetime.datetime.now()
2958
        amp.updatedOnMarketplace = datetime.datetime.now()
2920
        if amp.promotionType == 1:
2959
        if amp.promotionType == 1:
2921
            amazonItem = get_amazon_item_details(int(amp.sku[3:]))
2960
            amazonItem = get_amazon_item_details(int(amp.sku[3:]))
2922
            if amp.stateId == 1:
2961
            if amp.stateId == 1:
2923
                amazonItem[0].fbaPromotionActive = True
2962
                amazonItem[0].fbaPromotionActive = True
2924
            else:
2963
            elif amp.stateId == 2:
2925
                amazonItem[0].fbbPromotionActive = True
2964
                amazonItem[0].fbbPromotionActive = True
-
 
2965
            else:
-
 
2966
                amazonItem[0].fbgPromotionActive = True
2926
    session.commit()
2967
    session.commit()
2927
    return True
2968
    return True
2928
 
2969
 
2929
def __get_amazon_promotion_attributes_for_item(item_id):
2970
def __get_amazon_promotion_attributes_for_item(item_id):
2930
    timestamp = datetime.datetime.now()
2971
    timestamp = datetime.datetime.now()
2931
    fbaPromo = AmazonPromotion.query.filter(AmazonPromotion.sku=='FBA'+str(item_id)).filter(AmazonPromotion.startDate<=timestamp).filter(AmazonPromotion.endDate>=timestamp).filter(AmazonPromotion.updatedOnMarketplace>to_py_date(0)).order_by(desc(AmazonPromotion.updatedOnMarketplace)).limit(1).all()
2972
    fbaPromo = AmazonPromotion.query.filter(AmazonPromotion.sku=='FBA'+str(item_id)).filter(AmazonPromotion.startDate<=timestamp).filter(AmazonPromotion.endDate>=timestamp).filter(AmazonPromotion.updatedOnMarketplace>to_py_date(0)).order_by(desc(AmazonPromotion.updatedOnMarketplace)).limit(1).all()
2932
    fbbPromo = AmazonPromotion.query.filter(AmazonPromotion.sku=='FBB'+str(item_id)).filter(AmazonPromotion.startDate<=timestamp).filter(AmazonPromotion.endDate>=timestamp).filter(AmazonPromotion.updatedOnMarketplace>to_py_date(0)).order_by(desc(AmazonPromotion.updatedOnMarketplace)).limit(1).all()
2973
    fbbPromo = AmazonPromotion.query.filter(AmazonPromotion.sku=='FBB'+str(item_id)).filter(AmazonPromotion.startDate<=timestamp).filter(AmazonPromotion.endDate>=timestamp).filter(AmazonPromotion.updatedOnMarketplace>to_py_date(0)).order_by(desc(AmazonPromotion.updatedOnMarketplace)).limit(1).all()
2933
    return fbaPromo, fbbPromo
2974
    fbgPromo = AmazonPromotion.query.filter(AmazonPromotion.sku=='FBG'+str(item_id)).filter(AmazonPromotion.startDate<=timestamp).filter(AmazonPromotion.endDate>=timestamp).filter(AmazonPromotion.updatedOnMarketplace>to_py_date(0)).order_by(desc(AmazonPromotion.updatedOnMarketplace)).limit(1).all()
-
 
2975
    return fbaPromo, fbbPromo, fbgPromo
2934
 
2976
 
2935
def get_ex_affiliate_item_info():
2977
def get_ex_affiliate_item_info():
2936
        query = session.query(ExclusiveAffiliateItemInfo, OutboundAffiliateMaster.name).join((OutboundAffiliateMaster, ExclusiveAffiliateItemInfo.affiliateId==OutboundAffiliateMaster.id)).filter(ExclusiveAffiliateItemInfo.isActive == True).all()
2978
        query = session.query(ExclusiveAffiliateItemInfo, OutboundAffiliateMaster.name).join((OutboundAffiliateMaster, ExclusiveAffiliateItemInfo.affiliateId==OutboundAffiliateMaster.id)).filter(ExclusiveAffiliateItemInfo.isActive == True).all()
2937
        close_session()
2979
        close_session()
2938
        map = {}
2980
        map = {}
2939
        for q in query:
2981
        for q in query:
2940
            map[q[0].itemId]=to_t_exclusive_affiliate_item_info(q) 
2982
            map[q[0].itemId]=to_t_exclusive_affiliate_item_info(q) 
2941
        return map
-
 
2942
2983
        return map
-
 
2984
 
-
 
2985
def get_all_items_to_list_on_fbg():
-
 
2986
    return Amazonlisted.query.filter(Amazonlisted.isFbg==False).filter(or_(Amazonlisted.fbgtaxCode!=None,Amazonlisted.fbgtaxCode!="")).all()
-
 
2987
 
-
 
2988
def get_all_fbg_listed_items():
-
 
2989
    return Amazonlisted.query.filter(Amazonlisted.isFbg==True).all()
-
 
2990