mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
trabajando en checkear las lineas de presupuesto
This commit is contained in:
@ -6,8 +6,11 @@ use CodeIgniter\Config\BaseService;
|
||||
|
||||
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
||||
use App\Models\Clientes\ClientePreciosModel;
|
||||
|
||||
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\Configuracion\PapelImpresionModel;
|
||||
use App\Models\Configuracion\PapelGenericoModel;
|
||||
use App\Models\Configuracion\TipoPresupuestoModel;
|
||||
use App\Models\Configuracion\PapelFormatoModel;
|
||||
|
||||
class PresupuestoService extends BaseService
|
||||
{
|
||||
@ -949,6 +952,193 @@ class PresupuestoService extends BaseService
|
||||
return $opciones_papel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static function checkLineasPresupuesto($input_data, $array_lineas)
|
||||
{
|
||||
foreach ($array_lineas as $linea) {
|
||||
|
||||
if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
|
||||
// Generar linea con comparador
|
||||
}
|
||||
else{
|
||||
$nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($input_data, $linea);
|
||||
if(count($nueva_linea) >0){
|
||||
if(round($nueva_linea['fields']['total_impresion'],2) != $linea->total_linea){
|
||||
// Generar linea con comparador
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $array_lineas;
|
||||
}
|
||||
|
||||
private static function obtenerValorLineaPresupuesto($input_data, $linea){
|
||||
|
||||
$tipo_impresion_id = $input_data['tipo_impresion_id'];
|
||||
$tirada = $input_data['tirada'];
|
||||
$merma = $input_data['merma'];
|
||||
$papel_formato_id = $input_data['papel_formato_id'];
|
||||
$papel_formato_personalizado = $input_data['papel_formato_personalizado'];
|
||||
$ancho = $input_data['papel_formato_ancho'];
|
||||
$alto = $input_data['papel_formato_alto'];
|
||||
$cliente_id = $input_data['cliente_id'];
|
||||
$solapas = $input_data['solapas'];
|
||||
$solapas_sobrecubierta = $input_data['solapas_sobrecubierta'];
|
||||
$solapas_ancho_cubierta = $input_data['solapas_ancho'];
|
||||
$solapas_ancho_sobrecubierta = $input_data['solapas_ancho_sobrecubierta'];
|
||||
$lomo_cubierta = $input_data['lomo_cubierta'];
|
||||
$lomo_sobrecubierta = $input_data['lomo_sobrecubierta'];
|
||||
|
||||
if($papel_formato_personalizado == 0){
|
||||
$papel_formato = (new PapelFormatoModel())->find($papel_formato_id);
|
||||
$ancho = $papel_formato->ancho;
|
||||
$alto = $papel_formato->alto;
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$output_data = [];
|
||||
|
||||
$papel_impresion = (new PapelImpresionModel())->find($linea->papel_impresion_id);
|
||||
$maquina = (new MaquinaModel())->find($linea->maquina_id);
|
||||
$maquina->maquina_id = $maquina->id;
|
||||
$maquina->maquina = $maquina->nombre;
|
||||
$papel_generico = (new PapelGenericoModel())->find($linea->papel_id);
|
||||
$papel_generico = array(
|
||||
'id' => $papel_generico->id,
|
||||
'nombre' => $papel_generico->nombre,
|
||||
);
|
||||
|
||||
$data['datosPedido'] = (object)array(
|
||||
'paginas' => $linea->paginas,
|
||||
'tirada' => $tirada,
|
||||
'merma' => $merma,
|
||||
'ancho' => $ancho,
|
||||
'alto' => $alto,
|
||||
'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
|
||||
'isCosido' => (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id),
|
||||
);
|
||||
$data['cliente_id'] = $cliente_id;
|
||||
$data['papel'] = $papel_impresion;
|
||||
$data['maquina'] = $maquina;
|
||||
$data['papel_generico'] = $papel_generico;
|
||||
$data['a_favor_fibra'] = $linea->rotativa_a_favor_fibra;
|
||||
$data['datosTipolog'] = [(object)array(
|
||||
'negro' => $linea->rotativa_negro,
|
||||
'cyan' => $linea->rotativa_cyan,
|
||||
'magenta' => $linea->rotativa_magenta,
|
||||
'amarillo' => $linea->rotativa_amarillo,
|
||||
'cg' => $linea->rotativa_cg,
|
||||
'gota_negro' => $linea->rotativa_gota_negro,
|
||||
'gota_color' => $linea->rotativa_gota_color,
|
||||
)];
|
||||
$data['gramaje'] = $linea->gramaje;
|
||||
|
||||
switch($linea->tipo){
|
||||
|
||||
case 'lp_bn':
|
||||
case 'lp_bnhq':
|
||||
case 'lp_color':
|
||||
case 'lp_colorhq':
|
||||
case 'lp_guardas':
|
||||
$data['uso'] = 'interior';
|
||||
$isColor = strpos($linea->tipo, 'color') !== false;
|
||||
$isHq = strpos($linea->tipo, 'hq') !== false;
|
||||
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
|
||||
$opciones_papel = PresupuestoService::get_opciones_papel('interior', $isColor);
|
||||
|
||||
if($linea->tipo == 'lp_guardas'){
|
||||
$data['datosPedido']->paginas_impresion = $linea->paginas_impresion;
|
||||
// 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) {
|
||||
$data['datosPedido']->isCosido = true;
|
||||
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
|
||||
$data['datosPedido']->isCosido = false;
|
||||
}
|
||||
}
|
||||
|
||||
$data['tipo'] = $tipo;
|
||||
$data['isColor'] = $isColor;
|
||||
$data['opciones_papel'] = $opciones_papel;
|
||||
|
||||
$output_data = PresupuestoService::getLineaPresupuestoPlana($data);
|
||||
break;
|
||||
|
||||
|
||||
case 'lp_rot_color':
|
||||
case 'lp_rot_bn':
|
||||
$data['uso'] = 'interior';
|
||||
$tipo = $linea->rotativa_pag_color>0 ? 'color' : 'negro';
|
||||
$data['paginas'] = (object)array(
|
||||
'negro' => $linea->paginas-$linea->rotativa_pag_color,
|
||||
'color' => $linea->rotativa_pag_color,
|
||||
);
|
||||
|
||||
$data['tipo'] = $tipo;
|
||||
$data['parametrosRotativa'] = (object)array(
|
||||
'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
|
||||
'bnPages' => $data['paginas']->negro,
|
||||
'colorPages' => $data['paginas']->color,
|
||||
'rotativa_negro' => $linea->rotativa_negro,
|
||||
'rotativa_cyan' => $linea->rotativa_cyan,
|
||||
'rotativa_magenta' => $linea->rotativa_magenta,
|
||||
'rotativa_amarillo' => $linea->rotativa_amarillo,
|
||||
'rotativa_gota_negro' => $linea->rotativa_gota_negro,
|
||||
'rotativa_gota_color' => $linea->rotativa_gota_color,
|
||||
);
|
||||
|
||||
$output_data = PresupuestoService::getLineaPresupuestoRotativa($data);
|
||||
break;
|
||||
|
||||
case 'lp_cubierta':
|
||||
case 'lp_sobrecubierta':
|
||||
|
||||
$data['uso'] = ($linea->tipo == 'lp cubierta')? 'cubierta':'sobrecubierta';
|
||||
$data['tipo'] = 'colorhq';
|
||||
$data['isColor'] = true;
|
||||
$data['datosPedido']->solapas = ($linea->tipo == 'lp cubierta')? $solapas : $solapas_sobrecubierta;
|
||||
$data['datosPedido']->solapas_ancho = ($linea->tipo == 'lp cubierta')? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta;
|
||||
$data['datosPedido']->lomo = ($linea->tipo == 'lp cubierta')? $lomo_cubierta : $lomo_sobrecubierta;
|
||||
|
||||
$opciones_papel = PresupuestoService::get_opciones_papel($data['uso'], true);
|
||||
$data['opciones_papel'] = $opciones_papel;
|
||||
|
||||
$data['datosPedido']->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($data['uso'], $tipo_impresion_id, $data['datosPedido']);
|
||||
$data['datosPedido']->altoExteriores = PresupuestoService::getAltoTotalExteriores($data['uso'], $tipo_impresion_id, $data['datosPedido']);
|
||||
|
||||
$output_data = PresupuestoService::getLineaPresupuestoPlana($data);
|
||||
break;
|
||||
}
|
||||
return $output_data;
|
||||
}
|
||||
|
||||
|
||||
// Funcion que comprueba si existe una maquina
|
||||
private static function checkMaquina($maquina_id){
|
||||
|
||||
$maquina = (new MaquinaModel())->find($maquina_id);
|
||||
if (!$maquina) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Funcion que comprueba si existe un papel de impresion
|
||||
private static function checkPapelImpresion($papel_impresion_id){
|
||||
|
||||
$papel = (new PapelImpresionModel())->find($papel_impresion_id);
|
||||
if (!$papel) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Devuelve la dimensión del lomo interior.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user