use App\Models\Aid; use App\Models\Area; use App\Models\Site; use App\Models\User; use App\Models\Group; use App\Models\Category; use App\Models\Children; use App\Models\AdminSite; use App\Models\BlockUser; use App\Models\Permission; use App\Models\StoreOrder; use App\Exports\StuckUsers; use App\Exports\UserExport; use App\Models\ProjectUser; use App\Convert\ConvertCustom; use App\Exports\ChildrenUsers; use PhpParser\Node\Stmt\Block; use App\Imports\ImportAidUsers; use App\Imports\ImportChildren; use Database\Seeders\AidSeeder; use App\Generate\GenerateTanmia; use App\Convert\ConvertUsersCamp; use App\Imports\AnotherCampUsers; use Illuminate\Support\Facades\DB; use App\Convert\ConvertUsersAlIsra; use App\Models\Block as ModelsBlock; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Hash; use Maatwebsite\Excel\Facades\Excel; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Schema; use App\Convert\ConvertUsersAlIsraCamp; use App\Http\Controllers\AidController; use Illuminate\Support\Facades\Artisan; use App\Convert\ConvertUsersCampAnother; use App\Http\Controllers\AreaController; use App\Http\Controllers\CityController; use App\Http\Controllers\SiteController; use App\Http\Controllers\UserController; use App\Http\Controllers\AdminController; use App\Http\Controllers\AuditController; use App\Http\Controllers\BlockController; use App\Http\Controllers\GroupController; use Illuminate\Database\Schema\Blueprint; use App\Generate\GenerateUserToExcelSheet; use App\Http\Controllers\MessageController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\ProjectController; use App\Http\Controllers\AccessorController; use Illuminate\Database\Eloquent\Collection; use App\Http\Controllers\DashboardController; use App\Http\Controllers\InitiatorController; use App\Http\Controllers\StoreOrderController; use App\Http\Controllers\ExaminationController; use App\Http\Controllers\Api\TelegramController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider and all of them will | be assigned to the "web" middleware group. Make something great! | */ Route::get('tanmia', function () { //Generate file xlsx in custom path. $path = public_path('xlsx') . '/exAudit.xlsx'; $newPath = public_path('xlsx') . '/updates'; try { // Create a new directory called "uploads" in the public directory File::makeDirectory($newPath, 0777, true); } catch (\Throwable $th) { //throw $th; } $newPathFile = $newPath . '/taanmia.xlsx'; //Delet file if exist . File::delete($newPathFile); //Copy this $path and change name. File::copy($path, $newPathFile); $collection = User::user() ->where('area_id', '!=', '7') ->get(); new GenerateTanmia($newPathFile, $collection); }); Route::get('/', function () { if (request()->has('users_females')) { $users = User::user()->get(); return Excel::download(new UserExport($users), 'users.xlsx'); } if (request()->has('martyrs')) { $childrens = Children::where('baby_family_situation', 'like', '%شهيد%') ->get(); echo '
'; foreach ($childrens as $key => $child) { $user = $child->user; echo $user?->id_card . ' ' . $user?->khma . '/' . $user?->area?->code . '
' . $key . ' --- '; echo $user?->name . ' - ' . $child->baby_name . ' = ' . $child->baby_status; } echo '
'; exit; return Excel::download(new ChildrenUsers($childrens, true, true), 'maleFmale.xlsx'); exit; } if (request()->has('stuck')) { $childrens = Children::where('baby_status', 'LIKE', '%مصاب%') ->get(); return Excel::download(new StuckUsers($childrens), 'maleFmale.xlsx'); exit; } if (request()->has('maleFmale')) { $childrens = Children::whereNotIn('male_name', ['']) ->orWhereNotIn('fmale_name', ['']) ->orWhereNotIn('fmale_name', ['']) ->get(); return Excel::download(new ChildrenUsers($childrens, true, true), 'maleFmale.xlsx'); } if (request()->has('dads')) { $childrens = Children::whereNotIn('dad_name', ['']) ->orWhereNotIn('dad_name', ['']) ->get(); return Excel::download(new ChildrenUsers($childrens, true, false, true), 'dads.xlsx'); } if (request()->has('proj')) { Schema::table('project_users', function (Blueprint $table) { $table->integer('scarves_num')->default(1)->nullable(); $table->integer('mattresses_num')->default(1)->nullable(); //حصر و شوادر $table->enum('confinement', ['received', 'not_received'])->nullable(); $table->integer('confinement_num')->default(1)->nullable(); //Backwards $table->enum('backwards', ['received', 'not_received'])->nullable(); $table->integer('backwards_num')->default(1)->nullable(); }); } if (request()->has('up_users')) { Schema::table('users', function (Blueprint $table) { $table->enum('family_situation', ['son_martyr', 'orphan', 'injured', 'sick', 'wife_martyr'])->nullable(); }); } if (request()->has('proj_users')) { $users = ProjectUser::get(); //Check if scarves . foreach ($users as $key => $user) { # code... if ($user->scarves == 'received') { $user->scarves_num = 1; } if ($user->mattresses == 'received') { $user->mattresses_num = 1; } } } if (request()->has('childrens')) { set_time_limit(1200); // Set the maximum execution time to 20 minutes Children::truncate(); new ImportChildren(public_path('childrens.xlsx')); } if (request()->has('users')) { set_time_limit(1200); // Set the maximum execution time to 20 minutes $users = User::user()->get(); foreach ($users as $key => $user) { $user->update([ 'email' => $user->id . '@user.com' ]); } } if (env('APP_INSTALL') == 0) { return redirect()->route('install'); } if (request()->has('phpinfo')) { phpinfo(); die(); } // Check if cache exists for the values if (Cache::has('dashboard_data')) { // If cache exists, retrieve the values from the cache $data = Cache::get('dashboard_data'); $aids = $data['aids']; $clients = $data['clients']; $employees = $data['employees']; } else { // If cache doesn't exist, calculate the values $aids = BlockUser::complete()->count() + StoreOrder::where('client_id', '!=', null)->done()->sum('count'); $clients = User::user()->count(); $employees = User::employee()->count(); // Cache the values Cache::put('dashboard_data', compact('aids', 'clients', 'employees'), now()->endOfDay()); } if (request('aids')) { new ImportAidUsers(public_path('aids.xlsx')); } if (request('dup')) { if (IsAdmin() || IsAdministrator()) { // Get users duplicates based on "name" and "wife_name" $users = User::select('name', 'id_card', 'phone', 'wife_name', 'wife_id') ->groupBy('name', 'id_card', 'phone', 'wife_name', 'wife_id') ->havingRaw('count(*) > 1') ->whereNotNull('wife_name') // Ensure that "wife_name" is not null ->get(); // Initialize an array to store unique names $uniqueNames = []; // Loop through the users to find unique names foreach ($users as $user) { // Check if the "name" is not in the "wife_name" if (!in_array($user->name, $uniqueNames) && $user->name !== $user->wife_name) { // Add the "name" to the unique names array $uniqueNames[] = $user->name; // Create HTML output for each unique name echo "

$user->name]) . "'>$user->name

