asObject()->where('tarifa_encuadernacion_id', $teOrigen)->findAll(); foreach ($tarifasTiradas as $tarifasTirada) { echo "--->" . $tarifasTirada->id . "
"; $tarifasLineas = $tel_model->asObject()->where('tirada_encuadernacion_id', $tarifasTirada->id)->findAll(); // Prepare the data unset($tarifasTirada->id); $tarifasTirada->tarifa_encuadernacion_id = $teDestino; $tarifasTirada->created_at = date('Y-m-d H:i:s'); $tarifasTirada->updated_at = date('Y-m-d H:i:s'); //var_dump($tarifasTirada); // Insert it $tet_model->insert($tarifasTirada); $inserted_id = $tet_model->insertID(); foreach ($tarifasLineas as $tarifasLinea) { echo "------>" . $tarifasLinea->id . "
"; // Prepare the data unset($tarifasLinea->id); $tarifasLinea->tirada_encuadernacion_id = $inserted_id; $tarifasLinea->created_at = date('Y-m-d H:i:s'); $tarifasLinea->updated_at = date('Y-m-d H:i:s'); //var_dump($tarifasLinea); // Insert it $tel_model->insert($tarifasLinea); } } } private function test_get_tirada_alt( $tirada, $merma, $tipo_impresion_id, $json_data, $cliente_id, $ancho, $alto, $solapas_cubierta, $solapas_ancho_cubierta, $solapas_sobrecubierta, $solapas_ancho_sobrecubierta, $lomo ) { $values = []; if ($json_data) { $data = json_decode($json_data, true); foreach ($data as $linea) { echo '------------------------------------
'; var_dump($linea); // Se obtienen los valores de cada linea para el calculo del precio $datosPedido = (object) array( 'paginas' => intval($linea['paginas']) ?? 0, 'tirada' => intval($tirada) ?? 0, 'merma' => intval($merma) ?? 0, 'ancho' => intval($ancho) ?? 100000, 'alto' => intval($alto) ?? 100000, 'a_favor_fibra' => $linea['aFavorFibra'] ?? 1, 'isCosido' => (new \App\Models\Configuracion\TipoPresupuestoModel())->get_isCosido($tipo_impresion_id), // JJO esto es custom por cada tipo de presupuesto ); if ($linea['row_id'] == 'lp_guardas') { $datosPedido->paginas_impresion = intval($linea['paginas_impresion']) ?? 0; // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral // o wire-o tapa dura, las guardas se imprimen como hojas sueltas if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) { $datosPedido->isCosido = true; } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) { $datosPedido->isCosido = false; } } else if ($linea['row_id'] == 'lp_sobrecubierta' || $linea['row_id'] == 'lp_cubierta') { $datosPedido->solapas = $linea['row_id'] == 'lp_cubierta' ? $solapas_cubierta : $solapas_sobrecubierta; $datosPedido->solapas_ancho = $linea['row_id'] == 'lp_cubierta' ? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta; $datosPedido->lomo = $lomo; $type = $linea['row_id'] == 'lp_cubierta' ? 'cubierta' : 'sobrecubierta'; $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($type, $tipo_impresion_id, $datosPedido); $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($type, $tipo_impresion_id, $datosPedido); } $maquina = (new \App\Models\Configuracion\MaquinaModel())->find($linea['maquina_id']); $papel = (new \App\Models\Configuracion\PapelImpresionModel())->find($linea['papel_impresion_id']); $pg = (new \App\Models\Configuracion\PapelGenericoModel())->find($linea['papel']); $papel_generico['id'] = $pg->id; $papel_generico['nombre'] = $pg->nombre; $maquina->maquina_id = $maquina->id; unset($maquina->id); switch ($linea['row_id']) { case 'lp_rot_bn': case 'lp_rot_color': $uso = 'rotativa'; $tipo = strpos($linea['row_id'], "_bn") !== false ? 'negro' : 'color'; break; case 'lp_cubierta': $uso = 'cubierta'; break; case 'lp_sobrecubierta': $uso = 'sobrecubierta'; break; case 'lp_guardas': $uso = 'guardas'; break; default: $uso = 'interior'; $isHq = strpos($linea['row_id'], "hq") !== false ? true : false; $isColor = strpos($linea['row_id'], "_color") !== false ? true : false; $tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro'); break; } if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'guardas') { $isColor = true; $isHq = true; $tipo = 'colorhq'; } $opciones_papel = PresupuestoService::get_opciones_papel($uso, $isColor); $datosTipolog = $linea['gotaNegro'] ?? null; if (!is_null($datosTipolog)) { $datosTipolog = []; $data = (object) array( 'negro' => intval($linea['cobNegro']) ?? 0, 'cyan' => intval($linea['cobCyan']) ?? 0, 'magenta' => intval($linea['cobMagenta']) ?? 0, 'amarillo' => intval($linea['cobAmarillo']) ?? 0, 'cg' => intval($linea['cobCG']) ?? 0, 'gota_negro' => intval($linea['gotaNegro']) ?? 0, 'gota_color' => intval($linea['gotaColor']) ?? 0, ); array_push($datosTipolog, $data); } $data['uso'] = $uso; $data['tipo'] = $tipo; $data['datosPedido'] = $datosPedido; $data['cliente_id'] = $cliente_id; $data['papel'] = $papel; $data['opciones_papel'] = $opciones_papel; $data['maquina'] = $maquina; $data['papel_generico'] = (array) $papel_generico; $data['isColor'] = $isColor; $data['a_favor_fibra'] = $linea['aFavorFibra'] ?? null; $data['datosTipolog'] = $datosTipolog; $data['gramaje'] = $linea['gramaje'] ?? 0; if ($linea['row_id'] != 'lp_rot_bn' && $linea['row_id'] != 'lp_rot_color') { $linea_coste = PresupuestoService::getLineaPresupuestoPlana($data); var_dump($linea_coste); } if (empty($linea)) continue; array_push($values, $linea_coste); } } else { $values = []; } } private function asignar_tarifa_defecto_todos_usuarios() { // Previo a ejecutar, vaciar la tabla clientes_precios (ojo si hay customizaciones) $db = \Config\Database::connect(); $builder = $db->table('cliente_precios'); $plantillaDefectoId = 5; $clienteModel = model('App\Models\Clientes\ClienteModel'); $platillaModel = model('App\Models\Clientes\ClientePlantillaPreciosLineasModel'); $plantillaDefecto = $platillaModel->getResource($plantillaDefectoId)->get()->getResultObject(); $clientes = $clienteModel->getResource()->get()->getResultObject(); foreach ($clientes as $cliente) { foreach ($plantillaDefecto as $plantillaDefectoLinea) { $data = [ 'plantilla_id' => $plantillaDefectoId, 'cliente_id' => $cliente->id, 'tipo' => $plantillaDefectoLinea->tipo, 'tipo_maquina' => $plantillaDefectoLinea->tipo_maquina, 'tipo_impresion' => $plantillaDefectoLinea->tipo_impresion, 'tiempo_min' => $plantillaDefectoLinea->tiempo_min, 'tiempo_max' => $plantillaDefectoLinea->tiempo_max, 'precio_hora' => $plantillaDefectoLinea->precio_hora, 'margen' => $plantillaDefectoLinea->margen, 'user_created_id' => 2, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; /*echo '
';
                var_dump($data);
                echo '
';*/ $builder->insert($data); } //break; } } public function init_presupuesto_encuadernacion($tipo_presupuesto, $solapas, $paginas, $tirada, $ancho, $alto, $POD) { $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); return $model->initPresupuesto($tipo_presupuesto, $solapas, $paginas, $tirada, $ancho, $alto, $POD); } public function get_precio_tarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD) { $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); return $model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD); } public function get_precio_tarifa_acabado($tarifa_id, $tirada, $POD) { $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); return $model->getPrecioTarifa($tarifa_id, $tirada, $POD); } public function get_precio_tarifa_horas($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD) { $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); return $model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD); } public function get_tarifa_enc($tarifa_id, $paginas, $tirada, $ancho, $alto) { $model = model('App\Models\Tarifas\TarifaEncuadernacionModel'); return $model->getTarifaPresupuestoEncuadernacion($tarifa_id, $paginas, $tirada, $ancho, $alto); } public function getProveedoresForSelector_enc($tarifa_id, $paginas, $tirada, $ancho, $alto) { $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel'); return $model->getProveedoresForSelector($tarifa_id, $paginas, $tirada, $ancho, $alto); } public function get_dimensiones_enc() { $dimensionModel = model('App\Models\Tarifas\TarifaEncuadernacionDimensionesModel'); $dimensiones = $dimensionModel->getDimensiones(); var_dump($dimensiones); foreach ($dimensiones as $dim) { $dim->label = lang("TarifaEncuadernacionLineas." . $dim->label); } var_dump($dimensiones); } public function get_tarifas_encuadernacion($tipo_presupuesto, $solapas) { $model = model('App\Models\Presupuestos\TipoPresupuestoTarifaEncuadernacionModel'); return $model->get_tarifas($tipo_presupuesto, $solapas); } public function timeToSeconds() { $time = '99:59:59'; $time_parts = explode(":", $time); $seconds = $time_parts[2] + $time_parts[1] * 60 + $time_parts[0] * 3600; echo "Time in seconds: " . $seconds; } public function getLP() { $lp_model = model('App\Models\Presupuestos\PresupuestoLineaModel'); $data = $lp_model->getLineasPresupuesto(8); $papel_imp_model = model('App\Models\Configuracion\PapelImpresionModel'); $maquina_model = model('App\Models\Configuracion\MaquinaModel'); foreach ($data as $linea) { //$linea->papel_impresion_id = $papel_imp_model->getValue_Nombre($linea->papel_impresion_id)[0]; //$linea->maquina_id = $maquina_model->getValue_Nombre($linea->maquina_id)[0]; var_dump($linea->papel_impresion_id); var_dump($linea->maquina_id); } } public function createLP() { $lp_model = model('App\Models\Presupuestos\PresupuestoLineaModel'); $lp_model->createForPresupuesto(8); } public function getPapelesHQ() { $model = model('App\Models\Configuracion\PapelGenericoModel'); $data = $model->getPapelForComparador('colorhq', false, false); var_dump($data); } public function getPapelesCubierta() { $model = model('App\Models\Configuracion\PapelGenericoModel'); $data = $model->getPapelForComparador('colorhq', true, false); var_dump($data); } public function getPapelesSobrecubierta() { $model = model('App\Models\Configuracion\PapelGenericoModel'); $data = $model->getPapelForComparador('colorhq', false, true, false); var_dump($data); } public function getPapelesGuardas() { $model = model('App\Models\Configuracion\PapelGenericoModel'); $data = $model->getPapelForComparador('color', false, false, false, true); var_dump($data); } public function getGramaje() { $model = new PapelGenericoModel(); $data = $model->getGramajeComparador("AHUESADO OFFSET", "bnhq"); var_dump($data); } public function testGetPrecioPliegoRotativa() { $paginas = 240; $papel_impresion = (object) array( 'id' => 198, 'gramaje' => 90, 'precio_tonelada' => 1600 ); $maquina = (object) array( //'id' => 48, 'alto' => 800, 'ancho' => 520, ); $precio = PresupuestoService::getPrecioPliego($maquina, $papel_impresion, $paginas); var_dump($precio); } public function testGetMaquinasFromTarifas() { $maquinamodel = new MaquinaModel(); //$tarifa_tipo = ['negro', 'color']; //$tarifa_tipo = 'color'; $tarifa_tipo = 'negro'; $papel_impresion_id = 5; $maquina = $maquinamodel->getMaquinaImpresionForPresupuesto(1, $tarifa_tipo, 100, $papel_impresion_id); echo '
';
        var_dump($maquina);
        echo '
'; } public static function testLineasIntPlana() { $uso = 'interior'; $tipo = 'negro'; $datosPedido = (object) array( 'paginas' => 200, 'tirada' => 500, 'merma' => 10, 'merma_portada' => 10, 'ancho' => 150, 'alto' => 210, 'isCosido' => true, ); $maquina_model = new \App\Models\Configuracion\MaquinaModel(); $opciones_papel = array( 'bn' => 1, 'rotativa' => 0, ); $papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel(); $papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto( papel_generico_id: 4, gramaje: 80, options: $opciones_papel ); foreach ($papeles as $papel) { echo '-------------------------------'; $maquinas = $maquina_model->getMaquinaImpresionForPresupuesto( is_rotativa: $papel->rotativa, tarifa_tipo: 'negro', uso_tarifa: 'interior', tirada: $datosPedido->tirada + $datosPedido->merma, papel_impresion_id: $papel->id, ); foreach ($maquinas as $maquina) { echo '----------------------------
'; var_dump($maquina->maquina); var_dump($papel->nombre); [$tarifaId, $tarifa] = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo); $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); echo '
';
                var_dump($linea);
                echo '
'; } } } public static function testLineasIntPlanaCubierta() { echo '
';
        $uso = 'cubierta';
        $tipo = 'color';
        $datosPedido = (object) array(
            'paginas' => 200,
            'tirada' => 500,
            'merma' => 10,
            'merma_portada' => 10,
            'ancho' => 165,
            'alto' => 148,
            'isCosido' => true,
            'solapas' => 0,
            'solapas_ancho' => 0,
        );

        $maquina_model = new \App\Models\Configuracion\MaquinaModel();

        $opciones_papel = array(
            'color' => 1,
            'cubierta' => 1,
            'sobrecubierta' => 0,
            'rotativa' => 0,
        );
        $papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
        $papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
            papel_generico_id: 3,
            gramaje: 100,
            options: $opciones_papel
        );
        foreach ($papeles as $papel) {
            echo '-------------------------------';
            var_dump($papel);
            $maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
                is_rotativa: $papel->rotativa,
                tarifa_tipo: 'color',
                tirada: $datosPedido->tirada + $datosPedido->merma_portada,
                papel_impresion_id: $papel->id,
            );

            foreach ($maquinas as $maquina) {

                echo '----------------------------
'; var_dump($maquina->maquina); var_dump($papel->nombre); $tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo); $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); var_dump($linea); } } echo '
'; } public static function testLineasIntRotativa() { $uso = 'interior'; $tipo = 'negro'; $datosPedido = (object) array( 'paginas' => 240, 'tirada' => 100, 'merma' => 10, 'merma_portada' => 10, 'ancho' => 150, 'alto' => 210, 'isCosido' => true, ); $parametrosRotativa = (object) array( 'a_favor_fibra' => 0, 'bnPages' => 240, 'colorPages' => 0, 'rotativa_gota_negro' => 0, 'rotativa_gota_color' => 0, ); $maquina_model = new \App\Models\Configuracion\MaquinaModel(); $opciones_papel = array( 'bn' => 1, 'cubierta' => 0, 'sobrecubierta' => 0, 'rotativa' => 1, ); $papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel(); $papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto( papel_generico_id: 4, gramaje: 90, options: $opciones_papel ); foreach ($papeles as $papel) { $papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel(); $datosTipologias = $papelImpresionTipologiaModel ->findTipologiasForPapelImpresion($papel->id, $parametrosRotativa->colorPages > 0 ? 'color' : 'negro') ->get()->getResultObject(); echo '
';
            var_dump($papel->id);
            var_dump($datosTipologias);
            echo '
'; $parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro; $parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color; $parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro; $parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan; $parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta; $parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo; echo '-------------------------------'; $maquinas = $maquina_model->getMaquinaImpresionForPresupuesto( is_rotativa: $papel->rotativa, tarifa_tipo: 'negro', uso_tarifa: 'interiro', tirada: $datosPedido->tirada + $datosPedido->merma, papel_impresion_id: $papel->id, ); foreach ($maquinas as $maquina) { echo '----------------------------
'; var_dump($maquina->maquina); var_dump($papel->nombre); $linea = PresupuestoService::getCostesLineaRotativa($maquina, $datosPedido, $parametrosRotativa); echo '
';
                var_dump($linea);
                echo '
'; } } } public static function testLineasCubierta() { $uso = 'cubierta'; $tipo = 'color'; $datosPedido = (object) array( 'paginas' => 240, 'tirada' => 100, 'merma' => 10, 'merma_portada' => 10, 'ancho' => 150, 'alto' => 210, 'isCosido' => true, 'solapas' => false, ); $opciones_papel = array( 'color' => 1, 'cubierta' => 1, ); // Se obtienen los papeles disponibles $papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel(); $papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto( papel_generico_id: 3, // Blanco offset gramaje: 100, options: $opciones_papel ); echo '
';
        var_dump($papeles);
        echo '
'; $lineas = array(); // Para cada papel, se obtienen las maquinas disponibles foreach ($papeles as $papel) { $maquinamodel = new \App\Models\Configuracion\MaquinaModel(); $maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto( is_rotativa: 0, tarifa_tipo: $tipo, tirada: $datosPedido->tirada + $datosPedido->merma, papel_impresion_id: $papel->id, ); echo '
';
            echo '-------------------------------';
            echo '
'; echo '
';
            var_dump($maquinas);
            echo '
'; // Se recorren las máquinas y se calcula el coste de linea por cada una foreach ($maquinas as $maquina) { echo '
';
                echo '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$';
                echo '
'; $tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel(); $tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo); echo '
';
                var_dump($tarifa);
                echo '
'; if (!is_float($tarifa)) { continue; } $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); $linea['fields']['maquina'] = $maquina->maquina; $linea['fields']['maquina_id'] = $maquina->maquina_id; $linea['fields']['papel_impresion'] = $papel->nombre; $linea['fields']['papel_impresion_id'] = $papel->id; $linea['fields']['paginas'] = $datosPedido->paginas; $linea['fields']['gramaje'] = 100; $linea['fields']['papel_generico_id'] = 3; $linea['fields']['papel_generico'] = 'Blanco offset'; array_push($lineas, $linea); } } echo '
';
        var_dump($lineas);
        echo '
'; } public static function testLineasSobrecubierta() { $uso = 'sobrecubierta'; $tipo = 'colorhq'; $datosPedido = (object) array( 'paginas' => 240, 'tirada' => 100, 'merma' => 10, 'merma_portada' => 10, 'ancho' => 150, 'alto' => 210, 'isCosido' => true, 'solapas' => false, ); $opciones_papel = array( 'sobrecubierta' => 1, 'rotativa' => 0, ); // Se obtienen los papeles disponibles $papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel(); $papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto( papel_generico_id: 1, // Blanco offset gramaje: 200, options: $opciones_papel ); echo '
';
        var_dump($papeles);
        echo '
'; $lineas = array(); // Para cada papel, se obtienen las maquinas disponibles foreach ($papeles as $papel) { $maquinamodel = new \App\Models\Configuracion\MaquinaModel(); $maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto( is_rotativa: 0, tarifa_tipo: $tipo, uso_tarifa: 'sobrecubierta', tirada: $datosPedido->tirada + $datosPedido->merma, papel_impresion_id: $papel->id, ); echo '
';
            echo '-------------------------------';
            echo '
'; echo '
';
            var_dump($maquinas);
            echo '
'; // Se recorren las máquinas y se calcula el coste de linea por cada una foreach ($maquinas as $maquina) { echo '
';
                echo '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$';
                echo '
'; $tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel(); $tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo); echo '
';
                var_dump($tarifa);
                echo '
'; if (!is_float($tarifa)) { continue; } $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); $linea['fields']['maquina'] = $maquina->maquina; $linea['fields']['maquina_id'] = $maquina->maquina_id; $linea['fields']['papel_impresion'] = $papel->nombre; $linea['fields']['papel_impresion_id'] = $papel->id; $linea['fields']['paginas'] = $datosPedido->paginas; $linea['fields']['gramaje'] = 100; $linea['fields']['papel_generico_id'] = 3; $linea['fields']['papel_generico'] = 'Blanco offset'; array_push($lineas, $linea); } } echo '
';
        var_dump($lineas);
        echo '
'; } }