Subversion Repositories SmartDukaan

Rev

Rev 173 | Rev 238 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on 12-May-2010

@author: gaurav
'''
from datastore.DataDefinition import * #Phones, init, PhoneItem

from elixir import *
from datastore.DataDefinition import infibeam_data
import datetime


class DataHelper:
    
    def __init__(self):
        init()
    
    def add_vendor(self,name,url):
        v = Vendor()
        v.v_name = name
        v.v_url = url
        session.commit() 
        
    def set_all_crawled(self,bval):
        for ph in self.get_all_phones():
            ph.is_crawled = bval
            
    def set_crawled(self,url,bval):
        for ph in self.get_all_phones():
            if ph.url == url:
                ph.is_crawled = bval
        session.commit()     
                
    def get_all_phones(self):
        phones = PhoneItem.query.all()
        return phones
    
    def get_all_vendors(self):
        vi = Vendor.query.all()
        return vi
        
        
    def add_new_phone(self, url, name, source):
        pi = PhoneItem()
        pi.name = name
        pi.url = url
        pi.source = source
        session.commit()
        
    def add_price(self,url,price):
        for ph in self.get_all_phones():
            if ph.url == url:
                ph.price = price
        session.commit()
        
    def add_infiphone(self,name,shown_price,final_price):
        ai = infibeam_data()
        ai.name = name
        ai.shown_price = shown_price
        ai.final_price = final_price
        session.commit()
    
    def add_univervendor(self,name,site):
        ai = univercell_data()
        ai.v_name = name
        ai.v_site = site
        session.commit()
    
    def get_all_univervendors(self):
        vi = univercell_data.query.all()
        return vi
        
    def add_new_univerphone(self,name,shown_price,final_price):
        ai = univercell_items()
        ai.p_title = name
        ai.p_shown_price = shown_price
        ai.p_final_price = final_price
        session.commit()
        
    def add_ipbasic(self,name,site):
        ai = indiaplaza_data()
        ai.v_name = name
        ai.v_site = site
        session.commit()
    
    def add_mobstoreurl(self,url):
        ai = themobilestoreurls()
        ai.url = url
        session.commit()
        
       
    def add_naaptolurl(self,url):
        ai = naaptolurls()
        ai.url = url
        session.commit()
      
    def add_morenaaptolurl(self,url):
        ai = morenaaptolurls()
        ai.url = url
        session.commit()        
        
    def get_allmobstoreurls(self):
        ai = themobilestoreurls.query.all()
        return ai
    
    def get_allnaaptolurls(self):
        ai = naaptolurls.query.all()
        return ai
     
    def get_allmorenaaptolurls(self):
        ai = morenaaptolurls.query.all()
        return ai
    
    def add_new_mobstorephone(self,name,shown_pr,final_pr):
        ai = themobilestorephones()
        ai.name = name
        ai.shown_price = shown_pr
        ai.final_price = final_pr
        session.commit()
        
    def add_new_naaptolphone(self,name,range):
        temp = name.lower()
        if temp.find("null") != -1:
            return
        for n in self.get_allnaaptolphones(): 
            if n.name == name:
                if n.range == range:
                        return                            
        ai = naaptolphones()
        ai.name = name
        ai.range = range
        session.commit()
    
    def add_new_ntonlinesp(self,nid,name,price):
        ai = ntonlinesp()
        ai.nid = nid
        ai.name = name
        ai.price = price
        session.commit()
    
    def add_new_ntofflinesp(self,nid,name,price):
        ai = ntofflinesp()
        ai.nid = nid
        ai.name = name
        ai.price = price
        session.commit()
        
    def get_naaptolphone(self, name, range):
        query = naaptolphones.query.filter_by(name=name)
        query = query.filter_by(range=range)
        return query.one()
        

    def get_allmobstorephones(self):
        ai = themobilestorephones.query.all()
        return ai
        
    def get_allnaaptolphones(self):
        ai = naaptolphones.query.all()
        return ai
    
    def get_allntonlinesp(self):
        ai = ntonlinesp.query.all()
        return ai
    
    def get_allntofflinesp(self):
        ai = ntofflinesp.query.all()
        return ai
    
    def get_ntonlinespbynid(self,nid):
        ai = ntonlinesp.query.filter_by(nid=nid)
        return ai
    
    def get_ntofflinespbynid(self,nid):
        ai = ntofflinesp.query.filter_by(nid=nid)
        return ai
    
            
    def get_all_ipbasic(self):
        vi = indiaplaza_data.query.all()
        return vi
        
    def add_ipextra(self,name,shown_price,final_price,guarantee,shipinfo):
        ai = indiaplaza_items()
        ai.p_name = name
        ai.p_shown_price = shown_price
        ai.p_final_price = final_price
        ai.p_guaranteeinfo = guarantee
        ai.p_shipinfo = shipinfo
        session.commit()
        
    def get_all_infibeam_data(self):
        phones = infibeam_data.query.all()
        return phones
    
    
    def get_all_indiaplaza_phones(self):
        phones = indiaplaza_items.query.all()
        return phones
                    
    def get_all_univercell_phones(self):
        phones = univercell_items.query.all()
        return phones
    
    def get_infibeam_csv(self):
        phones = self.get_all_infibeam_phones()
        print phones
    
    def get_all_suppliers(self):
        sup = suppliers.query.all()
        return sup
    
    def get_all_models(self):
        mod = models.query.all()
        return mod
    
    def get_all_prices(self):
        pr = prices.query.all()
        return pr
    
    def get_suppId(self,name):
        for s in self.get_all_suppliers():
            if s.name == name:
                return s.id
    
    def get_supp_byId(self,id):
        for s in self.get_all_suppliers():
            if s.id == id:
                return s
    
    def get_supp_byName(self,name):
        supps = []
        for s in self.get_all_suppliers():
            if s.name == name:
                supps.append(s)
        return supps        
    
    def get_supp_bySite(self,site):
        supps = []
        for s in self.get_all_suppliers():
            if s.site == site:
                supps.append(s)
        return supps
    
    
    
    def get_modId(self,brand,model):
        for m in self.get_all_models():
            if m.brand == brand:
                if m.model == model:
                    return m.id                     
    
    def get_modbyId(self,id):
        for m in self.get_all_models():
            if m.id == id:
                return m                     
        
    def get_modbyModel(self,model):
        for m in self.get_all_models():
            if m.model == model:
                return m
    def get_modbyBrand(self,brand):
        mods = []
        for m in self.get_all_models():
            if m.brand == brand:
                mods.append(m)
        return mods                     
    
    def get_prbyId(self,id):
        for p in self.get_all_prices():
            if p.id == id:
                return p                     
    
    def get_prbySid(self,supplier_id):
        prc = []
        for p in self.get_all_prices():
            if p.supplier_id == supplier_id:
                prc.append(p)
        return prc
                                 
    def get_prbyMid(self,mobile_id):
        prc = []
        for p in self.get_all_prices():
            if p.mobile_id == mobile_id:
                prc.append(p)
        return prc
    
    
    def add_supplier(self,name,site):
        for s in self.get_all_suppliers():
            if s.name == name:
                now = datetime.datetime.now()
                s.last_crawled = str(now)
                session.commit()
                return             
        ai = suppliers()
        ai.name = name
        ai.site = site
        now = datetime.datetime.now()
        ai.last_crawled = str(now)
        session.commit()
    
    def add_models(self,brand,model):
        for m in self.get_all_models():
            if m.brand == brand:
                if m.model == model:
                    return                     
        ai = models()
        ai.brand = brand
        ai.model = model
        session.commit()
        
        
    def add_prices(self,mobile_id,supplier_id,quoted_price,final_price,extra_info):
        for p in self.get_all_prices():
            if p.mobile_id == mobile_id:
                if p.supplier_id == supplier_id:
                    if p.extra_info == extra_info:
                        return                           
        ai = prices()
        ai.mobile_id = mobile_id
        ai.supplier_id = supplier_id
        ai.quoted_price = quoted_price
        ai.final_price = final_price
        ai.extra_info = extra_info
        session.commit()
        
    def get_price_by_model(self, model_id, supplier_id):
        query = prices.query.filter_by(mobile_id=model_id)
        query = query.filter_by(supplier_id=supplier_id)
        return query.one()
    
    def add_gs_info(self,mid,guaranteeinfo,shipinfo):
        gs = guarantee_info()
        gs.mid = mid
        gs.guaranteeinfo = guaranteeinfo 
        gs.shipinfo = shipinfo
        session.commit() 
    
    def get_all_gs_info(self):
        gsi = guarantee_info.query.all()
        return gsi
    
    def get_gs_bymid(self,mid):
        gsi = guarantee_info.query.filter_by(mid=mid).one()
        return gsi
        
        
if __name__ == "__main__":
    datastore = DataHelper()
    datastore.get_infibeam_csv()