mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
321 lines
13 KiB
PHP
321 lines
13 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Controllers\BaseController;
|
|
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
|
use App\Models\Configuracion\PapelGenericoModel;
|
|
use App\Models\Configuracion\MaquinaModel;
|
|
use App\Models\Presupuestos\PresupuestoModel;
|
|
use App\Models\Usuarios\GroupModel;
|
|
use App\Models\Usuarios\PermisosModel;
|
|
use App\Services\PresupuestoService;
|
|
use CodeIgniter\Shield\Entities\User;
|
|
|
|
class Utiles extends BaseController
|
|
{
|
|
function __construct()
|
|
{
|
|
}
|
|
|
|
public function echo()
|
|
{
|
|
|
|
echo "echo";
|
|
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
echo "ok";
|
|
|
|
|
|
}
|
|
|
|
|
|
public function get_tarifas_encuadernacion()
|
|
{
|
|
// Llamar al modelo
|
|
$model = model('App\Models\Tarifas\TarifaEncuadernacionModel');
|
|
|
|
// Obtener todos los resultados
|
|
$results = $model->where(['is_deleted' => 0])->findAll();
|
|
|
|
// Iterar sobre cada entidad
|
|
echo '<pre>';
|
|
foreach ($results as $result) {
|
|
// Cada $result es una instancia de una entidad
|
|
print_r($result->toArray()); // Convierte la entidad a un array para imprimir sus valores
|
|
}
|
|
echo '</pre>';
|
|
}
|
|
|
|
public function get_tarifa_encuadernacion($tarifaEncuadernacionId)
|
|
{
|
|
// Llamar a los modelos
|
|
$modelTE = model('App\Models\Tarifas\TarifaEncuadernacionModel');
|
|
$modelTELineas = model('App\Models\Tarifas\TarifaEncuadernacionLineaModel');
|
|
$modelTELineasHoras = model('App\Models\Tarifas\TarifaEncuadernacionLineaHorasModel');
|
|
$modelTETiradas = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel');
|
|
|
|
|
|
// Obtener el registro principal de tarifa_encuadernacion
|
|
$tarifas_encuadernacion = $modelTE->where([
|
|
'id' => $tarifaEncuadernacionId,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
// Verificar si se encontró la tarifa
|
|
if (empty($tarifas_encuadernacion)) {
|
|
echo "No se encontraron datos para la tarifa de encuadernación con ID: $tarifaEncuadernacionId.";
|
|
return;
|
|
}
|
|
|
|
// Imprimir la tarifa de encuadernación principal
|
|
echo "<h3>---------------------- DATO TARIFA ENCUADERNACION ----------------------</h3>";
|
|
foreach ($tarifas_encuadernacion as $tarifa_encuadernacion) {
|
|
echo "<strong>ID Tarifa: </strong>" . $tarifa_encuadernacion->id . "<br>";
|
|
echo "<strong>Nombre: </strong>" . $tarifa_encuadernacion->nombre . "<br>";
|
|
echo "<hr>";
|
|
}
|
|
|
|
// Obtener las tiradas asociadas a esta tarifa de encuadernación
|
|
$tarifas_encuadernacion_tiradas = $modelTETiradas->where([
|
|
'tarifa_encuadernacion_id' => $tarifaEncuadernacionId,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
// Verificar si existen tiradas para la tarifa de encuadernación
|
|
if (empty($tarifas_encuadernacion_tiradas)) {
|
|
echo "No hay tiradas asociadas a esta tarifa de encuadernación.";
|
|
return;
|
|
}
|
|
|
|
// Imprimir las tiradas asociadas
|
|
echo "<h3>---------------------- DATO TARIFA ENCUADERNACION (TIRADAS) -------------</h3>";
|
|
foreach ($tarifas_encuadernacion_tiradas as $tarifa_encuadernacion_tirada) {
|
|
echo "<strong>ID Tirada: </strong>" . $tarifa_encuadernacion_tirada->id . "<br>";
|
|
echo "<strong>Tirada Min: </strong>" . $tarifa_encuadernacion_tirada->tirada_min . "<br>";
|
|
echo "<strong>Tirada Max: </strong>" . $tarifa_encuadernacion_tirada->tirada_max . "<br>";
|
|
|
|
// Obtener las líneas asociadas a esta tirada
|
|
$tarifas_encuadernacion_lineas = $modelTELineas->where([
|
|
'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
// Verificar si existen líneas asociadas a la tirada
|
|
if (empty($tarifas_encuadernacion_lineas)) {
|
|
echo "No hay líneas asociadas a esta tirada de encuadernación.<br>";
|
|
} else {
|
|
// Imprimir las líneas asociadas
|
|
echo "<ul>";
|
|
foreach ($tarifas_encuadernacion_lineas as $tarifa_encuadernacion_linea) {
|
|
echo "<li><strong>ID Línea: </strong>" . $tarifa_encuadernacion_linea->id . "<br>";
|
|
}
|
|
echo "</ul>";
|
|
}
|
|
|
|
// Obtener las líneas y horas asociadas a esta tirada
|
|
$tarifas_encuadernacion_lineas_horas = $modelTELineasHoras->where([
|
|
'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
// Verificar si existen líneas y horas asociadas a la tirada
|
|
if (empty($tarifas_encuadernacion_lineas_horas)) {
|
|
echo "No hay líneas y horas asociadas a esta tirada de encuadernación.<br>";
|
|
} else {
|
|
// Imprimir las líneas asociadas
|
|
echo "<ul>";
|
|
foreach ($tarifas_encuadernacion_lineas_horas as $tarifas_encuadernacion_linea_hora) {
|
|
echo "<li><strong>ID Línea/Hora: </strong>" . $tarifas_encuadernacion_linea_hora->id . "<br>";
|
|
}
|
|
echo "</ul>";
|
|
}
|
|
|
|
echo "<hr>";
|
|
}
|
|
|
|
echo "<h3>---------------------- FIN DE DATO TARIFA ENCUADERNACION ----------------------</h3>";
|
|
}
|
|
|
|
public function delete_tarifa_encuadernacion($tarifaEncuadernacionId)
|
|
{
|
|
// Llamar a los modelos
|
|
$modelTE = model('App\Models\Tarifas\TarifaEncuadernacionModel');
|
|
$modelTELineas = model('App\Models\Tarifas\TarifaEncuadernacionLineaModel');
|
|
$modelTELineasHoras = model('App\Models\Tarifas\TarifaEncuadernacionLineaHorasModel');
|
|
$modelTETiradas = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel');
|
|
|
|
// Obtener el registro principal de tarifa_encuadernacion
|
|
$tarifas_encuadernacion = $modelTE->where([
|
|
'id' => $tarifaEncuadernacionId,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
// Verificar si se encontró la tarifa
|
|
if (empty($tarifas_encuadernacion)) {
|
|
echo "No se encontró la tarifa de encuadernación con ID: $tarifaEncuadernacionId.";
|
|
return;
|
|
}
|
|
|
|
// Iniciar eliminación de datos asociados
|
|
echo "Eliminando datos asociados a la tarifa de encuadernación ID: $tarifaEncuadernacionId...<br>";
|
|
|
|
// Eliminar las tiradas asociadas a la tarifa de encuadernación
|
|
$tarifas_encuadernacion_tiradas = $modelTETiradas->where([
|
|
'tarifa_encuadernacion_id' => $tarifaEncuadernacionId,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
if (!empty($tarifas_encuadernacion_tiradas)) {
|
|
foreach ($tarifas_encuadernacion_tiradas as $tarifa_encuadernacion_tirada) {
|
|
// Eliminar las líneas de horas asociadas a cada tirada
|
|
$tarifas_encuadernacion_lineas_horas = $modelTELineasHoras->where([
|
|
'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
if (!empty($tarifas_encuadernacion_lineas_horas)) {
|
|
foreach ($tarifas_encuadernacion_lineas_horas as $tarifa_encuadernacion_linea_hora) {
|
|
$modelTELineasHoras->delete($tarifa_encuadernacion_linea_hora->id); // Eliminar la línea/hora
|
|
echo "===sk >-Eliminando Línea/Hora ID: " . $tarifa_encuadernacion_linea_hora->id . "<br>";
|
|
}
|
|
}
|
|
|
|
// Eliminar las líneas asociadas a cada tirada
|
|
$tarifas_encuadernacion_lineas = $modelTELineas->where([
|
|
'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
if (!empty($tarifas_encuadernacion_lineas)) {
|
|
foreach ($tarifas_encuadernacion_lineas as $tarifa_encuadernacion_linea) {
|
|
$modelTELineas->delete($tarifa_encuadernacion_linea->id); // Eliminar la línea
|
|
echo "===>-Eliminando Línea ID: " . $tarifa_encuadernacion_linea->id . "<br>";
|
|
}
|
|
}
|
|
|
|
// Eliminar la tirada
|
|
$modelTETiradas->delete($tarifa_encuadernacion_tirada->id); // Eliminar la tirada
|
|
echo "=>-Eliminando Tirada ID: " . $tarifa_encuadernacion_tirada->id . "<br>";
|
|
}
|
|
}
|
|
|
|
echo " *** Proceso de eliminación completado. ***<br><br>";
|
|
}
|
|
|
|
public function clone_tarifa_encuadernacion($origenId, $destinoId)
|
|
{
|
|
// Llamar a los modelos
|
|
$modelTETiradas = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel');
|
|
$modelTELineas = model('App\Models\Tarifas\TarifaEncuadernacionLineaModel');
|
|
$modelTELineasHoras = model('App\Models\Tarifas\TarifaEncuadernacionLineaHorasModel');
|
|
|
|
// 1. Eliminar el contenido asociado de la tarifa destino
|
|
$this->delete_tarifa_encuadernacion($destinoId);
|
|
|
|
// 2. Obtener las tiradas asociadas a la tarifa origen
|
|
$tiradasOrigen = $modelTETiradas->where([
|
|
'tarifa_encuadernacion_id' => $origenId,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
foreach ($tiradasOrigen as $tiradaOrigen) {
|
|
// Crear un nuevo registro para la tirada en la tarifa destino
|
|
$nuevaTirada = [
|
|
'tarifa_encuadernacion_id' => (int) $destinoId,
|
|
'proveedor_id' => (int) $tiradaOrigen->proveedor_id,
|
|
'importe_fijo' => (float) $tiradaOrigen->importe_fijo,
|
|
'tirada_min' => (int) $tiradaOrigen->tirada_min,
|
|
'tirada_max' => (int) $tiradaOrigen->tirada_max,
|
|
'user_created_id' => (int) auth()->id(),
|
|
'is_deleted' => 0
|
|
];
|
|
|
|
try {
|
|
$nuevaTiradaId = $modelTETiradas->insert($nuevaTirada);
|
|
if (!$nuevaTiradaId) {
|
|
throw new \Exception("Error al insertar el registro.");
|
|
}
|
|
echo "<br>==>+Tirada creada con ID: " . $nuevaTiradaId;
|
|
} catch (\Exception $e) {
|
|
echo "Error: " . $e->getMessage();
|
|
}
|
|
|
|
// 3. Clonar las líneas asociadas a esta tirada
|
|
$lineasOrigen = $modelTELineas->where([
|
|
'tirada_encuadernacion_id' => $tiradaOrigen->id,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
foreach ($lineasOrigen as $lineaOrigen) {
|
|
$nuevaLinea = [
|
|
'tirada_encuadernacion_id' => (int) $nuevaTiradaId,
|
|
'paginas_libro_min' => (float) $lineaOrigen->paginas_libro_min,
|
|
'paginas_libro_max' => (float) $lineaOrigen->paginas_libro_max,
|
|
'dimensiones_id' => (int) $lineaOrigen->dimensiones_id,
|
|
'precio_min' => (float) $lineaOrigen->precio_min,
|
|
'precio_max' => (float) $lineaOrigen->precio_max,
|
|
'tirada_min' => (float) $lineaOrigen->tirada_min,
|
|
'tirada_max' => (float) $lineaOrigen->tirada_max,
|
|
'total_min' => (float) $lineaOrigen->total_min,
|
|
'margen' => (float) $lineaOrigen->margen,
|
|
'user_created_id' => (int) auth()->id(),
|
|
'is_deleted' => 0
|
|
];
|
|
|
|
try {
|
|
$nuevaLineaId = $modelTELineas->insert($nuevaLinea);
|
|
if (!$nuevaLineaId) {
|
|
throw new \Exception("Error al insertar el registro.");
|
|
}
|
|
echo "<br>====>+Linea creada con ID: " . $nuevaLineaId;
|
|
} catch (\Exception $e) {
|
|
echo "Error: " . $e->getMessage();
|
|
}
|
|
|
|
}
|
|
|
|
// 4. Clonar las líneas y horas asociadas a esta tirada
|
|
$lineasHorasOrigen = $modelTELineasHoras->where([
|
|
'tirada_encuadernacion_id' => $tiradaOrigen->id,
|
|
'is_deleted' => 0
|
|
])->findAll();
|
|
|
|
foreach ($lineasHorasOrigen as $lineaHoraOrigen) {
|
|
$nuevaLineaHora = [
|
|
'tirada_encuadernacion_id' => (int) $nuevaTiradaId,
|
|
'tiempo_min' => (float) $lineaHoraOrigen->tiempo_min,
|
|
'tiempo_max' => (float) $lineaHoraOrigen->tiempo_max,
|
|
'precio_hora' => (float) $lineaHoraOrigen->precio_hora,
|
|
'total_min' => (float) $lineaHoraOrigen->total_min,
|
|
'margen' => (float) $lineaHoraOrigen->margen,
|
|
'user_created_id' => (int) auth()->id(),
|
|
'is_deleted' => 0
|
|
];
|
|
|
|
try {
|
|
$nuevaLineaHoraId = $modelTELineasHoras->insert($nuevaLineaHora);
|
|
if (!$nuevaLineaHoraId) {
|
|
throw new \Exception("Error al insertar el registro.");
|
|
}
|
|
echo "<br>====>+Linea/Hora creado con ID: " . $nuevaLineaHoraId;
|
|
} catch (\Exception $e) {
|
|
echo "Error: " . $e->getMessage();
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
echo "<br> *** Proceso de clonacion completado. ***<br><br>";
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|