fixed funzioni aziendali
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Phinx\Migration\AbstractMigration;
|
||||
|
||||
final class AlterScadFunctionsAddContactFields extends AbstractMigration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
if (!$this->hasTable('scad_functions')) {
|
||||
throw new RuntimeException('Table scad_functions does not exist.');
|
||||
}
|
||||
|
||||
$table = $this->table('scad_functions');
|
||||
|
||||
if (!$table->hasColumn('person_full_name')) {
|
||||
$table->addColumn('person_full_name', 'string', [
|
||||
'limit' => 200,
|
||||
'null' => true,
|
||||
'after' => 'description',
|
||||
'comment' => 'Full name and surname of the person assigned to the function',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasColumn('phone')) {
|
||||
$table->addColumn('phone', 'string', [
|
||||
'limit' => 80,
|
||||
'null' => true,
|
||||
'after' => 'person_full_name',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasColumn('email')) {
|
||||
$table->addColumn('email', 'string', [
|
||||
'limit' => 190,
|
||||
'null' => true,
|
||||
'after' => 'phone',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasColumn('notes')) {
|
||||
$table->addColumn('notes', 'text', [
|
||||
'null' => true,
|
||||
'after' => 'email',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasColumn('sort_order')) {
|
||||
$table->addColumn('sort_order', 'integer', [
|
||||
'signed' => false,
|
||||
'null' => false,
|
||||
'default' => 0,
|
||||
'after' => 'status',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasIndexByName('idx_scad_functions_name')) {
|
||||
$table->addIndex(['name'], [
|
||||
'name' => 'idx_scad_functions_name',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasIndexByName('idx_scad_functions_person_full_name')) {
|
||||
$table->addIndex(['person_full_name'], [
|
||||
'name' => 'idx_scad_functions_person_full_name',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasIndexByName('idx_scad_functions_email')) {
|
||||
$table->addIndex(['email'], [
|
||||
'name' => 'idx_scad_functions_email',
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$table->hasIndexByName('idx_scad_functions_status_sort')) {
|
||||
$table->addIndex(['status', 'sort_order'], [
|
||||
'name' => 'idx_scad_functions_status_sort',
|
||||
]);
|
||||
}
|
||||
|
||||
$table->update();
|
||||
|
||||
// Set a default order for existing rows without changing their names.
|
||||
$this->execute("
|
||||
UPDATE scad_functions
|
||||
SET sort_order = id * 10
|
||||
WHERE sort_order = 0
|
||||
");
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
if (!$this->hasTable('scad_functions')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$table = $this->table('scad_functions');
|
||||
|
||||
if ($table->hasIndexByName('idx_scad_functions_status_sort')) {
|
||||
$table->removeIndexByName('idx_scad_functions_status_sort');
|
||||
}
|
||||
|
||||
if ($table->hasIndexByName('idx_scad_functions_email')) {
|
||||
$table->removeIndexByName('idx_scad_functions_email');
|
||||
}
|
||||
|
||||
if ($table->hasIndexByName('idx_scad_functions_person_full_name')) {
|
||||
$table->removeIndexByName('idx_scad_functions_person_full_name');
|
||||
}
|
||||
|
||||
if ($table->hasIndexByName('idx_scad_functions_name')) {
|
||||
$table->removeIndexByName('idx_scad_functions_name');
|
||||
}
|
||||
|
||||
if ($table->hasColumn('sort_order')) {
|
||||
$table->removeColumn('sort_order');
|
||||
}
|
||||
|
||||
if ($table->hasColumn('notes')) {
|
||||
$table->removeColumn('notes');
|
||||
}
|
||||
|
||||
if ($table->hasColumn('email')) {
|
||||
$table->removeColumn('email');
|
||||
}
|
||||
|
||||
if ($table->hasColumn('phone')) {
|
||||
$table->removeColumn('phone');
|
||||
}
|
||||
|
||||
if ($table->hasColumn('person_full_name')) {
|
||||
$table->removeColumn('person_full_name');
|
||||
}
|
||||
|
||||
$table->update();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user