Example #1
0
    def get_stats_volume(cls):
        data = []
        data1 = {'key': [], 'values': []}  # , 'color': '#2ca02c'
        data2 = {'key': [], 'values': [], 'bar': 'true'}

        values_duration = []
        values_total_calls = []
        values_success_calls = []

        qs_d = DimCustomerDestination.objects.all()
        #qs_h = DimCustomerHangupcause.objects.all()

        today = datetime.date.today() - datetime.timedelta(days=0)
        firstday = today - datetime.timedelta(days=90)

        ts_total_calls = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_calls'))
        ts_success_calls = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('success_calls'))
        stats_duration = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_duration'))

        for i in range(len(stats_duration)):
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                int(round_value(ts_total_calls[i][1]))]

            values_total_calls.append(temp_data)

        data1['key'].append("Total calls")
        data1['values'] = values_total_calls
        data.append(data1)

        for i in range(len(stats_duration)):
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                int(round_value(ts_success_calls[i][1]))]

            values_success_calls.append(temp_data)

        data2['values'] = values_success_calls
        # data2['bar'].append('true')
        data2['key'].append("Success calls")
        data.append(data2)

        return data
Example #2
0
    def get_stats_volume(cls):
        data = []
        data1 = {"key": [], "values": []}  # , 'color': '#2ca02c'
        data2 = {"key": [], "values": [], "bar": "true"}

        values_duration = []
        values_total_calls = []
        values_success_calls = []

        qs_d = DimCustomerDestination.objects.all()
        # qs_h = DimCustomerHangupcause.objects.all()

        today = datetime.date.today() - datetime.timedelta(days=0)
        firstday = today - datetime.timedelta(days=90)

        ts_total_calls = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_calls"))
        ts_success_calls = time_series(qs_d, "date__date", [firstday, today], func=Sum("success_calls"))
        stats_duration = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_duration"))

        for i in range(len(stats_duration)):
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                int(round_value(ts_total_calls[i][1])),
            ]

            values_total_calls.append(temp_data)

        data1["key"].append("Total calls")
        data1["values"] = values_total_calls
        data.append(data1)

        for i in range(len(stats_duration)):
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                int(round_value(ts_success_calls[i][1])),
            ]

            values_success_calls.append(temp_data)

        data2["values"] = values_success_calls
        # data2['bar'].append('true')
        data2["key"].append("Success calls")
        data.append(data2)

        return data
Example #3
0
    def get_stats_minute(cls):
        data = []
        data1 = {'key': [], 'values': []}
        data2 = {'key': [], 'bar': 'true', 'values': []}

        values_duration = []
        values_acd = []
        acd = []

        qs_d = DimCustomerDestination.objects.all()
        # qs_h = DimCustomerHangupcause.objects.all()

        today = datetime.date.today() - datetime.timedelta(days=0)
        firstday = today - datetime.timedelta(days=90)

        ts_success_calls = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('success_calls'))
        stats_duration = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_duration'))

        for i in range(len(stats_duration)):
            if stats_duration[i][1]:
                acd.append(stats_duration[i][1] / ts_success_calls[i][1])
            else:
                acd.append(0)
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                acd[i]]

            values_acd.append(temp_data)

        data1['key'].append("ACD in seconds")
        data1['values'] = values_acd
        data.append(data1)

        for i in range(len(stats_duration)):
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                int(round_value(stats_duration[i][1]) / 60)]

            values_duration.append(temp_data)

        data2['values'] = values_duration
        # data2['bar'].append('true')
        data2['key'].append("Volume in minutes")
        data.append(data2)

        return data
Example #4
0
    def get_stats_minute(cls):
        data = []
        data1 = {"key": [], "values": []}
        data2 = {"key": [], "bar": "true", "values": []}

        values_duration = []
        values_acd = []
        acd = []

        qs_d = DimCustomerDestination.objects.all()
        # qs_h = DimCustomerHangupcause.objects.all()

        today = datetime.date.today() - datetime.timedelta(days=0)
        firstday = today - datetime.timedelta(days=90)

        ts_success_calls = time_series(qs_d, "date__date", [firstday, today], func=Sum("success_calls"))
        stats_duration = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_duration"))

        for i in range(len(stats_duration)):
            if stats_duration[i][1]:
                acd.append(stats_duration[i][1] / ts_success_calls[i][1])
            else:
                acd.append(0)
            temp_data = [int(time.mktime(stats_duration[i][0].timetuple()) * 1000), acd[i]]

            values_acd.append(temp_data)

        data1["key"].append("ACD in seconds")
        data1["values"] = values_acd
        data.append(data1)

        for i in range(len(stats_duration)):
            temp_data = [
                int(time.mktime(stats_duration[i][0].timetuple()) * 1000),
                int(round_value(stats_duration[i][1]) / 60),
            ]

            values_duration.append(temp_data)

        data2["values"] = values_duration
        # data2['bar'].append('true')
        data2["key"].append("Volume in minutes")
        data.append(data2)

        return data
