add autocounter
This commit is contained in:
@@ -23,7 +23,9 @@ class IncomingLetterResource extends Resource
|
|||||||
return $form
|
return $form
|
||||||
->schema([
|
->schema([
|
||||||
TextInput::make('number')
|
TextInput::make('number')
|
||||||
->required(),
|
->integer()
|
||||||
|
->required()
|
||||||
|
->default(fn () => getLatestNumber() + 1),
|
||||||
|
|
||||||
TextInput::make('name')
|
TextInput::make('name')
|
||||||
->required(),
|
->required(),
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ class CreateIncomingLetter extends CreateRecord
|
|||||||
|
|
||||||
protected function getRedirectUrl(): string
|
protected function getRedirectUrl(): string
|
||||||
{
|
{
|
||||||
return static::getResource()::getUrl('index');
|
return $this->getResource()::getUrl('index');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
use App\Modules\EmptyModule;
|
use App\Modules\EmptyModule;
|
||||||
use App\Modules\ModuleContract;
|
use App\Modules\ModuleContract;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\File;
|
use Illuminate\Support\Facades\File;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -94,3 +96,29 @@ function temp_cache(string $key = ''): mixed
|
|||||||
? $tempCache->get($key)
|
? $tempCache->get($key)
|
||||||
: cache()->driver('array');
|
: cache()->driver('array');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log
|
||||||
|
*/
|
||||||
|
function logDB(): void
|
||||||
|
{
|
||||||
|
if (! app()->isLocal()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::listen(function ($query) {
|
||||||
|
Log::info($query->sql, $query->bindings, $query->time);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get latest number
|
||||||
|
*
|
||||||
|
* @param string $tableName
|
||||||
|
*/
|
||||||
|
function getLatestNumber(string $tableName = 'incoming_letters', string $column = 'number'): int
|
||||||
|
{
|
||||||
|
$data = DB::table($tableName)->select(DB::raw("MAX(CAST(REGEXP_REPLACE({$column}, '[^0-9]', '') AS UNSIGNED)) AS max_number"))->first();
|
||||||
|
|
||||||
|
return intval($data->max_number) ?? 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ return new class extends Migration
|
|||||||
$table->string('number')->nullable();
|
$table->string('number')->nullable();
|
||||||
$table->string('name')->nullable();
|
$table->string('name')->nullable();
|
||||||
$table->string('main_file')->nullable();
|
$table->string('main_file')->nullable();
|
||||||
|
$table->softDeletes();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace App\Modules\IncomingLetter;
|
|||||||
|
|
||||||
use App\Modules\Makeable;
|
use App\Modules\Makeable;
|
||||||
use App\Modules\ModuleContract;
|
use App\Modules\ModuleContract;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
class IncomingLetterModule implements ModuleContract
|
class IncomingLetterModule implements ModuleContract
|
||||||
{
|
{
|
||||||
use Makeable;
|
use Makeable;
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Module is enabled
|
* Module is enabled
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ return new class extends Migration
|
|||||||
$table->string('number')->nullable();
|
$table->string('number')->nullable();
|
||||||
$table->string('name')->nullable();
|
$table->string('name')->nullable();
|
||||||
$table->string('main_file')->nullable();
|
$table->string('main_file')->nullable();
|
||||||
|
$table->softDeletes();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
Model::shouldBeStrict(! app()->isProduction());
|
Model::shouldBeStrict(! app()->isProduction());
|
||||||
|
|
||||||
$this->registerModules();
|
$this->registerModules();
|
||||||
|
|
||||||
|
// logDB();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user