Subversion Repositories SmartDukaan

Rev

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

Rev 12209 Rev 12210
Line 685... Line 685...
685
        itemInfo.append(flipkartItemInfo)
685
        itemInfo.append(flipkartItemInfo)
686
    session.close()
686
    session.close()
687
    return itemInfo
687
    return itemInfo
688
 
688
 
689
def fetchDetails(flipkartSerialNumber):
689
def fetchDetails(flipkartSerialNumber):
690
    print "Inside fetch details"
-
 
691
    url = "http://www.flipkart.com/ps/%s"%(flipkartSerialNumber)
-
 
692
    #url = "http://www.flipkart.com/ps/MOBDTXVZXVY3GFG8"
-
 
693
    #scraper.read(url)
-
 
694
#    scraper = FlipkartScraper.FlipkartScraper()
-
 
695
#    vendorsData = scraper.read(url)
-
 
696
    request = urllib2.Request(url)
-
 
697
    request.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1')
-
 
698
    opener = urllib2.build_opener()
-
 
699
    response_data = ""
-
 
700
    try:
-
 
701
        response_data = opener.open(request).read()
-
 
702
        print datetime.now()
-
 
703
        print "Fetched response from flipkart for %s" %(url)
-
 
704
        
-
 
705
    except urllib2.HTTPError as e:
-
 
706
        print 'ERROR: ', e
-
 
707
        print 'Retrying'
-
 
708
    
-
 
709
    response_data=response_data
-
 
710
    page=response_data.decode("utf-8")
-
 
711
    print datetime.now()
-
 
712
    soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
-
 
713
    page = None
-
 
714
    response_data = None
-
 
715
    print datetime.now()
-
 
716
    print "Soup created from flipkart data for %s" %(url)
-
 
717
    info = []
-
 
718
    oddSeller = soup.findAll("div" , {"class" : "line seller-item odd "})
-
 
719
    for data in oddSeller:
-
 
720
        temp={}
-
 
721
        try:
-
 
722
            businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
-
 
723
            shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace('  ','-')
-
 
724
            temp['shippingTime']=shippingTime
-
 
725
        except:
-
 
726
            pass
-
 
727
        price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.').strip()
-
 
728
        temp['sellingPrice']=float(price)
-
 
729
        for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
-
 
730
            sellerName = sellerInfo.find('a').string
-
 
731
            temp['sellerName'] = sellerName
-
 
732
        for metrics in data.find("div",{"class":"fk-text-right"}):
-
 
733
            try:
-
 
734
                metric = metrics.findAll('input', {'type': 'submit'})
-
 
735
            except AttributeError:
-
 
736
                continue
-
 
737
            try:
-
 
738
                inputTags = metric[0]['data-lst-buytrend']
-
 
739
            except TypeError:
-
 
740
                continue
-
 
741
            dataMetrics = metric[0]['data-listing-metrics']
-
 
742
            try:
-
 
743
                buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
-
 
744
            except ValueError:
-
 
745
                buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
-
 
746
            temp['buyTrend']=buyTrend
-
 
747
            dataMetric = dataMetrics.split(';')
-
 
748
            sellerCode = dataMetric[0]
-
 
749
            temp['sellerCode']=sellerCode
-
 
750
            temp['sellingPriceMetric'] = float(dataMetric[1])
-
 
751
            if not temp.has_key('shippingTime'):
-
 
752
                print "Populating shipping time from metrics"
-
 
753
                temp['shippingTime'] = dataMetric[3]
-
 
754
            temp['sellerScore'] = int(dataMetric[4])
-
 
755
            info.append(temp)
-
 
756
    evenSeller = soup.findAll("div" , {"class" : "line seller-item even "})
-
 
757
    for data in evenSeller:
-
 
758
        temp={}
-
 
759
        price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.')
-
 
760
        try:
-
 
761
            businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
-
 
762
            shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace('  ','-')
-
 
763
            temp['shippingTime']=shippingTime