Example #5
0
    def get_stats_revenue(cls):
        data = []
        data1 = {'key': [], 'values': [], 'color': '#2ca02c'}
        data2 = {'key': [], 'values': []}
        data3 = {'key': [], 'area': 'true', 'values': [], 'color': '#ff7f0e'}
        data4 = {'key': [], 'area': 'true', 'values': [], 'color': '#7777ff'}

        values_sell = []
        values_cost = []
        values_duration = []
        margin = []
        values_margin = []

        qs = CDR.objects.filter(effective_duration__gt="0")
        qs_d = DimCustomerDestination.objects.all()
        # qs_h = DimCustomerHangupcause.objects.all()
        qss_sell = qsstats.QuerySetStats(qs, 'start_stamp',
                                         aggregate=Sum('total_sell'))
        qss_cost = qsstats.QuerySetStats(qs, 'start_stamp',
                                         aggregate=Sum('total_cost'))
        qss_sum_duration = qsstats.QuerySetStats(qs, 'start_stamp',
                                                 aggregate=Sum('effective_duration'))
        today = datetime.date.today() - datetime.timedelta(days=0)
        firstday = today - datetime.timedelta(days=90)
        # stats_sell = qss_sell.time_series(seven_days_ago, today)
        # stats_cost = qss_sell.time_series(seven_days_ago, today)
        # stats_duration = qss_sum_duration.time_series(seven_days_ago, today)

        ts_total_calls = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_calls'))
        ts_success_calls = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('success_calls'))
        stats_duration = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_duration'))
        stats_sell = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_sell'))
        stats_cost = time_series(
            qs_d, 'date__date', [firstday, today], func=Sum('total_cost'))

        for i in range(len(stats_sell)):
            values_sell.append(
                [int(time.mktime(stats_sell[i][0].timetuple()) * 1000),
                    round_value(stats_sell[i][1])])

        data1['key'].append("Revenue")
        data1['values'] = values_sell
        data.append(data1)

        for i in range(len(stats_sell)):
            temp_data = [
                int(time.mktime(stats_sell[i][0].timetuple()) * 1000),
                # round_value(stats_sell[i][1])
                # round_value(stats_cost[i][1]),
                int(round_value(stats_duration[i][1]))
            ]
            values_duration.append(temp_data)

        data2['values'] = values_duration
        # data2['bar'].append('true')
        data2['key'].append("Duration")
        # data.append(data2)

        for i in range(len(stats_sell)):
            values_cost.append(
                [int(time.mktime(stats_cost[i][0].timetuple()) * 1000),
                    round_value(stats_cost[i][1])])

        data3['key'].append("Cost")
        data3['values'] = values_cost
        data.append(data3)

        for i in range(len(stats_sell)):
            if stats_sell[i][1]:
                if stats_cost[i][1]:
                    margin.append(stats_sell[i][1] - stats_cost[i][1])
                else:
                    margin.append(stats_sell[i][1])
            else:
                if stats_cost[i][1]:
                    margin.append(0 - stats_cost[i][1])
                else:
                    margin.append(0)
            values_margin.append(
                [int(time.mktime(stats_cost[i][0].timetuple()) * 1000),
                    round_value(margin[i])])

        data4['key'].append("Margin")
        data4['values'] = values_margin
        data.append(data4)

        #data = [{"values": [[1400281200000, 3.36], [1400367600000, 0.03], [1400454000000, 30.15], [1400540400000, 34.57], [1400626800000, 30.73], [1400713200000, 32.12], [1400799600000, 60.69], [1400886000000, 3.61], [1400972400000, 0.05], [1401058800000, 68.54], [1401145200000, 339.0], [1401231600000, 130.58], [1401318000000, 17.12], [1401404400000, 133.52], [1401490800000, 111.67], [1401577200000, 0.02], [1401663600000, 640.63], [1401750000000, 565.65], [1401836400000, 646.74], [1401922800000, 639.96], [1402009200000, 798.42], [1402095600000, 493.09], [1402182000000, 65.13], [1402268400000, 380.07], [1402354800000, 17.01], [1402441200000, 388.32], [1402527600000, 0], [1402614000000, 0], [1402700400000, 0], [1402786800000, 0], [1402873200000, 0]], "bar": ["true"], "key": ["Revenue"]}, {"values": [[1400281200000, 25562], [1400367600000, 65], [1400454000000, 232339], [1400540400000, 225068], [1400626800000, 225401], [1400713200000, 198695], [1400799600000, 257652], [1400886000000, 14543], [1400972400000, 92], [1401058800000, 295177], [1401145200000, 980922], [1401231600000, 467542], [1401318000000, 70453], [1401404400000, 369460], [1401490800000, 307402], [1401577200000, 84], [1401663600000, 1814630], [1401750000000, 1578658], [1401836400000, 1799965], [1401922800000, 2344407], [1402009200000, 2540328], [1402095600000, 1345970], [1402182000000, 21832], [1402268400000, 1010094], [1402354800000, 66511], [1402441200000, 1078292], [1402527600000, 0], [1402614000000, 0], [1402700400000, 0], [1402786800000, 0], [1402873200000, 0]], "key": ["Duration"]}]

        return data
