KUJUNTI.ID MINISH3LL
Path : /var/www/html/thb_loan_system/app/Http/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/thb_loan_system/app/Http/routes.php


<?php


/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
//route model binding
Route::model('custom_field', 'App\Http\Controllers\App\Models\CustomField');
Route::model('borrower', 'App\Http\Controllers\App\Models\Borrower');
Route::model('setting', 'App\Http\Controllers\App\Models\Setting');
Route::model('status', 'App\Http\Controllers\App\Models\LoanStatus');
Route::model('loan_comment', 'App\Http\Controllers\App\Models\LoanComment');
Route::model('loan_disbursed_by', 'App\Http\Controllers\App\Models\LoanDisbursedBy');
Route::model('loan_product', 'App\Http\Controllers\App\Models\LoanProduct');
Route::model('loan_fee', 'App\Http\Controllers\App\Models\LoanFee');
Route::model('repayment', 'App\Http\Controllers\App\Models\LoanRepayment');
Route::model('loan', 'App\Http\Controllers\App\Models\Loan');
Route::model('user', 'App\Http\Controllers\App\Models\User');
Route::model('expense', 'App\Http\Controllers\App\Models\Expense');
Route::model('expense_type', 'App\Http\Controllers\App\Models\ExpenseType');
Route::model('collateral', 'App\Http\Controllers\App\Models\Collateral');
Route::model('collateral_type', 'App\Http\Controllers\App\Models\CollateralType');
Route::model('other_income', 'App\Http\Controllers\App\Models\OtherIncome');
Route::model('other_income_type', 'App\Http\Controllers\App\Models\OtherIncomeType');
Route::model('payroll', 'App\Http\Controllers\App\Models\Payroll');
Route::model('loan_repayment_method', 'App\Http\Controllers\App\Models\LoanRepaymentMethod');
Route::model('permission', 'App\Http\Controllers\App\Models\Permission');
Route::model('loan_application', 'App\Http\Controllers\App\Models\LoanApplication');
Route::model('saving', 'App\Http\Controllers\App\Models\Saving');
Route::model('savings_product', 'App\Http\Controllers\App\Models\SavingProduct');
Route::model('savings_fee', 'App\Http\Controllers\App\Models\SavingFee');
Route::model('savings_transaction', 'App\Http\Controllers\App\Models\SavingTransaction');
Route::model('asset', 'App\Http\Controllers\App\Models\Asset');
Route::model('asset_type', 'App\Http\Controllers\App\Models\AssetType');
Route::model('asset_valuation', 'App\Http\Controllers\App\Models\AssetValuation');
Route::model('capital', 'App\Http\Controllers\App\Models\Capital');
Route::model('guarantor', 'App\Http\Controllers\App\Models\Guarantor');
Route::model('borrower_group', 'App\Http\Controllers\App\Models\BorrowerGroup');
Route::model('provision', 'App\Http\Controllers\App\Models\ProvisionRate');
Route::model('bank', 'App\Http\Controllers\App\Models\BankAccount');
Route::model('branch', 'App\Http\Controllers\App\Models\Branch');
Route::model('sms_gateway', 'App\Http\Controllers\App\Models\SmsGateway');
Route::model('product', 'App\Http\Controllers\App\Models\Product');
Route::model('warehouse', 'App\Http\Controllers\App\Models\Warehouse');
Route::model('product_category', 'App\Http\Controllers\App\Models\ProductCategory');
Route::model('supplier', 'App\Http\Controllers\App\Models\Supplier');
Route::model('product_check_in', 'App\Http\Controllers\App\Models\ProductCheckin');
Route::model('product_check_out', 'App\Http\Controllers\App\Models\ProductCheckout');
Route::model('product_check_in_item', 'App\Http\Controllers\App\Models\ProductCheckinItem');
Route::model('product_check_out_item', 'App\Http\Controllers\App\Models\ProductCheckoutItem');
Route::model('loan_overdue_penalty', 'App\Http\Controllers\App\Models\LoanOverduePenalty');
Route::model('chart_of_account', 'App\Http\Controllers\App\Models\ChartOfAccount');
//route for installation
Route::get('install', 'App\Http\Controllers\InstallController@index');
Route::group(['prefix' => 'install'], function () {
    Route::get('start', 'App\Http\Controllers\InstallController@index');
    Route::get('requirements', 'App\Http\Controllers\InstallController@requirements');
    Route::get('permissions', 'App\Http\Controllers\InstallController@permissions');
    Route::any('database', 'App\Http\Controllers\InstallController@database');
    Route::any('installation', 'App\Http\Controllers\InstallController@installation');
    Route::get('complete', 'App\Http\Controllers\InstallController@complete');

});
//cron route
Route::get('cron', 'App\Http\Controllers\CronController@index');
Route::get('/clear-cache', function () {
    Artisan::call('cache:clear');
    Artisan::call('view:clear');
    Artisan::call('config:clear');
    return redirect('/');

});
Route::get('/config-cache', function () {
    Artisan::call('config:cache');
    return redirect('/');
});
Route::get('/', 'App\Http\Controllers\HomeController@index');
Route::get('login', 'App\Http\Controllers\HomeController@login');
Route::get('client', 'App\Http\Controllers\HomeController@clientLogin');
Route::post('client', 'App\Http\Controllers\HomeController@processClientLogin');
Route::get('client_logout', 'App\Http\Controllers\HomeController@clientLogout');
Route::get('admin', 'App\Http\Controllers\HomeController@adminLogin');

