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:
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
||||
ci4/.env
|
||||
.vscode/
|
||||
|
||||
|
||||
@ -346,7 +346,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$this->viewData['acabadosSobrecubierta'] = $this->getAcabadosSobrecubierta();
|
||||
|
||||
// Lineas Presupuesto
|
||||
$this->viewData['lineasPresupuesto'] = (new PresupuestoLineaModel())->getLineasPresupuesto($id);
|
||||
$this->viewData['lineasPresupuesto'] = $this->getLineasPresupuesto($presupuestoEntity);
|
||||
|
||||
// Tarifas
|
||||
$this->viewData['serviciosAcabado'] = $this->getServiciosAcabado();
|
||||
@ -1302,4 +1302,26 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
|
||||
return $model->where('presupuesto_id', $presupuesto_id)->findAll();
|
||||
}
|
||||
|
||||
protected function getLineasPresupuesto($presupuestoEntity){
|
||||
$lineas = (new PresupuestoLineaModel())->getLineasPresupuesto($presupuestoEntity->id);
|
||||
|
||||
$input_data = [];
|
||||
$input_data['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id;
|
||||
$input_data['tirada'] = $presupuestoEntity->tirada;
|
||||
$input_data['merma'] = $presupuestoEntity->merma;
|
||||
$input_data['papel_formato_id'] = $presupuestoEntity->papel_formato_id;
|
||||
$input_data['papel_formato_personalizado'] = $presupuestoEntity->papel_formato_personalizado;
|
||||
$input_data['papel_formato_ancho'] = $presupuestoEntity->papel_formato_ancho;
|
||||
$input_data['papel_formato_alto'] = $presupuestoEntity->papel_formato_alto;
|
||||
$input_data['cliente_id'] = $presupuestoEntity->cliente_id;
|
||||
$input_data['solapas'] = $presupuestoEntity->solapas;
|
||||
$input_data['solapas_ancho'] = $presupuestoEntity->solapas_ancho;
|
||||
$input_data['solapas_sobrecubierta'] = $presupuestoEntity->solapas_sobrecubierta;
|
||||
$input_data['solapas_ancho_sobrecubierta'] = $presupuestoEntity->solapas_ancho_sobrecubierta;
|
||||
$input_data['lomo_cubierta'] = $presupuestoEntity->lomo_cubierta;
|
||||
$input_data['lomo_sobrecubierta'] = $presupuestoEntity->lomo_sobrecubierta;
|
||||
|
||||
return PresupuestoService::checkLineasPresupuesto($input_data, $lineas);
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,19 +17,8 @@ class Test extends BaseController
|
||||
|
||||
public function index()
|
||||
{
|
||||
$presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel');
|
||||
$presupuesto = $presupuestoModel->find(44);
|
||||
|
||||
$presupuestoAcabadosModel = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||
|
||||
echo '<pre>';
|
||||
$presupuestoLineaModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
|
||||
$presupuestoLineaModel->duplicateLineasPresupuesto(48, 75);
|
||||
echo '</pre>';
|
||||
|
||||
|
||||
|
||||
|
||||
$status = PresupuestoService::checkMaquina(1995);
|
||||
var_dump($status);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -51,7 +51,8 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
||||
"comentarios_pdf" => null,
|
||||
"comentarios_tarifa" => null,
|
||||
"comentarios_produccion" => null,
|
||||
"lomo" => null,
|
||||
"lomo_cubierta" => null,
|
||||
"lomo_sobrecubierta" => null,
|
||||
"total_presupuesto" => null,
|
||||
"envios_recoge_cliente" => false,
|
||||
"tirada_alternativa_json_data" => null,
|
||||
@ -120,7 +121,8 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
||||
"sobrecubiertas_ancho" => "float",
|
||||
"merma" => "float",
|
||||
"merma_cubierta" => "float",
|
||||
"lomo" => "?int",
|
||||
"lomo_cubierta" => "?float",
|
||||
"lomo_sobrecubierta" => "?float",
|
||||
"total_presupuesto" => "?float",
|
||||
"envios_recoge_cliente" => "boolean",
|
||||
"aprobado_user_id" => "?int",
|
||||
|
||||
@ -72,7 +72,8 @@ class PresupuestoModel extends \App\Models\GoBaseModel
|
||||
"comentarios_pdf",
|
||||
"comentarios_tarifa",
|
||||
"comentarios_produccion",
|
||||
"lomo",
|
||||
"lomo_cubierta",
|
||||
"lomo_sobrecubierta",
|
||||
"total_presupuesto",
|
||||
"envios_recoge_cliente",
|
||||
"tirada_alternativa_json_data",
|
||||
@ -277,8 +278,9 @@ class PresupuestoModel extends \App\Models\GoBaseModel
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.id AS id, t1.created_at AS fecha, t1.titulo AS titulo, t1.autor AS autor, t1.ferro AS ferro,
|
||||
t1.ferro_digital AS ferro_digital, t1.prototipo AS prototipo, t1.solapas AS solapas, t1.lomo AS lomo,
|
||||
t1.solapas_ancho AS solapas_ancho, t1.paginas AS paginas, t1.tirada AS tirada, t1.coleccion AS coleccion,
|
||||
t1.ferro_digital AS ferro_digital, t1.prototipo AS prototipo, t1.solapas AS solapas, t1.solapas_sobrecubierta AS solapas_sobrecubierta,
|
||||
t1.lomo_cubierta AS lomo_cubierta, t1.lomo_sobrecubierta AS lomo_sobrecubierta,
|
||||
t1.solapas_ancho AS solapas_ancho, t1.solapas_sobrecubierta_ancho AS solapas_sobrecubierta_ancho, t1.paginas AS paginas, t1.tirada AS tirada, t1.coleccion AS coleccion,
|
||||
t1.retractilado AS retractilado, t1.guardas AS guardas, t1.marcapaginas AS marcapaginas,
|
||||
t1.comentarios_pdf AS comentarios_pdf, t1.tirada_alternativa_json_data AS tiradas_alternativas,
|
||||
t1.total_presupuesto AS total_presupuesto, t1.total_precio_unidad AS total_precio_unidad,
|
||||
|
||||
@ -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.
|
||||
*/
|
||||
|
||||
@ -4001,7 +4001,7 @@ async function calcularPresupuesto_sobrecubierta(fromComparador=false, input_dat
|
||||
merma: parseInt($('#mermacubierta').val()),
|
||||
ancho: dimension.ancho,
|
||||
alto: dimension.alto,
|
||||
lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto,
|
||||
lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto(),
|
||||
papel_generico_id: input_data.papel_generico_id,
|
||||
papel_generico: input_data.papel_generico,
|
||||
gramaje: input_data.gramaje,
|
||||
@ -4137,6 +4137,7 @@ function getLomoLineasPresupuesto(){
|
||||
catch(error){
|
||||
lomoTotal = 0
|
||||
}
|
||||
$('#lomo_cubierta').val(lomoTotal)
|
||||
return lomoTotal
|
||||
}
|
||||
|
||||
@ -4152,6 +4153,7 @@ function getLomoCubiertaLineasPresupuesto(){
|
||||
catch(error){
|
||||
lomoTotal = 0
|
||||
}
|
||||
$('#lomo_sobrecubierta').val(lomoTotal+parseFloat($('#lomo_cubierta').val()))
|
||||
return lomoTotal
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,10 @@
|
||||
value="<?= $presupuestoEntity->id ?>"></input>
|
||||
<input type="hidden" name="tipo_impresion_id" id="tipo_impresion_id" class="form-control"
|
||||
value="<?= $tipo_impresion_id ?>"></input>
|
||||
<input type="hidden" name="lomo_cubierta" id="lomo_cubierta" class="form-control"
|
||||
value="<?= is_null($presupuestoEntity->lomo_cubierta)?0:$presupuestoEntity->lomo_cubierta ?>"></input>
|
||||
<input type="hidden" name="lomo_sobrecubierta" id="lomo_sobrecubierta" class="form-control"
|
||||
value="<?= is_null($presupuestoEntity->lomo_sobrecubierta)?0:$presupuestoEntity->lomo_sobrecubierta ?>"></input>
|
||||
<input type="hidden" name="isCosido" id="isCosido" class="form-control"
|
||||
value="<?= $isCosido ?>"></input>
|
||||
<input type="hidden" name="POD" id="POD" class="form-control"
|
||||
|
||||
Reference in New Issue
Block a user