Example #6
0
    def get_stats_revenue(cls):
        data = []
        data1 = {"key": [], "values": [], "color": "#2ca02c"}
        data2 = {"key": [], "values": []}
        data3 = {"key": [], "area": "true", "values": [], "color": "#ff7f0e"}
        data4 = {"key": [], "area": "true", "values": [], "color": "#7777ff"}

        values_sell = []
        values_cost = []
        values_duration = []
        margin = []
        values_margin = []

        qs = CDR.objects.filter(effective_duration__gt="0")
        qs_d = DimCustomerDestination.objects.all()
        # qs_h = DimCustomerHangupcause.objects.all()
        qss_sell = qsstats.QuerySetStats(qs, "start_stamp", aggregate=Sum("total_sell"))
        qss_cost = qsstats.QuerySetStats(qs, "start_stamp", aggregate=Sum("total_cost"))
        qss_sum_duration = qsstats.QuerySetStats(qs, "start_stamp", aggregate=Sum("effective_duration"))
        today = datetime.date.today() - datetime.timedelta(days=0)
        firstday = today - datetime.timedelta(days=90)
        # stats_sell = qss_sell.time_series(seven_days_ago, today)
        # stats_cost = qss_sell.time_series(seven_days_ago, today)
        # stats_duration = qss_sum_duration.time_series(seven_days_ago, today)

        ts_total_calls = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_calls"))
        ts_success_calls = time_series(qs_d, "date__date", [firstday, today], func=Sum("success_calls"))
        stats_duration = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_duration"))
        stats_sell = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_sell"))
        stats_cost = time_series(qs_d, "date__date", [firstday, today], func=Sum("total_cost"))

        for i in range(len(stats_sell)):
            values_sell.append([int(time.mktime(stats_sell[i][0].timetuple()) * 1000), round_value(stats_sell[i][1])])

        data1["key"].append("Revenue")
        data1["values"] = values_sell
        data.append(data1)

        for i in range(len(stats_sell)):
            temp_data = [
                int(time.mktime(stats_sell[i][0].timetuple()) * 1000),
                # round_value(stats_sell[i][1])
                # round_value(stats_cost[i][1]),
                int(round_value(stats_duration[i][1])),
            ]
            values_duration.append(temp_data)

        data2["values"] = values_duration
        # data2['bar'].append('true')
        data2["key"].append("Duration")
        # data.append(data2)

        for i in range(len(stats_sell)):
            values_cost.append([int(time.mktime(stats_cost[i][0].timetuple()) * 1000), round_value(stats_cost[i][1])])

        data3["key"].append("Cost")
        data3["values"] = values_cost
        data.append(data3)

        for i in range(len(stats_sell)):
            if stats_sell[i][1]:
                if stats_cost[i][1]:
                    margin.append(stats_sell[i][1] - stats_cost[i][1])
                else:
                    margin.append(stats_sell[i][1])
            else:
                if stats_cost[i][1]:
                    margin.append(0 - stats_cost[i][1])
                else:
                    margin.append(0)
            values_margin.append([int(time.mktime(stats_cost[i][0].timetuple()) * 1000), round_value(margin[i])])

        data4["key"].append("Margin")
        data4["values"] = values_margin
        data.append(data4)

        # data = [{"values": [[1400281200000, 3.36], [1400367600000, 0.03], [1400454000000, 30.15], [1400540400000, 34.57], [1400626800000, 30.73], [1400713200000, 32.12], [1400799600000, 60.69], [1400886000000, 3.61], [1400972400000, 0.05], [1401058800000, 68.54], [1401145200000, 339.0], [1401231600000, 130.58], [1401318000000, 17.12], [1401404400000, 133.52], [1401490800000, 111.67], [1401577200000, 0.02], [1401663600000, 640.63], [1401750000000, 565.65], [1401836400000, 646.74], [1401922800000, 639.96], [1402009200000, 798.42], [1402095600000, 493.09], [1402182000000, 65.13], [1402268400000, 380.07], [1402354800000, 17.01], [1402441200000, 388.32], [1402527600000, 0], [1402614000000, 0], [1402700400000, 0], [1402786800000, 0], [1402873200000, 0]], "bar": ["true"], "key": ["Revenue"]}, {"values": [[1400281200000, 25562], [1400367600000, 65], [1400454000000, 232339], [1400540400000, 225068], [1400626800000, 225401], [1400713200000, 198695], [1400799600000, 257652], [1400886000000, 14543], [1400972400000, 92], [1401058800000, 295177], [1401145200000, 980922], [1401231600000, 467542], [1401318000000, 70453], [1401404400000, 369460], [1401490800000, 307402], [1401577200000, 84], [1401663600000, 1814630], [1401750000000, 1578658], [1401836400000, 1799965], [1401922800000, 2344407], [1402009200000, 2540328], [1402095600000, 1345970], [1402182000000, 21832], [1402268400000, 1010094], [1402354800000, 66511], [1402441200000, 1078292], [1402527600000, 0], [1402614000000, 0], [1402700400000, 0], [1402786800000, 0], [1402873200000, 0]], "key": ["Duration"]}]

        return data