-
 
764
        except:
-
 
765
            pass
-
 
766
        temp['sellingPrice']=float(price)
-
 
767
        for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
-
 
768
            sellerName = sellerInfo.find('a').string
-
 
769
            temp['sellerName'] = sellerName
-
 
770
        for metrics in data.find("div",{"class":"fk-text-right"}):
-
 
771
            try:
-
 
772
                metric = metrics.findAll('input', {'type': 'submit'})
-
 
773
            except AttributeError:
-
 
774
                continue
-
 
775
            try:
-
 
776
                inputTags = metric[0]['data-lst-buytrend']
-
 
777
            except TypeError:
-
 
778
                continue
-
 
779
            dataMetrics = metric[0]['data-listing-metrics']
-
 
780
            try:
-
 
781
                buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
-
 
782
            except ValueError:
-
 
783
                buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
-
 
784
            temp['buyTrend']=buyTrend
-
 
785
            dataMetric = dataMetrics.split(';')
-
 
786
            temp['sellerCode'] = dataMetric[0] 
-
 
787
            temp['sellingPriceMetric'] = float(dataMetric[1])
-
 
788
            if not temp.has_key('shippingTime'):
-
 
789
                print "Populating shipping time from metrics"
-
 
790
                temp['shippingTime'] = dataMetric[3]
-
 
791
            temp['sellerScore'] = int(dataMetric[4])
-
 
792
            info.append(temp)
-
 
793
    vendorsData = info
-
 
794
    info = []
-
 
795
    print "Returning Json response from flipkart for %s" %(url)
-
 
796
    fin = datetime.now()
-
 
797
    print "Finish with data for serial Number %s %s" %(flipkartSerialNumber,str(fin))
-
 
798
    sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
-
 
799
    vendorsData[:]=[]
-
 
800
    rank ,ourSp, iterator, secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, shippingTimeLowerLimitLowestSeller,shippingTimeUpperLimitLowestSeller, \
-
 
801
    shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller, shippingTimeLowerLimitOur, shippingTimeUpperLimitOur, shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller, totalAvailableSeller= (0,)*19
-
 
802
    lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
-
 
803
    ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode = ('',)*11
-
 
804
    for data in sortedVendorsData:
-
 
805
        if iterator == 0:
-
 
806
            lowestSellerName = data['sellerName']
-
 
807
            lowestSellerScore = data['sellerScore']
-
 
808
            lowestSellerCode = data['sellerCode']
-
 
809
            lowestSellerSp = data['sellingPrice']
-
 
810
            lowestSellerBuyTrend = data['buyTrend']
-
 
811
            try:
-
 
812
                shippingTimeLowerLimitLowestSeller, shippingTimeUpperLimitLowestSeller = data['shippingTime'].split('-')
-
 
813
            except ValueError:
-
 
814
                shippingTimeLowerLimitLowestSeller = int(data['shippingTime'])
-
 
815
                
-
 
816
        if iterator ==1:
-
 
817
            secondLowestSellerName = data['sellerName']
-
 
818
            secondLowestSellerScore = data['sellerScore']
-
 
819
            secondLowestSellerCode = data['sellerCode']
-
 
820
            secondLowestSellerSp = data['sellingPrice']
-
 
821
            secondLowestSellerBuyTrend = data['buyTrend']
-
 
822
            try:
-
 
823
                shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller = data['shippingTime'].split('-')
-
 
824
            except ValueError:
-
 
825
                shippingTimeLowerLimitSecondLowestSeller = int(data['shippingTime'])
-
 
826
                
-
 
827
        if data['sellerName'] == 'Saholic':
-
 
828
            ourScore = data['sellerScore']
-
 
829
            ourCode = data['sellerCode']
-
 
830
            ourSp = data['sellingPrice']
-
 
831
            ourBuyTrend = data['buyTrend']
-
 
832
            try:
-
 
