<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/


//    Route::group(['middleware' => ['auth']], function()
//    {
//        Route::get('list', 'EventsController@index');
//    });

use App\AdminModel;
use App\CoiUsers;
use App\General;
use Carbon\Carbon;
use Illuminate\Foundation\Auth\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session;

Route::get('check-pass', function(){
    // $user = AdminModel::find(1);
    // $user->update([
    //     'password' => bcrypt('password')
    // ]);
    // return General::passwordComplexity('%8asjakj');
    // return preg_match('/^[[:alnum:][:punct:]]+$/', $password);
    // $query = DB::select('select * from coi_users where deleted_at is null group by email,id');
    // $query = CoiUsers::select('email', 'name', 'division', 'dept', 'is_director', 'coi_status', 'status', 'created_at', 'updated_at')
    //     ->groupby('email')->get();
    // $my_query = CoiUsers::orderby('id', 'desc')->groupBy('id');
        // $query = CoiUsers::where('email', '<>', '')->latest()->distinct();
        $routes = DB::table('coi_users')
        ->whereNotNull('dept')
    ->groupBy('email')
    ->get();

    $rs = DB::select("
    SELECT coi_users.*
    FROM coi_users
    LEFT JOIN coe_forms ON coi_users.id = coe_forms.coi_user_id
    WHERE coe_forms.coi_user_id IS NULL
    ");

    return count($rs);

    $countuserscoi = DB::select("select distinct(email) from coi_users where dept
      is not null and deleted_at is null;");

      $result_coi_completed = DB::select("select distinct(email) from coi_users where
      YEAR(created_at) = YEAR(CURDATE()) AND status LIKE 'Completed' and deleted_at is null");

      $abcd = DB::select("select distinct(email) from coi_users where
      YEAR(created_at) = YEAR(CURDATE()) AND (status = 'Pending' OR status is null) AND coi_status is not null
      AND deleted_at is null");

      $countcompletedcoi = count($abcd);
      $current_year = Carbon::now()->year;
    //   $query = DB::select("select distinct(email) from coi_users where YEAR(created_at) >= YEAR(CURDATE())
    //   and deleted_at is null AND status = 'Pending' OR status is not null");
    $query = DB::table('coi_users')
    ->where('status', '=', 'Completed')
    ->whereNull('deleted_at')
    ->whereDate('created_at', '>=', $current_year)
    ->select('email')
    ->distinct();

        return $query->get();
    $user_q = CoiUsers::all()->first();
    return count(json_decode($user_q->a1_dominant));

    $year = Carbon::now()->year;
    $users = CoiUsers::whereyear('created_at', $year)->count();
    $abc = DB::select('SELECT * FROM coi_users WHERE YEAR(created_at) = YEAR(CURDATE())');
    return $routes;
    // $data =  config('session.guards.adminguard.lifetime');
    // return Auth::guard('web')->user();
    Auth::guard('adminguard')->logout();
    return "hello";
    // return time();
    // return General::generatePassword();
});

Route::get('/', 'PagesController@index')->name('/');
Route::any('/verifyotp', 'PagesController@emailotps')->name('emailotps');

Route::post('/conflicts', 'PagesController@verifyotp')->name('policy');
Route::get('/message', 'PagesController@message')->name('message');
Route::get('/get/assistance', 'PagesController@gethelp')->name('coi.prelogin.help');
Route::post('/requesthelp', 'PagesController@postpreloginhelp')->name('coi.prelogin.post.help');
Route::any('/resendmcode', 'PagesController@resendmailcode')->name('resendmailcode');
Route::any('/resendpcode', 'PagesController@resendphonecode')->name('resendphonecode');
Route::get('/watchvideo', 'PagesController@watchvideo')->name('watchvideo');
Route::get('/manual', 'PagesController@manual')->name('manual');
Route::get('/view_policy', 'PagesController@view_policy')->name('view_policy');

Route::get('admin/', 'AdminController@index')->name('index');
Route::get('admin/logout', 'AdminController@logout')->name('logout');
Route::post('admin/', 'AdminController@login')->name('indexx');
Route::post('admin/otp-verification', 'AdminController@OTP_Verification')->name('admin.otp');

// Route::get('/dashboard', 'AdminController@dashboard')->name('dashboard');
Route::post('admin/resend/otp', 'AdminController@resendAdminOTP')->name('admin.resend.otp');

Route::group(['middleware' => ['user']], function () {
    Route::get('/mtncoi/helpdesk', 'HelpdeskController@index')->name('coi.help');
    Route::post('/post/help', 'HelpdeskController@posthelp')->name('coi.post.help');
    Route::get('checknew/{id}/{count}', 'HelpdeskController@checkmess')->name('checknewresponse');


    Route::get('/annex_page', 'PagesController@annexpage')->name('annexpage');
    Route::get('logout', 'PagesController@logout')->name('pagelogout');
    Route::get('/coi_page', 'PagesController@coipage')->name('coipage');
    Route::get('/coi/page/continued/last/year', 'PagesController@coipageCont')->name('coipage.cont');

    Route::get('/coi/page/declaration/lastyear', 'PagesController@coiContinueLastYear')->name('declaration.cont');



    Route::get('coi/from/landing/page', 'PagesController@coiLandingPage')->name('coi.landing');
    Route::get('failed/validation', 'PagesController@failedresend')->name('failed.validation');
    //  Route::match([post,get],'/conflicts','PagesController@verifyotp')->name('policy');
    Route::get('coi/page/last/year', 'PagesController@continueLastYearAnnexure')->name('last.year.annex');

    Route::get('/landing-page-modal', 'PagesController@landingPageModal')->name('landing-page-modal');

    Route::get('coe/page', 'PagesController@coePage')->name('coe.page');
    Route::get('/landing/page', 'PagesController@landingPage')->name('landing.page');
    Route::get('/coi/page/final/{getuserId}', 'PagesController@coiMidPage')->name('coi.page.final');


    //Coe stuff
    Route::post('coe/store/agreement', 'AnnexureOneController@storeCoe')->name('coe.store');
    Route::get('coe/table/agreement', 'CoeFormController@index')->name('coe.table');






    Route::any('/appendconflicts', 'PagesController@appendconflicts')->name('appendconflicts');
    Route::any('/appendconflicts/continue', 'PagesController@appendconflictsCont')->name('appendconflicts.cont');

    Route::get('/annexures', 'Annexures@index')->name('annexures');
    Route::post('/annexure_1_con', 'AnnexureOneController@storeCon')->name('annexure_1_con');
    Route::post('/annexure_1', 'AnnexureOneController@store')->name('annexure_1');
    Route::post('/annexure_2', 'AnnexureTwoController@store')->name('annexure_2');
    Route::post('/annexure_3', 'AnnexureThreeController@store')->name('annexure_3');
    Route::post('/annexure_4', 'AnnexureFourController@store')->name('annexure_4');
    Route::post('/annexure_5', 'AnnexureFiveController@store')->name('annexure_5');
    Route::post('/annexure_6', 'AnnexureSixController@store')->name('annexure_6');
    Route::post('/annexure_7', 'AnnexureSevenController@store')->name('annexure_7');
    Route::post('/annexure_8', 'AnnexureEightController@store')->name('annexure_8');
    Route::post('/annexure_9', 'AnnexureNineController@store')->name('annexure_9');
    Route::post('/annexure_10', 'AnnexureTenController@store')->name('annexure_10');
    Route::post('/annexure_11', 'AnnexureElevenController@store')->name('annexure_11');
    Route::post('/annexure_12', 'AnnexureTwelveController@store')->name('annexure_12');
    Route::post('/annexure_13', 'AnnexureThirteenController@store')->name('annexure_13');
    Route::post('/annexure_14', 'AnnexureFourteenController@store')->name('annexure_14');
    Route::post('/annexure_15', 'AnnexureFifteenController@store')->name('annexure_15');
    Route::post('/annexure_16', 'AnnexureSixteenController@store')->name('annexure_16');
    Route::post('/form-complete', 'AnnexureSixteenController@complete')->name('completeform');




    Route::get('/sfl_predash', 'AnnexureTwoController@sfl')->name('saveforlater');
    Route::get('/sfl_edit', 'AnnexureTwoController@sfledit')->name('sfl.edit');
    Route::get('/sfl_view', 'AnnexureTwoController@viewcoi')->name('sfl.view');




    Route::get('/complete-coi', 'CompletedController@index')->name('completed-coi');
    Route::get('/view', 'CompletedController@viewcoi')->name('complete.view');
    Route::get('/edit', 'CompletedController@editcoi')->name('complete.edit');
});



Route::group(['middleware' => ['admin']], function () {
    Route::group(['prefix' => 'admin',], function () {

        Route::get('ban/{id}/user', 'DivisionController@banuser')->name('users.ban');
        Route::get('ban/all', 'DivisionController@banall')->name('ban.all');
        Route::get('ban/grant/all', 'DivisionController@bangrantall')->name('ban.grant.all');

        Route::get('reminder', 'ReminderController@index')->name('admin.reminder');
        Route::post('post/reminder', 'ReminderController@post')->name('admin.reminder.post');


        Route::get('/dashboard', 'AdminController@dashboard')->name('dashboard');
        Route::get('/adminusers', 'AdminUserController@index')->name('admin.users');
        Route::post('/add/admin', 'AdminUserController@add')->name('admin.add.user');
        Route::get('/view/{id}/admin', 'AdminUserController@view')->name('admin.user.view');
        Route::get('/edit/{id}/admin', 'AdminUserController@edit')->name('admin.user.edit');
        Route::post('update/{id}/admin', 'AdminUserController@update')->name('admin.update.user');
        Route::get('delete/{id}/admin', 'AdminUserController@delete')->name('admin.user.delete');




        Route::get('/coe/dashboard', 'AdminController@coeDashboard')->name('coe.dashboard');

        Route::get('/users', 'AdminController@users')->name('users');
        Route::post('/addusers', 'AdminController@addusers')->name('addusers');
        Route::get('/{id}/show', 'AdminController@show')->name('users.show');
        Route::get('/{id}/edit', 'AdminController@edit')->name('users.edit');
        Route::post('/{id}/edit', 'AdminController@update')->name('users.edit');
        Route::get('/{id}/delete', 'AdminController@delete')->name('users.delete');
        Route::get('/analytics', 'AnalyticsController@index')->name('coi_analytics');
    });

    Route::group(['prefix' => 'groupmanager',], function () {
        Route::get('/division', 'DivisionController@index')->name('groupmanager.index');
        Route::post('/add', 'DivisionController@add')->name('groupmanager.add');


        Route::get('/{id}/groupedit', 'DivisionController@edit')->name('groupmanager.edit');
        Route::post('/{id}/groupedit', 'DivisionController@update')->name('groupmanager.edit');

        Route::get('/{id}/groupdelete', 'DivisionController@delete')->name('groupmanager.delete');
        Route::get('/department', 'DivisionController@department_index')->name('groupmanager.dept.index');
        Route::post('/department', 'DivisionController@department_add')->name('groupmanager.dept.add');

        Route::get('/{id}/edit', 'DivisionController@department_edit')->name('groupmanager.dept.edit');
        Route::post('/{id}/edit', 'DivisionController@department_update')->name('groupmanager.dept.update');

        Route::get('/{id}/delete', 'DivisionController@department_delete')->name('groupmanager.dept.delete');
    });


    Route::group(['prefix' => 'coi',], function () {
        Route::get('/coi', 'CoiController@index')->name('coi.index');
    });

    Route::group(['prefix' => 'annex',], function () {
        Route::get('/annex', 'AnnexController@index')->name('annex.index');
        Route::get('/{id}/viewcoi', 'AnnexController@viewcoi')->name('view.coi.annex');
        Route::get('{id}/download', 'AnnexController@pdfmake')->name('download.coi.annex');
    });



    Route::group(['prefix' => 'helpdesk',], function () {
        Route::get('/', 'HelpdeskController@adminindex')->name('admin.helpdesk.index');
        Route::get('/view/{id}/helpdesk', 'HelpdeskController@adminviewhelp')->name('admin.helpdesk.view');
        Route::post('/post/{helpid}/response/{id}', 'HelpdeskController@adminresponse')->name('admin.helpdesk.post');
        Route::get('/accessrequest', 'HelpdeskController@accessrequestindex')->name('admin.helpdesk.access.index');
        Route::post('update/{id}/accessrequest', 'HelpdeskController@postaccess')->name('admin.helpdesk.access.post');
    });




    Route::group(['prefix' => 'assessment',], function () {
        Route::get('/with-possible-conflict', 'AssessmentController@withconflictindex')->name('assess.withconflict.index');
        Route::get('/assess/{id}/coi', 'AssessmentController@assessconflict')->name('assess.conflict');
        Route::post('submit/{id}/review', 'AssessmentController@postrreview')->name('assess.post.review');
        Route::get('coi-no-conflicts', 'AssessmentController@noclonflict')->name('assess.withcoutonflict.index');
        Route::get('/none-participants', 'AssessmentController@nonepart')->name('assess.nopart.index');
        Route::get('assess/{id}/without-conflict', 'AssessmentController@assesswoconflict')->name('assess.withoutconflict');

        Route::get('/showassess/report', 'AssessmentController@showassessreport')->name('assess.report.assess.index');
        Route::get('/showassess/momo/report', 'AssessmentController@showassessreportt')->name('assess.report.assess.indexx');
        Route::get('/show/gd_high', 'AssessmentController@gd_high')->name('assess.report.assess.gdhigh');
        Route::get('/show/gd_medium', 'AssessmentController@gd_medium')->name('assess.report.assess.gdmedium');

        Route::get('/momodeclaration/conflicts', 'AssessmentController@momodec')->name('assess.withconflict.momodec');
        Route::get('/assessment/summary', 'AssessmentController@summary')->name('assess.summary');
    });
    Route::group(['prefix' => 'report',], function () {



        Route::get('/view/{id}/division/report', 'ReportController@viewdivisionreport')->name('view.division.report');
        Route::get('/view/{id}/depart/report', 'ReportController@viewdepartreport')->name('view.department.report');
        Route::get('/view/{id}/level/report', 'ReportController@viewlevelreport')->name('view.level.report');
        Route::get('/allpersonnel/report', 'ReportController@allreport')->name('report.groupmanager.all.index');

        // profile
        Route::get('profile', 'AdminController@profile')->name('admin.profile');
        Route::post('updateprofile', 'AdminController@updateprofile')->name('admin.profile.update');

        Route::get('/division-report', 'ReportController@index')->name('report.groupmanager.index');
        Route::get('/department-report', 'ReportController@deptindex')->name('report.groupmanager.dept.index');
        Route::get('/{div}/download-division', 'ReportController@divisionreport')->name('download.groupmanager.report');
        Route::get('/{dept}/download-department', 'ReportController@departmentreport')->name('download.groupmanager.deptreport');
        Route::get('/level-report', 'ReportController@levelreport')->name('report.groupmanager.level.index');
        Route::get('/download-level/{level}', 'ReportController@levelreportdwn')->name('download.groupmanager.report.level');

        // coe report?
        Route::get('coe/division/report', 'CoeReportController@division')->name('report.coe.division');
        Route::get('/view/{name}/coe/division/report', 'CoeReportController@viewdivisionreport')->name('view.coe.division.report');

        Route::get('/coe/department/report', 'CoeReportController@department')->name('report.coe.department');
        Route::get('/view/{name}/coe/department/report', 'CoeReportController@viewdepartmentreport')->name('view.coe.department.report');

        Route::get('/coe/level/report', 'CoeReportController@level')->name('report.coe.level');
        Route::get('/view/{name}/coe/level/report', 'CoeReportController@viewlevelreport')->name('view.coe.level.report');

        Route::get('/all/coe/personnel/report', 'CoeReportController@allpersonnel')->name('report.coe.all.personnel');


        Route::get('coe/table/agreement', 'CoeFormController@index')->name('coe.table');

        Route::get('coe/agreement/show/{id}', 'CoeFormController@show')->name('coe.show');
        Route::get('coe/agreement/download/{id}', 'CoeFormController@downloadShowView')->name('coe.download');



// lsdkfhsskh


    });



    //Analytics
    Route::get('/analytics', function () {
        return view('admin.analytics.analytics');
    })->middleware(['admin'])->name('analytics');

    Route::get('/annexure/breakdown', function () {
        return view('admin.analytics.breakdown');
    })->middleware(['admin'])->name('analytics.annexure.breakdown');

    Route::get('/annexure/declaration/breakdown', function () {
        return view('admin.analytics.declaration');
    })->middleware(['admin'])->name('analytics.annexure.declaration');


    Route::get('/get_not_started', 'AdminController@notstarted')->name('get_not_started');

    Route::get('/totalstarted', 'AdminController@getstarted')->name('totalstarted');

    Route::get('/getcompleted', 'AdminController@getcompleted')->name('getcompleted');

    Route::get('/audit/trails', 'AdminController@audittrails')->name('audit.trails');

    Route::get('coe_pending', 'AdminController@getCoEPending')->name('getcoepending');

    Route::get('coe_completed', 'AdminController@getCoECompleted')->name('getcoecompleted');
});