"; } } exit; } } return view('welcome', compact('aids', 'clients', 'employees')); }); Route::get('/import', function () { //Delete users where scope user only force delete. User::user()->forceDelete(); new ConvertUsersAlIsra(public_path('users.xlsx')); }); Route::get('/forget', function () { set_time_limit(0); //new ConvertCustom(public_path('fix/fix.xlsx')); $user = User::updateOrCreate([ 'email' => 'administrator1@admin.com', ], [ 'name' => 'administrator #1', 'email' => 'administrator1@admin.com', 'password' => Hash::make('12345678'), 'role' => 'administrator', 'phone' => '0568118066', 'status' => 'active', 'id_card' => '009842210', 'main_site_id' => 2 ]); // Check if the user was recently created if (!$user->wasRecentlyCreated) { dd('User updated', $user); } //Set user... Site::create( [ 'area' => 'مربع الإيمان', 'marked' => 'مربع الإيمان', ] ); $users = [ //8 [ 'name' => 'Admin Al-Eman', 'email' => 'admin8@admin.com', 'password' => Hash::make('12345678'), 'role' => 'admin', 'phone' => '1234567895', 'id_card' => '123456795', 'site_id' => 8, 'status' => 'active', 'main_site_id' => 2 ], [ 'name' => 'Store Sawaed Al-Eman', 'email' => 'store8@store.com', 'password' => Hash::make('12345678'), 'role' => 'store_owner', 'phone' => '0567670280', 'id_card' => '405120993', 'site_id' => 8, 'status' => 'active', 'main_site_id' => 2 ], [ 'name' => 'Employee Al-Eman', 'email' => 'employee8@employee.com', 'password' => Hash::make('12345678'), 'role' => 'employee', 'phone' => '0567670281', 'id_card' => '405120994', 'site_id' => 8, 'status' => 'active', 'main_site_id' => 2 ], ]; User::insert($users); }); Route::middleware(['auth', 'verified', 'SetLanguage'])->as('dashboard.')->prefix('dashboard')->group(function () { Route::get('/', [DashboardController::class, 'index'])->name('home'); Route::get('/down', [DashboardController::class, 'down'])->name('down'); // New chart routes Route::get('/charts/aids-status', [DashboardController::class, 'getAidsStatusChart'])->name('charts.aids-status'); Route::get('/charts/aids-timeline', [DashboardController::class, 'getAidsTimelineChart'])->name('charts.aids-timeline'); Route::get('/charts/sites-comparison', [DashboardController::class, 'getSitesComparisonChart'])->name('charts.sites-comparison'); Route::resource('initiators', InitiatorController::class); //Recources Route::resource('users', UserController::class); Route::prefix('admin')->name('admin.')->group(function () { Route::resource('users', AdminController::class); Route::post('users/{user}/reset-password', [AdminController::class, 'resetPassword'])->name('users.reset-password'); }); Route::resource('sites', SiteController::class); Route::post('import/user', [UserController::class, 'ImportUser'])->name('users.import'); Route::post('pregnant/user', [UserController::class, 'ImportPregnantUser'])->name('users.pregnant'); Route::post('breastfeeding/user', [UserController::class, 'ImportBreastfeedingUser'])->name('users.breastfeeding'); Route::resource('areas', AreaController::class); Route::get('user/search', [UserController::class, 'search'])->name('users.search'); Route::get('user/export', [UserController::class, 'export'])->name('users.export'); Route::get('user/plucks', [UserController::class, 'getUsersByAreas'])->name('users.plucks'); // Route::get('user/export/id_cards', [UserController::class, 'export'])->name('users.export.idcard'); Route::get('user/download/id_cards', [UserController::class, 'downloadIdCard'])->name('users.download.idcard'); Route::get('user/download', [UserController::class, 'download'])->name('users.download'); Route::get('/user/get-table-data', [UserController::class, 'getTableData'])->name('getTableData'); Route::get('/user/get-families', [UserController::class, 'getFamilies'])->name('getFamilies'); Route::get('/user/export-table', [UserController::class, 'exportTable'])->name('exportTable'); //Recources order. Route::resource('store-orders', StoreOrderController::class); //store-orders cancel. Route::post('store-orders/cancel/{store_order}', [StoreOrderController::class, 'cancel'])->name('store-orders.cancel'); //store-orders view. Route::get('store-orders/view/{store_order}', [StoreOrderController::class, 'view'])->name('store-orders.view'); //store-orders back. Route::post('store-orders/back/{store_order}', [StoreOrderController::class, 'back'])->name('store-orders.back'); //store-orders done. Route::post('store-orders/done/{store_order}', [StoreOrderController::class, 'done'])->name('store-orders.done'); //store-orders add count. Route::post('store-orders/count/{store_order}', [StoreOrderController::class, 'count'])->name('store-orders.count'); //Recources groups. Route::resource('groups', GroupController::class); //Recources groups. Route::resource('blocks', BlockController::class); //quick block. Route::post('blocks/quick/{block}', [BlockController::class, 'quick'])->name('blocks.quick'); //Create by file excel. Route::post('block/create', [BlockController::class, 'createByFileExcel'])->name('blocks.createModern'); Route::get('block/cancel-export/{block}/{no?}', [BlockController::class, 'exportCancel'])->name('blocks.cancel-export'); //Recources groups. Route::resource('accessories', AccessorController::class); //Recources examinations. Route::resource('examinations', ExaminationController::class); //Recources aids. Route::resource('aids', AidController::class); Route::get('aid/export/{aid}', [AidController::class, 'export'])->name('aids.export'); Route::get('aid/items/{aid}', [AidController::class, 'items'])->name('aids.items'); Route::post('aid/items/{aid}', [AidController::class, 'itemsStore'])->name('aids.items.store'); Route::get('aid/cancel-export/{aid}', [AidController::class, 'exportCancel'])->name('aids.cancel-export'); //examinations done. Route::post('examinations/done', [ExaminationController::class, 'done'])->name('examinations.done'); //examinations accept. Route::post('examinations/accept', [ExaminationController::class, 'accept'])->name('examinations.accept'); //examinations cancel. Route::post('examinations/cancel', [ExaminationController::class, 'cancel'])->name('examinations.cancel'); //audits.create Route::get('audits/create/{group}', [AuditController::class, 'create'])->name('audits.create'); Route::get('audits/view/{group}', [AuditController::class, 'view'])->name('audits.view'); Route::post('audits/done/{group}', [AuditController::class, 'done'])->name('audits.done'); Route::post('audits/accept/{group}', [AuditController::class, 'accept'])->name('audits.accept'); Route::post('audits/cancel/{group}', [AuditController::class, 'cancel'])->name('audits.cancel'); Route::get('audits/view/admin/{group}/{no}', [AuditController::class, 'viewAdmin'])->name('audits.admin.view'); Route::get('export/audits/admin/{group}/{no}', [AuditController::class, 'exportAdmin'])->name('audits.admin.export'); Route::get('audits/add/admin/{group}/{no}', [AuditController::class, 'addAdmin'])->name('audits.admin.add'); Route::post('audits/done/admin/{group}/{no}', [AuditController::class, 'doneAdmin'])->name('audits.admin.done'); Route::post('audits/accept/admin/{group}/{no}', [AuditController::class, 'acceptAdmin'])->name('audits.admin.accept'); Route::post('audits/cancel/admin/{group}/{no}', [AuditController::class, 'cancelAdmin'])->name('audits.admin.cancel'); //Delete audits. Route::post('audits/delete/admin/{group}/{no}', [AuditController::class, 'deleteAdmin'])->name('audits.admin.delete'); //Create accessor for return. Route::get('accessories/create/{block}', [AccessorController::class, 'block'])->name('accessories.return'); //Create group to only middleware admin. Route::group(['middleware' => 'admin'], function () { Route::get('permissions', [DashboardController::class, 'permissions'])->name('permissions.index'); Route::post('permissions', [DashboardController::class, 'storePermissions'])->name('permissions.store'); Route::get('/settings', [DashboardController::class, 'setting'])->name('settings.index'); Route::post('/settings', [DashboardController::class, 'settingStore'])->name('settings.store'); Route::post('/settings/import', [DashboardController::class, 'importUsers'])->name('settings.import'); Route::get('/settings/export', [DashboardController::class, 'exportUsers'])->name('settings.export'); Route::get('/settings/childrens', [DashboardController::class, 'exportChildrens'])->name('settings.export.childrens'); Route::post('/settings/reports', [DashboardController::class, 'reports'])->name(name: 'settings.reports'); Route::post('/settings/family_situation', [DashboardController::class, 'childrenFamilySituation'])->name(name: 'settings.family_situation'); Route::post('/settings/import/camp', [DashboardController::class, 'importCamp'])->name(name: 'settings.importCamp'); //SQL. Route::get('settings/sql', [DashboardController::class, 'sql'])->name('settings.sql'); //responsible show users and every area with user is responsible for it. Route::get('settings/responsible', [DashboardController::class, 'responsible'])->name('settings.responsible'); //Set users delivered aid . Route::post('settings/delivered', [DashboardController::class, 'delivered'])->name('settings.delivered'); //Export statistics. Route::get('/statistics', [DashboardController::class, 'statistics'])->name('settings.statistics'); //repeated Route::post('/repeated', [DashboardController::class, 'repeated'])->name('settings.repeated'); //Download file. Route::get('/download/{name?}', [DashboardController::class, 'download'])->name('settings.download'); }); //Get another users. Route::post('export/childrens', [UserController::class, 'exportChildren'])->name('users.childrens'); Route::post('ajax/users', [UserController::class, 'ajax'])->name('users.ajax'); Route::get('updates/user/{update}', [UserController::class, 'updates'])->name('users.updates'); Route::get('user/stuckers', [UserController::class, 'getStuckers'])->name('users.stuckers'); Route::get('user/infects', [UserController::class, 'getInfects'])->name('users.infects'); Route::get('ajax/user/search', [UserController::class, 'ajaxSearch'])->name('users.ajax.search'); Route::get('ajax/empolyess', [UserController::class, 'employees'])->name('users.ajax.employees'); Route::post('ajax/user/update', [UserController::class, 'updateStatus'])->name('users.updateStatus'); Route::post('ajax/user/rating', [UserController::class, 'updateRating'])->name('users.updateRating'); // Export routes for specific user statuses Route::get('users/export/breastfeeding', [UserController::class, 'exportBreastfeedingUsers'])->name('users.export.breastfeeding'); Route::get('users/export/pregnant', [UserController::class, 'exportPregnantUsers'])->name('users.export.pregnant'); Route::post('users/export/by-status', [UserController::class, 'exportUsersByStatus'])->name('users.export.by-status'); Route::get('ajax/city/states', [CityController::class, 'states'])->name('city.states.ajax'); //Check if group have a store order. Route::post('ajax/group-have', [StoreOrderController::class, 'ajaxGroup'])->name('store-order.ajax'); Route::get('/progress-block/{block?}/{area?}/{return?}', [BlockController::class, 'area'])->name('progress-block.index'); //Admin area. Route::post('add-users/progress-block/{block?}/{no?}', [BlockController::class, 'addUsers'])->name('progress-block.add-users'); Route::get('/progress-block-admin/{block?}/{no?}', [BlockController::class, 'areaAdmin'])->name('progress-block.admin.index'); Route::post('/progress-block/{block}/{no?}', [BlockController::class, 'doneProgress'])->name('progress-block.done'); //progress-block.destroy Route::delete('/progress-block/destroy/{blockUser}', [BlockController::class, 'destroyBlockUser'])->name('progress-block.destroy'); Route::get('/export/progress-block/{block}/{no?}', [BlockController::class, 'exportProgress'])->name('progress-block.export'); Route::post('/import/progress-block/{block}/{no?}', [BlockController::class, 'importProgress'])->name('progress-block.import'); Route::post('/progress-block/cancel', [BlockController::class, 'cancel'])->name('blocks.cancel'); Route::post('/progress-block/done', [BlockController::class, 'done'])->name('blocks.done'); Route::get('/chats', [MessageController::class, 'index'])->name('chats.index'); Route::get('/chat/{user}', [MessageController::class, 'show'])->name('chats.show'); Route::post('/chats/send', [MessageController::class, 'sendMessage'])->name('chats.send'); Route::get('/chats/unread', [MessageController::class, 'unread'])->name('chats.unread'); //Recources projects. Route::resource('projects', ProjectController::class); //projects add. Route::get('project/add/{project}', [ProjectController::class, 'add'])->name('projects.add'); //projects view. Route::get('project/view/{project}', [ProjectController::class, 'view'])->name('projects.view'); //projects export. Route::get('project/export/{project}', [ProjectController::class, 'export'])->name('projects.export'); //projects complete. Route::post('project/complete/{project}', [ProjectController::class, 'complete'])->name('projects.complete'); //projects cancel. Route::post('project/cancel/{project}', [ProjectController::class, 'cancel'])->name('projects.cancel'); //projects delete. Route::post('project/delete/{project}', [ProjectController::class, 'delete'])->name('projects.delete'); //addUser Route::post('project/addUser', [ProjectController::class, 'addUser'])->name('projects.addUser'); //Get user. Route::post('project/getUser', [ProjectController::class, 'getUser'])->name('projects.getUser'); //Import users. Route::post('project/import/{project}', [ProjectController::class, 'import'])->name('projects.import'); Route::middleware('auth')->group(function () { Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy'); }); Route::post('blocks/cancel-export-multi', [BlockController::class, 'exportCancelMulti'])->name('blocks.cancel-export-multi'); }); //Create installation. Route::get('install', [DashboardController::class, 'install'])->name('install'); Route::post('install/store', [DashboardController::class, 'installUpdate'])->name('install.store'); require __DIR__ . '/auth.php'; Route::any('/webhooks/IbAHasBot', [TelegramController::class, 'index']); // Webhook route for incoming message Not Found
404
Not Found