833
                shippingTimeLowerLimitOur, shippingTimeUpperLimitOur = data['shippingTime'].split('-')
-
 
834
            except ValueError:
-
 
835
                shippingTimeLowerLimitOur = int(data['shippingTime'])
-
 
836
            rank = iterator + 1
-
 
837
        
-
 
838
        if data['buyTrend'] in ('PrefCheap','PrefNCheap',''):
-
 
839
            prefSellerName = data['sellerName']
-
 
840
            prefSellerScore = data['sellerScore']
-
 
841
            prefSellerCode = data['sellerCode']
-
 
842
            prefSellerSp = data['sellingPrice']
-
 
843
            prefSellerBuyTrend = data['buyTrend']
-
 
844
            try:
-
 
845
                shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller = data['shippingTime'].split('-')
-
 
846
            except ValueError:
-
 
847
                shippingTimeLowerLimitPrefSeller = int(data['shippingTime'])
-
 
848
        
-
 
849
        iterator+=1
-
 
850
    
-
 
851
    flipkartDetails = __FlipkartDetails(rank ,ourSp , secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, int(shippingTimeLowerLimitLowestSeller),int(shippingTimeUpperLimitLowestSeller), \
-
 
852
    int(shippingTimeLowerLimitPrefSeller), int(shippingTimeUpperLimitPrefSeller), int(shippingTimeLowerLimitOur), int(shippingTimeUpperLimitOur), int(shippingTimeLowerLimitSecondLowestSeller), int(shippingTimeUpperLimitSecondLowestSeller), len(sortedVendorsData), lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
690
    pass
853
    ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode)
-
 
854
    
-
 
855
    if flipkartDetails.ourBuyTrend == 'PrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.secondLowestSellerSp:
-
 
856
        print "Under PrefCheap category.Switching data for ",flipkartSerialNumber
-
 
857
        flipkartDetails.lowestSellerSp, flipkartDetails.secondLowestSellerSp = flipkartDetails.secondLowestSellerSp,flipkartDetails.lowestSellerSp
-
 
858
        flipkartDetails.lowestSellerScore, flipkartDetails.secondLowestSellerScore = flipkartDetails.secondLowestSellerScore,flipkartDetails.lowestSellerScore
-
 
859
        flipkartDetails.shippingTimeLowerLimitLowestSeller, flipkartDetails.shippingTimeLowerLimitSecondLowestSeller = flipkartDetails.shippingTimeLowerLimitSecondLowestSeller,flipkartDetails.shippingTimeLowerLimitLowestSeller
-
 
860
        flipkartDetails.shippingTimeUpperLimitLowestSeller, flipkartDetails.shippingTimeUpperLimitSecondLowestSeller = flipkartDetails.shippingTimeUpperLimitSecondLowestSeller,flipkartDetails.shippingTimeUpperLimitLowestSeller
-
 
861
        flipkartDetails.lowestSellerName, flipkartDetails.secondLowestSellerName = flipkartDetails.secondLowestSellerName,flipkartDetails.lowestSellerName
-
 
862
        flipkartDetails.lowestSellerCode, flipkartDetails.secondLowestSellerCode = flipkartDetails.secondLowestSellerCode,flipkartDetails.lowestSellerCode
-
 
863
        flipkartDetails.lowestSellerBuyTrend, flipkartDetails.secondLowestSellerBuyTrend = flipkartDetails.secondLowestSellerBuyTrend,flipkartDetails.lowestSellerBuyTrend
-
 
864
        flipkartDetails.rank=1
-
 
865
    
-
 
866
    if flipkartDetails.ourBuyTrend == 'NPrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.lowestSellerSp:
-
 
867
        print "Under NPrefCheap category.Switching data for ",flipkartSerialNumber
-
 
868
        flipkartDetails.lowestSellerSp = flipkartDetails.ourSp
-
 
869
        flipkartDetails.lowestSellerScore = flipkartDetails.ourScore
-
 
