mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
269 lines
9.3 KiB
PHP
Executable File
269 lines
9.3 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Entities\Presupuestos;
|
|
|
|
use App\Models\Configuracion\MaquinaModel;
|
|
use CodeIgniter\Entity;
|
|
use App\Entities\Configuracion\Maquina as MaquinaEntity;
|
|
use App\Entities\Configuracion\MaquinasTarifasImpresionEntity;
|
|
use App\Entities\Configuracion\PapelGenerico;
|
|
use App\Entities\Configuracion\PapelImpresion;
|
|
use App\Entities\Tarifas\TarifapreimpresionEntity;
|
|
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
|
use App\Models\Configuracion\PapelGenericoModel;
|
|
use App\Models\Configuracion\PapelImpresionModel;
|
|
use Config\LogoImpresion;
|
|
|
|
class PresupuestoLineaEntity extends \CodeIgniter\Entity\Entity
|
|
{
|
|
protected $attributes = [
|
|
"id" => null,
|
|
"presupuesto_id" => null,
|
|
"tipo" => null,
|
|
"paginas" => 0,
|
|
"paginas_impresion" => 0, //guardas
|
|
"paginas_color_posicion" => null,
|
|
"solapas_ancho" => 0.0,
|
|
"papel_id" => null,
|
|
"papel_impresion_id" => null,
|
|
"formas" => null,
|
|
"gramaje" => null,
|
|
"pliegos_libro" => null,
|
|
"pliegos_pedido" => null,
|
|
"pliegos_precio" => null,
|
|
"libro" => null,
|
|
"pedido" => null,
|
|
"mano" => null,
|
|
"peso" => null,
|
|
"maquina_id" => null,
|
|
"tarifa_impresion_id" => null,
|
|
"click" => null,
|
|
"precio" => null,
|
|
"total_papel_pedido" => null,
|
|
"margen_papel_pedido" => null,
|
|
"margen_impresion" => null,
|
|
"rotativa_impresion" => null,
|
|
"rotativa_pag_color" => 0,
|
|
"rotativa_set_values" => false,
|
|
"rotativa_negro" => 0.0,
|
|
"rotativa_cyan" => 0.0,
|
|
"rotativa_magenta" => 0.0,
|
|
"rotativa_amarillo" => 0.0,
|
|
"rotativa_gota_negro" => 0.0,
|
|
"rotativa_gota_color" => 0.0,
|
|
"rotativa_saturacion" => 100.0,
|
|
"rotativa_a_favor_fibra" => true,
|
|
"rotativa_mxm" => null,
|
|
"rotativa_area_paginas" => null,
|
|
"rotativa_num_gotas_negro" => 0,
|
|
"rotativa_num_gotas_cyan" => 0,
|
|
"rotativa_num_gotas_magenta" => 0,
|
|
"rotativa_num_gotas_amarillo" => 0,
|
|
"rotativa_peso_gotas_negro" => 0,
|
|
"rotativa_peso_gotas_cyan" => 0,
|
|
"rotativa_peso_gotas_magenta" => 0,
|
|
"rotativa_peso_gotas_amarillo" => 0,
|
|
"rotativa_precio_pag_negro" => null,
|
|
"rotativa_precio_pag_color" => null,
|
|
"rotativa_factor_altura" => null,
|
|
"rotativa_factor_anchura" => null,
|
|
"rotativa_pag_por_pliego" => null,
|
|
"rotativa_metros_libro" => null,
|
|
"rotativa_metros_total" => null,
|
|
"rotativa_clicks_libro" => null,
|
|
"rotativa_clicks_total" => null,
|
|
"rotativa_precio_tinta" => null,
|
|
"rotativa_total_impresion" => null,
|
|
"rotativa_velocidad_corte" => 0,
|
|
"rotativa_tiempo_corte" => 0,
|
|
"rotativa_precio_hora_corte" => 0,
|
|
"rotativa_total_corte" => 0,
|
|
"check_impresion_total" => false,
|
|
"check_papel_total" => false,
|
|
"maquina" => null,
|
|
"papel_impresion" => null,
|
|
"maquina_tipo" => 'toner',
|
|
"horas_maquina" => 0,
|
|
"precio_hora" => 0,
|
|
"precio_impresion" => 0,
|
|
"total_linea" => 0,
|
|
];
|
|
protected $casts = [
|
|
"presupuesto_id" => "int",
|
|
"paginas" => "int",
|
|
"paginas_impresion" => "int", // guardas
|
|
"solapas_ancho" => "float",
|
|
"papel_id" => "?int",
|
|
"papel_impresion_id" => "?int",
|
|
"gramaje" => "?float",
|
|
"pliegos_libro" => "?float",
|
|
"pliegos_pedido" => "?float",
|
|
"pliegos_precio" => "?float",
|
|
"libro" => "?float",
|
|
"pedido" => "?float",
|
|
"mano" => "?float",
|
|
"peso" => "?float",
|
|
"maquina_id" => "?int",
|
|
"tarifa_impresion_id" => "?int",
|
|
"click" => "?float",
|
|
"precio" => "?float",
|
|
"total_papel_pedido" => "?float",
|
|
"margen_papel_pedido" => "?float",
|
|
"margen_impresion" => "?float",
|
|
"rotativa_pag_color" => "int",
|
|
"rotativa_set_values" => "boolean",
|
|
"rotativa_negro" => "float",
|
|
"rotativa_cyan" => "float",
|
|
"rotativa_magenta" => "float",
|
|
"rotativa_amarillo" => "float",
|
|
"rotativa_gota_negro" => "float",
|
|
"rotativa_gota_color" => "float",
|
|
"rotativa_saturacion" => "float",
|
|
"rotativa_a_favor_fibra" => "boolean",
|
|
"rotativa_mxm" => "?float",
|
|
"rotativa_area_paginas" => "float",
|
|
"rotativa_num_gotas_negro" => "float",
|
|
"rotativa_num_gotas_cyan" => "float",
|
|
"rotativa_num_gotas_magenta" => "float",
|
|
"rotativa_num_gotas_amarillo" => "float",
|
|
"rotativa_peso_gotas_negro" => "float",
|
|
"rotativa_peso_gotas_cyan" => "float",
|
|
"rotativa_peso_gotas_magenta" => "float",
|
|
"rotativa_peso_gotas_amarillo" => "float",
|
|
"rotativa_precio_pag_negro" => "float",
|
|
"rotativa_precio_pag_color" => "float",
|
|
"rotativa_factor_altura" => "float",
|
|
"rotativa_factor_anchura" => "float",
|
|
"rotativa_pag_por_pliego" => "float",
|
|
"rotativa_metros_libro" => "float",
|
|
"rotativa_metros_total" => "float",
|
|
"rotativa_clicks_libro" => "float",
|
|
"rotativa_clicks_total" => "float",
|
|
"rotativa_precio_tinta" => "float",
|
|
"rotativa_total_impresion" => "float",
|
|
"rotativa_velocidad_corte" => "float",
|
|
"rotativa_tiempo_corte" => "float",
|
|
"rotativa_precio_hora_corte" => "float",
|
|
"rotativa_total_corte" => "float",
|
|
"check_impresion_total" => "boolean",
|
|
"check_papel_total" => "boolean",
|
|
"horas_maquina" => "double",
|
|
"precio_hora" => "double",
|
|
"precio_impresion" => "double",
|
|
"total_linea" => "double",
|
|
];
|
|
|
|
/**
|
|
* Devuelve la entity MaquinaEntity asociada a esta linea de presupuesto
|
|
*
|
|
* @return MaquinaEntity
|
|
*/
|
|
public function maquina(): MaquinaEntity
|
|
{
|
|
$m = model(MaquinaModel::class);
|
|
return $m->find($this->attributes["maquina_id"]);
|
|
}
|
|
/**
|
|
* Devuelve la entity PapelImpresion asociada a esta linea de presupuesto.
|
|
*
|
|
* @return PapelImpresion
|
|
*/
|
|
public function papel_impresion(): PapelImpresion
|
|
{
|
|
$m = model(PapelImpresionModel::class);
|
|
return $m->find($this->attributes['papel_impresion_id']);
|
|
}
|
|
/**
|
|
* Devuelve la entity PapelGenerico asociada a esta linea de presupuesto.
|
|
*
|
|
* @return PapelGenerico
|
|
*/
|
|
public function papel_generico(): PapelGenerico
|
|
{
|
|
$m = model(PapelGenericoModel::class);
|
|
return $m->find($this->attributes['papel_id']);
|
|
}
|
|
/**
|
|
* Devuelve la entity MaquinasTarifasImpresionEntity asociada a esta linea de presupuesto.
|
|
*
|
|
* @return MaquinasTarifasImpresionEntity
|
|
*/
|
|
public function tarifa_impresion(): MaquinasTarifasImpresionEntity
|
|
{
|
|
$m = model(MaquinasTarifasImpresionModel::class);
|
|
return $m->find($this->attributes['tarifa_impresion_id']);
|
|
}
|
|
|
|
public function get_impresion_logo()
|
|
{
|
|
$logo = config(LogoImpresion::class);
|
|
return $logo->get_logo_path($this->attributes["tipo"]);
|
|
}
|
|
public function get_nombre_tarea(): ?string
|
|
{
|
|
$nombre = null;
|
|
$impresion_bn = ["lp_bn", "lp_bnhq", "lp_rot_bn"];
|
|
$impresion_color = ["lp_color", "lp_colorhq", "lp_rot_color"];
|
|
$impresion_cubierta = ["lp_cubierta"];
|
|
$impresion_guardas = ["lp_guardas"];
|
|
$impresion_sobrecubierta = ["lp_sobrecubierta"];
|
|
|
|
$is_bn = in_array($this->attributes["tipo"], $impresion_bn);
|
|
$is_color = in_array($this->attributes["tipo"], $impresion_color);
|
|
$is_impresion_cubierta = in_array($this->attributes["tipo"], $impresion_cubierta);
|
|
$is_impresion_guarda = in_array($this->attributes["tipo"], $impresion_guardas);
|
|
$is_impresion_sobrecubierta = in_array($this->attributes["tipo"], $impresion_sobrecubierta);
|
|
|
|
if ($is_bn) $nombre = "Impresión B/N";
|
|
if ($is_color) $nombre = "Impresión color";
|
|
if ($is_impresion_cubierta) $nombre = "Impresión cubierta";
|
|
if ($is_impresion_guarda) $nombre = "Impresión guarda";
|
|
if ($is_impresion_sobrecubierta) $nombre = "Impresión sobrecubierta";
|
|
|
|
return $nombre;
|
|
}
|
|
public function isGuarda(): bool
|
|
{
|
|
return in_array($this->attributes["tipo"], ["lp_guardas"]);
|
|
}
|
|
public function isCubierta(): bool
|
|
{
|
|
return in_array($this->attributes["tipo"], ["lp_cubierta"]);
|
|
}
|
|
public function isSobreCubierta(): bool
|
|
{
|
|
return in_array($this->attributes["tipo"], ["lp_sobrecubierta"]);
|
|
}
|
|
public function isRotativa(): bool
|
|
{
|
|
return in_array($this->attributes['tipo'], ['lp_rot_color', 'lp_rot_bn']);
|
|
}
|
|
public function isColor(): bool
|
|
{
|
|
return in_array($this->attributes['tipo'], ['lp_color', 'lp_colorhq', 'lp_rot_color']);
|
|
}
|
|
public function isBN(): bool
|
|
{
|
|
return in_array($this->attributes['tipo'], ["lp_bn", "lp_bnhq", "lp_rot_bn"]);
|
|
}
|
|
|
|
public function tinta(): string
|
|
{
|
|
$tinta = "";
|
|
if ($this->isCubierta()) {
|
|
$paginas = $this->attributes['paginas'];
|
|
if ($paginas / 2 == 1) {
|
|
$tinta = '4/0';
|
|
}
|
|
if ($paginas / 2 == 2) {
|
|
$tinta = '4/4';
|
|
}
|
|
} elseif ($this->isColor()) {
|
|
$tinta = '4/4';
|
|
} elseif ($this->isBN()) {
|
|
$tinta = '4/0';
|
|
}
|
|
return $tinta;
|
|
}
|
|
}
|