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)
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']
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)
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)
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
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')
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)
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)
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)
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()
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)
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)
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)
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)
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')
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)
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)
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)
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)
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)
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)
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('')
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)
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)
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)
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)
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)
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)
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)
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