870
        flipkartDetails.shippingTimeLowerLimitLowestSeller = flipkartDetails.shippingTimeLowerLimitOur
-
 
871
        flipkartDetails.shippingTimeUpperLimitLowestSeller = flipkartDetails.shippingTimeUpperLimitOur
-
 
872
        flipkartDetails.lowestSellerName = 'Saholic'
-
 
873
        flipkartDetails.lowestSellerCode = flipkartDetails.ourCode
-
 
874
        flipkartDetails.lowestSellerBuyTrend = flipkartDetails.ourBuyTrend
-
 
875
 
-
 
876
    return flipkartDetails
-
 
877
 
691
 
878
def calculateAverageSale(oosStatus):
692
def calculateAverageSale(oosStatus):
879
    count,sale = 0,0
693
    count,sale = 0,0
880
    for obj in oosStatus:
694
    for obj in oosStatus:
881
        if not obj.is_oos:
695
        if not obj.is_oos:
Line 2206... Line 2020...
2206
            
2020
            
2207
def populateScrapingResults(val):
2021
def populateScrapingResults(val):
2208
    try:
2022
    try:
2209
        now = datetime.now()
2023
        now = datetime.now()
2210
        print "Fetching data for serial Number %s %s" %(val.fkSerialNumber,str(now))
2024
        print "Fetching data for serial Number %s %s" %(val.fkSerialNumber,str(now))
-
 
2025
        print "Inside fetch details"
-
 
2026
        flipkartSerialNumber = val.fkSerialNumber
-
 
2027
        url = "http://www.flipkart.com/ps/%s"%(flipkartSerialNumber)
-
 
2028
        #url = "http://www.flipkart.com/ps/MOBDTXVZXVY3GFG8"
-
 
2029
        #scraper.read(url)
-
 
2030
        #    scraper = FlipkartScraper.FlipkartScraper()
-
 
2031
        #    vendorsData = scraper.read(url)
-
 
2032
        request = urllib2.Request(url)
-
 
2033
        request.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.218 Safari/535.1')
-
 
2034
        opener = urllib2.build_opener()
-
 
2035
        response_data = ""
-
 
2036
        try:
-
 
2037
            response_data = opener.open(request).read()
-
 
2038
            print datetime.now()
-
 
2039
            print "Fetched response from flipkart for %s" %(url)
-
 
2040
            
-
 
2041
        except urllib2.HTTPError as e:
-
 
2042
            print 'ERROR: ', e
-
 
2043
            print 'Retrying'
-
 
2044
        
-
 
2045
        response_data=response_data
-
 
2046
        page=response_data.decode("utf-8")
-
 
2047
        print datetime.now()
-
 
2048
        soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
-
 
2049
        page = None
-
 
2050
        response_data = None
-
 
2051
        print datetime.now()
-
 
2052
        print "Soup created from flipkart data for %s" %(url)
-
 
2053
        info = []
-
 
2054
        oddSeller = soup.findAll("div" , {"class" : "line seller-item odd "})
-
 
2055
        for data in oddSeller:
-
 
2056
            temp={}
-
 
2057
            try:
-
 
2058
                businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
-
 
2059
                shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace('  ','-')
-
 
2060
                temp['shippingTime']=shippingTime
-
 
2061
            except:
-
 
2062
                pass
-
 
2063
            price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.').strip()
-
 
2064
            temp['sellingPrice']=float(price)
-
 
2065
            for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
-
 
2066
                sellerName = sellerInfo.find('a').string
-
 
2067
                temp['sellerName'] = sellerName
-
 
2068
            for metrics in data.find("div",{"class":"fk-text-right"}):
-
 
2069
                try:
-
 
2070
                    metric = metrics.findAll('input', {'type': 'submit'})
-
 
2071
                except AttributeError:
-
 
2072
                    continue
-
 
2073
                try:
-
 
2074
                    inputTags = metric[0]['data-lst-buytrend']
-
 
2075
                except TypeError:
-
 
2076
                    continue
