Merge branch 'feature/TokenLogin' into 'develop'
Feature/token login See merge request witel-back-end/crm!30
This commit is contained in:
@@ -25,7 +25,14 @@ class ReportService
|
|||||||
COUNT(CASE WHEN lastapp = 'Busy' THEN 1 END) AS dnd,
|
COUNT(CASE WHEN lastapp = 'Busy' THEN 1 END) AS dnd,
|
||||||
COUNT(CASE WHEN dst BETWEEN 502 AND 599 THEN 1 END) AS trans,
|
COUNT(CASE WHEN dst BETWEEN 502 AND 599 THEN 1 END) AS trans,
|
||||||
COUNT(CASE WHEN disposition <> 'BUSY' AND dst BETWEEN 101 AND 105 THEN 1 END) AS all_calls,
|
COUNT(CASE WHEN disposition <> 'BUSY' AND dst BETWEEN 101 AND 105 THEN 1 END) AS all_calls,
|
||||||
AVG(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' THEN billsec END) AS avg
|
AVG(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' THEN billsec END) AS avg,
|
||||||
|
(
|
||||||
|
COUNT(CASE WHEN disposition <> 'BUSY' AND dst BETWEEN 101 AND 105 THEN 1 END)
|
||||||
|
- (
|
||||||
|
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' AND dst BETWEEN 101 AND 104 THEN 1 END)
|
||||||
|
+ COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'NO ANSWER' AND dst BETWEEN 101 AND 104 AND duration > 14 THEN 1 END)
|
||||||
|
)
|
||||||
|
) AS fail
|
||||||
")->groupByRaw('DATE(calldate)');
|
")->groupByRaw('DATE(calldate)');
|
||||||
|
|
||||||
$data = DataTableFacade::run(
|
$data = DataTableFacade::run(
|
||||||
@@ -33,7 +40,6 @@ class ReportService
|
|||||||
$request,
|
$request,
|
||||||
allowedFilters: ['*'],
|
allowedFilters: ['*'],
|
||||||
allowedSortings: ['*'],
|
allowedSortings: ['*'],
|
||||||
allowedGroupBy: ['d']
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$data = collect($data);
|
$data = collect($data);
|
||||||
@@ -91,20 +97,39 @@ class ReportService
|
|||||||
|
|
||||||
public function operatorPerformanceDaily(Request $request)
|
public function operatorPerformanceDaily(Request $request)
|
||||||
{
|
{
|
||||||
$query = DB::table(DB::raw("(SELECT *, CAST(dst AS UNSIGNED) AS dst_num FROM asteriskcdrdb.cdr) AS cdr"))
|
$query = DB::table('asteriskcdrdb.cdr')
|
||||||
->selectRaw("
|
->selectRaw("
|
||||||
DATE(calldate) AS d,
|
DATE(calldate) as d,
|
||||||
dst,
|
dst,
|
||||||
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' AND dst_num BETWEEN 1 AND 104 THEN 1 END) AS ok,
|
COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'NO ANSWER' AND dst_num BETWEEN 1 AND 104 AND duration > 14 THEN 1 END) AS nok,
|
AND disposition = 'ANSWERED'
|
||||||
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' AND dst_num BETWEEN 1 AND 104 AND billsec > 9 THEN 1 END) AS b10,
|
AND dst > 100 AND dst < 105 THEN 1 END) AS ok,
|
||||||
|
COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'NO ANSWER'
|
||||||
|
AND dst > 100 AND dst < 105
|
||||||
|
AND duration > 14 THEN 1 END) AS nok,
|
||||||
|
COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'ANSWERED'
|
||||||
|
AND dst > 100 AND dst < 105
|
||||||
|
AND billsec > 9 THEN 1 END) AS b10,
|
||||||
COUNT(CASE WHEN lastapp = 'Busy' THEN 1 END) AS dnd,
|
COUNT(CASE WHEN lastapp = 'Busy' THEN 1 END) AS dnd,
|
||||||
COUNT(CASE WHEN dst_num BETWEEN 502 AND 599 THEN 1 END) AS trans,
|
COUNT(CASE WHEN dst > 501 AND dst < 600 THEN 1 END) AS trans,
|
||||||
COUNT(CASE WHEN disposition <> 'BUSY' AND dst_num BETWEEN 1 AND 105 THEN 1 END) AS total_calls
|
COUNT(CASE WHEN disposition <> 'BUSY'
|
||||||
|
AND dst BETWEEN 101 AND 105 THEN 1 END) AS total,
|
||||||
|
(COUNT(CASE WHEN disposition <> 'BUSY'
|
||||||
|
AND dst BETWEEN 101 AND 105 THEN 1 END)
|
||||||
|
- (COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'ANSWERED'
|
||||||
|
AND dst > 100 AND dst < 105 THEN 1 END)
|
||||||
|
+ COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'NO ANSWER'
|
||||||
|
AND dst > 100 AND dst < 105
|
||||||
|
AND duration > 14 THEN 1 END)
|
||||||
|
)
|
||||||
|
) AS fail
|
||||||
")
|
")
|
||||||
->whereBetween('dst_num', [1, 105])
|
->whereBetween('dst', [1, 104]) // dst>100 AND dst<105
|
||||||
->groupBy(DB::raw('DATE(calldate)'), 'dst')
|
->groupBy('dst', DB::raw('DATE(calldate)'))
|
||||||
->orderBy(DB::raw('DATE(calldate)'))
|
|
||||||
->orderBy('dst');
|
->orderBy('dst');
|
||||||
|
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
@@ -117,18 +142,37 @@ class ReportService
|
|||||||
|
|
||||||
public function operatorPerformanceTotal(Request $request)
|
public function operatorPerformanceTotal(Request $request)
|
||||||
{
|
{
|
||||||
$query = DB::table(DB::raw("(SELECT *, CAST(dst AS UNSIGNED) AS dst_num FROM asteriskcdrdb.cdr) AS cdr"))
|
$query = DB::table('asteriskcdrdb.cdr')
|
||||||
->selectRaw("
|
->selectRaw("
|
||||||
DATE(calldate) AS d,
|
|
||||||
dst,
|
dst,
|
||||||
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' AND dst_num BETWEEN 1 AND 104 THEN 1 END) AS ok,
|
COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'NO ANSWER' AND dst_num BETWEEN 1 AND 104 AND duration > 14 THEN 1 END) AS nok,
|
AND disposition = 'ANSWERED'
|
||||||
COUNT(CASE WHEN dcontext = 'from-internal' AND disposition = 'ANSWERED' AND dst_num BETWEEN 1 AND 104 AND billsec > 9 THEN 1 END) AS b10,
|
AND dst > 100 AND dst < 105 THEN 1 END) AS ok,
|
||||||
|
COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'NO ANSWER'
|
||||||
|
AND dst > 100 AND dst < 105
|
||||||
|
AND duration > 14 THEN 1 END) AS nok,
|
||||||
|
COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'ANSWERED'
|
||||||
|
AND dst > 100 AND dst < 105
|
||||||
|
AND billsec > 9 THEN 1 END) AS b10,
|
||||||
COUNT(CASE WHEN lastapp = 'Busy' THEN 1 END) AS dnd,
|
COUNT(CASE WHEN lastapp = 'Busy' THEN 1 END) AS dnd,
|
||||||
COUNT(CASE WHEN dst_num BETWEEN 502 AND 599 THEN 1 END) AS trans,
|
COUNT(CASE WHEN dst > 501 AND dst < 600 THEN 1 END) AS trans,
|
||||||
COUNT(CASE WHEN disposition <> 'BUSY' AND dst_num BETWEEN 1 AND 105 THEN 1 END) AS total_calls
|
COUNT(CASE WHEN disposition <> 'BUSY'
|
||||||
|
AND dst BETWEEN 101 AND 105 THEN 1 END) AS total,
|
||||||
|
(COUNT(CASE WHEN disposition <> 'BUSY'
|
||||||
|
AND dst BETWEEN 101 AND 105 THEN 1 END)
|
||||||
|
- (COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'ANSWERED'
|
||||||
|
AND dst > 100 AND dst < 105 THEN 1 END)
|
||||||
|
+ COUNT(CASE WHEN dcontext = 'from-internal'
|
||||||
|
AND disposition = 'NO ANSWER'
|
||||||
|
AND dst > 100 AND dst < 105
|
||||||
|
AND duration > 14 THEN 1 END)
|
||||||
|
)
|
||||||
|
) AS fail
|
||||||
")
|
")
|
||||||
->whereBetween('dst_num', [1, 105])
|
->whereBetween('dst', [1, 104])
|
||||||
->groupBy('dst')
|
->groupBy('dst')
|
||||||
->orderBy(DB::raw('DATE(calldate)'))
|
->orderBy(DB::raw('DATE(calldate)'))
|
||||||
->orderBy('dst');
|
->orderBy('dst');
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ Route::middleware('auth')
|
|||||||
->group(function () {
|
->group(function () {
|
||||||
Route::get('/', 'index')->name('index');
|
Route::get('/', 'index')->name('index');
|
||||||
Route::get('/excel', 'excel')->name('excel');
|
Route::get('/excel', 'excel')->name('excel');
|
||||||
Route::post('/rate/{operatorDialogue}', 'rate')->name('rate');
|
Route::post('/rate', 'rate')->name('rate');
|
||||||
Route::get('/{operatorDialogue}', 'show')->name('show');
|
Route::get('/{operatorDialogue}', 'show')->name('show');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user