Files
safekat/ci4/app/Controllers/Test.php

519 lines
17 KiB
PHP
Executable File

<?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\Services\PresupuestoService;
class Test extends BaseController
{
function __construct()
{
}
public function index()
{
echo '<pre>';
$maquina_id = 63;
$maquina_model = model('App\Models\Configuracion\MaquinaModel');
$maquina = $maquina_model->find($maquina_id);
$formas = PresupuestoService::getNumFormasPlana('cubierta', $maquina, 493.2, 210, true);
var_dump($formas);
echo '</pre>';
/*
$linea = PresupuestoService::getCostesLinea('interior', $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
echo '<pre>';
var_dump($formas);
echo '</pre>';
echo '<pre>';
$tarifa_value = $this->get_tarifa_enc(18,150,22,150,210);
var_dump($tarifa_value[0]);
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
$result = $model->calcularTarifa($tarifa_value[0], 150, true);
var_dump($result);
echo '</pre>';*/
}
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 '<pre>';
var_dump($data);
echo '</pre>';*/
$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 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 '<pre>';
var_dump($maquina);
echo '</pre>';
}
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 '----------------------------<br>';
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 '<pre>';
var_dump($linea);
echo '</pre>';
}
}
}
public static function testLineasIntPlanaCubierta()
{
echo '<pre>';
$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 '----------------------------<br>';
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 '</pre>';
}
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 '<pre>';
var_dump($papel->id);
var_dump($datosTipologias);
echo '</pre>';
$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 '----------------------------<br>';
var_dump($maquina->maquina);
var_dump($papel->nombre);
$linea = PresupuestoService::getCostesLineaRotativa($maquina, $datosPedido, $parametrosRotativa);
echo '<pre>';
var_dump($linea);
echo '</pre>';
}
}
}
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 '<pre>';
var_dump($papeles);
echo '</pre>';
$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 '<pre>';
echo '-------------------------------';
echo '</pre>';
echo '<pre>';
var_dump($maquinas);
echo '</pre>';
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
echo '<pre>';
echo '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$';
echo '</pre>';
$tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel();
$tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
echo '<pre>';
var_dump($tarifa);
echo '</pre>';
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 '<pre>';
var_dump($lineas);
echo '</pre>';
}
}