示例#1
0
    def createuser(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()

        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        dealerlist = request.POST.getlist('dealership[]')
        dict = {}
        dict["name"] = request.POST["name"]
        dict["email"] = request.POST["email"]
        dict["password"] = request.POST["password"]
        dict["fusertype"] = request.POST["utype"]
        dict["lastlogin"] = datetime.datetime.now()
        dict["rdate"] = datetime.datetime.now()
        dict["islogin"] = 2
        dict["fuserphoto"] = imageupload().set('logo',
                                               Path().DEALERSHIP_LOGO, request,
                                               Media_image())
        id = base_model().insert(User(), dict, 1)
        base_model().setkeyid(User.objects.get(id=id))
        usertype = int(request.POST["utype"])
        if usertype == 1:
            dealerlist = request.POST.getlist('dealership[]')
            for n in dealerlist:
                base_model().insert(User_dealer(), {
                    "userid": id,
                    "dealerid": n
                }, 1)

        url = reverse('user_landing')
        return HttpResponseRedirect(url)
示例#2
0
    def setsession(self, request, tab):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        if 'lock1' not in request.session:
            request.session['lock1'] = {
                "tab": tab,
                "total_select": 0,
                "total_email": 0,
                "select": []
            }
        else:
            dict = request.session['lock1']
            tabs = dict["tab"]
            if tabs != int(tab):
                request.session['lock1'] = {
                    "tab": tab,
                    "total_select": 0,
                    "total_email": 0,
                    "select": []
                }
        return request.session['lock1']
示例#3
0
    def landing(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        dealer = {}
        key = Dealer.objects.get(keyid=request.GET['id'])
        dealerid = key.id
        dealer["dealerlist"] = Dealer.objects.all()
        dealer["selecteddealer"] = Dealer.objects.get(id=dealerid)
        userinfo = request.session["userinfo"]
        c = customer_model(dealerid, '', '')
        analysis = self.getanalysis(dealerid)
        diff = 1200
        redirect = Path().Domain + 'dealership/setup/campaign/?id=' + key.keyid
        return base(request).view_render(
            Path().CAMPAIGN_SETUP_LANDING, {
                "domain": Path().Domain,
                "dealer": dealer,
                "analysis": analysis,
                "dealerid": key.id,
                "diff": diff,
                "key": redirect,
                "userinfo": userinfo
            }, self.menu, self.submenu, 1)
示例#4
0
    def ajax(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()

        return base(request).view_render(Path().MALYSISAJAX, {}, self.menu,
                                         self.submenu, 1)
示例#5
0
 def downloadcsv(self,request):
     # Check Login Authentication
     if base(request).isnotauthentication():
         return base(request).redirectloginpage()
     
     dealerid = request.GET['dealerid']
     report   = self.getreport(dealerid)[0]
     dealer   = Dealer.objects.get(id =dealerid)
     dealername = dealer.name.replace(" ", "_") + "_roireport.csv"
     response = HttpResponse(content_type='text/csv')
     response['Content-Disposition'] = 'attachment; filename=' + dealername
     writer = csv.writer(response)
     writer.writerow(['Trigger', 'Campaigns', 'Mail Pieces', 'Email','Leads','Cars Sold','Gross Profit','Repair Orders','RO Total','Cost','ROI','Days Active'])
     plist = ['Complete','In Progress']
     for n in report:
         mlist = []
         mlist.append(n['Trigger'])
         mlist.append(n['Campaigns'])
         mlist.append(n['MailPieces'])
         mlist.append(n['Email'])
         mlist.append(n['Leads'])
         mlist.append(n['CarsSold'])
         mlist.append(n['GrossProfit'])
         mlist.append(n['RepairOrders'])
         mlist.append(n['ROTotal'])
         mlist.append(n['Cost'])
         mlist.append(n['ROI'])
         mlist.append(plist[int(n['DaysActive'])])
         writer.writerow(mlist)
     return response
示例#6
0
 def dealerselect(self,request):
     # Check Login Authentication
     if base(request).isnotauthentication():
         return base(request).redirectloginpage()
     
     request.session['select_id'] = request.GET['select_id']
     return HttpResponse('Hi all')
示例#7
0
    def updateuser(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()

        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        dict = {}
        dict["name"] = request.POST["name"]
        dict["email"] = request.POST["email"]
        dict["password"] = request.POST["password"]
        dict["usertype"] = request.POST["utype"]
        userid = int(request.POST['userid'])
        if 'logo' in request.FILES:
            dict["fuserphoto"] = imageupload().set('logo',
                                                   Path().DEALERSHIP_LOGO,
                                                   request, Media_image())
        base_model().insert(User.objects.get(id=userid), dict, 1)
        pusertype = int(request.POST["pusertype"])
        usertype = int(request.POST["utype"])
        if pusertype == 1:
            dealer_user = User_dealer.objects.filter(userid=userid)
            for n in dealer_user:
                n.delete()
        if usertype == 1:
            dealerlist = request.POST.getlist('dealership[]')
            for n in dealerlist:
                base_model().insert(User_dealer(), {
                    "userid": userid,
                    "dealerid": n
                }, 1)

        url = reverse('user_landing')
        return HttpResponseRedirect(url)
示例#8
0
 def searchbox(self,request):
     data = {}
     data["type"] = request.GET['id']
     if request.GET['id'] == 1:
         return base(request).view_render(Path().TWILLIO_SEARCHBOX,data,self.menu,self.submenu,1)
     else:
         return base(request).view_render(Path().TWILLIO_SEARCHBOX,data,self.menu,self.submenu,1)    
示例#9
0
    def landing(self, request):
        user = base(request).getUserobject()
        dict = {}
        dict["password"] = user.password
        dict["image"] = user.fuserphoto.path
        dict["id"] = user.id
        dict["name"] = user.name
        dict["email"] = user.email
        if user.title is None:
            dict["title"] = ""
        else:
            dict["title"] = user.title

        if user.phone is None:
            dict["phone"] = ""
        else:
            dict["phone"] = user.phone

        if user.cellphone is None:
            dict["phone"] = ""
        else:
            dict["cellphone"] = user.cellphone

        return base(request).view_render(Path().SETTINGNLANDING,
                                         {"user": dict}, self.menu,
                                         self.submenu, 2)
示例#10
0
 def logout(self, request):
     if 'userinfo' in request.session:
         user = base(request).getUserobject()
         user.islogin = 0
         user.save()
         del request.session['userinfo']
         del request.session['dealerlist']
     return base(request).redirectloginpage()
示例#11
0
 def landing(self, request):
     # This base function need to call for all url
     base(request).base_management(self.menu)
     dealer = Dealer.objects.all()
     baseclass = base(request)
     baseclass.isdealerlist = 0
     return baseclass.template_render(Path().DEALERSHIP_LANDING,
                                      {"dealer": dealer}, self.menu,
                                      self.submenu, 1)
示例#12
0
 def landing(self, request):
     base(request).base_management(self.menu)
     today = datetime.datetime.now().date()
     startdate = today - datetime.timedelta(30)
     enddate = today + datetime.timedelta(30)
     return base(request).template_render('appointment/landing.html', {
         'startdate': startdate,
         'enddate': enddate
     }, self.menu, self.submenu, 1)
示例#13
0
    def map(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()

        lat = request.GET['lat']
        lng = request.GET['lng']
        return base(request).view_render(Path().IFRAME_MAP, {
            "lat": lat,
            "lng": lng
        }, self.menu, self.submenu, 1)
示例#14
0
    def create_modal(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        dealer = Dealer.objects.all()
        return base(request).view_render(Path().USER_CREATE_MODAL, {
            "domin": Path().Domain,
            "dealer": dealer
        }, self.menu, self.submenu, 2)
示例#15
0
    def build_campaign(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()
        tablist = [
            '', 'Total Cusomers', 'Warranty Expiration', 'Crossover Conquest',
            'Lease Expiration', 'Birthday', 'Equity Position', 'Trade Cycle',
            'Make Conquest', 'Late Service'
        ]
        tab = int(request.GET['tab'])
        dealerid = int(request.GET['dealerid'])
        name = tablist[int(request.GET['tab'])]
        mailstyle = request.GET['mailstyle']
        emailstyle = request.GET['emailstyle']
        budgetmonth = request.GET['budgetmonth']
        csdate = self.getdateobj(request.GET['csdate'])
        cedate = self.getdateobj(request.GET['cedate'])
        mdate = self.getdateobj(request.GET['mdate'])
        emdate = self.getdateobj(request.GET['emdate'])
        budgetmonth = request.GET['budgetmonth']
        cost = request.GET['cost']
        lock = request.session['lock1']
        dealer = Dealer.objects.get(id=dealerid)
        dict = {
            "name": name,
            "trigger": tab,
            "totalmail": lock['total_select'],
            "totalemail": lock["total_email"],
            "totalcost": cost,
            "mailstyle": mailstyle,
            "emailstyle": emailstyle,
            "startdate": csdate,
            "enddate": cedate,
            "maildate": mdate,
            "emaildate": emdate,
            "budgetmonth": budgetmonth,
            "fdealer": dealer,
            "type": request.GET['ctype'],
            "status": request.GET['cstatus']
        }
        select = lock['select']
        slist = []
        id = base_model().insert(Campaign(), dict, 1)
        keyidh = hashlib.sha224(str(id)).hexdigest()
        Campaign.objects.filter(id=id).update(keyid=keyidh)
        self.updateCustomerCampaign(select, id)
        self.updateCustomer(select, id, cedate)

        return HttpResponse('Done')
示例#16
0
    def toggleselection(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        query = self.filterQuery(
            int(request.GET['dealerid']), int(request.GET['topnav']),
            request.GET['distance'].split(","),
            request.GET['notification'].split(","), int(request.GET['isdate']),
            request.GET['sdate'], request.GET['edate'],
            int(request.GET['isnotification']), request.GET['sndate'],
            request.GET['endate'], request.GET['cpage'], request.GET['ptype'],
            request.GET['customertype'].split(","),
            int(request.GET['iswarrantyrange']),
            request.GET['warrantyrange'].split(","),
            int(request.GET['islwarrantyrange']),
            request.GET['lwarrantyrange'].split(","),
            int(request.GET['isbirthday']),
            request.GET['birthdaymonth'].split(","),
            int(request.GET['isndate']), request.GET['searchitem'],
            int(request.GET['issearch']), request.GET['vyear1'],
            request.GET['vyear2'], request.GET['tradeinrange'].split(","))

        dealerinfo = Dealer.objects.get(id=int(request.GET['dealerid']))
        cost_per_pieces = dealerinfo.trigger_cost_per_pieces
        customersession = request.session['lock1']
        scustomer = customersession['select']
        ndict = {}
        ndict["tab"] = customersession["tab"]

        query = self.orderquery(query, int(request.GET['orderstatus1']),
                                int(request.GET['orderstatus2']),
                                int(request.GET['orderstatus3']),
                                int(request.GET['orderstatus4']),
                                int(request.GET['orderstatus5']))
        mylist = []
        i = 0
        for n in query:
            if int(n.id) not in scustomer:
                mylist.append(int(n.id))
                i = i + 1

        ndict["total_select"] = i
        ndict["total_email"] = Customer.objects.filter(id__in=mylist).filter(
            isemail=1).count()
        ndict["select"] = mylist
        request.session['lock1'] = ndict
        return self.searchresult(request)
示例#17
0
 def reschedulemodal(self, request):
     barcode = int(request.GET['barcode'])
     self.setMongo()
     app = self.db.lead.find({"barcode": barcode})[0]
     return base(request).view_render('appointment/reschedule.html',
                                      {"app": app}, self.menu, self.submenu,
                                      1)
示例#18
0
 def ajax_customer_compare(self,request):
     start_date   = dateformateclass().date_obj(request.GET['start_date'],2)
     end_date     = dateformateclass().date_obj(request.GET['end_date'],2)
     dealerid     = request.GET['dealerid']
     dic      = {}
     dic['compare'] = dashboardcustomer(dealerid).getCompareResult(start_date,end_date)
     return base(request).view_render('dashboard/ajax_customer_compare.html',{"customer_part":dic},self.menu,self.submenu,1)
示例#19
0
 def datefilter(self,request):
     # Check Login Authentication
     if base(request).isnotauthentication():
         return base(request).redirectloginpage()
     start_date   = dateformateclass().date_obj(request.GET['startdate'],1)
     end_date     = dateformateclass().date_obj(request.GET['enddate'],1)
     dealerid     = request.GET['dealerid']
     cmp = campaigninfo().getcmpbydealer(int(dealerid),start_date,end_date)
     compare_cmp = campaigninfo().getCompareBox(cmp,int(dealerid),start_date,end_date)
     response    = responsechart()
     response_chart = response.chartbydealer(int(dealerid))
     response_count = response.getCount(start_date,end_date)
     dealer       = Dealer.objects.get(id = int(dealerid))
     return base(request).view_render(Path().DASH_DATEFILER,{"dealer":dealer,"response_chart":response_chart,"response_count":response_count,"cmp":cmp,"compare_cmp":compare_cmp},self.menu,self.submenu,1)
 
     
示例#20
0
 def load_by_dealer(self, request):
     enddate = datetime.datetime.now().date()
     startdate = enddate - datetime.timedelta(29)
     return base(request).view_render(Path().CAMPAIGN_DEALER_LOAD, {
         "enddate": enddate,
         "startdate": startdate
     }, self.menu, self.submenu, 1)
示例#21
0
 def dealership_setup(self, request):
     base(request).base_management(self.menu)
     month = int(datetime.datetime.now().strftime("%m"))
     id = request.GET['id']
     dealer = Dealer.objects.get(keyid=id)
     key = id
     cmp = campaignbydealer(dealer.id, None, None, None).process()
     box = campaignbox().getSingleBox(cmp)
     return base(request).template_render(
         Path().DEALERSHIP_SETUP_CMP, {
             "domain": Path().Domain,
             "month": month,
             "dealer": key,
             "campaign": cmp,
             "box": box
         }, self.menu, self.submenu, 1)
示例#22
0
 def postnotes(self, request):
     data = {}
     barcode = int(request.POST['barcode'])
     data['comment'] = request.POST['comment']
     data['agent'] = base(request).getUserName()
     customernotes(barcode).createnote(data)
     return HttpResponse('')
示例#23
0
    def marketbreakdown(self, request):
        contentperpage = 20
        dealer = int(request.GET['dealerid'])
        cpage = int(request.GET['cpage'])
        sortorder = ['radious', 'bns', 'snb', 'bs']
        count = Market_analysis.objects.filter(fdealer_id=dealer).count()
        pagin = paginator_plugin(count, contentperpage, int(cpage), 1).get()
        obj = Market_analysis.objects.filter(fdealer_id=dealer).order_by(
            *sortorder)[pagin['limit']:pagin['offset']]
        if cpage == 1:
            startcontent = 1
            endcontent = contentperpage
        else:
            startcontent = (contentperpage * (cpage - 1)) + 1
            endcontent = (contentperpage * cpage)
        if endcontent > pagin['total_content']:
            endcontent = pagin['total_content']

        return base(request).view_render('marketanalysis/marketbreakdown.html',
                                         {
                                             "obj": obj,
                                             "pagin": pagin,
                                             "start": startcontent,
                                             "end": endcontent
                                         }, self.menu, self.submenu, 1)
示例#24
0
 def getLead(self, request):
     self.setMongo()
     filter = self.getFilter(request)
     request.session['app_count'] = self.db.lead.find(filter).count()
     pagin = commonfunction().pagination(1, request.session['app_count'],
                                         10)
     sortcolumn = int(request.GET['sortcolumn'])
     sortflag = int(request.GET['sortflag'])
     columlst = [
         'fname', 'campaign_name', 'appdate', 'label', 'appstatus',
         'notecount', 'lastvisitdate'
     ]
     sortlst = [pymongo.ASCENDING, pymongo.DESCENDING]
     obj = self.db.lead.find(filter).sort(
         columlst[sortcolumn], sortlst[sortflag]).skip(0).limit(10)
     dic = {}
     dic['lead'] = obj
     dic['totalpage'] = pagin['totalpage']
     dic['currentpage'] = 1
     dic['start'] = pagin['start']
     dic['end'] = pagin['end']
     dic['sortcolumn'] = sortcolumn
     dic['sortflag'] = sortflag
     return base(request).view_render('appointment/lead.html', dic,
                                      self.menu, self.submenu, 1)
示例#25
0
    def deleteuser(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()

        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        userid = request.GET['uid']
        user = User.objects.get(keyid=userid)
        dealer_user = User_dealer.objects.filter(id=user.id)
        for n in dealer_user:
            n.delete()
        user.delete()
        url = reverse('user_landing')
        return HttpResponseRedirect(url)
示例#26
0
 def ajaxcalenderview(self, request):
     filter = self.getFilter(request)
     self.setMongo()
     obj = self.db.lead.find(filter).sort('appdate', pymongo.DESCENDING)
     return base(request).view_render('appointment/ajaxcalenderview.html',
                                      {"obj": obj}, self.menu, self.submenu,
                                      1)
示例#27
0
    def landing(self, request):
        # Check Login Authentication

        if base(request).isnotauthentication():
            return base(request).redirectloginpage()

        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        user = User.objects.all()
        baseclass = base(request)
        baseclass.isdealerlist = 0
        return baseclass.template_render(Path().USER_LANDING, {
            "domin": Path().Domain,
            "user": user
        }, self.menu, self.submenu, 2)
示例#28
0
    def dealership_setup_budget_filter(self, request):
        dealerid = int(request.GET['id'])
        key = Dealer.objects.get(id=dealerid)
        budgetmonth = request.GET['budget'].split(",")
        smonth = request.GET['budget']
        mlist = [
            'p0', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9', 'p10',
            'p11', 'p12'
        ]
        month = {
            'p0': 0,
            'p1': 0,
            'p2': 0,
            'p3': 0,
            'p4': 0,
            'p5': 0,
            'p6': 0,
            'p7': 0,
            'p8': 0,
            'p9': 0,
            'p10': 0,
            'p11': 0,
            'p12': 0
        }

        if budgetmonth[0] == '0':
            campaign = Campaign.objects.filter(fdealer=dealerid)
            month['p0'] = 1
        else:
            query = Campaign.objects.filter(fdealer=dealerid)
            mylist = []
            for n in budgetmonth:
                month[mlist[int(n)]] = 1
                mylist.append(Q(budgetmonth=int(n)))
            campaign = query.filter(reduce(operator.or_, mylist))
        topbox = {
            "total": 0,
            "Cost": 0,
            "Carsold": 0,
            "GrossProfit": 0,
            "RepairOrders": 0,
            "ROTotal": 0
        }
        for n in campaign:
            topbox["total"] = topbox["total"] + 1
            topbox["Cost"] = topbox["Cost"] + n.totalcost
            topbox["Carsold"] = topbox["Carsold"] + n.froi.car
            topbox["GrossProfit"] = topbox["GrossProfit"] + n.froi.grossprofit
            topbox["RepairOrders"] = topbox["RepairOrders"] + n.froi.service
            topbox["ROTotal"] = topbox["ROTotal"] + n.froi.invoiced
        return base(request).view_render(
            Path().DEALERSHIP_SETUP_CMP_BUDGETMONTH, {
                "smonth": smonth,
                "month": month,
                "dealer": key,
                "campaign": campaign,
                "keyid": id,
                "topbox": topbox
            }, self.menu, self.submenu, 1)
示例#29
0
 def notemodal(self, request):
     barcode = int(request.GET['barcode'])
     self.setMongo()
     key = {"barcode": barcode}
     note = self.db.notes.find(key).sort('date', pymongo.DESCENDING)
     return base(request).view_render('appointment/modal_notes.html',
                                      {"notes": note}, self.menu,
                                      self.submenu, 1)
示例#30
0
    def user_check_email(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        dict = {"isemail": 0}
        userid = request.GET['userid']
        email = request.GET['email']
        emailcount = User.objects.filter(email=email).count()
        if userid == 'N':
            if emailcount == 1:
                dict["isemail"] = 1
        else:
            if emailcount == 2:
                dict["isemail"] = 1