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 ""; + } + + // 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 ""; + } + + 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. ***

"; + } + + + + + + +}