-
 
2077
                dataMetrics = metric[0]['data-listing-metrics']
-
 
2078
                try:
-
 
2079
                    buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
-
 
2080
                except ValueError:
-
 
2081
                    buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
-
 
2082
                temp['buyTrend']=buyTrend
-
 
2083
                dataMetric = dataMetrics.split(';')
-
 
2084
                sellerCode = dataMetric[0]
-
 
2085
                temp['sellerCode']=sellerCode
-
 
2086
                temp['sellingPriceMetric'] = float(dataMetric[1])
-
 
2087
                if not temp.has_key('shippingTime'):
-
 
2088
                    print "Populating shipping time from metrics"
-
 
2089
                    temp['shippingTime'] = dataMetric[3]
-
 
2090
                temp['sellerScore'] = int(dataMetric[4])
-
 
2091
                info.append(temp)
-
 
2092
        evenSeller = soup.findAll("div" , {"class" : "line seller-item even "})
-
 
2093
        for data in evenSeller:
-
 
2094
            temp={}
-
 
2095
            price = data.find('span', attrs={'class' : re.compile('pxs-final-price.*')}).string.strip('Rs.')
-
 
2096
            try:
-
 
2097
                businessDays = data.find('span', attrs={'class' : re.compile('fk-deliverable.*')})
-
 
2098
                shippingTime = businessDays.find('span', attrs={'class' : re.compile('fk-bold')}).string.replace('to','').replace('business days.','').strip().replace('  ','-')
-
 
2099
                temp['shippingTime']=shippingTime
-
 
2100
            except:
-
 
2101
                pass
-
 
2102
            temp['sellingPrice']=float(price)
-
 
2103
            for sellerInfo in data.findAll("div",{"class":re.compile(".*seller-info*")}):
-
 
2104
                sellerName = sellerInfo.find('a').string
-
 
2105
                temp['sellerName'] = sellerName
-
 
2106
            for metrics in data.find("div",{"class":"fk-text-right"}):
-
 
2107
                try:
-
 
2108
                    metric = metrics.findAll('input', {'type': 'submit'})
-
 
2109
                except AttributeError:
-
 
2110
                    continue
-
 
2111
                try:
-
 
2112
                    inputTags = metric[0]['data-lst-buytrend']
-
 
2113
                except TypeError:
-
 
2114
                    continue
-
 
2115
                dataMetrics = metric[0]['data-listing-metrics']
-
 
2116
                try:
-
 
2117
                    buyTrend = inputTags[0:str(inputTags).index('NWSR')].replace('_','')
-
 
2118
                except ValueError:
-
 
2119
                    buyTrend = inputTags[0:str(inputTags).index('WSR')].replace('_','')
-
 
2120
                temp['buyTrend']=buyTrend
-
 
2121
                dataMetric = dataMetrics.split(';')
-
 
2122
                temp['sellerCode'] = dataMetric[0] 
-
 
2123
                temp['sellingPriceMetric'] = float(dataMetric[1])
-
 
2124
                if not temp.has_key('shippingTime'):
-
 
2125
                    print "Populating shipping time from metrics"
-
 
2126
                    temp['shippingTime'] = dataMetric[3]
-
 
2127
                temp['sellerScore'] = int(dataMetric[4])
-
 
2128
                info.append(temp)
-
 
2129
        vendorsData = info
-
 
2130
        info = []
-
 
2131
        print "Returning Json response from flipkart for %s" %(url)
-
 
2132
        fin = datetime.now()
-
 
2133
        print "Finish with data for serial Number %s %s" %(flipkartSerialNumber,str(fin))
-
 
2134
        sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
-
 
2135
        vendorsData[:]=[]
-
 
2136
        rank ,ourSp, iterator, secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, shippingTimeLowerLimitLowestSeller,shippingTimeUpperLimitLowestSeller, \
-
 
2137
        shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller, shippingTimeLowerLimitOur, shippingTimeUpperLimitOur, shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller, totalAvailableSeller= (0,)*19
