<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Agregar campos de fecha a la tabla correo para gestionar fechas del correo de nómina
*/
final class Version20260112000000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Agregar columnas fecha_desde, fecha_hasta y fecha_plazo a la tabla correo';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE correo ADD COLUMN IF NOT EXISTS fecha_desde VARCHAR(50) DEFAULT NULL');
$this->addSql('ALTER TABLE correo ADD COLUMN IF NOT EXISTS fecha_hasta VARCHAR(50) DEFAULT NULL');
$this->addSql('ALTER TABLE correo ADD COLUMN IF NOT EXISTS fecha_plazo VARCHAR(50) DEFAULT NULL');
// Insertar la plantilla de solicitud de boleta si no existe
$cuerpo = 'Estimado/a {[nombre]},
Junto con saludar y esperando te encuentres muy bien, te escribimos para solicitar la boleta de los trabajos realizados entre el {[fecha_desde]} y {[fecha_hasta]}. Para poder dar inicio al procesamiento de tu pago, tienes plazo hasta el {[fecha_plazo]}.
Para subir la boleta en formato PDF al sistema Delfy, a través del siguiente enlace: difusionuc.eurekatech.io/
A continuación, te dejamos los datos con los que debes completar la boleta en el sitio del SII:
Razón Social: {[razon_social]}
RUT: {[rut]}
Dirección: {[direccion]}
Monto: ${[monto]}
Una vez que inicies sesión con tu usuario en Delfy, debes buscar en el menú lateral la pestaña "Boletas y pagos" y ahí seleccionar la opción de boletas pendientes por subir.
Para que podamos procesarlo es necesario que el documento que subas a Delfy esté en formato PDF, el que puedes descargar directamente desde el sitio del SII al generar tu boleta. Además, el nombre del archivo debe seguir el siguiente formato "Nombre Completo – N° Boleta" (Por ejemplo "Vivian Avalos – 150")
Muy importante de destacar, si no suben la boleta en el plazo establecido, no reciben pago por este período y se acumula al siguiente mes.
Saludos cordiales,
Equipo de Difusión UC';
// Reemplazar {[ por {{ para el formato correcto
$cuerpo = str_replace(['{[', ']}'], ['{{', '}}'], $cuerpo);
$this->addSql("INSERT INTO correo (id, nombre, codigo, asunto, cuerpo, variables_disponibles, fecha_desde, fecha_hasta, fecha_plazo)
SELECT 11, 'Solicitud de Boleta', 'solicitud_boleta', 'Solicitud de Boleta - Pago Embajador',
:cuerpo,
'nombre, razon_social, rut, direccion, monto, fecha_desde, fecha_hasta, fecha_plazo',
'01 de octubre', '30 de octubre', '05 de noviembre'
WHERE NOT EXISTS (SELECT 1 FROM correo WHERE codigo = 'solicitud_boleta')",
['cuerpo' => $cuerpo]);
}
public function down(Schema $schema): void
{
$this->addSql('DELETE FROM correo WHERE codigo = \'solicitud_boleta\'');
$this->addSql('ALTER TABLE correo DROP COLUMN fecha_plazo');
$this->addSql('ALTER TABLE correo DROP COLUMN fecha_hasta');
$this->addSql('ALTER TABLE correo DROP COLUMN fecha_desde');
}
}