Route::get('logout', 'App\Http\Controllers\HomeController@logout');
Route::post('login', 'App\Http\Controllers\HomeController@processLogin');
Route::post('register', 'App\Http\Controllers\HomeController@register');
Route::post('reset', 'App\Http\Controllers\HomeController@passwordReset');
Route::get('reset/{id}/{code}', 'App\Http\Controllers\HomeController@confirmReset');
Route::post('reset/{id}/{code}', 'App\Http\Controllers\HomeController@completeReset');
Route::get('check/{id}', 'App\Http\Controllers\HomeController@checkStatus');
Route::get('no_branch', [
    'middleware' => 'sentinel',
    function () {
        $error = "You don't have permission to access any branch. Please contact your system administrator.";
        return view('no_branch', compact('error'));
    }
]);
Route::get('dashboard', [
    'middleware' => ['sentinel', 'App\Http\Controllers\branch'],
    function () {
        $loans_released_monthly = array();
        $loan_collections_monthly = array();
        $date = date("Y-m-d");
        $start_date1 = date_format(date_sub(date_create($date),
            date_interval_create_from_date_string('1 years')),
            'Y-m-d');
        $start_date2 = date_format(date_sub(date_create($date),
            date_interval_create_from_date_string('1 years')),
            'Y-m-d');
        for ($i = 1; $i < 14; $i++) {
            $d = explode('-', $start_date1);
            $amount = 0;
            foreach (\App\Models\Loan::where('branch_id', session('branch_id'))->where('year', $d[0])->where('month',
                $d[1])->whereIn('status', ['disbursed', 'App\Http\Controllers\closed', 'App\Http\Controllers\written_off'])->get() as $key) {
                $amount = $amount + \App\Helpers\GeneralHelper::loan_total_principal($key->id);
            }
            if ($i == 1 or $i == 13) {
                $ext = ' ' . $d[0];
            } else {
                $ext = '';
            }
            array_push($loans_released_monthly, array(
                'month' => date_format(date_create($start_date1),
                    'M' . $ext),
                'amount' => $amount

            ));
            //add 1 month to start date
            $start_date1 = date_format(date_add(date_create($start_date1),
                date_interval_create_from_date_string('1 months')),
                'Y-m-d');
        }
        for ($i = 1; $i < 14; $i++) {
            $d = explode('-', $start_date2);
            $payments = 0;
            $expected = 0;
            foreach (\App\Models\LoanRepayment::where('branch_id', session('branch_id'))->where('year',
                $d[0])->where('month',
                $d[1])->get() as $key) {
                if (!empty($key->loan)) {
                    if ($key->loan->status == 'disbursed' || $key->loan->status == 'written_off' || $key->loan->status == 'closed') {
                        $payments = $payments + $key->amount;
                    }
                }
            }
            foreach (\App\Models\LoanSchedule::where('branch_id', session('branch_id'))->where('year',
                $d[0])->where('month',
                $d[1])->get() as $key) {
                $expected = $expected + $key->principal + $key->interest + $key->fees + $key->penalty;
            }
            $ext = ' ' . $d[0];
            array_push($loan_collections_monthly, array(
                'month' => date_format(date_create($start_date2),
                    'M' . $ext),
                'payments' => round($payments),
                'expected' => round($expected)

            ));
            //add 1 month to start date
            $start_date2 = date_format(date_add(date_create($start_date2),
                date_interval_create_from_date_string('1 months')),
                'Y-m-d');
        }
        //daily users
        $loan_statuses = [];
        array_push($loan_statuses, array(
            'label' => translate('pending'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\pending')->count(),
            'color' => "#FF8A65",
            'highlight' => "#FF8A65",
            'link' => url('loan/data?status=pending'),
            'class' => "warning-300",

        ));
        array_push($loan_statuses, array(
            'label' => translate('approved'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\approved')->count(),
            'color' => "#64B5F6",
            'highlight' => "#64B5F6",
            'link' => url('loan/data?status=approved'),
            'class' => "primary-300",

        ));

        array_push($loan_statuses, array(
            'label' => translate('disbursed'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\disbursed')->count(),
            'color' => "#1565C0",
            'highlight' => "#1565C0",
            'link' => url('loan/data?status=disbursed'),
            'class' => "primary-800",

        ));
        array_push($loan_statuses, array(
            'label' => translate('rescheduled'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\rescheduled')->count(),
            'color' => "#00ACC1",
            'highlight' => "#00ACC1",
            'link' => url('loan/data?status=rescheduled'),
            'class' => "info-600",

        ));
        $loan_statuses[] = array(
            'label' => translate('written_off'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\written_off')->count(),
            'color' => "#D32F2F",
            'highlight' => "#D32F2F",
            'link' => url('loan/data?status=written_off'),
            'class' => "danger-700",

        );
        $loan_statuses[] = array(
            'label' => translate('declined'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\declined')->count(),
            'color' => "#EF5350",
            'highlight' => "#EF5350",
            'link' => url('loan/data?status=declined'),
            'class' => "danger-400",

        );
        $loan_statuses[] = array(
            'label' => translate('closed'),
            'value' => \App\Models\Loan::where('status', 'App\Http\Controllers\closed')->count(),
            'color' => "#66BB6A",
            'highlight' => "#66BB6A",
            'link' => url('loan/data?status=closed'),
            'class' => "success-400",

        );

        $loan_statuses = json_encode($loan_statuses);
        $loans_released_monthly = json_encode($loans_released_monthly);
        $loan_collections_monthly = json_encode($loan_collections_monthly);
        //test mpesa here


        return view('dashboard', compact('loans_released_monthly', 'App\Http\Controllers\loan_collections_monthly', 'App\Http\Controllers\loan_statuses'));
    }
]);
//route for custom fields
Route::group(['prefix' => 'custom_field'], function () {

    Route::get('data', 'App\Http\Controllers\CustomFieldController@index');
    Route::get('create', 'App\Http\Controllers\CustomFieldController@create');
    Route::post('store', 'App\Http\Controllers\CustomFieldController@store');
    Route::get('{custom_field}/show', 'App\Http\Controllers\CustomFieldController@show');
    Route::get('{custom_field}/edit', 'App\Http\Controllers\CustomFieldController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\CustomFieldController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\CustomFieldController@delete');

});
//route for borrowers
Route::group(['prefix' => 'borrower'], function () {

    Route::get('data', 'App\Http\Controllers\BorrowerController@index');
    Route::get('pending', 'App\Http\Controllers\BorrowerController@pending');
    Route::get('create', 'App\Http\Controllers\BorrowerController@create');
    Route::post('store', 'App\Http\Controllers\BorrowerController@store');
    Route::get('{borrower}/show', 'App\Http\Controllers\BorrowerController@show');
    Route::get('{borrower}/edit', 'App\Http\Controllers\BorrowerController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\BorrowerController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\BorrowerController@delete');
    Route::get('{id}/approve', 'App\Http\Controllers\BorrowerController@approve');
    Route::get('{id}/decline', 'App\Http\Controllers\BorrowerController@decline');
    Route::get('{id}/delete_file', 'App\Http\Controllers\BorrowerController@deleteFile');
    Route::get('{id}/blacklist', 'App\Http\Controllers\BorrowerController@blacklist');
    Route::get('{id}/unblacklist', 'App\Http\Controllers\BorrowerController@unBlacklist');
    //borrower group
    Route::get('group/data', 'App\Http\Controllers\BorrowerGroupController@index');
    Route::get('group/create', 'App\Http\Controllers\BorrowerGroupController@create');
    Route::post('group/store', 'App\Http\Controllers\BorrowerGroupController@store');
    Route::get('group/{borrower_group}/show', 'App\Http\Controllers\BorrowerGroupController@show');
    Route::get('group/{borrower_group}/edit', 'App\Http\Controllers\BorrowerGroupController@edit');
    Route::post('group/{id}/update', 'App\Http\Controllers\BorrowerGroupController@update');
    Route::get('group/{id}/delete', 'App\Http\Controllers\BorrowerGroupController@delete');
    Route::post('group/{id}/add_borrower', 'App\Http\Controllers\BorrowerGroupController@addBorrower');
    Route::get('group/{id}/remove_borrower', 'App\Http\Controllers\BorrowerGroupController@removeBorrower');
});
//route for guarantors
Route::group(['prefix' => 'guarantor'], function () {

    Route::get('data', 'App\Http\Controllers\GuarantorController@index');
    Route::get('pending', 'App\Http\Controllers\GuarantorController@pending');
    Route::get('create', 'App\Http\Controllers\GuarantorController@create');
    Route::post('store', 'App\Http\Controllers\GuarantorController@store');
    Route::get('{guarantor}/show', 'App\Http\Controllers\GuarantorController@show');
    Route::get('{guarantor}/edit', 'App\Http\Controllers\GuarantorController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\GuarantorController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\GuarantorController@delete');

});

Route::get('update',
    function () {
        \Illuminate\Support\Facades\Artisan::call('migrate');
        \Laracasts\Flash\Flash::success("Successfully Updated");
        return redirect('/');
    });
Route::group(['prefix' => 'update'], function () {
    Route::get('download', 'App\Http\Controllers\UpdateController@download');
    Route::get('install', 'App\Http\Controllers\UpdateController@install');
    Route::get('clean', 'App\Http\Controllers\UpdateController@clean');
    Route::get('finish', 'App\Http\Controllers\UpdateController@finish');
});
Route::get('fix', 'App\Http\Controllers\UpdateController@fix');
Route::get('fix_schedules', 'App\Http\Controllers\UpdateController@fix_schedules');
Route::get('set_default_branch', 'App\Http\Controllers\UpdateController@set_default_branch');
//route for setting
Route::group(['prefix' => 'setting'], function () {
    Route::get('data', 'App\Http\Controllers\SettingController@index');
    Route::post('update', 'App\Http\Controllers\SettingController@update');
    Route::get('update_system', 'App\Http\Controllers\SettingController@updateSystem');
});
//route for user
Route::group(['prefix' => 'user'], function () {
    Route::get('data', 'App\Http\Controllers\UserController@index');
    Route::get('create', 'App\Http\Controllers\UserController@create');
    Route::post('store', 'App\Http\Controllers\UserController@store');
    Route::get('{user}/edit', 'App\Http\Controllers\UserController@edit');
    Route::get('{user}/show', 'App\Http\Controllers\UserController@show');
    Route::post('{id}/update', 'App\Http\Controllers\UserController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\UserController@delete');
    Route::get('profile', 'App\Http\Controllers\UserController@profile');
    Route::post('profile', 'App\Http\Controllers\UserController@profileUpdate');
    //manage permissions
    Route::get('permission/data', 'App\Http\Controllers\UserController@indexPermission');
    Route::get('permission/create', 'App\Http\Controllers\UserController@createPermission');
    Route::post('permission/store', 'App\Http\Controllers\UserController@storePermission');
    Route::get('permission/{permission}/edit', 'App\Http\Controllers\UserController@editPermission');
    Route::post('permission/{id}/update', 'App\Http\Controllers\UserController@updatePermission');
    Route::get('permission/{id}/delete', 'App\Http\Controllers\UserController@deletePermission');
    //manage roles
    Route::get('role/data', 'App\Http\Controllers\UserController@indexRole');
    Route::get('role/create', 'App\Http\Controllers\UserController@createRole');
    Route::post('role/store', 'App\Http\Controllers\UserController@storeRole');
    Route::get('role/{id}/edit', 'App\Http\Controllers\UserController@editRole');
    Route::post('role/{id}/update', 'App\Http\Controllers\UserController@updateRole');
    Route::get('role/{id}/delete', 'App\Http\Controllers\UserController@deleteRole');
});
//route for loans
Route::group(['prefix' => 'loan'], function () {
    //main loan routes
    Route::get('data', 'App\Http\Controllers\LoanController@index');
    Route::get('pending_approval', 'App\Http\Controllers\LoanController@pendingApproval');
    Route::get('pending_disbursement', 'App\Http\Controllers\LoanController@pendingDisbursement');
    Route::get('declined', 'App\Http\Controllers\LoanController@declined');
    Route::get('withdrawn', 'App\Http\Controllers\LoanController@withdrawn');
    Route::get('written_off', 'App\Http\Controllers\LoanController@writtenOff');
    Route::get('closed', 'App\Http\Controllers\LoanController@closed');
    Route::get('pending_reschedule', 'App\Http\Controllers\LoanController@pendingReschedule');
    Route::get('{id}/reschedule', 'App\Http\Controllers\LoanController@reschedule');
    Route::post('{id}/reschedule/store', 'App\Http\Controllers\LoanController@rescheduleStore');
    Route::post('{id}/approve', 'App\Http\Controllers\LoanController@approve');
    Route::get('{id}/unapprove', 'App\Http\Controllers\LoanController@unapprove');
    Route::post('{id}/decline', 'App\Http\Controllers\LoanController@decline');
    Route::post('{loan}/disburse', 'App\Http\Controllers\LoanController@disburse');
    Route::get('{id}/undisburse', 'App\Http\Controllers\LoanController@undisburse');
    Route::post('{id}/withdraw', 'App\Http\Controllers\LoanController@withdraw');
    Route::post('{id}/write_off', 'App\Http\Controllers\LoanController@write_off');
    Route::post('{id}/reschedule', 'App\Http\Controllers\LoanController@reschedule');
    Route::get('{id}/unwithdraw', 'App\Http\Controllers\LoanController@unwithdraw');
    Route::get('{id}/unwrite_off', 'App\Http\Controllers\LoanController@unwrite_off');
    Route::get('create', 'App\Http\Controllers\LoanController@create');
    Route::post('store', 'App\Http\Controllers\LoanController@store');
    Route::get('{loan}/edit', 'App\Http\Controllers\LoanController@edit');
    Route::get('{loan}/show', 'App\Http\Controllers\LoanController@show');
    Route::any('{loan}/override', 'App\Http\Controllers\LoanController@override');
    Route::post('{id}/update', 'App\Http\Controllers\LoanController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\LoanController@delete');
    Route::get('{id}/delete_file', 'App\Http\Controllers\LoanController@deleteFile');
    Route::get('{loan}/loan_statement/print', 'App\Http\Controllers\LoanController@printLoanStatement');
    Route::get('{loan}/loan_statement/pdf', 'App\Http\Controllers\LoanController@pdfLoanStatement');
    Route::get('{loan}/loan_statement/email', 'App\Http\Controllers\LoanController@emailLoanStatement');
    Route::get('{borrower}/borrower_statement/print', 'App\Http\Controllers\LoanController@printBorrowerStatement');
    Route::get('{borrower}/borrower_statement/pdf', 'App\Http\Controllers\LoanController@pdfBorrowerStatement');
    Route::get('{borrower}/borrower_statement/email', 'App\Http\Controllers\LoanController@emailBorrowerStatement');
    //loan repayment routes
    Route::get('{loan}/repayment/data', 'App\Http\Controllers\LoanController@indexRepayment');
    Route::get('{loan}/repayment/create', 'App\Http\Controllers\LoanController@createRepayment');
    Route::post('{loan}/repayment/store', 'App\Http\Controllers\LoanController@storeRepayment');
    Route::get('{loan}/repayment/{repayment}/edit', 'App\Http\Controllers\LoanController@editRepayment');
    Route::get('{loan}/repayment/show', 'App\Http\Controllers\LoanController@showRepayment');
    Route::post('{loan}/repayment/{id}/update', 'App\Http\Controllers\LoanController@updateRepayment');
    Route::get('{loan}/repayment/{repayment}/pdf', 'App\Http\Controllers\LoanController@pdfRepayment');
    Route::get('{loan}/repayment/{repayment}/email', 'App\Http\Controllers\LoanController@emailRepayment');
    Route::get('{loan}/repayment/{repayment}/print', 'App\Http\Controllers\LoanController@printRepayment');
    Route::get('{loan}/repayment/{id}/delete', 'App\Http\Controllers\LoanController@deleteRepayment');
    //comment routes
    Route::get('loan_comment/data', 'App\Http\Controllers\LoanCommentController@index');
    Route::get('{id}/loan_comment/create', 'App\Http\Controllers\LoanCommentController@create');
    Route::post('{id}/loan_comment/store', 'App\Http\Controllers\LoanCommentController@store');
    Route::get('{id}/loan_comment/{loan_comment}/edit', 'App\Http\Controllers\LoanCommentController@edit');
    Route::get('{id}/loan_comment/{loan_comment}/show', 'App\Http\Controllers\LoanCommentController@show');
    Route::post('{id}/loan_comment/{cid}/update', 'App\Http\Controllers\LoanCommentController@update');
    Route::get('{id}/loan_comment/{cid}/delete', 'App\Http\Controllers\LoanCommentController@delete');
    //status routes
    Route::get('loan_status/data', 'App\Http\Controllers\LoanStatusController@index');
    Route::get('loan_status/create', 'App\Http\Controllers\LoanStatusController@create');
    Route::post('loan_status/store', 'App\Http\Controllers\LoanStatusController@store');
    Route::get('loan_status/{loan_status}/edit', 'App\Http\Controllers\LoanStatusController@edit');
    Route::get('loan_status/{loan_status}/show', 'App\Http\Controllers\LoanStatusController@show');
    Route::post('loan_status/{id}/update', 'App\Http\Controllers\LoanStatusController@update');
    Route::get('loan_status/{id}/delete', 'App\Http\Controllers\LoanStatusController@delete');
    //routes for disbursed by
    Route::get('loan_disbursed_by/data', 'App\Http\Controllers\LoanDisbursedByController@index');
    Route::get('loan_disbursed_by/create', 'App\Http\Controllers\LoanDisbursedByController@create');
    Route::post('loan_disbursed_by/store', 'App\Http\Controllers\LoanDisbursedByController@store');
    Route::get('loan_disbursed_by/{loan_disbursed_by}/edit', 'App\Http\Controllers\LoanDisbursedByController@edit');
    Route::get('loan_disbursed_by/{loan_disbursed_by}/show', 'App\Http\Controllers\LoanDisbursedByController@show');
    Route::post('loan_disbursed_by/{id}/update', 'App\Http\Controllers\LoanDisbursedByController@update');
    Route::get('loan_disbursed_by/{id}/delete', 'App\Http\Controllers\LoanDisbursedByController@delete');
    //routes for repayment method
    Route::get('loan_repayment_method/data', 'App\Http\Controllers\LoanRepaymentMethodController@index');
    Route::get('loan_repayment_method/create', 'App\Http\Controllers\LoanRepaymentMethodController@create');
    Route::post('loan_repayment_method/store', 'App\Http\Controllers\LoanRepaymentMethodController@store');
    Route::get('loan_repayment_method/{loan_repayment_method}/edit', 'App\Http\Controllers\LoanRepaymentMethodController@edit');
    Route::get('loan_repayment_method/{loan_repayment_method}/show', 'App\Http\Controllers\LoanRepaymentMethodController@show');
    Route::post('loan_repayment_method/{id}/update', 'App\Http\Controllers\LoanRepaymentMethodController@update');
    Route::get('loan_repayment_method/{id}/delete', 'App\Http\Controllers\LoanRepaymentMethodController@delete');
    //routes for loan product
    Route::get('loan_product/data', 'App\Http\Controllers\LoanProductController@index');
    Route::get('loan_product/create', 'App\Http\Controllers\LoanProductController@create');
    Route::post('loan_product/store', 'App\Http\Controllers\LoanProductController@store');
    Route::get('loan_product/{loan_product}/edit', 'App\Http\Controllers\LoanProductController@edit');
    Route::get('loan_product/{loan_product}/show', 'App\Http\Controllers\LoanProductController@show');
    Route::post('loan_product/{id}/update', 'App\Http\Controllers\LoanProductController@update');
    Route::get('loan_product/{id}/delete', 'App\Http\Controllers\LoanProductController@delete');
    //route for managing schedules
    Route::get('{loan}/schedule/edit', 'App\Http\Controllers\LoanController@editSchedule');
    Route::post('{loan}/schedule/update', 'App\Http\Controllers\LoanController@updateSchedule');
    Route::get('{loan}/schedule/print', 'App\Http\Controllers\LoanController@printSchedule');
    Route::get('{loan}/schedule/pdf', 'App\Http\Controllers\LoanController@pdfSchedule');
    Route::get('{loan}/schedule/email', 'App\Http\Controllers\LoanController@emailLoanSchedule');
    //routes for repayment method
    Route::get('loan_fee/data', 'App\Http\Controllers\LoanFeeController@index');
    Route::get('loan_fee/create', 'App\Http\Controllers\LoanFeeController@create');
    Route::post('loan_fee/store', 'App\Http\Controllers\LoanFeeController@store');
    Route::get('loan_fee/{loan_fee}/edit', 'App\Http\Controllers\LoanFeeController@edit');
    Route::get('loan_fee/{loan_fee}/show', 'App\Http\Controllers\LoanFeeController@show');
    Route::post('loan_fee/{id}/update', 'App\Http\Controllers\LoanFeeController@update');
    Route::get('loan_fee/{id}/delete', 'App\Http\Controllers\LoanFeeController@delete');
    //routes for repayment method
    Route::get('loan_overdue_penalty/data', 'App\Http\Controllers\LoanOverduePenaltyController@index');
    Route::get('loan_overdue_penalty/create', 'App\Http\Controllers\LoanOverduePenaltyController@create');
    Route::post('loan_overdue_penalty/store', 'App\Http\Controllers\LoanOverduePenaltyController@store');
    Route::get('loan_overdue_penalty/{loan_overdue_penalty}/edit', 'App\Http\Controllers\LoanOverduePenaltyController@edit');
    Route::get('loan_overdue_penalty/{loan_overdue_penalty}/show', 'App\Http\Controllers\LoanOverduePenaltyController@show');
    Route::post('loan_overdue_penalty/{id}/update', 'App\Http\Controllers\LoanOverduePenaltyController@update');
    Route::get('loan_overdue_penalty/{id}/delete', 'App\Http\Controllers\LoanOverduePenaltyController@delete');
    //routes for applications
    Route::get('loan_application/data', 'App\Http\Controllers\LoanController@indexApplication');
    Route::get('loan_application/{id}/decline', 'App\Http\Controllers\LoanController@declineApplication');
    Route::get('loan_application/{id}/approve', 'App\Http\Controllers\LoanController@approveApplication');
    Route::post('loan_application/{id}/store', 'App\Http\Controllers\LoanController@storeApproveApplication');
    //routes for guarantors
    Route::get('{loan}/guarantor/data', 'App\Http\Controllers\GuarantorController@index');
    Route::post('{loan}/guarantor/add', 'App\Http\Controllers\LoanController@add_guarantor');
    Route::get('guarantor/{id}/remove', 'App\Http\Controllers\LoanController@remove_guarantor');

    //loan calculator
    Route::get('loan_calculator/create', 'App\Http\Controllers\LoanController@createLoanCalculator');
    Route::post('loan_calculator/show', 'App\Http\Controllers\LoanController@showLoanCalculator');
    Route::post('loan_calculator/store', 'App\Http\Controllers\LoanController@storeLoanCalculator');
    //routes for provision rates
    Route::get('provision/data', 'App\Http\Controllers\ProvisionRateController@index');
    Route::get('provision/create', 'App\Http\Controllers\ProvisionRateController@create');
    Route::post('provision/store', 'App\Http\Controllers\ProvisionRateController@store');
    Route::get('provision/{provision}/edit', 'App\Http\Controllers\ProvisionRateController@edit');
    Route::get('provision/{provision}/show', 'App\Http\Controllers\ProvisionRateController@show');
    Route::post('provision/{id}/update', 'App\Http\Controllers\ProvisionRateController@update');
    Route::get('provision/{id}/delete', 'App\Http\Controllers\ProvisionRateController@delete');
});
//loan repayment list
Route::get('repayment/data', 'App\Http\Controllers\LoanController@indexRepayment');
Route::get('repayment/bulk/create', 'App\Http\Controllers\LoanController@createBulkRepayment');
Route::post('repayment/bulk/store', 'App\Http\Controllers\LoanController@storeBulkRepayment');
//route for tax
Route::group(['prefix' => 'tax'], function () {
    Route::get('data', 'App\Http\Controllers\TaxController@index');
    Route::get('create', 'App\Http\Controllers\TaxController@create');
    Route::post('store', 'App\Http\Controllers\TaxController@store');
    Route::get('{tax}/edit', 'App\Http\Controllers\TaxController@edit');
    Route::get('{id}/show', 'App\Http\Controllers\TaxController@show');
    Route::post('{id}/update', 'App\Http\Controllers\TaxController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\TaxController@destroy');
});
//route for payroll
Route::group(['prefix' => 'payroll'], function () {
    Route::get('data', 'App\Http\Controllers\PayrollController@index');
    Route::get('create', 'App\Http\Controllers\PayrollController@create');
    Route::post('store', 'App\Http\Controllers\PayrollController@store');
    Route::get('{payroll}/show', 'App\Http\Controllers\PayrollController@show');
    Route::get('{payroll}/edit', 'App\Http\Controllers\PayrollController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\PayrollController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\PayrollController@delete');
    Route::get('getUser/{id}', 'App\Http\Controllers\PayrollController@getUser');
    Route::get('{payroll}/payslip', 'App\Http\Controllers\PayrollController@pdfPayslip');
    Route::get('{user}/data', 'App\Http\Controllers\PayrollController@staffPayroll');
//template
    Route::any('template', 'App\Http\Controllers\PayrollController@indexTemplate');
    Route::get('template/{id}/edit', 'App\Http\Controllers\PayrollController@editTemplate');
    Route::post('template/{id}/update', 'App\Http\Controllers\PayrollController@updateTemplate');
    Route::get('template/{id}/delete_meta', 'App\Http\Controllers\PayrollController@deleteTemplateMeta');
    Route::post('template/{id}/add_row', 'App\Http\Controllers\PayrollController@addTemplateRow');
});
//route for expenses
Route::group(['prefix' => 'expense'], function () {
    Route::get('data', 'App\Http\Controllers\ExpenseController@index');
    Route::get('create', 'App\Http\Controllers\ExpenseController@create');
    Route::post('store', 'App\Http\Controllers\ExpenseController@store');
    Route::get('{expense}/edit', 'App\Http\Controllers\ExpenseController@edit');
    Route::get('{expense}/show', 'App\Http\Controllers\ExpenseController@show');
    Route::post('{id}/update', 'App\Http\Controllers\ExpenseController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\ExpenseController@delete');
    Route::get('{id}/delete_file', 'App\Http\Controllers\ExpenseController@deleteFile');

    //expense types
    Route::get('type/data', 'App\Http\Controllers\ExpenseController@indexType');
    Route::get('type/create', 'App\Http\Controllers\ExpenseController@createType');
    Route::post('type/store', 'App\Http\Controllers\ExpenseController@storeType');
    Route::get('type/{expense_type}/edit', 'App\Http\Controllers\ExpenseController@editType');
    Route::get('type/{expense_type}/show', 'App\Http\Controllers\ExpenseController@showType');
    Route::post('type/{id}/update', 'App\Http\Controllers\ExpenseController@updateType');
    Route::get('type/{id}/delete', 'App\Http\Controllers\ExpenseController@deleteType');
});
//route for other income
Route::group(['prefix' => 'other_income'], function () {
    Route::get('data', 'App\Http\Controllers\OtherIncomeController@index');
    Route::get('create', 'App\Http\Controllers\OtherIncomeController@create');
    Route::post('store', 'App\Http\Controllers\OtherIncomeController@store');
    Route::get('{other_income}/edit', 'App\Http\Controllers\OtherIncomeController@edit');
    Route::get('{other_income}/show', 'App\Http\Controllers\OtherIncomeController@show');
    Route::post('{id}/update', 'App\Http\Controllers\OtherIncomeController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\OtherIncomeController@delete');
    Route::get('{id}/delete_file', 'App\Http\Controllers\OtherIncomeController@deleteFile');
    //income types
    Route::get('type/data', 'App\Http\Controllers\OtherIncomeController@indexType');
    Route::get('type/create', 'App\Http\Controllers\OtherIncomeController@createType');
    Route::post('type/store', 'App\Http\Controllers\OtherIncomeController@storeType');
    Route::get('type/{other_income_type}/edit', 'App\Http\Controllers\OtherIncomeController@editType');
    Route::get('type/{other_income_type}/show', 'App\Http\Controllers\OtherIncomeController@showType');
    Route::post('type/{id}/update', 'App\Http\Controllers\OtherIncomeController@updateType');
    Route::get('type/{id}/delete', 'App\Http\Controllers\OtherIncomeController@deleteType');
});
//route for collateral
Route::group(['prefix' => 'collateral'], function () {
    Route::get('data', 'App\Http\Controllers\CollateralController@index');
    Route::get('{id}/create', 'App\Http\Controllers\CollateralController@create');
    Route::post('{loan}/store', 'App\Http\Controllers\CollateralController@store');
    Route::get('{collateral}/edit', 'App\Http\Controllers\CollateralController@edit');
    Route::get('{collateral}/show', 'App\Http\Controllers\CollateralController@show');
    Route::post('{id}/update', 'App\Http\Controllers\CollateralController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\CollateralController@delete');
    Route::get('{id}/delete_file', 'App\Http\Controllers\CollateralController@deleteFile');
    // types
    Route::get('type/data', 'App\Http\Controllers\CollateralController@indexType');
    Route::get('type/fix/create', 'App\Http\Controllers\CollateralController@createType');
    Route::post('type/fix/store', 'App\Http\Controllers\CollateralController@storeType');
    Route::get('type/{collateral_type}/edit', 'App\Http\Controllers\CollateralController@editType');
    Route::get('type/{collateral_type}/show', 'App\Http\Controllers\CollateralController@showType');
    Route::post('type/{id}/update', 'App\Http\Controllers\CollateralController@updateType');
    Route::get('type/{id}/delete', 'App\Http\Controllers\CollateralController@deleteType');
});
//route for reports
Route::group(['prefix' => 'report'], function () {
    Route::any('cash_flow', 'App\Http\Controllers\ReportController@cash_flow');
    Route::any('profit_loss', 'App\Http\Controllers\ReportController@profit_loss');
    Route::any('collection', 'App\Http\Controllers\ReportController@collection_report');
    Route::any('loan_product', 'App\Http\Controllers\ReportController@loan_product');
    Route::any('balance_sheet', 'App\Http\Controllers\ReportController@balance_sheet');
    Route::any('loan_list', 'App\Http\Controllers\ReportController@loan_list');
    Route::any('loan_balance', 'App\Http\Controllers\ReportController@loan_balance');
    Route::any('loan_arrears', 'App\Http\Controllers\ReportController@loan_arrears');
    Route::any('loan_transaction', 'App\Http\Controllers\ReportController@loan_transaction');
    Route::any('loan_classification', 'App\Http\Controllers\ReportController@loan_classification');
    Route::any('loan_projection', 'App\Http\Controllers\ReportController@loan_projection');
    Route::any('borrower_report', 'App\Http\Controllers\ReportController@borrower_report');

});
//route for communication
Route::group(['prefix' => 'communication'], function () {
    Route::get('email', 'App\Http\Controllers\CommunicationController@indexEmail');
    Route::get('sms', 'App\Http\Controllers\CommunicationController@indexSms');
    Route::get('email/create', 'App\Http\Controllers\CommunicationController@createEmail');
    Route::post('email/store', 'App\Http\Controllers\CommunicationController@storeEmail');
    Route::get('email/{id}/delete', 'App\Http\Controllers\CommunicationController@deleteEmail');
    Route::get('sms/create', 'App\Http\Controllers\CommunicationController@createSms');
    Route::post('sms/store', 'App\Http\Controllers\CommunicationController@storeSms');
    Route::get('sms/{id}/delete', 'App\Http\Controllers\CommunicationController@deleteSms');

});
//routes for clients

Route::get('client_dashboard', 'App\Http\Controllers\ClientController@clientDashboard');
Route::get('client_profile', 'App\Http\Controllers\ClientController@clientProfile');
Route::post('client_register', 'App\Http\Controllers\ClientController@processClientRegister');
Route::post('client_profile', 'App\Http\Controllers\ClientController@processClientProfile');
Route::group(['prefix' => 'client'], function () {
    Route::get('application/data', 'App\Http\Controllers\ClientController@indexApplication');
    Route::get('application/create', 'App\Http\Controllers\ClientController@createApplication');
    Route::get('application/{loan_application}/show', 'App\Http\Controllers\ClientController@showApplication');
    Route::get('application/{loan_application}/guarantor/create', 'App\Http\Controllers\ClientController@createGuarantor');
    Route::post('application/{loan_application}/guarantor/store', 'App\Http\Controllers\ClientController@storeGuarantor');
    Route::post('application/store', 'App\Http\Controllers\ClientController@storeApplication');
    Route::get('guarantor/data', 'App\Http\Controllers\ClientController@indexGuarantor');
    Route::get('guarantor/{id}/decline', 'App\Http\Controllers\ClientController@declineGuarantor');
    Route::post('guarantor/{id}/accept', 'App\Http\Controllers\ClientController@acceptGuarantor');
    Route::get('loan/{loan}/show', 'App\Http\Controllers\ClientController@showLoan');
    Route::get('loan/{loan}/pay', 'App\Http\Controllers\ClientController@pay');
    Route::post('loan/{loan}/pay/paynow', 'App\Http\Controllers\ClientController@paynow');
    Route::post('loan/{loan}/pay/stripe', 'App\Http\Controllers\ClientController@stripe');
    Route::any('loan/{loan}/pay/paynow/return', 'App\Http\Controllers\ClientController@paynowReturn');
    Route::any('loan/{loan}/pay/paynow/result', 'App\Http\Controllers\ClientController@paynowResult');
    Route::any('loan/{loan}/pay/paypal/done', 'App\Http\Controllers\ClientController@paypalDone');
    Route::any('loan/pay/paypal/ipn', 'App\Http\Controllers\ClientController@paypalIPN');
    Route::get('saving/show', 'App\Http\Controllers\ClientController@showSaving');
    Route::get('saving/{saving}/statement/print', 'App\Http\Controllers\ClientController@printSavingStatement');
    Route::get('saving/{saving}/statement/pdf', 'App\Http\Controllers\ClientController@pdfSavingStatement');
    Route::get('saving/{saving}/pay', 'App\Http\Controllers\ClientController@paySaving');
    Route::post('saving/{saving}/pay/paynow', 'App\Http\Controllers\ClientController@paynowSaving');
    Route::post('saving/{saving}/pay/stripe', 'App\Http\Controllers\ClientController@stripeSaving');
    Route::any('saving/{saving}/pay/paynow/return', 'App\Http\Controllers\ClientController@paynowReturnSaving');
    Route::any('saving/{saving}/pay/paynow/result', 'App\Http\Controllers\ClientController@paynowResultSaving');
    Route::any('saving/{saving}/pay/paypal/done', 'App\Http\Controllers\ClientController@paypalDoneSaving');
    Route::any('saving/pay/paypal/ipn', 'App\Http\Controllers\ClientController@paypalIPNSaving');
});
//route for savings
Route::group(['prefix' => 'saving'], function () {
    Route::get('data', 'App\Http\Controllers\SavingController@index');
    Route::get('create', 'App\Http\Controllers\SavingController@create');
    Route::post('store', 'App\Http\Controllers\SavingController@store');
    Route::get('{saving}/edit', 'App\Http\Controllers\SavingController@edit');
    Route::get('{saving}/show', 'App\Http\Controllers\SavingController@show');
    Route::post('{id}/update', 'App\Http\Controllers\SavingController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\SavingController@delete');
    Route::get('{saving}/statement/print', 'App\Http\Controllers\SavingController@printStatement');
    Route::get('{saving}/statement/pdf', 'App\Http\Controllers\SavingController@pdfStatement');
    Route::get('{saving}/transfer/create', 'App\Http\Controllers\SavingController@transfer');
    Route::post('{saving}/transfer/store', 'App\Http\Controllers\SavingController@storeTransfer');
    //saving products
    Route::get('savings_product/data', 'App\Http\Controllers\SavingProductController@index');
    Route::get('savings_product/create', 'App\Http\Controllers\SavingProductController@create');
    Route::post('savings_product/store', 'App\Http\Controllers\SavingProductController@store');
    Route::get('savings_product/{savings_product}/edit', 'App\Http\Controllers\SavingProductController@edit');
    Route::post('savings_product/{id}/update', 'App\Http\Controllers\SavingProductController@update');
    Route::get('savings_product/{id}/delete', 'App\Http\Controllers\SavingProductController@delete');
    //saving fees
    Route::get('savings_fee/data', 'App\Http\Controllers\SavingFeeController@index');
    Route::get('savings_fee/create', 'App\Http\Controllers\SavingFeeController@create');
    Route::post('savings_fee/store', 'App\Http\Controllers\SavingFeeController@store');
    Route::get('savings_fee/{savings_fee}/edit', 'App\Http\Controllers\SavingFeeController@edit');
    Route::post('savings_fee/{id}/update', 'App\Http\Controllers\SavingFeeController@update');
    Route::get('savings_fee/{id}/delete', 'App\Http\Controllers\SavingFeeController@delete');
    //saving transactions
    Route::get('savings_transaction/data', 'App\Http\Controllers\SavingTransactionController@index');
    Route::get('{saving}/savings_transaction/create', 'App\Http\Controllers\SavingTransactionController@create');
    Route::post('{saving}/savings_transaction/store', 'App\Http\Controllers\SavingTransactionController@store');
    Route::get('{saving}/savings_transaction/{savings_transaction}/edit', 'App\Http\Controllers\SavingTransactionController@edit');
    Route::post('{saving}/savings_transaction/{id}/update', 'App\Http\Controllers\SavingTransactionController@update');
    Route::get('{saving}/savings_transaction/{id}/delete', 'App\Http\Controllers\SavingTransactionController@delete');
});
//routes for assets
Route::group(['prefix' => 'asset'], function () {
    Route::get('data', 'App\Http\Controllers\AssetController@index');
    Route::get('create', 'App\Http\Controllers\AssetController@create');
    Route::post('store', 'App\Http\Controllers\AssetController@store');
    Route::get('{asset}/edit', 'App\Http\Controllers\AssetController@edit');
    Route::get('{asset}/show', 'App\Http\Controllers\AssetController@show');
    Route::post('{id}/update', 'App\Http\Controllers\AssetController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\AssetController@delete');
    Route::get('{id}/delete_file', 'App\Http\Controllers\AssetController@deleteFile');

    //expense types
    Route::get('type/data', 'App\Http\Controllers\AssetController@indexType');
    Route::get('type/create', 'App\Http\Controllers\AssetController@createType');
    Route::post('type/store', 'App\Http\Controllers\AssetController@storeType');
    Route::get('type/{asset_type}/edit', 'App\Http\Controllers\AssetController@editType');
    Route::get('type/{asset_type}/show', 'App\Http\Controllers\AssetController@showType');
    Route::post('type/{id}/update', 'App\Http\Controllers\AssetController@updateType');
    Route::get('type/{id}/delete', 'App\Http\Controllers\AssetController@deleteType');
});
//route for capital
Route::group(['prefix' => 'capital'], function () {
    Route::get('data', 'App\Http\Controllers\CapitalController@index');
    Route::get('create', 'App\Http\Controllers\CapitalController@create');
    Route::post('store', 'App\Http\Controllers\CapitalController@store');
    Route::get('{capital}/edit', 'App\Http\Controllers\CapitalController@edit');
    Route::get('{id}/show', 'App\Http\Controllers\CapitalController@show');
    Route::post('{id}/update', 'App\Http\Controllers\CapitalController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\CapitalController@delete');
    //bank accounts
    Route::get('bank/data', 'App\Http\Controllers\BankAccountController@index');
    Route::get('bank/create', 'App\Http\Controllers\BankAccountController@create');
    Route::post('bank/store', 'App\Http\Controllers\BankAccountController@store');
    Route::get('bank/{bank}/edit', 'App\Http\Controllers\BankAccountController@edit');
    Route::get('bank/{id}/show', 'App\Http\Controllers\BankAccountController@show');
    Route::post('bank/{id}/update', 'App\Http\Controllers\BankAccountController@update');
    Route::get('bank/{id}/delete', 'App\Http\Controllers\BankAccountController@delete');
});
Route::get('audit_trail/data', 'App\Http\Controllers\AuditTrailController@index');
//routes branches
Route::group(['prefix' => 'branch'], function () {

    Route::get('data', 'App\Http\Controllers\BranchController@index');
    Route::get('create', 'App\Http\Controllers\BranchController@create');
    Route::post('store', 'App\Http\Controllers\BranchController@store');
    Route::get('{branch}/show', 'App\Http\Controllers\BranchController@show');
    Route::get('{branch}/edit', 'App\Http\Controllers\BranchController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\BranchController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\BranchController@delete');
    Route::get('{id}/delete_file', 'App\Http\Controllers\BranchController@deleteFile');
    Route::post('{id}/add_user', 'App\Http\Controllers\BranchController@addUser');
    Route::get('{id}/remove_user', 'App\Http\Controllers\BranchController@removeUser');
    Route::get('change', 'App\Http\Controllers\BranchController@change');
    Route::post('change', 'App\Http\Controllers\BranchController@updateChange');
});
//routes for sms gateways
Route::group(['prefix' => 'sms_gateway'], function () {

    Route::get('data', 'App\Http\Controllers\SmsGatewayController@index');
    Route::get('create', 'App\Http\Controllers\SmsGatewayController@create');
    Route::post('store', 'App\Http\Controllers\SmsGatewayController@store');
    Route::get('{sms_gateway}/show', 'App\Http\Controllers\SmsGatewayController@show');
    Route::get('{sms_gateway}/edit', 'App\Http\Controllers\SmsGatewayController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\SmsGatewayController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\SmsGatewayController@delete');
});
//route for suppliers
Route::group(['prefix' => 'supplier'], function () {

    Route::get('data', 'App\Http\Controllers\SupplierController@index');
    Route::get('create', 'App\Http\Controllers\SupplierController@create');
    Route::post('store', 'App\Http\Controllers\SupplierController@store');
    Route::get('{supplier}/show', 'App\Http\Controllers\SupplierController@show');
    Route::get('{supplier}/edit', 'App\Http\Controllers\SupplierController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\SupplierController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\SupplierController@delete');

});
//route for warehouses
Route::group(['prefix' => 'warehouse'], function () {

    Route::get('data', 'App\Http\Controllers\WarehouseController@index');
    Route::get('create', 'App\Http\Controllers\WarehouseController@create');
    Route::post('store', 'App\Http\Controllers\WarehouseController@store');
    Route::get('{warehouse}/show', 'App\Http\Controllers\WarehouseController@show');
    Route::get('{warehouse}/edit', 'App\Http\Controllers\WarehouseController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\WarehouseController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\WarehouseController@delete');

});
//route for suppliers
Route::group(['prefix' => 'product'], function () {

    Route::get('data', 'App\Http\Controllers\ProductController@index');
    Route::get('create', 'App\Http\Controllers\ProductController@create');
    Route::post('store', 'App\Http\Controllers\ProductController@store');
    Route::get('{product}/show', 'App\Http\Controllers\ProductController@show');
    Route::get('{product}/edit', 'App\Http\Controllers\ProductController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\ProductController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\ProductController@delete');
//category routes
    Route::get('category/data', 'App\Http\Controllers\ProductCategoryController@index');
    Route::get('category/create', 'App\Http\Controllers\ProductCategoryController@create');
    Route::post('category/store', 'App\Http\Controllers\ProductCategoryController@store');
    Route::get('category/{product_category}/edit', 'App\Http\Controllers\ProductCategoryController@edit');
    Route::get('category/{product_category}/show', 'App\Http\Controllers\ProductCategoryController@show');
    Route::post('category/{id}/update', 'App\Http\Controllers\ProductCategoryController@update');
    Route::get('category/{id}/delete', 'App\Http\Controllers\ProductCategoryController@delete');
});
//routes for check in
Route::group(['prefix' => 'check_in'], function () {

    Route::get('data', 'App\Http\Controllers\ProductCheckinController@index');
    Route::get('create', 'App\Http\Controllers\ProductCheckinController@create');
    Route::post('store', 'App\Http\Controllers\ProductCheckinController@store');
    Route::get('{product_check_in}/show', 'App\Http\Controllers\ProductCheckinController@show');
    Route::get('{product_check_in}/edit', 'App\Http\Controllers\ProductCheckinController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\ProductCheckinController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\ProductCheckinController@delete');
    Route::get('{product}/get_product_data', 'App\Http\Controllers\ProductCheckinController@get_product_data');
    Route::get('payment/data', 'App\Http\Controllers\ProductCheckinController@indexPayment');

});
//routes for check out
Route::group(['prefix' => 'check_out'], function () {

    Route::get('data', 'App\Http\Controllers\ProductCheckoutController@index');
    Route::get('create', 'App\Http\Controllers\ProductCheckoutController@create');
    Route::post('store', 'App\Http\Controllers\ProductCheckoutController@store');
    Route::get('{product_check_out}/show', 'App\Http\Controllers\ProductCheckoutController@show');
    Route::get('{product_check_out}/edit', 'App\Http\Controllers\ProductCheckoutController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\ProductCheckoutController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\ProductCheckoutController@delete');
    Route::any('overview', 'App\Http\Controllers\ProductCheckoutController@overview');

});
//route for chart of accounts
Route::group(['prefix' => 'chart_of_account'], function () {

    Route::get('data', 'App\Http\Controllers\ChartOfAccountController@index');
    Route::get('create', 'App\Http\Controllers\ChartOfAccountController@create');
    Route::post('store', 'App\Http\Controllers\ChartOfAccountController@store');
    Route::get('{chart_of_account}/show', 'App\Http\Controllers\ChartOfAccountController@show');
    Route::get('{chart_of_account}/edit', 'App\Http\Controllers\ChartOfAccountController@edit');
    Route::post('{id}/update', 'App\Http\Controllers\ChartOfAccountController@update');
    Route::get('{id}/delete', 'App\Http\Controllers\ChartOfAccountController@delete');

});
Route::group(['prefix' => 'accounting'], function () {

    Route::any('trial_balance', 'App\Http\Controllers\AccountingController@trial_balance');
    Route::any('ledger', 'App\Http\Controllers\AccountingController@ledger');
    Route::any('journal', 'App\Http\Controllers\AccountingController@journal');
    Route::any('balance_sheet', 'App\Http\Controllers\AccountingController@balance_sheet');
});

© KUJUNTI.ID