mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'main' into refactor/messages-view
This commit is contained in:
@ -301,8 +301,10 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
|
||||
$tipo = goSanitize($this->request->getGet('tipo'))[0];
|
||||
$selected_papel = goSanitize($this->request->getGet('papel'))[0] ?? null;
|
||||
$cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0;
|
||||
$menu = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, false);
|
||||
$menu2 = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, true);
|
||||
$tapa_dura = goSanitize($this->request->getGet('tapa_dura'))[0] ?? null;
|
||||
|
||||
$menu = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, false);
|
||||
$menu2 = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, true);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
|
||||
@ -175,7 +175,7 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
|
||||
|
||||
if ($this->request->getPost()) :
|
||||
|
||||
$nullIfEmpty = true; // !(phpversion() >= '8.1');
|
||||
$nullIfEmpty = false; // !(phpversion() >= '8.1');
|
||||
|
||||
$postData = $this->request->getPost();
|
||||
|
||||
@ -200,6 +200,9 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
|
||||
if ($this->request->getPost('cubierta') == null) {
|
||||
$sanitizedData['cubierta'] = false;
|
||||
}
|
||||
if ($this->request->getPost('use_for_tapa_dura') == null) {
|
||||
$sanitizedData['use_for_tapa_dura'] = false;
|
||||
}
|
||||
if ($this->request->getPost('sobrecubierta') == null) {
|
||||
$sanitizedData['sobrecubierta'] = false;
|
||||
}
|
||||
|
||||
@ -324,10 +324,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
// Cubierta
|
||||
$cubierta = [
|
||||
'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']),
|
||||
'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(),
|
||||
'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
|
||||
'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
|
||||
'solapasCubierta' => intval($cubierta['solapas'] ?? 0),
|
||||
'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1 ? intval($cubierta['tamanioSolapas']) : 0,
|
||||
'acabadosCubierta' => $cubierta['acabados'] ?? 0,
|
||||
'lomoRedondo' => $lomoRedondo,
|
||||
];
|
||||
@ -471,6 +471,94 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function calcularMaxSolapas()
|
||||
{
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
$reqData = $this->request->getPost();
|
||||
$modelPapelGenerico = new PapelGenericoModel();
|
||||
|
||||
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
||||
|
||||
$cliente_id = $reqData['clienteId'] ?? -1;
|
||||
|
||||
$tirada = $reqData['tirada'] ?? 0;
|
||||
$tamanio = $reqData['tamanio'];
|
||||
$paginas = $reqData['paginas'] ?? 0;
|
||||
$paginas_color = $reqData['paginasColor'] ?? 0;
|
||||
$papelInteriorDiferente = intval($reqData['papelInteriorDiferente']) ?? null;
|
||||
$excluirRotativa = $reqData['excluirRotativa'] ?? 0;
|
||||
$excluirRotativa = intval($excluirRotativa);
|
||||
|
||||
$tipo = $reqData['tipo'];
|
||||
$tipoCubierta = 'blanda'; // solapas sólo tapa blanda y sobre cubierta
|
||||
|
||||
$isColor = intval($reqData['isColor']) ?? 0;
|
||||
$isHq = intval($reqData['isHq']) ?? 0;
|
||||
|
||||
$tipo_impresion_id = $this->getTipoImpresion($tipo, $tipoCubierta);
|
||||
$is_cosido = (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id);
|
||||
|
||||
$interior = $reqData['interior'] ?? [];
|
||||
|
||||
if ($papelInteriorDiferente) {
|
||||
$papel['negro'] = $modelPapelGenerico->where('id', $interior['papelInterior']['negro'])->first()->toArray();
|
||||
$papel['color'] = $modelPapelGenerico->where('id', $interior['papelInterior']['color'])->first()->toArray();
|
||||
$gramaje['negro'] = intval($interior['gramajeInterior']['negro']);
|
||||
$gramaje['color'] = intval($interior['gramajeInterior']['color']);
|
||||
} else {
|
||||
$papel = $modelPapelGenerico->where('id', $interior['papelInterior'])->first()->toArray();
|
||||
$gramaje = intval($interior['gramajeInterior']);
|
||||
}
|
||||
|
||||
$datosPedido = (object) array(
|
||||
'paginas' => $paginas,
|
||||
'tirada' => $tirada[0],
|
||||
'merma' => $tirada[0] > $POD ? $this->calcular_merma($tirada[0], $POD) : 0,
|
||||
'ancho' => intval($tamanio['ancho']) ?? 100000,
|
||||
'alto' => intval($tamanio['alto']) ?? 100000,
|
||||
'isCosido' => $is_cosido,
|
||||
'a_favor_fibra' => 1,
|
||||
);
|
||||
|
||||
$input_data = array(
|
||||
'uso' => 'interior',
|
||||
'tipo_impresion_id' => $tipo_impresion_id,
|
||||
'datosPedido' => $datosPedido,
|
||||
'papel_generico' => $papel,
|
||||
'gramaje' => $gramaje,
|
||||
'isColor' => $isColor,
|
||||
'isHq' => $isHq,
|
||||
'cliente_id' => $cliente_id,
|
||||
'paginas_color' => $paginas_color,
|
||||
'excluirRotativa' => $excluirRotativa,
|
||||
'papelInteriorDiferente' => $papelInteriorDiferente
|
||||
);
|
||||
|
||||
$interior = PresupuestoClienteService::obtenerInterior($input_data);
|
||||
if ($interior == null) {
|
||||
return $this->failServerError('Error al calcular el interior');
|
||||
}
|
||||
$anchoTotal = $interior[0]['mano'];
|
||||
// le añadimos 2*ancho libro
|
||||
$anchoTotal += 2 * $datosPedido->ancho;
|
||||
// le añadimos los dobleces de las solapas
|
||||
$anchoTotal += 6;
|
||||
// le añadimos la sangre
|
||||
$anchoTotal += PresupuestoService::SANGRE_FORMAS;
|
||||
// 863 es el ancho máximo permitido por las máquinas
|
||||
$maxSolapa = (865 - floor($anchoTotal)) / 2;
|
||||
$maxSolapa = min($maxSolapa, 0.75 * $datosPedido->ancho);
|
||||
return $this->respond($maxSolapa);
|
||||
|
||||
} else {
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getDireccionesCliente()
|
||||
{
|
||||
if ($this->request->isAJAX()) {
|
||||
@ -488,6 +576,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
'menu' => $data,
|
||||
$csrfTokenName => $newTokenHash
|
||||
]);
|
||||
|
||||
} else {
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
@ -696,10 +785,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
|
||||
// Cubierta
|
||||
$cubierta = [
|
||||
'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']),
|
||||
'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(),
|
||||
'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
|
||||
'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
|
||||
'solapasCubierta' => intval($cubierta['solapas'] ?? 0),
|
||||
'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1 ? intval($cubierta['tamanioSolapas']) : 0,
|
||||
'acabadosCubierta' => $cubierta['acabados'] ?? 0,
|
||||
'lomoRedondo' => $cubierta['lomoRedondo'] ?? 0,
|
||||
'cabezada' => $cubierta['cabezada'] ?? 'WHI',
|
||||
@ -913,6 +1002,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
} else if ($servicio->tarifa_id == 62) {
|
||||
// Servicios manipulado
|
||||
$this->guardarServicio($id, $servicio, 'manipulado');
|
||||
} else if ($servicio->tarifa_id == 73) {
|
||||
// Servicios manipulado
|
||||
$this->guardarServicio($id, $servicio, 'manipulado');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1013,6 +1105,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$data['sobrecubierta']['solapas'] = $presupuesto->solapas_sobrecubierta ? 1 : 0;
|
||||
$data['sobrecubierta']['solapas_ancho'] = $presupuesto->solapas_ancho_sobrecubierta;
|
||||
$data['sobrecubierta']['plastificado'] = $modelAcabado->getCodeFromId($presupuesto->acabado_sobrecubierta_id);
|
||||
if ($data['sobrecubierta']['plastificado'] == '') {
|
||||
$data['sobrecubierta']['plastificado'] = 'NONE';
|
||||
}
|
||||
|
||||
$data['guardas'] = array_key_exists('guardas', $datos_papel) ? $datos_papel['guardas'] : [];
|
||||
|
||||
@ -1796,6 +1891,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
'solapas' => intval($solapasCubierta) > 0 ? 1 : 0,
|
||||
'paginasCuadernillo' => $paginasCuadernillo,
|
||||
]);
|
||||
|
||||
|
||||
|
||||
$costeServiciosDefecto = 0.0;
|
||||
foreach ($servDefecto as $servicio) {
|
||||
if ($servicio->total <= 0) {
|
||||
@ -1829,6 +1927,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
}
|
||||
|
||||
// Servicios
|
||||
|
||||
|
||||
/*
|
||||
'retractilado' => 3,
|
||||
'prototipo' => 9,
|
||||
*/
|
||||
$serviciosAutomaticos = [];
|
||||
$servicios = [];
|
||||
// se comprueba si $datos guardas es un array
|
||||
if (is_array($datos_guardas)) {
|
||||
if (count($datos_guardas) > 0) {
|
||||
@ -1839,13 +1945,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
array_push($servicios, 62); // Plegado de guardas
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
'retractilado' => 3,
|
||||
'prototipo' => 9,
|
||||
*/
|
||||
$serviciosAutomaticos = [];
|
||||
$servicios = [];
|
||||
if ($datos_entrada['servicios']['retractilado']) // acabado
|
||||
array_push($servicios, 3);
|
||||
if ($datos_entrada['servicios']['retractilado5']) // acabado
|
||||
@ -1873,7 +1972,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$errorModel->insertError(
|
||||
$datos_entrada['id'],
|
||||
auth()->user()->id,
|
||||
'No se puede obtener servicio con id ' . ((string)$servicio),
|
||||
'No se puede obtener servicio con id ' . ((string) $servicio),
|
||||
$input_data
|
||||
);
|
||||
$return_data = [
|
||||
@ -1901,7 +2000,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
$errorModel->insertError(
|
||||
$datos_entrada['id'],
|
||||
auth()->user()->id,
|
||||
'No se puede obtener servicio con id ' . ((string)$servicio),
|
||||
'No se puede obtener servicio con id ' . ((string) $servicio),
|
||||
$input_data
|
||||
);
|
||||
$return_data = [
|
||||
@ -1921,6 +2020,45 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
// Plegado de solapas grandes
|
||||
if (
|
||||
(intval($solapasCubierta) > 0 && intval($cubierta['dimension_desarrollo']['ancho']) > 630) ||
|
||||
(is_array($sobreCubierta) && ($sobreCubierta['solapas'] > 0 && intval($linea_sobrecubierta['dimension_desarrollo']['ancho']) > 630))
|
||||
) {
|
||||
|
||||
// Servicios acabado
|
||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||
'tarifa_id' => 73,
|
||||
'tirada' => $datosPedido->tirada,
|
||||
'POD' => $POD,
|
||||
]);
|
||||
array_push($serviciosAutomaticos, $resultado[0]);
|
||||
|
||||
if ($resultado[0]->total <= 0) {
|
||||
|
||||
$errorModel = new ErrorPresupuesto();
|
||||
$errorModel->insertError(
|
||||
$datos_entrada['id'],
|
||||
auth()->user()->id,
|
||||
'No se puede obtener servicio de manupulado con id ' . ((string) $servicio),
|
||||
$input_data
|
||||
);
|
||||
$return_data = [
|
||||
'errors' => (object) ([
|
||||
'status' => 1
|
||||
]),
|
||||
];
|
||||
return $return_data;
|
||||
}
|
||||
|
||||
$coste_servicios += floatval($resultado[0]->total);
|
||||
if ($extra_info) {
|
||||
$totalServicios += floatval($resultado[0]->total);
|
||||
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4));
|
||||
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2));
|
||||
|
||||
|
||||
320
ci4/app/Controllers/Utiles.php
Normal file
320
ci4/app/Controllers/Utiles.php
Normal file
@ -0,0 +1,320 @@
|
||||
<?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>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user