-
 
2138
        lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
-
 
2139
        ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode = ('',)*11
-
 
2140
        for data in sortedVendorsData:
-
 
2141
            if iterator == 0:
-
 
2142
                lowestSellerName = data['sellerName']
-
 
2143
                lowestSellerScore = data['sellerScore']
-
 
2144
                lowestSellerCode = data['sellerCode']
-
 
2145
                lowestSellerSp = data['sellingPrice']
-
 
2146
                lowestSellerBuyTrend = data['buyTrend']
-
 
2147
                try:
-
 
2148
                    shippingTimeLowerLimitLowestSeller, shippingTimeUpperLimitLowestSeller = data['shippingTime'].split('-')
-
 
2149
                except ValueError:
-
 
2150
                    shippingTimeLowerLimitLowestSeller = int(data['shippingTime'])
-
 
2151
                    
-
 
2152
            if iterator ==1:
-
 
2153
                secondLowestSellerName = data['sellerName']
-
 
2154
                secondLowestSellerScore = data['sellerScore']
-
 
2155
                secondLowestSellerCode = data['sellerCode']
-
 
2156
                secondLowestSellerSp = data['sellingPrice']
-
 
2157
                secondLowestSellerBuyTrend = data['buyTrend']
-
 
2158
                try:
-
 
2159
                    shippingTimeLowerLimitSecondLowestSeller, shippingTimeUpperLimitSecondLowestSeller = data['shippingTime'].split('-')
-
 
2160
                except ValueError:
-
 
2161
                    shippingTimeLowerLimitSecondLowestSeller = int(data['shippingTime'])
-
 
2162
                    
-
 
2163
            if data['sellerName'] == 'Saholic':
-
 
2164
                ourScore = data['sellerScore']
-
 
2165
                ourCode = data['sellerCode']
-
 
2166
                ourSp = data['sellingPrice']
-
 
2167
                ourBuyTrend = data['buyTrend']
-
 
2168
                try:
-
 
2169
                    shippingTimeLowerLimitOur, shippingTimeUpperLimitOur = data['shippingTime'].split('-')
-
 
2170
                except ValueError:
-
 
2171
                    shippingTimeLowerLimitOur = int(data['shippingTime'])
-
 
2172
                rank = iterator + 1
-
 
2173
            
-
 
2174
            if data['buyTrend'] in ('PrefCheap','PrefNCheap',''):
-
 
2175
                prefSellerName = data['sellerName']
-
 
2176
                prefSellerScore = data['sellerScore']
-
 
2177
                prefSellerCode = data['sellerCode']
-
 
2178
                prefSellerSp = data['sellingPrice']
-
 
2179
                prefSellerBuyTrend = data['buyTrend']
-
 
2180
                try:
-
 
2181
                    shippingTimeLowerLimitPrefSeller, shippingTimeUpperLimitPrefSeller = data['shippingTime'].split('-')
-
 
2182
                except ValueError:
-
 
2183
                    shippingTimeLowerLimitPrefSeller = int(data['shippingTime'])
-
 
2184
            
-
 
2185
            iterator+=1
-
 
2186
        
-
 
2187
        flipkartDetails = __FlipkartDetails(rank ,ourSp , secondLowestSellerSp, prefSellerSp, lowestSellerSp, lowestSellerScore, prefSellerScore, secondLowestSellerScore, ourScore, int(shippingTimeLowerLimitLowestSeller),int(shippingTimeUpperLimitLowestSeller), \
2211
        flipkartDetails = fetchDetails(val.fkSerialNumber)
2188
        int(shippingTimeLowerLimitPrefSeller), int(shippingTimeUpperLimitPrefSeller), int(shippingTimeLowerLimitOur), int(shippingTimeUpperLimitOur), int(shippingTimeLowerLimitSecondLowestSeller), int(shippingTimeUpperLimitSecondLowestSeller), len(sortedVendorsData), lowestSellerName, lowestSellerCode, secondLowestSellerName, secondLowestSellerCode, prefSellerName, prefSellerCode, lowestSellerBuyTrend, \
-
 
2189
        ourBuyTrend, prefSellerBuyTrend, secondLowestSellerBuyTrend, ourCode)
