Beispiel #1
0
    def filterCustomer(self, dealerid, topnav, distance, ncount, isdate, sdate,
                       edate, isnt, sndate, endate, cpage, ptype, customertype,
                       iswarranty, warrantyrange, islwarranty, lwarrantyrange,
                       isbirthday, birthdaymonth, isndate, searchitem,
                       issearch, orderstatus1, orderstatus2, orderstatus3,
                       orderstatus4, orderstatus5, vyear1, vyear2,
                       tradeinrange):
        query = self.filterQuery(dealerid, topnav, distance, ncount, isdate,
                                 sdate, edate, isnt, sndate, endate, cpage,
                                 ptype, customertype, iswarranty,
                                 warrantyrange, islwarranty, lwarrantyrange,
                                 isbirthday, birthdaymonth, isndate,
                                 searchitem, issearch, vyear1, vyear2,
                                 tradeinrange)
        number = query.count()
        pagin = paginator_plugin(number, 100, cpage, ptype).get()

        query = self.orderquery(query, orderstatus1, orderstatus2,
                                orderstatus3, orderstatus4, orderstatus5)
        customer = query[pagin['limit']:pagin['offset']]
        ordera = self.fieldordermanagement(orderstatus1, orderstatus2,
                                           orderstatus3, orderstatus4,
                                           orderstatus5)
        lista = {
            "pagin": pagin,
            "customer": customer,
            "number": number,
            "query": connection.queries,
            "order": ordera
        }

        return lista
    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 get_market_analysis(self, cpage, ptype, dealer, field, order):
     fieldorder = [[
         '', 'radious', 'customer', 'bns', 'snb', 'bs', 'makeconquest'
     ], [
         '', '-radious', '-customer', '-bns', '-snb', '-bs', '-makeconquest'
     ]]
     total = Market_analysis.objects.filter(fdealer=dealer).exclude(
         radious=-1).count()
     pagin = paginator_plugin(total, 10, cpage, ptype).get()
     list = {}
     list['analysis'] = Market_analysis.objects.filter(
         fdealer=dealer).exclude(radious=-1).order_by(
             fieldorder[order][field])[pagin['limit']:pagin['offset']]
     list['pagin'] = pagin
     return list
Beispiel #4
0
    def dealerpage(self, request):

        dealerid = request.GET['dealerid']
        chart = customeractivitychart(dealerid).process()
        analysis = Customer_analysis.objects.get(fdealer_id=dealerid)
        customer_number = Customer.objects.filter(fdealer=dealerid).count()
        pagin = paginator_plugin(customer_number, 10, 1, 1).get()
        customer = Customer.objects.filter(fdealer=dealerid).order_by(
            '-lastvisit')[pagin['limit']:pagin['offset']]
        #customer         = Customer.objects.filter(fdealer = dealerid).order_by('-lastvisit')
        return base(request).view_render(
            Path().CUSTOMER_DEALERPAGE, {
                "chart": chart,
                "customer": customer,
                "pagin": customer_number,
                "analysis": analysis
            }, self.menu, self.submenu, 1)
