mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
falta terminar albaranes
This commit is contained in:
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class ModifyAlbaranesAndAlbaranesLineas extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
// --- Tabla albaranes ---
|
||||
$this->forge->dropColumn('albaranes', [
|
||||
'pedido_id',
|
||||
'presupuesto_id',
|
||||
'presupuesto_direccion_id',
|
||||
'total'
|
||||
]);
|
||||
|
||||
$this->forge->addColumn('albaranes', [
|
||||
'fecha_albaran' => [
|
||||
'type' => 'DATE',
|
||||
'null' => true,
|
||||
'after' => 'numero_albaran'
|
||||
],
|
||||
'envio_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 10,
|
||||
'unsigned' => true,
|
||||
'null' => true,
|
||||
'after' => 'fecha_albaran'
|
||||
]
|
||||
]);
|
||||
|
||||
// Añadir foreign key a envios con ON DELETE SET NULL
|
||||
$this->db->query('ALTER TABLE `albaranes`
|
||||
ADD CONSTRAINT `fk_albaranes_envio_id` FOREIGN KEY (`envio_id`)
|
||||
REFERENCES `envios`(`id`) ON DELETE SET NULL ON UPDATE CASCADE');
|
||||
|
||||
// --- Tabla albaranes_lineas ---
|
||||
$this->forge->dropColumn('albaranes_lineas', ['cajas', 'ejemplares_por_caja']);
|
||||
|
||||
$this->forge->addColumn('albaranes_lineas', [
|
||||
'iva_reducido' => [
|
||||
'type' => 'TINYINT',
|
||||
'constraint' => 1,
|
||||
'default' => 0,
|
||||
'null' => false,
|
||||
'after' => 'precio_unidad'
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// Deshacer cambios tabla albaranes
|
||||
$this->forge->dropForeignKey('albaranes', 'fk_albaranes_envio_id');
|
||||
$this->forge->dropColumn('albaranes', ['envio_id', 'fecha_albaran']);
|
||||
|
||||
$this->forge->addColumn('albaranes', [
|
||||
'pedido_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 10,
|
||||
'unsigned' => true,
|
||||
'null' => true,
|
||||
],
|
||||
'presupuesto_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 10,
|
||||
'unsigned' => true,
|
||||
'null' => true,
|
||||
],
|
||||
'presupuesto_direccion_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 10,
|
||||
'unsigned' => true,
|
||||
'null' => true,
|
||||
],
|
||||
'total' => [
|
||||
'type' => 'DOUBLE',
|
||||
'null' => true,
|
||||
],
|
||||
]);
|
||||
|
||||
// Deshacer cambios tabla albaranes_lineas
|
||||
$this->forge->dropColumn('albaranes_lineas', ['iva_reducido']);
|
||||
|
||||
$this->forge->addColumn('albaranes_lineas', [
|
||||
'cajas' => [
|
||||
'type' => 'INT',
|
||||
'null' => true,
|
||||
],
|
||||
'ejemplares_por_caja' => [
|
||||
'type' => 'INT',
|
||||
'null' => true,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class AddClienteIdToEnvios extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$this->forge->addColumn('envios', [
|
||||
'cliente_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'unsigned' => true, // IMPORTANTE
|
||||
'null' => true,
|
||||
'after' => 'id',
|
||||
],
|
||||
]);
|
||||
|
||||
$this->db->query('ALTER TABLE envios ADD CONSTRAINT fk_envios_cliente FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE SET NULL ON UPDATE CASCADE');
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$this->db->query('ALTER TABLE envios DROP FOREIGN KEY fk_envios_cliente');
|
||||
$this->forge->dropColumn('envios', 'cliente_id');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class RenameCajasNullable extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$this->forge->modifyColumn('envios_lineas', [
|
||||
'cajas' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'null' => true,
|
||||
'default' => null,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$this->forge->modifyColumn('envios_lineas', [
|
||||
'cajas' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'null' => false,
|
||||
'default' => 0,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class UpdateEnviosAlbaranes extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
// 1. Quitar columnas de envios_lineas
|
||||
$this->forge->dropColumn('envios_lineas', ['cajas', 'unidades_cajas']);
|
||||
|
||||
// 2. Añadir columna 'cajas' en envios
|
||||
$this->forge->addColumn('envios', [
|
||||
'cajas' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'default' => 0,
|
||||
'after' => 'comentarios'
|
||||
]
|
||||
]);
|
||||
|
||||
// 2. Quitar columna multienvio de envios
|
||||
$this->forge->dropColumn('envios', 'multienvio');
|
||||
|
||||
// 3. Añadir columna 'cajas' en albaranes
|
||||
$this->forge->addColumn('albaranes', [
|
||||
'cajas' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'default' => 0,
|
||||
'after' => 'envio_id'
|
||||
]
|
||||
]);
|
||||
|
||||
// 4. Añadir columna 'pedido_linea_id' a albaranes_lineas
|
||||
$this->forge->addColumn('albaranes_lineas', [
|
||||
'pedido_linea_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'unsigned' => true,
|
||||
'null' => true,
|
||||
'after' => 'albaran_id'
|
||||
]
|
||||
]);
|
||||
|
||||
// 5. Foreign key a pedidos_lineas
|
||||
$this->db->query("
|
||||
ALTER TABLE albaranes_lineas
|
||||
ADD CONSTRAINT fk_albaranes_lineas_pedido_linea
|
||||
FOREIGN KEY (pedido_linea_id) REFERENCES pedidos_linea(id)
|
||||
ON DELETE SET NULL ON UPDATE CASCADE
|
||||
");
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// Revertir cajas en envios_lineas
|
||||
$this->forge->addColumn('envios_lineas', [
|
||||
'cajas' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'null' => true,
|
||||
],
|
||||
'unidades_cajas' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 11,
|
||||
'null' => true,
|
||||
]
|
||||
]);
|
||||
|
||||
$this->forge->addColumn('envios', [
|
||||
'multienvio' => [
|
||||
'type' => 'TINYINT',
|
||||
'constraint' => 3,
|
||||
'unsigned' => true,
|
||||
'default' => 0
|
||||
]
|
||||
]);
|
||||
|
||||
// Quitar columnas añadidas
|
||||
$this->forge->dropColumn('envios', 'cajas');
|
||||
$this->forge->dropColumn('albaranes', 'cajas');
|
||||
|
||||
// Quitar foreign y columna pedido_linea_id
|
||||
$this->db->query("ALTER TABLE albaranes_lineas DROP FOREIGN KEY fk_albaranes_lineas_pedido_linea");
|
||||
$this->forge->dropColumn('albaranes_lineas', 'pedido_linea_id');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class FixDeletedAtToDatetime extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
// Cambia los tipos de deleted_at a DATETIME NULL si existen
|
||||
$tablas = ['albaranes', 'albaranes_lineas', 'envios', 'envios_lineas'];
|
||||
|
||||
foreach ($tablas as $tabla) {
|
||||
$this->db->query("ALTER TABLE {$tabla} MODIFY COLUMN deleted_at DATETIME NULL");
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// Opcional: puedes restaurar como TIMESTAMP NULL si lo deseas
|
||||
$tablas = ['albaranes', 'albaranes_lineas', 'envios', 'envios_lineas'];
|
||||
|
||||
foreach ($tablas as $tabla) {
|
||||
$this->db->query("ALTER TABLE {$tabla} MODIFY COLUMN deleted_at TIMESTAMP NULL");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user