-
 
2190
        
-
 
2191
        if flipkartDetails.ourBuyTrend == 'PrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.secondLowestSellerSp:
-
 
2192
            print "Under PrefCheap category.Switching data for ",flipkartSerialNumber
-
 
2193
            flipkartDetails.lowestSellerSp, flipkartDetails.secondLowestSellerSp = flipkartDetails.secondLowestSellerSp,flipkartDetails.lowestSellerSp
-
 
2194
            flipkartDetails.lowestSellerScore, flipkartDetails.secondLowestSellerScore = flipkartDetails.secondLowestSellerScore,flipkartDetails.lowestSellerScore
-
 
2195
            flipkartDetails.shippingTimeLowerLimitLowestSeller, flipkartDetails.shippingTimeLowerLimitSecondLowestSeller = flipkartDetails.shippingTimeLowerLimitSecondLowestSeller,flipkartDetails.shippingTimeLowerLimitLowestSeller
-
 
2196
            flipkartDetails.shippingTimeUpperLimitLowestSeller, flipkartDetails.shippingTimeUpperLimitSecondLowestSeller = flipkartDetails.shippingTimeUpperLimitSecondLowestSeller,flipkartDetails.shippingTimeUpperLimitLowestSeller
-
 
2197
            flipkartDetails.lowestSellerName, flipkartDetails.secondLowestSellerName = flipkartDetails.secondLowestSellerName,flipkartDetails.lowestSellerName
-
 
2198
            flipkartDetails.lowestSellerCode, flipkartDetails.secondLowestSellerCode = flipkartDetails.secondLowestSellerCode,flipkartDetails.lowestSellerCode
-
 
2199
            flipkartDetails.lowestSellerBuyTrend, flipkartDetails.secondLowestSellerBuyTrend = flipkartDetails.secondLowestSellerBuyTrend,flipkartDetails.lowestSellerBuyTrend
-
 
2200
            flipkartDetails.rank=1
-
 
2201
        
-
 
2202
        if flipkartDetails.ourBuyTrend == 'NPrefCheap'and flipkartDetails.rank!=1 and flipkartDetails.ourSp==flipkartDetails.lowestSellerSp:
-
 
2203
            print "Under NPrefCheap category.Switching data for ",flipkartSerialNumber
-
 
2204
            flipkartDetails.lowestSellerSp = flipkartDetails.ourSp
-
 
2205
            flipkartDetails.lowestSellerScore = flipkartDetails.ourScore
-
 
2206
            flipkartDetails.shippingTimeLowerLimitLowestSeller = flipkartDetails.shippingTimeLowerLimitOur
-
 
2207
            flipkartDetails.shippingTimeUpperLimitLowestSeller = flipkartDetails.shippingTimeUpperLimitOur
-
 
2208
            flipkartDetails.lowestSellerName = 'Saholic'
-
 
2209
            flipkartDetails.lowestSellerCode = flipkartDetails.ourCode
-
 
2210
            flipkartDetails.lowestSellerBuyTrend = flipkartDetails.ourBuyTrend
-
 
2211
        
-
 
2212
            #flipkartDetails = fetchDetails(val.fkSerialNumber)
2212
        val.flipkartDetails = flipkartDetails 
2213
            val.flipkartDetails = flipkartDetails 
2213
    except Exception as e:
2214
    except Exception as e:
2214
        print "Unable to fetch details of %s" %(val.fkSerialNumber)
2215
        print "Unable to fetch details of %s" %(val.fkSerialNumber)
2215
        print e
2216
        print e
2216
        val.flipkartDetails = None
2217
        val.flipkartDetails = None
2217
        return
2218
        return