mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
haciendo el comparador del backend
This commit is contained in:
@ -346,8 +346,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$this->viewData['papelGenericoRotativaNegroList'] = $this->getPapelGenericoRotativaNegro();
|
||||
$this->viewData['papelGenericoRotativaColorList'] = $this->getPapelGenericoRotativaColor();
|
||||
|
||||
$this->viewData['direccionesList'] = $this->getDirecciones($id);
|
||||
|
||||
// Acabados exteriores
|
||||
$this->viewData['acabadosCubierta'] = $this->getAcabadosCubierta();
|
||||
$this->viewData['acabadosSobrecubierta'] = $this->getAcabadosSobrecubierta();
|
||||
@ -357,24 +355,23 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
if($cambios_lineas){
|
||||
$this->viewData['presupuestoEntity']->cambios_lineas=true;
|
||||
}
|
||||
// Tarifas
|
||||
// Servicios
|
||||
[$cambios_en_servicios, $servicios] = $this->getLineasServicios($presupuestoEntity);
|
||||
$this->viewData['serviciosPreimpresion'] = $this->getServiciosPreimpresion();
|
||||
$this->viewData['serviciosPreimpresion'] = $this->getServiciosPreimpresion();
|
||||
$this->viewData['serviciosEncuadernacion'] = $this->getServiciosEncuadernacion();
|
||||
$this->viewData['serviciosManipulado'] = $this->getServiciosManipulado();
|
||||
$this->viewData['serviciosAcabado'] = $this->getServiciosAcabado();
|
||||
|
||||
[$cambios_en_servicios, $servicios] = $this->getLineasServicios($presupuestoEntity);
|
||||
|
||||
$this->viewData['serviciosEncuadernacionList'] = (new PresupuestoEncuadernacionesModel())->getResource($id)->get()->getResultObject();
|
||||
$this->viewData['serviciosAcabadosList'] = (new PresupuestoAcabadosModel())->getResource($id)->get()->getResultObject();
|
||||
$this->viewData['serviciosManipuladoList'] = (new PresupuestoManipuladosModel())->getResource($id)->get()->getResultObject();
|
||||
$this->viewData['serviciosPreimpresionList'] = (new PresupuestoPreimpresionesModel())->getResource($id)->get()->getResultObject();
|
||||
[$cambios_en_servicios, $servicios] = $this->getLineasServicios($presupuestoEntity);
|
||||
$this->viewData['serviciosEncuadernacionList'] = $servicios->serviciosEncuadernacion;
|
||||
$this->viewData['serviciosAcabadosList'] = $servicios->serviciosAcabado;
|
||||
$this->viewData['serviciosManipuladoList'] = $servicios->serviciosManipulado;
|
||||
$this->viewData['serviciosPreimpresionList'] = $servicios->serviciosPreimpresion;
|
||||
|
||||
// Direciones presupuesto
|
||||
$this->getLineasDirecciones($presupuestoEntity);
|
||||
$this->viewData['presupuestoDirecciones'] = (new PresupuestoDireccionesModel())->getResource("", $id)->get()->getResultObject();
|
||||
[$cambios_en_direcciones, $this->viewData['direccionesList']] = $this->getLineasDirecciones($presupuestoEntity);
|
||||
|
||||
|
||||
$this->viewData['POD'] = $this->getPOD();
|
||||
|
||||
$this->viewData['serviciosAutomaticos'] = [
|
||||
@ -1318,11 +1315,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
return $model->getPOD();
|
||||
}
|
||||
|
||||
protected function getDirecciones($presupuesto_id){
|
||||
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
|
||||
return $model->where('presupuesto_id', $presupuesto_id)->findAll();
|
||||
}
|
||||
|
||||
protected function getLineasPresupuesto($presupuestoEntity){
|
||||
$lineas = (new PresupuestoLineaModel())->getLineasPresupuesto($presupuestoEntity->id);
|
||||
|
||||
@ -1384,10 +1376,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
protected function getLineasDirecciones($presupuestoEntity){
|
||||
|
||||
$direccionesEnvio = (new PresupuestoDireccionesModel())->getResource("", $presupuestoEntity->id)->get()->getResultObject();
|
||||
|
||||
$nuevasDirecciones = PresupuestoService::checkLineasEnvios($direccionesEnvio);
|
||||
|
||||
return $direccionesEnvio;
|
||||
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
|
||||
$direccionesEnvio = $model->where('presupuesto_id', $presupuestoEntity->id)->findAll();
|
||||
|
||||
return PresupuestoService::checkLineasEnvios($direccionesEnvio);
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,6 +90,16 @@ class PresupuestoDireccionesModel extends \App\Models\GoBaseModel
|
||||
->groupEnd();
|
||||
}
|
||||
|
||||
|
||||
public function updateLineaEnvio($lineaEnvio){
|
||||
|
||||
$lineaTemp = $lineaEnvio;
|
||||
unset($lineaTemp->pais);
|
||||
|
||||
$this->save($lineaTemp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get resource data for pdf generation.
|
||||
*
|
||||
|
||||
@ -355,13 +355,6 @@ class PresupuestoLineaModel extends \App\Models\GoBaseModel
|
||||
"tarifa_impresion_id" => $new_linea['fields']['tarifa_impresion_id'],
|
||||
"rotativa_total_impresion" => $rot_total_impresion,
|
||||
"rotativa_a_favor_fibra" => $new_linea['fields']['a_favor_fibra'] ?? 0,
|
||||
"rotativa_negro" => $new_linea['fields']['datosTipologias']->negro ?? 0,
|
||||
"rotativa_cyan" => $new_linea['fields']['datosTipologias']->cyan ?? 0,
|
||||
"rotativa_magenta" => $new_linea['fields']['datosTipologias']->magenta ?? 0,
|
||||
"rotativa_amarillo" => $new_linea['fields']['datosTipologias']->amarillo ?? 0,
|
||||
"rotativa_cg" => $new_linea['fields']['datosTipologias']->cg ?? 0,
|
||||
"rotativa_gota_negro" => $new_linea['fields']['datosTipologias']->gota_negro ?? 0,
|
||||
"rotativa_gota_color" => $new_linea['fields']['datosTipologias']->gota_color,
|
||||
"rotativa_mxm" => $new_linea['fields']['maquina_velocidad'] ?? 0,
|
||||
"rotativa_resolucion" => $new_linea['fields']['resolucion'] ?? 0,
|
||||
"rotativa_area_paginas" => $new_linea['fields']['superficie'] ?? 0,
|
||||
@ -399,8 +392,19 @@ class PresupuestoLineaModel extends \App\Models\GoBaseModel
|
||||
"precio_impresion" => $new_linea['fields']['precio_impresion_horas'] ?? 0,
|
||||
"total_linea" => round($new_linea['fields']['total_impresion'], 2) ?? 0,
|
||||
"margen_impresion" => $new_linea['fields']['margen_impresion_horas'] ?? 0,
|
||||
"margen_click_pedido" => $new_linea['fields']['margen_click_pedido'] ?? 0,
|
||||
];
|
||||
|
||||
if(array_key_exists('datosTipologias', $new_linea['fields'])){
|
||||
$data += [
|
||||
"rotativa_negro" => $new_linea['fields']['datosTipologias']->negro ?? 0,
|
||||
"rotativa_cyan" => $new_linea['fields']['datosTipologias']->cyan ?? 0,
|
||||
"rotativa_magenta" => $new_linea['fields']['datosTipologias']->magenta ?? 0,
|
||||
"rotativa_amarillo" => $new_linea['fields']['datosTipologias']->amarillo ?? 0,
|
||||
"rotativa_cg" => $new_linea['fields']['datosTipologias']->cg ?? 0,
|
||||
"rotativa_gota_negro" => $new_linea['fields']['datosTipologias']->gota_negro ?? 0,
|
||||
"rotativa_gota_color" => $new_linea['fields']['datosTipologias']->gota_color
|
||||
];
|
||||
}
|
||||
$this->db
|
||||
->table($this->table . " t1")
|
||||
->where('id', $id_linea)
|
||||
|
||||
@ -18,6 +18,7 @@ use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
||||
use App\Models\Presupuestos\PresupuestoManipuladosModel;
|
||||
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
|
||||
|
||||
use App\Models\Presupuestos\PresupuestoDireccionesModel;
|
||||
use App\Models\Tarifas\TarifaEnvioModel;
|
||||
|
||||
|
||||
@ -230,6 +231,9 @@ class PresupuestoService extends BaseService
|
||||
|
||||
// precio del pliego de impresion
|
||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
|
||||
if(count($linea['fields']) == 0){
|
||||
return [];
|
||||
}
|
||||
|
||||
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
|
||||
|
||||
@ -461,6 +465,10 @@ class PresupuestoService extends BaseService
|
||||
$factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
|
||||
$factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
|
||||
|
||||
if(floor($factor_anchura) == 0){
|
||||
return [];
|
||||
}
|
||||
|
||||
$multiplicador_pliego = $datosPedido->isCosido ? 4 : 2;
|
||||
$paginas_por_pliego = round(floor($factor_anchura) * $factor_altura * $multiplicador_pliego, 2);
|
||||
$pliegos_libro = round($paginas_por_pliego ? $datosPedido->paginas / $paginas_por_pliego : 0, 2);
|
||||
@ -966,24 +974,39 @@ class PresupuestoService extends BaseService
|
||||
public static function checkLineasPresupuesto($input_data, $array_lineas)
|
||||
{
|
||||
$cambios = false;
|
||||
|
||||
$lineas = [];
|
||||
|
||||
foreach ($array_lineas as $linea) {
|
||||
|
||||
if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
|
||||
// Generar linea con comparador
|
||||
|
||||
// Hay que ver si es rotativa o plana
|
||||
if(str_contains($linea->tipo, '_rot_')){
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
}
|
||||
}
|
||||
else{
|
||||
$nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($input_data, $linea);
|
||||
if(count($nueva_linea) >0){
|
||||
if(round($nueva_linea['fields']['total_impresion'],2) != $linea->total_linea){
|
||||
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $nueva_linea);
|
||||
$linea_to_save = (new PresupuestoLineaModel())->find($linea->id);
|
||||
$cambios = true;
|
||||
array_push($lineas, $linea_to_save);
|
||||
}
|
||||
else{
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return [$cambios, $array_lineas];
|
||||
return [$cambios, $lineas];
|
||||
}
|
||||
|
||||
private static function obtenerValorLineaPresupuesto($input_data, $linea){
|
||||
@ -1108,7 +1131,7 @@ class PresupuestoService extends BaseService
|
||||
case 'lp_cubierta':
|
||||
case 'lp_sobrecubierta':
|
||||
|
||||
$data['uso'] = ($linea->tipo == 'lp cubierta')? 'cubierta':'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;
|
||||
@ -1321,6 +1344,7 @@ class PresupuestoService extends BaseService
|
||||
|
||||
if(count($envios)>0){
|
||||
$model = new TarifaEnvioModel();
|
||||
|
||||
foreach ($envios as $envio) {
|
||||
$paisId = $envio->pais_id;
|
||||
$cp= $envio->cp;
|
||||
@ -1329,7 +1353,6 @@ class PresupuestoService extends BaseService
|
||||
|
||||
$nueva_tarifa = $model->getTarifaEnvio($paisId, $cp, $peso, $tipo_envio);
|
||||
|
||||
//$nueva_tarifa = $model->getPrecioTarifa($envio->tarifa_envio_id, $input_data['tirada'], $input_data['POD']);
|
||||
if($nueva_tarifa && count($nueva_tarifa)>0){
|
||||
$coste = 0;
|
||||
$margen = 0;
|
||||
@ -1345,14 +1368,17 @@ class PresupuestoService extends BaseService
|
||||
$margen += $coste*floatval($nueva_tarifa[0]->margen)/100.0;
|
||||
|
||||
if(round($coste, 2) != $envio->precio ||
|
||||
$margen != $envio->margen){
|
||||
$margen != $envio->margen || $nueva_tarifa[0]->id != $envio->tarifa_id){
|
||||
|
||||
$envio->precio = round($coste, 2);
|
||||
$envio->margen = $margen;
|
||||
$envio->tarifa_id = $nueva_tarifa[0]->id;
|
||||
$cambio = true;
|
||||
|
||||
$presupuestoDirecciones = new PresupuestoDireccionesModel();
|
||||
$presupuestoDirecciones->updateLineaEnvio($envio);
|
||||
}
|
||||
//$model->updateTarifas($input_data['presupuesto_id'], array($envio_temp));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1362,6 +1388,102 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
|
||||
|
||||
private static function obtenerLineasRotativa($input_data){
|
||||
|
||||
$uso = 'interior';
|
||||
|
||||
$tipo = $paginas->color > 0 ? 'color' : 'negro';
|
||||
|
||||
|
||||
$parametrosRotativa = (object)array(
|
||||
'a_favor_fibra' => $datosPedido->a_favor_fibra,
|
||||
'bnPages' => $paginas->negro,
|
||||
'colorPages' => $paginas->color,
|
||||
'rotativa_gota_negro' => 0,
|
||||
'rotativa_gota_color' => 0,
|
||||
);
|
||||
|
||||
$opciones_papel = array(
|
||||
'rotativa' => 1,
|
||||
);
|
||||
|
||||
$tipo = array();
|
||||
if ($paginas->color > 0) {
|
||||
$tipo = 'color';
|
||||
$opciones_papel['color'] = 1;
|
||||
}
|
||||
else {
|
||||
$opciones_papel['bn'] = 1;
|
||||
$tipo = 'negro';
|
||||
}
|
||||
|
||||
// Se obtienen los papeles disponibles
|
||||
$papelimpresionmodel = new PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: $papel_generico['id'],
|
||||
gramaje: $gramaje,
|
||||
options: $opciones_papel
|
||||
);
|
||||
|
||||
$lineas = array();
|
||||
// Para cada papel, se obtienen las maquinas disponibles
|
||||
foreach ($papeles as $papel) {
|
||||
|
||||
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
|
||||
if (is_null($datosTipolog)) {
|
||||
$datosTipologias = $papelImpresionTipologiaModel
|
||||
->findTipologiasForPapelImpresion($papel->id, $parametrosRotativa->colorPages > 0 ? 'color' : 'negro')
|
||||
->get()->getResultObject();
|
||||
|
||||
|
||||
if (count($datosTipologias) == 0) {
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
$datosTipologias = $datosTipolog;
|
||||
}
|
||||
|
||||
$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;
|
||||
|
||||
$maquinamodel = new MaquinaModel();
|
||||
|
||||
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: 1,
|
||||
tarifa_tipo: $tipo,
|
||||
uso_tarifa: $uso,
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
// Se recorren las máquinas y se calcula el coste de linea por cada una
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
$data['uso'] = $uso;
|
||||
$data['tipo'] = $tipo;
|
||||
$data['datosPedido'] = $datosPedido;
|
||||
$data['cliente_id'] = $cliente_id;
|
||||
$data['papel'] = $papel;
|
||||
$data['maquina'] = $maquina;
|
||||
$data['papel_generico'] = $papel_generico;
|
||||
$data['parametrosRotativa'] = $parametrosRotativa;
|
||||
$data['paginas'] = $paginas;
|
||||
$data['gramaje'] = $gramaje;
|
||||
|
||||
$linea = PresupuestoService::getLineaPresupuestoRotativa($data);
|
||||
|
||||
if(empty($linea))
|
||||
continue;
|
||||
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
}
|
||||
return $lineas;
|
||||
}
|
||||
|
||||
|
||||
// Funcion que comprueba si existe una maquina
|
||||
|
||||
@ -2977,7 +2977,7 @@ function clear_lp_rot_bn(clear_selectors){
|
||||
$(".lp-rot-bn-input" ).val("0")
|
||||
$("#lp_rot_bn_paginas" ).val(pags)
|
||||
if(clear_selectors)
|
||||
$( ".lp-rotbn-select").empty()
|
||||
$( ".lp-rot-bn-select").empty()
|
||||
}
|
||||
|
||||
|
||||
@ -3324,7 +3324,7 @@ function clear_lp_rot_color(clear_selectors){
|
||||
$(".lp-rot-color-input" ).val("0")
|
||||
$("#lp_rot_color_paginas" ).val(pags)
|
||||
if(clear_selectors)
|
||||
$( ".lp-rotcolor-select").empty()
|
||||
$( ".lp-rot-color-select").empty()
|
||||
}
|
||||
|
||||
|
||||
|
||||
74399
xdebug.log
74399
xdebug.log
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user