Beispiel #5
0
    def paginsearch(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        cpage = request.GET['cpage']
        ptype = request.GET['ptype']
        dealerid = request.GET['dealerid']
        customer_number = Customer.objects.all().filter(
            fdealer=dealerid).count()
        pagin = paginator_plugin(customer_number, 10, cpage, ptype).get()
        enddate = datetime.datetime.now()
        customer = Customer.objects.filter(fdealer=dealerid).order_by(
            '-lastvisit')[pagin['limit']:pagin['offset']]
        return base(request).view_render(Path().CAMPAIGN_SETUP_SPAGIN, {
            "customer": customer,
            "pagin": pagin
        }, self.menu, self.submenu, 1)
Beispiel #6
0
    def tabfilterview(self, request):
        # Check Login Authentication
        if base(request).isnotauthentication():
            return base(request).redirectloginpage()
        if base(request).isnotadmin():
            return base(request).redirectloginpage()

        dealerid = int(request.GET['dealerid'])
        topnav = int(request.GET['topnav'])
        query = Customer.objects.filter(fdealer=dealerid)
        lock = self.setsession(request, topnav)
        fieldid = 2
        ordestatus = 1
        #pdb.set_trace()
        select = lock["select"]
        if topnav == 2:
            query = self.warrantyrangequery(["0"], query)
        if topnav == 4:
            query = self.lwarrantyrangequery(["0"], query)
        if topnav == 7:
            query = query.filter(sales__gte=1).distinct()
        if topnav == 5:
            query = query.filter(birth_date__gte='1900-01-01')
        if topnav == 9:
            query = query.filter(
                customer_roi__service_delay__gte=180).distinct()
        number = query.count()
        pagin = paginator_plugin(number, 100, 1, 1).get()
        customer = query.order_by('-lastvisit')[pagin['limit']:pagin['offset']]

        pagenumber = []
        i = 1
        for n in range(pagin['total_page']):
            pagenumber.append(i)
            i = i + 1
        resultdict = {}
        resultdict["session"] = lock
        resultdict["customer"] = customer
        resultdict["pagin"] = pagin
        resultdict["pagenumber"] = pagenumber
        resultdict["total_customer"] = number
        resultdict["selected_count"] = lock["total_select"]
        resultdict["dealerid"] = dealerid
        resultdict['selected_email'] = lock["total_email"]
        dealerinfo = Dealer.objects.get(id=dealerid)
        resultdict['cost_per_pieces'] = dealerinfo.trigger_cost_per_pieces
        #resultdict["cost"]    = resultdict['cost_per_pieces'] * lock["total_select"]
        resultdict["cost"] = 0

        for n in customer:
            if n.id in select:
                n.select = 1
            else:
                n.select = 0

        resultdict["customer"] = customer
        resultdict["orderstatus1"] = 1
        resultdict["orderstatus2"] = 2
        resultdict["orderstatus3"] = 2
        resultdict["orderstatus4"] = 2
        resultdict["orderstatus5"] = 2
        resultdict["order"] = self.fieldordermanagement(1, 2, 2, 2, 2)
        resultdict["query"] = connection.queries
        return base(request).view_render(Path().CAMPAIGN_SETUP_TABVIEW,
                                         resultdict, self.menu, self.submenu,
                                         1)
Beispiel #7
0
    def paginfilter(self, request):

        dealerid = request.GET['dealerid']
        cpage = request.GET['cpage']
        mselected = request.GET['mselected']
        ptype = request.GET['ptype']
        sortcolum = int(request.GET['sortcolum'])
        sortorder = int(request.GET['sortorder'])
        columlst = []
        columlst.append([])
        columlst.append([['fname', '-lastvisit', '-visit'],
                         ['-fname', '-lastvisit', '-visit']])
        columlst.append([['sales', '-lastvisit', '-visit'],
                         ['-sales', '-lastvisit', '-visit']])
        columlst.append([['service', '-lastvisit', '-visit'],
                         ['-service', '-lastvisit', '-visit']])
        columlst.append([['carsold', '-lastvisit', '-visit'],
                         ['-carsold', '-lastvisit', '-visit']])
        columlst.append([['lastvisit', '-visit'], ['-lastvisit', '-visit']])
        columlst.append([['visit', '-lastvisit', '-sales', '-service'],
                         ['-visit', '-lastvisit', '-sales', '-service']])
        columlst.append([['lastvisit', '-visit'], ['-lastvisit', '-visit']])
        sort = columlst[sortcolum][sortorder]
        sortclass = {
            "name": "sorting",
            "carsold": "sorting",
            "ro": "sorting",
            "revenue": "sorting",
            "lastactivity": "sorting",
            "visits": "sorting",
            "status": "sorting"
        }
        sortlist = [
            '', 'name', 'carsold', 'ro', 'revenue', 'lastactivity', 'visits',
            'status'
        ]
        orderlist = ['sorting_asc', 'sorting_desc']
        sortclass[sortlist[sortcolum]] = orderlist[sortorder]
        now = datetime.datetime.now().date()
        if mselected == '2':
            dt = now - datetime.timedelta(180)
            customer_number = Customer.objects.filter(fdealer=dealerid).filter(
                lastvisit__gte=dt).count()
        elif mselected == '3':
            dt1 = now - datetime.timedelta(180)
            dt2 = now - datetime.timedelta(360)
            customer_number = Customer.objects.filter(fdealer=dealerid).filter(
                lastvisit__gte=dt2, lastvisit__lt=dt1).count()
        else:
            customer_number = Customer.objects.filter(fdealer=dealerid).count()
        pagin = paginator_plugin(customer_number, 20, int(cpage),
                                 int(ptype)).get()

        pagelst = range(1, pagin['total_page'] + 1)
        #customer         = Customer.objects.filter(fdealer = dealerid).order_by(*sort)[pagin['limit']:pagin['offset']]

        if mselected == '2':
            dt = now - datetime.timedelta(180)
            customer = Customer.objects.filter(fdealer=dealerid).filter(
                lastvisit__gte=dt).order_by(
                    *sort)[pagin['limit']:pagin['offset']]
        elif mselected == '3':
            customer = Customer.objects.filter(fdealer=dealerid).filter(
                lastvisit__gte=dt).order_by(
                    *sort)[pagin['limit']:pagin['offset']]
        else:
            customer = Customer.objects.filter(fdealer=dealerid).order_by(
                *sort)[pagin['limit']:pagin['offset']]
        analysis = Customer_analysis.objects.get(fdealer_id=dealerid)

        return base(request).view_render(
            Path().CUSTOMER_PAGIN, {
                "analysis": analysis,
                "dealerid": dealerid,
                "customer": customer,
                "pagin": pagin,
                "sortcolum": sortcolum,
                "sortorder": sortorder,
                "sortclass": sortclass,
                "pagelst": pagelst
            }, self.menu, self.submenu, 1)