diff --git a/ci4/app/Controllers/Utiles.php b/ci4/app/Controllers/Utiles.php
new file mode 100644
index 00000000..c44a0aa8
--- /dev/null
+++ b/ci4/app/Controllers/Utiles.php
@@ -0,0 +1,320 @@
+where(['is_deleted' => 0])->findAll();
+
+ // Iterar sobre cada entidad
+ echo '
';
+ 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 '';
+ }
+
+ 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 "---------------------- DATO TARIFA ENCUADERNACION ----------------------
";
+ foreach ($tarifas_encuadernacion as $tarifa_encuadernacion) {
+ echo "ID Tarifa: " . $tarifa_encuadernacion->id . "
";
+ echo "Nombre: " . $tarifa_encuadernacion->nombre . "
";
+ echo "
";
+ }
+
+ // 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 "---------------------- DATO TARIFA ENCUADERNACION (TIRADAS) -------------
";
+ foreach ($tarifas_encuadernacion_tiradas as $tarifa_encuadernacion_tirada) {
+ echo "ID Tirada: " . $tarifa_encuadernacion_tirada->id . "
";
+ echo "Tirada Min: " . $tarifa_encuadernacion_tirada->tirada_min . "
";
+ echo "Tirada Max: " . $tarifa_encuadernacion_tirada->tirada_max . "
";
+
+ // 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.
";
+ } else {
+ // Imprimir las líneas asociadas
+ echo "";
+ foreach ($tarifas_encuadernacion_lineas as $tarifa_encuadernacion_linea) {
+ echo "- ID Línea: " . $tarifa_encuadernacion_linea->id . "
";
+ }
+ echo "
";
+ }
+
+ // 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.
";
+ } else {
+ // Imprimir las líneas asociadas
+ echo "";
+ foreach ($tarifas_encuadernacion_lineas_horas as $tarifas_encuadernacion_linea_hora) {
+ echo "- ID Línea/Hora: " . $tarifas_encuadernacion_linea_hora->id . "
";
+ }
+ echo "
";
+ }
+
+ echo "
";
+ }
+
+ echo "---------------------- FIN DE DATO TARIFA ENCUADERNACION ----------------------
";
+ }
+
+ 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...
";
+
+ // 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 . "
";
+ }
+ }
+
+ // 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 . "
";
+ }
+ }
+
+ // Eliminar la tirada
+ $modelTETiradas->delete($tarifa_encuadernacion_tirada->id); // Eliminar la tirada
+ echo "=>-Eliminando Tirada ID: " . $tarifa_encuadernacion_tirada->id . "
";
+ }
+ }
+
+ echo " *** Proceso de eliminación completado. ***
";
+ }
+
+ 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 "
==>+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 "
====>+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 "
====>+Linea/Hora creado con ID: " . $nuevaLineaHoraId;
+ } catch (\Exception $e) {
+ echo "Error: " . $e->getMessage();
+ }
+
+ }
+ }
+
+ echo "
*** Proceso de clonacion completado. ***
";
+ }
+
+
+
+
+
+
+}