mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
corregidos errores
This commit is contained in:
@ -1,4 +1,5 @@
|
|||||||
<?php namespace App\Controllers\Configuracion;
|
<?php
|
||||||
|
namespace App\Controllers\Configuracion;
|
||||||
|
|
||||||
|
|
||||||
use App\Controllers\BaseResourceController;
|
use App\Controllers\BaseResourceController;
|
||||||
@ -12,8 +13,8 @@ use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
|||||||
use App\Models\Configuracion\MaquinaModel;
|
use App\Models\Configuracion\MaquinaModel;
|
||||||
|
|
||||||
use
|
use
|
||||||
DataTables\Editor,
|
DataTables\Editor,
|
||||||
DataTables\Editor\Field;
|
DataTables\Editor\Field;
|
||||||
|
|
||||||
class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
||||||
{
|
{
|
||||||
@ -71,7 +72,7 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($this->request->getPost()) :
|
if ($this->request->getPost()):
|
||||||
|
|
||||||
$nullIfEmpty = true; // !(phpversion() >= '8.1');
|
$nullIfEmpty = true; // !(phpversion() >= '8.1');
|
||||||
|
|
||||||
@ -81,10 +82,10 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
|
|
||||||
$noException = true;
|
$noException = true;
|
||||||
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
||||||
|
|
||||||
|
|
||||||
if ($this->canValidate()) :
|
if ($this->canValidate()):
|
||||||
try {
|
try {
|
||||||
$successfulResult = $this->model->skipValidation(true)->save($sanitizedData);
|
$successfulResult = $this->model->skipValidation(true)->save($sanitizedData);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
@ -98,14 +99,14 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$thenRedirect = true; // Change this to false if you want your user to stay on the form after submission
|
$thenRedirect = true; // Change this to false if you want your user to stay on the form after submission
|
||||||
endif;
|
endif;
|
||||||
if ($noException && $successfulResult) :
|
if ($noException && $successfulResult):
|
||||||
|
|
||||||
$id = $this->model->db->insertID();
|
$id = $this->model->db->insertID();
|
||||||
|
|
||||||
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
|
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
|
||||||
|
|
||||||
if ($thenRedirect) :
|
if ($thenRedirect):
|
||||||
if (!empty($this->indexRoute)) :
|
if (!empty($this->indexRoute)):
|
||||||
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
|
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
|
||||||
else:
|
else:
|
||||||
return $this->redirect2listView('sweet-success', $message);
|
return $this->redirect2listView('sweet-success', $message);
|
||||||
@ -134,20 +135,20 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
public function edit($requestedId = null)
|
public function edit($requestedId = null)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($requestedId == null) :
|
if ($requestedId == null):
|
||||||
return $this->redirect2listView();
|
return $this->redirect2listView();
|
||||||
endif;
|
endif;
|
||||||
$id = filter_var($requestedId, FILTER_SANITIZE_URL);
|
$id = filter_var($requestedId, FILTER_SANITIZE_URL);
|
||||||
$maquinasTarifasImpresion = $this->model->find($id);
|
$maquinasTarifasImpresion = $this->model->find($id);
|
||||||
|
|
||||||
if ($maquinasTarifasImpresion == false) :
|
if ($maquinasTarifasImpresion == false):
|
||||||
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('MaquinasTarifasImpresions.maquinasTarifaImpresion')), $id]);
|
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('MaquinasTarifasImpresions.maquinasTarifaImpresion')), $id]);
|
||||||
return $this->redirect2listView('sweet-error', $message);
|
return $this->redirect2listView('sweet-error', $message);
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($this->request->getPost()) :
|
if ($this->request->getPost()):
|
||||||
|
|
||||||
$nullIfEmpty = true; // !(phpversion() >= '8.1');
|
$nullIfEmpty = true; // !(phpversion() >= '8.1');
|
||||||
|
|
||||||
@ -160,10 +161,10 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
|
|
||||||
$noException = true;
|
$noException = true;
|
||||||
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
||||||
|
|
||||||
|
|
||||||
if ($this->canValidate()) :
|
if ($this->canValidate()):
|
||||||
try {
|
try {
|
||||||
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
|
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
@ -180,12 +181,12 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$thenRedirect = false;
|
$thenRedirect = false;
|
||||||
endif;
|
endif;
|
||||||
if ($noException && $successfulResult) :
|
if ($noException && $successfulResult):
|
||||||
$id = $maquinasTarifasImpresion->id ?? $id;
|
$id = $maquinasTarifasImpresion->id ?? $id;
|
||||||
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
|
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
|
||||||
|
|
||||||
if ($thenRedirect) :
|
if ($thenRedirect):
|
||||||
if (!empty($this->indexRoute)) :
|
if (!empty($this->indexRoute)):
|
||||||
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
|
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
|
||||||
else:
|
else:
|
||||||
return $this->redirect2listView('sweet-success', $message);
|
return $this->redirect2listView('sweet-success', $message);
|
||||||
@ -220,30 +221,48 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
$response = Editor::inst($db, 'lg_maquinas_tarifas_impresion')
|
$response = Editor::inst($db, 'lg_maquinas_tarifas_impresion')
|
||||||
->fields(
|
->fields(
|
||||||
Field::inst('uso')
|
Field::inst('uso')
|
||||||
->validator('Validate::notEmpty', array(
|
->validator(
|
||||||
'message' => lang('MaquinasTarifasImpresions.validation.uso.required'))
|
'Validate::notEmpty',
|
||||||
|
array(
|
||||||
|
'message' => lang('MaquinasTarifasImpresions.validation.uso.required')
|
||||||
|
)
|
||||||
),
|
),
|
||||||
Field::inst('tipo')
|
Field::inst('tipo')
|
||||||
->validator('Validate::notEmpty', array(
|
->validator(
|
||||||
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required'))
|
'Validate::notEmpty',
|
||||||
|
array(
|
||||||
|
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
|
||||||
|
)
|
||||||
),
|
),
|
||||||
Field::inst('precio')
|
Field::inst('precio')
|
||||||
->getFormatter( 'Format::toDecimalChar')->setFormatter( 'Format::fromDecimalChar')
|
->getFormatter('Format::toDecimalChar')->setFormatter('Format::fromDecimalChar')
|
||||||
->validator('Validate::numeric', array(
|
->validator(
|
||||||
|
'Validate::numeric',
|
||||||
|
array(
|
||||||
"decimal" => ',',
|
"decimal" => ',',
|
||||||
'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal'))
|
'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal')
|
||||||
|
)
|
||||||
)
|
)
|
||||||
->validator('Validate::notEmpty', array(
|
->validator(
|
||||||
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required'))
|
'Validate::notEmpty',
|
||||||
|
array(
|
||||||
|
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
|
||||||
|
)
|
||||||
),
|
),
|
||||||
Field::inst('margen')
|
Field::inst('margen')
|
||||||
->getFormatter( 'Format::toDecimalChar')->setFormatter( 'Format::fromDecimalChar')
|
->getFormatter('Format::toDecimalChar')->setFormatter('Format::fromDecimalChar')
|
||||||
->validator('Validate::numeric', array(
|
->validator(
|
||||||
|
'Validate::numeric',
|
||||||
|
array(
|
||||||
"decimal" => ',',
|
"decimal" => ',',
|
||||||
'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal'))
|
'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal')
|
||||||
|
)
|
||||||
)
|
)
|
||||||
->validator('Validate::notEmpty', array(
|
->validator(
|
||||||
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required'))
|
'Validate::notEmpty',
|
||||||
|
array(
|
||||||
|
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
|
||||||
|
)
|
||||||
),
|
),
|
||||||
Field::inst('maquina_id'),
|
Field::inst('maquina_id'),
|
||||||
Field::inst('user_created_id'),
|
Field::inst('user_created_id'),
|
||||||
@ -269,16 +288,21 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
'maquina_id' => $values['maquina_id'],
|
'maquina_id' => $values['maquina_id'],
|
||||||
'tipo' => $values['tipo'],
|
'tipo' => $values['tipo'],
|
||||||
'uso' => $values['uso'],
|
'uso' => $values['uso'],
|
||||||
'is_deleted' => 0));
|
'is_deleted' => 0
|
||||||
|
));
|
||||||
|
|
||||||
$id = $builder->get()->getFirstRow()->id;
|
$id = $builder->get()->getFirstRow();
|
||||||
|
if ($id) {
|
||||||
|
$id = $id->id;
|
||||||
|
// No se pueden duplicar valores al crear o al editar
|
||||||
|
if ($builder->countAllResults() >= 1) {
|
||||||
|
if (
|
||||||
|
($action === Editor::ACTION_EDIT && $id != $pkey)
|
||||||
|
|| $action === Editor::ACTION_CREATE
|
||||||
|
) {
|
||||||
|
|
||||||
// No se pueden duplicar valores al crear o al editar
|
return lang('MaquinasTarifasImpresions.validation.duplicated_uso_tipo');
|
||||||
if ($builder->countAllResults() >= 1) {
|
}
|
||||||
if (($action === Editor::ACTION_EDIT && $id != $pkey)
|
|
||||||
|| $action === Editor::ACTION_CREATE) {
|
|
||||||
|
|
||||||
return lang('MaquinasTarifasImpresions.validation.duplicated_uso_tipo');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -413,11 +437,11 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
|
|||||||
protected function getMaquinaListItems($selId = null)
|
protected function getMaquinaListItems($selId = null)
|
||||||
{
|
{
|
||||||
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Maquinas.maquina'))])];
|
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Maquinas.maquina'))])];
|
||||||
if (!empty($selId)) :
|
if (!empty($selId)):
|
||||||
$maquinaModel = model('App\Models\Configuracion\MaquinaModel');
|
$maquinaModel = model('App\Models\Configuracion\MaquinaModel');
|
||||||
|
|
||||||
$selOption = $maquinaModel->where('id', $selId)->findColumn('nombre');
|
$selOption = $maquinaModel->where('id', $selId)->findColumn('nombre');
|
||||||
if (!empty($selOption)) :
|
if (!empty($selOption)):
|
||||||
$data[$selId] = $selOption[0];
|
$data[$selId] = $selOption[0];
|
||||||
endif;
|
endif;
|
||||||
endif;
|
endif;
|
||||||
|
|||||||
@ -52,10 +52,10 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
|
|
||||||
if ($maquina->is_inkjet) {
|
if ($maquina->is_inkjet) {
|
||||||
$parametrosInkjet = (object)array(
|
$parametrosInkjet = (object) array(
|
||||||
'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar
|
'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar
|
||||||
// en las dos direcciones (menos en rustica fresada que es siempre 1)
|
// en las dos direcciones (menos en rustica fresada que es siempre 1)
|
||||||
'bnPages' => $isColor ? 0 : $datosPedido->paginas,
|
'bnPages' => $isColor ? 0 : $datosPedido->paginas,
|
||||||
'colorPages' => ($uso == 'guardas') ? $datosPedido->paginas_impresion : ($isColor ? $datosPedido->paginas : 0),
|
'colorPages' => ($uso == 'guardas') ? $datosPedido->paginas_impresion : ($isColor ? $datosPedido->paginas : 0),
|
||||||
'rotativa_gota_negro' => 0,
|
'rotativa_gota_negro' => 0,
|
||||||
'rotativa_gota_color' => 0,
|
'rotativa_gota_color' => 0,
|
||||||
@ -74,13 +74,13 @@ class PresupuestoService extends BaseService
|
|||||||
} else {
|
} else {
|
||||||
$datosTipologias = $datosTipolog;
|
$datosTipologias = $datosTipolog;
|
||||||
}
|
}
|
||||||
$parametrosInkjet->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
$parametrosInkjet->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
||||||
$parametrosInkjet->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
$parametrosInkjet->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
||||||
$parametrosInkjet->rotativa_negro = $datosTipologias[0]->negro;
|
$parametrosInkjet->rotativa_negro = $datosTipologias[0]->negro;
|
||||||
$parametrosInkjet->rotativa_cyan = $datosTipologias[0]->cyan;
|
$parametrosInkjet->rotativa_cyan = $datosTipologias[0]->cyan;
|
||||||
$parametrosInkjet->rotativa_magenta = $datosTipologias[0]->magenta;
|
$parametrosInkjet->rotativa_magenta = $datosTipologias[0]->magenta;
|
||||||
$parametrosInkjet->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
$parametrosInkjet->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
||||||
$parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg;
|
$parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg;
|
||||||
}
|
}
|
||||||
|
|
||||||
$tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel();
|
$tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel();
|
||||||
@ -127,7 +127,7 @@ class PresupuestoService extends BaseService
|
|||||||
);
|
);
|
||||||
|
|
||||||
$clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel();
|
$clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel();
|
||||||
$config = (object)[
|
$config = (object) [
|
||||||
"tipo" => ($uso == 'guardas') ? 'interior' : $uso,
|
"tipo" => ($uso == 'guardas') ? 'interior' : $uso,
|
||||||
"tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner',
|
"tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner',
|
||||||
"tipo_impresion" => $tipo
|
"tipo_impresion" => $tipo
|
||||||
@ -137,7 +137,7 @@ class PresupuestoService extends BaseService
|
|||||||
$linea['fields']['precio_click'],
|
$linea['fields']['precio_click'],
|
||||||
$maquina->velocidad
|
$maquina->velocidad
|
||||||
);
|
);
|
||||||
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
||||||
|
|
||||||
|
|
||||||
if (is_null($precio_hora)) {
|
if (is_null($precio_hora)) {
|
||||||
@ -209,7 +209,7 @@ class PresupuestoService extends BaseService
|
|||||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||||
|
|
||||||
$resultado_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo) ? 'color' : $tipo);
|
$resultado_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo) ? 'color' : $tipo);
|
||||||
if($resultado_tarifa == null){
|
if ($resultado_tarifa == null) {
|
||||||
/*
|
/*
|
||||||
$info = [
|
$info = [
|
||||||
'maquina_id' => $maquina->maquina_id,
|
'maquina_id' => $maquina->maquina_id,
|
||||||
@ -219,8 +219,7 @@ class PresupuestoService extends BaseService
|
|||||||
log_message("error","No se ha encontrado tarifa para la maquina {maquina_id} y el uso {uso} y el tipo {tipo}", $info);
|
log_message("error","No se ha encontrado tarifa para la maquina {maquina_id} y el uso {uso} y el tipo {tipo}", $info);
|
||||||
*/
|
*/
|
||||||
return [];
|
return [];
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$tarifaId = $resultado_tarifa[0];
|
$tarifaId = $resultado_tarifa[0];
|
||||||
$tarifa = $resultado_tarifa[1];
|
$tarifa = $resultado_tarifa[1];
|
||||||
$tarifa_margen = $resultado_tarifa[2];
|
$tarifa_margen = $resultado_tarifa[2];
|
||||||
@ -231,8 +230,8 @@ class PresupuestoService extends BaseService
|
|||||||
}
|
}
|
||||||
|
|
||||||
// precio del pliego de impresion
|
// precio del pliego de impresion
|
||||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
|
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
|
||||||
if(count($linea['fields']) == 0){
|
if (count($linea['fields']) == 0) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +244,8 @@ class PresupuestoService extends BaseService
|
|||||||
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $linea['fields']['precios_pliegos'];
|
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $linea['fields']['precios_pliegos'];
|
||||||
// Precio papel pedido
|
// Precio papel pedido
|
||||||
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
|
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
|
||||||
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro'] * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma);;
|
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro'] * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma);
|
||||||
|
;
|
||||||
|
|
||||||
$linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
|
$linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
|
||||||
$linea['fields']['maquina'] = $maquina->maquina;
|
$linea['fields']['maquina'] = $maquina->maquina;
|
||||||
@ -267,7 +267,7 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
|
|
||||||
$linea['fields']['datosTipologias'] = //$datosTipologias[0];
|
$linea['fields']['datosTipologias'] = //$datosTipologias[0];
|
||||||
(Object)array(
|
(Object) array(
|
||||||
'gota_negro' => $parametrosRotativa->rotativa_gota_negro,
|
'gota_negro' => $parametrosRotativa->rotativa_gota_negro,
|
||||||
'gota_color' => $parametrosRotativa->rotativa_gota_color,
|
'gota_color' => $parametrosRotativa->rotativa_gota_color,
|
||||||
'negro' => $parametrosRotativa->rotativa_negro,
|
'negro' => $parametrosRotativa->rotativa_negro,
|
||||||
@ -290,7 +290,7 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
|
|
||||||
$clientePreciosModel = new ClientePreciosModel();
|
$clientePreciosModel = new ClientePreciosModel();
|
||||||
$config = (object)[
|
$config = (object) [
|
||||||
"tipo" => $uso,
|
"tipo" => $uso,
|
||||||
"tipo_maquina" => 'inkjet',
|
"tipo_maquina" => 'inkjet',
|
||||||
"tipo_impresion" => $tipo
|
"tipo_impresion" => $tipo
|
||||||
@ -300,7 +300,7 @@ class PresupuestoService extends BaseService
|
|||||||
$linea['fields']['precio_click'],
|
$linea['fields']['precio_click'],
|
||||||
$maquina->velocidad
|
$maquina->velocidad
|
||||||
);
|
);
|
||||||
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
||||||
|
|
||||||
if (is_null($precio_hora)) {
|
if (is_null($precio_hora)) {
|
||||||
return [];
|
return [];
|
||||||
@ -335,7 +335,7 @@ class PresupuestoService extends BaseService
|
|||||||
$ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
|
$ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
|
||||||
$alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto;
|
$alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto;
|
||||||
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra);
|
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra);
|
||||||
$response['fields'] = $formas;
|
$response['fields'] = $formas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -358,8 +358,8 @@ class PresupuestoService extends BaseService
|
|||||||
$rotativa = array_key_exists('rotativa', $opciones_papel) ? $opciones_papel['rotativa'] : 0;
|
$rotativa = array_key_exists('rotativa', $opciones_papel) ? $opciones_papel['rotativa'] : 0;
|
||||||
|
|
||||||
|
|
||||||
$precio_click = $tarifa * (1 + $tarifa_margen / 100.0);
|
$precio_click = $tarifa * (1 + $tarifa_margen / 100.0);
|
||||||
$margen_click = $tarifa * ($tarifa_margen / 100.0);
|
$margen_click = $tarifa * ($tarifa_margen / 100.0);
|
||||||
|
|
||||||
//interior (bn o color)
|
//interior (bn o color)
|
||||||
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
|
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
|
||||||
@ -466,7 +466,7 @@ class PresupuestoService extends BaseService
|
|||||||
$factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
|
$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);
|
$factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
|
||||||
|
|
||||||
if(floor($factor_anchura) == 0){
|
if (floor($factor_anchura) == 0) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,7 +566,7 @@ class PresupuestoService extends BaseService
|
|||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
$data['pulgada'] = 1 / 1000000000000.0;
|
$data['pulgada'] = 1 / 1000000000000.0;
|
||||||
if($maquina->maquina_id == 91 || $maquina->maquina_id == 99 || $maquina->maquina_id == 114 || $maquina->maquina_id == 98)
|
if ($maquina->maquina_id == 91 || $maquina->maquina_id == 99 || $maquina->maquina_id == 114 || $maquina->maquina_id == 98)
|
||||||
$data['resolucion'] = 1200;
|
$data['resolucion'] = 1200;
|
||||||
else
|
else
|
||||||
$data['resolucion'] = 600;
|
$data['resolucion'] = 600;
|
||||||
@ -599,9 +599,9 @@ class PresupuestoService extends BaseService
|
|||||||
// precio tinta
|
// precio tinta
|
||||||
$data['precio_tinta'] = round(
|
$data['precio_tinta'] = round(
|
||||||
round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) +
|
round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) +
|
||||||
round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||||
round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||||
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2),
|
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2),
|
||||||
2
|
2
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -842,7 +842,7 @@ class PresupuestoService extends BaseService
|
|||||||
{
|
{
|
||||||
$ancho_total = 0;
|
$ancho_total = 0;
|
||||||
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
|
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
|
||||||
if($datosPedido->ancho > 210 || $datosPedido->alto > 297){
|
if ($datosPedido->ancho >= 210) {
|
||||||
$sangre_cubierta = 15;
|
$sangre_cubierta = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -865,9 +865,9 @@ class PresupuestoService extends BaseService
|
|||||||
// si es cubierta
|
// si es cubierta
|
||||||
// se añade 7mm del ancho del cartón (2*3.5mm) por cada lado del lomo
|
// se añade 7mm del ancho del cartón (2*3.5mm) por cada lado del lomo
|
||||||
// más 7mm de vuelo+cajo por cada lado. Por último, 20mm de sangre por cada lado
|
// más 7mm de vuelo+cajo por cada lado. Por último, 20mm de sangre por cada lado
|
||||||
if ($uso == "cubierta"){
|
if ($uso == "cubierta") {
|
||||||
$ancho_total += (2 * 7 + 2 * $sangre_cubierta + 6);
|
$ancho_total += (2 * 7 + 2 * $sangre_cubierta + 6);
|
||||||
if($lomoRedondo){
|
if ($lomoRedondo) {
|
||||||
$ancho_total += 6;
|
$ancho_total += 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -878,8 +878,10 @@ class PresupuestoService extends BaseService
|
|||||||
$ancho_total += (2 * 7 + 2 * self::SANGRE_FORMAS) + 7;
|
$ancho_total += (2 * 7 + 2 * self::SANGRE_FORMAS) + 7;
|
||||||
}
|
}
|
||||||
// Wire-o y espiral (tapa blanda y tapa dura)
|
// Wire-o y espiral (tapa blanda y tapa dura)
|
||||||
else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
|
else if (
|
||||||
$tipo_impresion_id == 7 || $tipo_impresion_id == 8) {
|
$tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
|
||||||
|
$tipo_impresion_id == 7 || $tipo_impresion_id == 8
|
||||||
|
) {
|
||||||
// En este caso, la cubierta se imprime como dos formas separadas, pero hay que dejar un
|
// En este caso, la cubierta se imprime como dos formas separadas, pero hay que dejar un
|
||||||
// espacio entre ellas para poder cortarlas
|
// espacio entre ellas para poder cortarlas
|
||||||
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina_id, 2);
|
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina_id, 2);
|
||||||
@ -889,7 +891,7 @@ class PresupuestoService extends BaseService
|
|||||||
$ancho_total += $calles[0]->internas;
|
$ancho_total += $calles[0]->internas;
|
||||||
|
|
||||||
// Tapa blanda
|
// Tapa blanda
|
||||||
if($tipo_impresion_id == 7 || $tipo_impresion_id == 8){
|
if ($tipo_impresion_id == 7 || $tipo_impresion_id == 8) {
|
||||||
// añadimos ancho de las solapas
|
// añadimos ancho de las solapas
|
||||||
// si se añaden solapas hay que sumar 3mm de los dobleces
|
// si se añaden solapas hay que sumar 3mm de los dobleces
|
||||||
if ($datosPedido->solapas) {
|
if ($datosPedido->solapas) {
|
||||||
@ -900,12 +902,11 @@ class PresupuestoService extends BaseService
|
|||||||
$ancho_total += (4 * self::SANGRE_FORMAS);
|
$ancho_total += (4 * self::SANGRE_FORMAS);
|
||||||
}
|
}
|
||||||
// Tapa dura
|
// Tapa dura
|
||||||
else{
|
else {
|
||||||
// Se le suma 20mm de sangre por cada lado. Como son 2 hojas independientes, se multiplica por 4
|
// Se le suma 20mm de sangre por cada lado. Como son 2 hojas independientes, se multiplica por 4
|
||||||
$ancho_total += (4 * $sangre_cubierta);
|
$ancho_total += (4 * $sangre_cubierta);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// En cualquier otro caso se le suma 5mm de sangre por cada lado
|
// En cualquier otro caso se le suma 5mm de sangre por cada lado
|
||||||
$ancho_total += (2 * self::SANGRE_FORMAS);
|
$ancho_total += (2 * self::SANGRE_FORMAS);
|
||||||
}
|
}
|
||||||
@ -922,11 +923,15 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
if ($datosPedido) {
|
if ($datosPedido) {
|
||||||
$alto_total = floatval($datosPedido->alto);
|
$alto_total = floatval($datosPedido->alto);
|
||||||
|
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
|
||||||
|
if ($datosPedido->alto >= 297) {
|
||||||
|
$sangre_cubierta = 15;
|
||||||
|
}
|
||||||
// Tapa dura (cosido y fresado)
|
// Tapa dura (cosido y fresado)
|
||||||
if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
|
if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
|
||||||
// Se añaden 20mm de sangre por cada lado + 3.5mm extra por cada lado de vuelo
|
// Se añaden 20mm de sangre por cada lado + 3.5mm extra por cada lado de vuelo
|
||||||
if ($uso == "cubierta")
|
if ($uso == "cubierta")
|
||||||
$alto_total += (2*3.5 + 2 * self::SANGRE_FORMAS_CUBIERTA);
|
$alto_total += (2 * 3.5 + 2 * $sangre_cubierta);
|
||||||
// si es sobrecubierta
|
// si es sobrecubierta
|
||||||
// Se añaden 5mm de sangre por cada lado + 7mm de vuelo
|
// Se añaden 5mm de sangre por cada lado + 7mm de vuelo
|
||||||
else
|
else
|
||||||
@ -1019,13 +1024,11 @@ class PresupuestoService extends BaseService
|
|||||||
// Si el papel o la máquina no existen, se utiliza la más barata del comparador
|
// Si el papel o la máquina no existen, se utiliza la más barata del comparador
|
||||||
if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
|
if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
|
||||||
|
|
||||||
if(($input_data['presupuesto'])->papel_formato_personalizado == 0){
|
if (($input_data['presupuesto'])->papel_formato_personalizado == 0) {
|
||||||
$papel_formato = (new PapelFormatoModel())->find(($input_data['presupuesto'])->papel_formato_id);
|
$papel_formato = (new PapelFormatoModel())->find(($input_data['presupuesto'])->papel_formato_id);
|
||||||
$ancho = $papel_formato->ancho;
|
$ancho = $papel_formato->ancho;
|
||||||
$alto = $papel_formato->alto;
|
$alto = $papel_formato->alto;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
$ancho = ($input_data['presupuesto'])->papel_formato_ancho;
|
$ancho = ($input_data['presupuesto'])->papel_formato_ancho;
|
||||||
$alto = ($input_data['presupuesto'])->papel_formato_alto;
|
$alto = ($input_data['presupuesto'])->papel_formato_alto;
|
||||||
}
|
}
|
||||||
@ -1038,10 +1041,10 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
// Hay que ver si es rotativa o plana
|
// Hay que ver si es rotativa o plana
|
||||||
// Si es rotativa
|
// Si es rotativa
|
||||||
if(str_contains($linea->tipo, '_rot_')){
|
if (str_contains($linea->tipo, '_rot_')) {
|
||||||
|
|
||||||
$datos = [
|
$datos = [
|
||||||
'datosPedido' => (object)array(
|
'datosPedido' => (object) array(
|
||||||
'paginas' => ($input_data['presupuesto'])->paginas,
|
'paginas' => ($input_data['presupuesto'])->paginas,
|
||||||
'tirada' => ($input_data['presupuesto'])->tirada,
|
'tirada' => ($input_data['presupuesto'])->tirada,
|
||||||
'merma' => ($input_data['presupuesto'])->merma,
|
'merma' => ($input_data['presupuesto'])->merma,
|
||||||
@ -1052,30 +1055,32 @@ class PresupuestoService extends BaseService
|
|||||||
),
|
),
|
||||||
'papel_generico' => $papel_generico,
|
'papel_generico' => $papel_generico,
|
||||||
'gramaje' => $linea->gramaje,
|
'gramaje' => $linea->gramaje,
|
||||||
'paginas' => (object)array(
|
'paginas' => (object) array(
|
||||||
'negro' => ($input_data['presupuesto'])->paginas - $linea->rotativa_pag_color,
|
'negro' => ($input_data['presupuesto'])->paginas - $linea->rotativa_pag_color,
|
||||||
'color' => $linea->rotativa_pag_color,
|
'color' => $linea->rotativa_pag_color,
|
||||||
),
|
),
|
||||||
'cliente_id' => ($input_data['presupuesto'])->cliente_id,
|
'cliente_id' => ($input_data['presupuesto'])->cliente_id,
|
||||||
'datosTipolog' => [(object)array(
|
'datosTipolog' => [
|
||||||
'negro' => $linea->rotativa_negro,
|
(object) array(
|
||||||
'cyan' => $linea->rotativa_cyan,
|
'negro' => $linea->rotativa_negro,
|
||||||
'magenta' => $linea->rotativa_magenta,
|
'cyan' => $linea->rotativa_cyan,
|
||||||
'amarillo' => $linea->rotativa_amarillo,
|
'magenta' => $linea->rotativa_magenta,
|
||||||
'cg' => $linea->rotativa_cg,
|
'amarillo' => $linea->rotativa_amarillo,
|
||||||
'gota_negro' => $linea->rotativa_gota_negro,
|
'cg' => $linea->rotativa_cg,
|
||||||
'gota_color' => $linea->rotativa_gota_color,
|
'gota_negro' => $linea->rotativa_gota_negro,
|
||||||
)]
|
'gota_color' => $linea->rotativa_gota_color,
|
||||||
|
)
|
||||||
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
$comp_data = PresupuestoService::obtenerComparadorRotativa($datos);
|
$comp_data = PresupuestoService::obtenerComparadorRotativa($datos);
|
||||||
}
|
}
|
||||||
// Si es plana
|
// Si es plana
|
||||||
else{
|
else {
|
||||||
|
|
||||||
$datos = [
|
$datos = [
|
||||||
'tipo_impresion_id' => $data['tipo_impresion_id'],
|
'tipo_impresion_id' => $data['tipo_impresion_id'],
|
||||||
'datosPedido' => (object)array(
|
'datosPedido' => (object) array(
|
||||||
'paginas' => ($input_data['presupuesto'])->paginas,
|
'paginas' => ($input_data['presupuesto'])->paginas,
|
||||||
'tirada' => ($input_data['presupuesto'])->tirada,
|
'tirada' => ($input_data['presupuesto'])->tirada,
|
||||||
'merma' => ($input_data['presupuesto'])->merma,
|
'merma' => ($input_data['presupuesto'])->merma,
|
||||||
@ -1088,43 +1093,43 @@ class PresupuestoService extends BaseService
|
|||||||
'papel_generico' => $papel_generico,
|
'papel_generico' => $papel_generico,
|
||||||
'gramaje' => $linea->gramaje,
|
'gramaje' => $linea->gramaje,
|
||||||
'cliente_id' => ($input_data['presupuesto'])->cliente_id,
|
'cliente_id' => ($input_data['presupuesto'])->cliente_id,
|
||||||
'datosTipolog' => [(object)array(
|
'datosTipolog' => [
|
||||||
'negro' => $linea->rotativa_negro,
|
(object) array(
|
||||||
'cyan' => $linea->rotativa_cyan,
|
'negro' => $linea->rotativa_negro,
|
||||||
'magenta' => $linea->rotativa_magenta,
|
'cyan' => $linea->rotativa_cyan,
|
||||||
'amarillo' => $linea->rotativa_amarillo,
|
'magenta' => $linea->rotativa_magenta,
|
||||||
'cg' => $linea->rotativa_cg,
|
'amarillo' => $linea->rotativa_amarillo,
|
||||||
'gota_negro' => $linea->rotativa_gota_negro,
|
'cg' => $linea->rotativa_cg,
|
||||||
'gota_color' => $linea->rotativa_gota_color,
|
'gota_negro' => $linea->rotativa_gota_negro,
|
||||||
)]
|
'gota_color' => $linea->rotativa_gota_color,
|
||||||
|
)
|
||||||
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
// si la línea es cubierta o sobrecubierta, es HQ y color
|
// si la línea es cubierta o sobrecubierta, es HQ y color
|
||||||
if( str_contains($linea->tipo, 'cubierta') ){
|
if (str_contains($linea->tipo, 'cubierta')) {
|
||||||
$datos['isColor'] = true;
|
$datos['isColor'] = true;
|
||||||
$datos['isHq'] = true;
|
$datos['isHq'] = true;
|
||||||
|
|
||||||
// además se añade los campos de lomo y solapas y el uso
|
// además se añade los campos de lomo y solapas y el uso
|
||||||
if( str_contains($linea->tipo, 'sobrecubierta') ){
|
if (str_contains($linea->tipo, 'sobrecubierta')) {
|
||||||
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas_sobrecubierta;
|
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas_sobrecubierta;
|
||||||
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho_sobrecubierta;
|
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho_sobrecubierta;
|
||||||
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_sobrecubierta;
|
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_sobrecubierta;
|
||||||
$datos['uso'] = 'sobrecubierta';
|
$datos['uso'] = 'sobrecubierta';
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas;
|
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas;
|
||||||
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho;
|
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho;
|
||||||
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_cubierta;
|
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_cubierta;
|
||||||
$datos['uso'] = 'cubierta';
|
$datos['uso'] = 'cubierta';
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$datos['isColor'] = str_contains($linea->tipo, '_color') ? true : false;
|
$datos['isColor'] = str_contains($linea->tipo, '_color') ? true : false;
|
||||||
$datos['isHq'] = str_contains($linea->tipo, 'hq') ? true : false;
|
$datos['isHq'] = str_contains($linea->tipo, 'hq') ? true : false;
|
||||||
$datos['uso'] = 'interior';
|
$datos['uso'] = 'interior';
|
||||||
}
|
}
|
||||||
|
|
||||||
if( str_contains($linea->tipo, 'guardas') ){
|
if (str_contains($linea->tipo, 'guardas')) {
|
||||||
$datos['uso'] = 'guardas';
|
$datos['uso'] = 'guardas';
|
||||||
$datos['datosPedido']->paginas_impresion = $linea->paginas_impresion;
|
$datos['datosPedido']->paginas_impresion = $linea->paginas_impresion;
|
||||||
}
|
}
|
||||||
@ -1133,8 +1138,8 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// se ordena $comp_data usando el campo ['fields]['total_impresion']
|
// se ordena $comp_data usando el campo ['fields]['total_impresion']
|
||||||
usort($comp_data, function($a, $b) {
|
usort($comp_data, function ($a, $b) {
|
||||||
return $a['fields']['total_impresion'] <=> $b['fields']['total_impresion'];
|
return $a['fields']['total_impresion'] <=> $b['fields']['total_impresion'];
|
||||||
});
|
});
|
||||||
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $comp_data[0]);
|
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $comp_data[0]);
|
||||||
@ -1144,16 +1149,15 @@ class PresupuestoService extends BaseService
|
|||||||
}
|
}
|
||||||
// Si existe el papel y la máquina, se recalcula el precio con los mismos
|
// Si existe el papel y la máquina, se recalcula el precio con los mismos
|
||||||
// parámetros y se comprueba
|
// parámetros y se comprueba
|
||||||
else{
|
else {
|
||||||
$nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($data, $linea);
|
$nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($data, $linea);
|
||||||
if(count($nueva_linea) >0){
|
if (count($nueva_linea) > 0) {
|
||||||
if(round($nueva_linea['fields']['total_impresion'],2) != round($linea->total_linea, 2)){
|
if (round($nueva_linea['fields']['total_impresion'], 2) != round($linea->total_linea, 2)) {
|
||||||
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $nueva_linea);
|
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $nueva_linea);
|
||||||
$linea_to_save = (new PresupuestoLineaModel())->find($linea->id);
|
$linea_to_save = (new PresupuestoLineaModel())->find($linea->id);
|
||||||
$cambios = true;
|
$cambios = true;
|
||||||
array_push($lineas, $linea_to_save);
|
array_push($lineas, $linea_to_save);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
array_push($lineas, $linea);
|
array_push($lineas, $linea);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1166,7 +1170,8 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static function obtenerValorLineaPresupuesto($input_data, $linea){
|
private static function obtenerValorLineaPresupuesto($input_data, $linea)
|
||||||
|
{
|
||||||
|
|
||||||
$tipo_impresion_id = $input_data['tipo_impresion_id'];
|
$tipo_impresion_id = $input_data['tipo_impresion_id'];
|
||||||
$tirada = $input_data['tirada'];
|
$tirada = $input_data['tirada'];
|
||||||
@ -1183,7 +1188,7 @@ class PresupuestoService extends BaseService
|
|||||||
$lomo_cubierta = $input_data['lomo_cubierta'];
|
$lomo_cubierta = $input_data['lomo_cubierta'];
|
||||||
$lomo_sobrecubierta = $input_data['lomo_sobrecubierta'];
|
$lomo_sobrecubierta = $input_data['lomo_sobrecubierta'];
|
||||||
|
|
||||||
if($papel_formato_personalizado == 0){
|
if ($papel_formato_personalizado == 0) {
|
||||||
$papel_formato = (new PapelFormatoModel())->find($papel_formato_id);
|
$papel_formato = (new PapelFormatoModel())->find($papel_formato_id);
|
||||||
$ancho = $papel_formato->ancho;
|
$ancho = $papel_formato->ancho;
|
||||||
$alto = $papel_formato->alto;
|
$alto = $papel_formato->alto;
|
||||||
@ -1202,7 +1207,7 @@ class PresupuestoService extends BaseService
|
|||||||
'nombre' => $papel_generico->nombre,
|
'nombre' => $papel_generico->nombre,
|
||||||
);
|
);
|
||||||
|
|
||||||
$data['datosPedido'] = (object)array(
|
$data['datosPedido'] = (object) array(
|
||||||
'paginas' => $linea->paginas,
|
'paginas' => $linea->paginas,
|
||||||
'tirada' => $tirada,
|
'tirada' => $tirada,
|
||||||
'merma' => $merma,
|
'merma' => $merma,
|
||||||
@ -1216,18 +1221,20 @@ class PresupuestoService extends BaseService
|
|||||||
$data['maquina'] = $maquina;
|
$data['maquina'] = $maquina;
|
||||||
$data['papel_generico'] = $papel_generico;
|
$data['papel_generico'] = $papel_generico;
|
||||||
$data['a_favor_fibra'] = $linea->rotativa_a_favor_fibra;
|
$data['a_favor_fibra'] = $linea->rotativa_a_favor_fibra;
|
||||||
$data['datosTipolog'] = [(object)array(
|
$data['datosTipolog'] = [
|
||||||
'negro' => $linea->rotativa_negro,
|
(object) array(
|
||||||
'cyan' => $linea->rotativa_cyan,
|
'negro' => $linea->rotativa_negro,
|
||||||
'magenta' => $linea->rotativa_magenta,
|
'cyan' => $linea->rotativa_cyan,
|
||||||
'amarillo' => $linea->rotativa_amarillo,
|
'magenta' => $linea->rotativa_magenta,
|
||||||
'cg' => $linea->rotativa_cg,
|
'amarillo' => $linea->rotativa_amarillo,
|
||||||
'gota_negro' => $linea->rotativa_gota_negro,
|
'cg' => $linea->rotativa_cg,
|
||||||
'gota_color' => $linea->rotativa_gota_color,
|
'gota_negro' => $linea->rotativa_gota_negro,
|
||||||
)];
|
'gota_color' => $linea->rotativa_gota_color,
|
||||||
|
)
|
||||||
|
];
|
||||||
$data['gramaje'] = $linea->gramaje;
|
$data['gramaje'] = $linea->gramaje;
|
||||||
|
|
||||||
switch($linea->tipo){
|
switch ($linea->tipo) {
|
||||||
|
|
||||||
case 'lp_bn':
|
case 'lp_bn':
|
||||||
case 'lp_bnhq':
|
case 'lp_bnhq':
|
||||||
@ -1240,7 +1247,7 @@ class PresupuestoService extends BaseService
|
|||||||
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
|
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
|
||||||
$opciones_papel = PresupuestoService::get_opciones_papel('interior', $isColor);
|
$opciones_papel = PresupuestoService::get_opciones_papel('interior', $isColor);
|
||||||
|
|
||||||
if($linea->tipo == 'lp_guardas'){
|
if ($linea->tipo == 'lp_guardas') {
|
||||||
$data['uso'] = 'guardas';
|
$data['uso'] = 'guardas';
|
||||||
$tipo = 'colorhq';
|
$tipo = 'colorhq';
|
||||||
$data['datosPedido']->paginas_impresion = $linea->paginas_impresion;
|
$data['datosPedido']->paginas_impresion = $linea->paginas_impresion;
|
||||||
@ -1265,17 +1272,17 @@ class PresupuestoService extends BaseService
|
|||||||
case 'lp_rot_color':
|
case 'lp_rot_color':
|
||||||
case 'lp_rot_bn':
|
case 'lp_rot_bn':
|
||||||
$data['uso'] = 'interior';
|
$data['uso'] = 'interior';
|
||||||
$tipo = $linea->rotativa_pag_color>0 ? 'color' : 'negro';
|
$tipo = $linea->rotativa_pag_color > 0 ? 'color' : 'negro';
|
||||||
$data['paginas'] = (object)array(
|
$data['paginas'] = (object) array(
|
||||||
'negro' => $linea->paginas-$linea->rotativa_pag_color,
|
'negro' => $linea->paginas - $linea->rotativa_pag_color,
|
||||||
'color' => $linea->rotativa_pag_color,
|
'color' => $linea->rotativa_pag_color,
|
||||||
);
|
);
|
||||||
|
|
||||||
$data['tipo'] = $tipo;
|
$data['tipo'] = $tipo;
|
||||||
$data['parametrosRotativa'] = (object)array(
|
$data['parametrosRotativa'] = (object) array(
|
||||||
'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
|
'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
|
||||||
'bnPages' => $data['paginas']->negro,
|
'bnPages' => $data['paginas']->negro,
|
||||||
'colorPages' => $data['paginas']->color,
|
'colorPages' => $data['paginas']->color,
|
||||||
'rotativa_negro' => $linea->rotativa_negro,
|
'rotativa_negro' => $linea->rotativa_negro,
|
||||||
'rotativa_cyan' => $linea->rotativa_cyan,
|
'rotativa_cyan' => $linea->rotativa_cyan,
|
||||||
'rotativa_magenta' => $linea->rotativa_magenta,
|
'rotativa_magenta' => $linea->rotativa_magenta,
|
||||||
@ -1290,12 +1297,12 @@ class PresupuestoService extends BaseService
|
|||||||
case 'lp_cubierta':
|
case 'lp_cubierta':
|
||||||
case 'lp_sobrecubierta':
|
case 'lp_sobrecubierta':
|
||||||
|
|
||||||
$data['uso'] = ($linea->tipo == 'lp_cubierta')? 'cubierta':'sobrecubierta';
|
$data['uso'] = ($linea->tipo == 'lp_cubierta') ? 'cubierta' : 'sobrecubierta';
|
||||||
$data['tipo'] = 'colorhq';
|
$data['tipo'] = 'colorhq';
|
||||||
$data['isColor'] = true;
|
$data['isColor'] = true;
|
||||||
$data['datosPedido']->solapas = ($linea->tipo == 'lp cubierta')? $solapas : $solapas_sobrecubierta;
|
$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']->solapas_ancho = ($linea->tipo == 'lp cubierta') ? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta;
|
||||||
$data['datosPedido']->lomo = ($linea->tipo == 'lp cubierta')? $lomo_cubierta : $lomo_sobrecubierta;
|
$data['datosPedido']->lomo = ($linea->tipo == 'lp cubierta') ? $lomo_cubierta : $lomo_sobrecubierta;
|
||||||
|
|
||||||
$opciones_papel = PresupuestoService::get_opciones_papel($data['uso'], true);
|
$opciones_papel = PresupuestoService::get_opciones_papel($data['uso'], true);
|
||||||
$data['opciones_papel'] = $opciones_papel;
|
$data['opciones_papel'] = $opciones_papel;
|
||||||
@ -1305,8 +1312,10 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
$output_data = PresupuestoService::getLineaPresupuestoPlana($data);
|
$output_data = PresupuestoService::getLineaPresupuestoPlana($data);
|
||||||
|
|
||||||
if ($tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
|
if (
|
||||||
$tipo_impresion_id == 7 || $tipo_impresion_id == 8) {
|
$tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
|
||||||
|
$tipo_impresion_id == 7 || $tipo_impresion_id == 8
|
||||||
|
) {
|
||||||
|
|
||||||
$output_data['fields']['num_formas']['num_formas_horizontales'] *= 2;
|
$output_data['fields']['num_formas']['num_formas_horizontales'] *= 2;
|
||||||
$output_data['fields']['num_formas']['value'] *= 2;
|
$output_data['fields']['num_formas']['value'] *= 2;
|
||||||
@ -1317,33 +1326,34 @@ class PresupuestoService extends BaseService
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Funcion que procesa los servicios y actualiza los precios en caso de cambio
|
// Funcion que procesa los servicios y actualiza los precios en caso de cambio
|
||||||
public static function checkLineasServicios($input_data, $servicios){
|
public static function checkLineasServicios($input_data, $servicios)
|
||||||
|
{
|
||||||
|
|
||||||
$cambio_en_servicios = false;
|
$cambio_en_servicios = false;
|
||||||
$cambio = false;
|
$cambio = false;
|
||||||
|
|
||||||
if(count($servicios->serviciosAcabado)>0){
|
if (count($servicios->serviciosAcabado) > 0) {
|
||||||
|
|
||||||
[$cambio, $servicios->serviciosAcabado] =
|
[$cambio, $servicios->serviciosAcabado] =
|
||||||
PresupuestoService::procesarServiciosAcabado($input_data, $servicios->serviciosAcabado);
|
PresupuestoService::procesarServiciosAcabado($input_data, $servicios->serviciosAcabado);
|
||||||
|
|
||||||
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio;
|
$cambio_en_servicios = $cambio_en_servicios ? $cambio_en_servicios : $cambio;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($servicios->serviciosManipulado)>0){
|
if (count($servicios->serviciosManipulado) > 0) {
|
||||||
|
|
||||||
[$cambio, $servicios->serviciosManipulado] =
|
[$cambio, $servicios->serviciosManipulado] =
|
||||||
PresupuestoService::procesarServiciosManipulado($input_data, $servicios->serviciosManipulado);
|
PresupuestoService::procesarServiciosManipulado($input_data, $servicios->serviciosManipulado);
|
||||||
|
|
||||||
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio;
|
$cambio_en_servicios = $cambio_en_servicios ? $cambio_en_servicios : $cambio;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($servicios->serviciosEncuadernacion)>0){
|
if (count($servicios->serviciosEncuadernacion) > 0) {
|
||||||
|
|
||||||
[$cambio, $servicios->serviciosEncuadernacion] =
|
[$cambio, $servicios->serviciosEncuadernacion] =
|
||||||
PresupuestoService::procesarServiciosEncuadernacion($input_data, $servicios->serviciosEncuadernacion);
|
PresupuestoService::procesarServiciosEncuadernacion($input_data, $servicios->serviciosEncuadernacion);
|
||||||
|
|
||||||
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio;
|
$cambio_en_servicios = $cambio_en_servicios ? $cambio_en_servicios : $cambio;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Los servicios de preimpresion y los extra se dejan tal y como esten
|
// Los servicios de preimpresion y los extra se dejan tal y como esten
|
||||||
@ -1354,7 +1364,8 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
// Funcion que procesa los servicios de acabado del presupuesto
|
// Funcion que procesa los servicios de acabado del presupuesto
|
||||||
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
||||||
private static function procesarServiciosAcabado($input_data, $servicios){
|
private static function procesarServiciosAcabado($input_data, $servicios)
|
||||||
|
{
|
||||||
|
|
||||||
$serviciosUpdated = [];
|
$serviciosUpdated = [];
|
||||||
$cambio = false;
|
$cambio = false;
|
||||||
@ -1363,16 +1374,17 @@ class PresupuestoService extends BaseService
|
|||||||
foreach ($servicios as $servicio) {
|
foreach ($servicios as $servicio) {
|
||||||
|
|
||||||
// Si es un presupuesto duplicado hay que buscar el proveedor más barato
|
// Si es un presupuesto duplicado hay que buscar el proveedor más barato
|
||||||
if($input_data['is_duplicado']){
|
if ($input_data['is_duplicado']) {
|
||||||
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], -1, $input_data['POD']);
|
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], -1, $input_data['POD']);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $servicio->proveedor_id, $input_data['POD']);
|
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $servicio->proveedor_id, $input_data['POD']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($nueva_tarifa && count($nueva_tarifa)>0){
|
if ($nueva_tarifa && count($nueva_tarifa) > 0) {
|
||||||
if(round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad,2) ||
|
if (
|
||||||
$nueva_tarifa[0]->margen != $servicio->margen){
|
round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad, 2) ||
|
||||||
|
$nueva_tarifa[0]->margen != $servicio->margen
|
||||||
|
) {
|
||||||
|
|
||||||
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
@ -1392,7 +1404,8 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
// Funcion que procesa los servicios de manipulado del presupuesto
|
// Funcion que procesa los servicios de manipulado del presupuesto
|
||||||
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
||||||
private static function procesarServiciosManipulado($input_data, $servicios){
|
private static function procesarServiciosManipulado($input_data, $servicios)
|
||||||
|
{
|
||||||
|
|
||||||
$serviciosUpdated = [];
|
$serviciosUpdated = [];
|
||||||
$cambio = false;
|
$cambio = false;
|
||||||
@ -1401,9 +1414,11 @@ class PresupuestoService extends BaseService
|
|||||||
foreach ($servicios as $servicio) {
|
foreach ($servicios as $servicio) {
|
||||||
$count = 0;
|
$count = 0;
|
||||||
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_manipulado_id, $input_data['tirada'], $input_data['POD']);
|
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_manipulado_id, $input_data['tirada'], $input_data['POD']);
|
||||||
if($nueva_tarifa && count($nueva_tarifa)>0){
|
if ($nueva_tarifa && count($nueva_tarifa) > 0) {
|
||||||
if(round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad,2) ||
|
if (
|
||||||
$nueva_tarifa[0]->margen != $servicio->margen){
|
round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad, 2) ||
|
||||||
|
$nueva_tarifa[0]->margen != $servicio->margen
|
||||||
|
) {
|
||||||
|
|
||||||
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
@ -1424,7 +1439,8 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
// Funcion que procesa los servicios de encuadernacion del presupuesto
|
// Funcion que procesa los servicios de encuadernacion del presupuesto
|
||||||
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
||||||
private static function procesarServiciosEncuadernacion($input_data, $servicios){
|
private static function procesarServiciosEncuadernacion($input_data, $servicios)
|
||||||
|
{
|
||||||
|
|
||||||
$serviciosUpdated = [];
|
$serviciosUpdated = [];
|
||||||
$cambio = false;
|
$cambio = false;
|
||||||
@ -1435,17 +1451,18 @@ class PresupuestoService extends BaseService
|
|||||||
foreach ($servicios as $servicio) {
|
foreach ($servicios as $servicio) {
|
||||||
|
|
||||||
// Si es un presupuesto duplicado hay que buscar el proveedor más barato
|
// Si es un presupuesto duplicado hay que buscar el proveedor más barato
|
||||||
if($input_data['is_duplicado']){
|
if ($input_data['is_duplicado']) {
|
||||||
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){
|
if ($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)) {
|
||||||
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo??null;
|
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo ?? null;
|
||||||
$nueva_tarifa = $model->getPrecioTarifaHoras(
|
$nueva_tarifa = $model->getPrecioTarifaHoras(
|
||||||
$servicio->tarifa_encuadernado_id,
|
$servicio->tarifa_encuadernado_id,
|
||||||
$input_data['paginas'],
|
$input_data['paginas'],
|
||||||
$input_data['tirada'],
|
$input_data['tirada'],
|
||||||
-1,
|
-1,
|
||||||
$input_data['POD'],
|
$input_data['POD'],
|
||||||
$paginas_cuadernillo);
|
$paginas_cuadernillo
|
||||||
}else{
|
);
|
||||||
|
} else {
|
||||||
$nueva_tarifa = $model->getPrecioTarifa(
|
$nueva_tarifa = $model->getPrecioTarifa(
|
||||||
$servicio->tarifa_encuadernado_id,
|
$servicio->tarifa_encuadernado_id,
|
||||||
$input_data['paginas'],
|
$input_data['paginas'],
|
||||||
@ -1453,23 +1470,25 @@ class PresupuestoService extends BaseService
|
|||||||
$input_data['ancho'],
|
$input_data['ancho'],
|
||||||
$input_data['alto'],
|
$input_data['alto'],
|
||||||
-1,
|
-1,
|
||||||
$input_data['POD']);
|
$input_data['POD']
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// En caso de que el presupuesto no sea duplicado, recalcular la tarifa
|
// En caso de que el presupuesto no sea duplicado, recalcular la tarifa
|
||||||
// con el mismo proveedor
|
// con el mismo proveedor
|
||||||
else{
|
else {
|
||||||
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){
|
if ($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)) {
|
||||||
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo??null;
|
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo ?? null;
|
||||||
$nueva_tarifa = $model->getPrecioTarifaHoras(
|
$nueva_tarifa = $model->getPrecioTarifaHoras(
|
||||||
$servicio->tarifa_encuadernado_id,
|
$servicio->tarifa_encuadernado_id,
|
||||||
$input_data['paginas'],
|
$input_data['paginas'],
|
||||||
$input_data['tirada'],
|
$input_data['tirada'],
|
||||||
$servicio->proveedor_id,
|
$servicio->proveedor_id,
|
||||||
$input_data['POD'],
|
$input_data['POD'],
|
||||||
$paginas_cuadernillo);
|
$paginas_cuadernillo
|
||||||
}else{
|
);
|
||||||
|
} else {
|
||||||
$nueva_tarifa = $model->getPrecioTarifa(
|
$nueva_tarifa = $model->getPrecioTarifa(
|
||||||
$servicio->tarifa_encuadernado_id,
|
$servicio->tarifa_encuadernado_id,
|
||||||
$input_data['paginas'],
|
$input_data['paginas'],
|
||||||
@ -1477,34 +1496,36 @@ class PresupuestoService extends BaseService
|
|||||||
$input_data['ancho'],
|
$input_data['ancho'],
|
||||||
$input_data['alto'],
|
$input_data['alto'],
|
||||||
$servicio->proveedor_id,
|
$servicio->proveedor_id,
|
||||||
$input_data['POD']);
|
$input_data['POD']
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if($nueva_tarifa && count($nueva_tarifa)>0){
|
if ($nueva_tarifa && count($nueva_tarifa) > 0) {
|
||||||
if(!isset($nueva_tarifa[0]->proveedor_id)){
|
if (!isset($nueva_tarifa[0]->proveedor_id)) {
|
||||||
$nueva_tarifa[0]->proveedor_id = null;
|
$nueva_tarifa[0]->proveedor_id = null;
|
||||||
}
|
}
|
||||||
// Si el presupuesto no es duplicado, se comprueba que
|
// Si el presupuesto no es duplicado, se comprueba que
|
||||||
// no ha cambiado el precio unidad
|
// no ha cambiado el precio unidad
|
||||||
if($nueva_tarifa[0]->tiempo==null)
|
if ($nueva_tarifa[0]->tiempo == null)
|
||||||
$nueva_tarifa[0]->tiempo = 0;
|
$nueva_tarifa[0]->tiempo = 0;
|
||||||
if($servicio->tiempo == null)
|
if ($servicio->tiempo == null)
|
||||||
$servicio->tiempo = 0;
|
$servicio->tiempo = 0;
|
||||||
if(round($nueva_tarifa[0]->precio_unidad, 2) != round(floatval($servicio->precio_unidad),2) ||
|
if (
|
||||||
|
round($nueva_tarifa[0]->precio_unidad, 2) != round(floatval($servicio->precio_unidad), 2) ||
|
||||||
$nueva_tarifa[0]->margen != floatval($servicio->margen) ||
|
$nueva_tarifa[0]->margen != floatval($servicio->margen) ||
|
||||||
$nueva_tarifa[0]->tiempo != floatval($servicio->tiempo)){
|
$nueva_tarifa[0]->tiempo != floatval($servicio->tiempo)
|
||||||
|
) {
|
||||||
|
|
||||||
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
$servicio->tiempo = $nueva_tarifa[0]->tiempo==null?0: round($nueva_tarifa[0]->tiempo, 2);
|
$servicio->tiempo = $nueva_tarifa[0]->tiempo == null ? 0 : round($nueva_tarifa[0]->tiempo, 2);
|
||||||
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
$servicio->margen = round($nueva_tarifa[0]->margen);
|
$servicio->margen = round($nueva_tarifa[0]->margen);
|
||||||
$cambio = true;
|
$cambio = true;
|
||||||
}
|
} else if ($input_data['is_duplicado'] && $nueva_tarifa[0]->proveedor_id != $servicio->proveedor_id) {
|
||||||
else if($input_data['is_duplicado'] && $nueva_tarifa[0]->proveedor_id != $servicio->proveedor_id){
|
|
||||||
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
$servicio->tiempo = $nueva_tarifa[0]->tiempo==null?"": round($nueva_tarifa[0]->tiempo, 2);
|
$servicio->tiempo = $nueva_tarifa[0]->tiempo == null ? "" : round($nueva_tarifa[0]->tiempo, 2);
|
||||||
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
$servicio->margen = round($nueva_tarifa[0]->margen);
|
$servicio->margen = round($nueva_tarifa[0]->margen);
|
||||||
$servicio->proveedor = $nueva_tarifa[0]->proveedor;
|
$servicio->proveedor = $nueva_tarifa[0]->proveedor;
|
||||||
@ -1522,37 +1543,40 @@ class PresupuestoService extends BaseService
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static function checkLineasEnvios($envios){
|
public static function checkLineasEnvios($envios)
|
||||||
|
{
|
||||||
|
|
||||||
$cambio = false;
|
$cambio = false;
|
||||||
|
|
||||||
if(count($envios)>0){
|
if (count($envios) > 0) {
|
||||||
$model = new TarifaEnvioModel();
|
$model = new TarifaEnvioModel();
|
||||||
|
|
||||||
foreach ($envios as $envio) {
|
foreach ($envios as $envio) {
|
||||||
$paisId = $envio->pais_id;
|
$paisId = $envio->pais_id;
|
||||||
$cp= $envio->cp;
|
$cp = $envio->cp;
|
||||||
$peso= $envio->peso;
|
$peso = $envio->peso;
|
||||||
$tipo_envio= $envio->entregaPieCalle==1?'palets':'cajas';
|
$tipo_envio = $envio->entregaPieCalle == 1 ? 'palets' : 'cajas';
|
||||||
|
|
||||||
$nueva_tarifa = $model->getTarifaEnvio($paisId, $cp, $peso, $tipo_envio);
|
$nueva_tarifa = $model->getTarifaEnvio($paisId, $cp, $peso, $tipo_envio);
|
||||||
|
|
||||||
if($nueva_tarifa && count($nueva_tarifa)>0){
|
if ($nueva_tarifa && count($nueva_tarifa) > 0) {
|
||||||
$coste = 0;
|
$coste = 0;
|
||||||
$margen = 0;
|
$margen = 0;
|
||||||
if($peso>$nueva_tarifa[0]->peso_max){
|
if ($peso > $nueva_tarifa[0]->peso_max) {
|
||||||
$coste += floatval($nueva_tarifa[0]->peso_min) + ($peso-floatval($nueva_tarifa[0]->peso_min))*floatval($nueva_tarifa[0]->precio_adicional);
|
$coste += floatval($nueva_tarifa[0]->peso_min) + ($peso - floatval($nueva_tarifa[0]->peso_min)) * floatval($nueva_tarifa[0]->precio_adicional);
|
||||||
}
|
}
|
||||||
// si no se calcula linealmente
|
// si no se calcula linealmente
|
||||||
else{
|
else {
|
||||||
$m=(floatval($nueva_tarifa[0]->precio_max)-floatval($nueva_tarifa[0]->precio_min)) / ((floatval($nueva_tarifa[0]->peso_max)-floatval($nueva_tarifa[0]->peso_min)));
|
$m = (floatval($nueva_tarifa[0]->precio_max) - floatval($nueva_tarifa[0]->precio_min)) / ((floatval($nueva_tarifa[0]->peso_max) - floatval($nueva_tarifa[0]->peso_min)));
|
||||||
$b=floatval($nueva_tarifa[0]->precio_max)-$m*floatval($nueva_tarifa[0]->peso_max);
|
$b = floatval($nueva_tarifa[0]->precio_max) - $m * floatval($nueva_tarifa[0]->peso_max);
|
||||||
$coste += floatval($m*$peso+$b);
|
$coste += floatval($m * $peso + $b);
|
||||||
}
|
}
|
||||||
$margen += $coste*floatval($nueva_tarifa[0]->margen)/100.0;
|
$margen += $coste * floatval($nueva_tarifa[0]->margen) / 100.0;
|
||||||
|
|
||||||
if(round($coste, 2) != $envio->precio ||
|
if (
|
||||||
$margen != $envio->margen || $nueva_tarifa[0]->id != $envio->tarifa_id){
|
round($coste, 2) != $envio->precio ||
|
||||||
|
$margen != $envio->margen || $nueva_tarifa[0]->id != $envio->tarifa_id
|
||||||
|
) {
|
||||||
|
|
||||||
$envio->precio = round($coste, 2);
|
$envio->precio = round($coste, 2);
|
||||||
$envio->margen = $margen;
|
$envio->margen = $margen;
|
||||||
@ -1588,7 +1612,8 @@ class PresupuestoService extends BaseService
|
|||||||
// - gramaje: gramaje del papel seleccionado
|
// - gramaje: gramaje del papel seleccionado
|
||||||
// - cliente_id: id del cliente al que va destinado el presupuesto
|
// - cliente_id: id del cliente al que va destinado el presupuesto
|
||||||
// - datosTipolog: datos referentes a las tintas
|
// - datosTipolog: datos referentes a las tintas
|
||||||
public static function obtenerComparadorRotativa($input_data){
|
public static function obtenerComparadorRotativa($input_data)
|
||||||
|
{
|
||||||
|
|
||||||
$paginas = $input_data['paginas'];
|
$paginas = $input_data['paginas'];
|
||||||
$datosPedido = $input_data['datosPedido'];
|
$datosPedido = $input_data['datosPedido'];
|
||||||
@ -1600,10 +1625,10 @@ class PresupuestoService extends BaseService
|
|||||||
$tipo = $paginas->color > 0 ? 'color' : 'negro';
|
$tipo = $paginas->color > 0 ? 'color' : 'negro';
|
||||||
$uso = 'interior';
|
$uso = 'interior';
|
||||||
|
|
||||||
$parametrosRotativa = (object)array(
|
$parametrosRotativa = (object) array(
|
||||||
'a_favor_fibra' => $datosPedido->a_favor_fibra,
|
'a_favor_fibra' => $datosPedido->a_favor_fibra,
|
||||||
'bnPages' => $paginas->negro,
|
'bnPages' => $paginas->negro,
|
||||||
'colorPages' => $paginas->color,
|
'colorPages' => $paginas->color,
|
||||||
'rotativa_gota_negro' => 0,
|
'rotativa_gota_negro' => 0,
|
||||||
'rotativa_gota_color' => 0,
|
'rotativa_gota_color' => 0,
|
||||||
);
|
);
|
||||||
@ -1616,8 +1641,7 @@ class PresupuestoService extends BaseService
|
|||||||
if ($paginas->color > 0) {
|
if ($paginas->color > 0) {
|
||||||
$tipo = 'color';
|
$tipo = 'color';
|
||||||
$opciones_papel['color'] = 1;
|
$opciones_papel['color'] = 1;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$opciones_papel['bn'] = 1;
|
$opciones_papel['bn'] = 1;
|
||||||
$tipo = 'negro';
|
$tipo = 'negro';
|
||||||
}
|
}
|
||||||
@ -1648,12 +1672,12 @@ class PresupuestoService extends BaseService
|
|||||||
$datosTipologias = $datosTipolog;
|
$datosTipologias = $datosTipolog;
|
||||||
}
|
}
|
||||||
|
|
||||||
$parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
$parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
||||||
$parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
$parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
||||||
$parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro;
|
$parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro;
|
||||||
$parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan;
|
$parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan;
|
||||||
$parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta;
|
$parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta;
|
||||||
$parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
$parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
||||||
|
|
||||||
$maquinamodel = new MaquinaModel();
|
$maquinamodel = new MaquinaModel();
|
||||||
|
|
||||||
@ -1682,7 +1706,7 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
$linea = PresupuestoService::getLineaPresupuestoRotativa($data);
|
$linea = PresupuestoService::getLineaPresupuestoRotativa($data);
|
||||||
|
|
||||||
if(empty($linea))
|
if (empty($linea))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
array_push($lineas, $linea);
|
array_push($lineas, $linea);
|
||||||
@ -1713,7 +1737,8 @@ class PresupuestoService extends BaseService
|
|||||||
// - cliente_id: id del cliente al que va destinado el presupuesto
|
// - cliente_id: id del cliente al que va destinado el presupuesto
|
||||||
// - datosTipolog: datos referentes a las tintas (opcional)
|
// - datosTipolog: datos referentes a las tintas (opcional)
|
||||||
// - a_favor_fibra: dirección de la impresión
|
// - a_favor_fibra: dirección de la impresión
|
||||||
public static function obtenerComparadorPlana($input_data){
|
public static function obtenerComparadorPlana($input_data)
|
||||||
|
{
|
||||||
|
|
||||||
$uso = $input_data['uso'];
|
$uso = $input_data['uso'];
|
||||||
$tipo_impresion_id = $input_data['tipo_impresion_id'];
|
$tipo_impresion_id = $input_data['tipo_impresion_id'];
|
||||||
@ -1776,27 +1801,28 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
$linea = PresupuestoService::getLineaPresupuestoPlana($data);
|
$linea = PresupuestoService::getLineaPresupuestoPlana($data);
|
||||||
|
|
||||||
if ($tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
|
if (
|
||||||
$tipo_impresion_id == 7 || $tipo_impresion_id == 8) {
|
$tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
|
||||||
|
$tipo_impresion_id == 7 || $tipo_impresion_id == 8
|
||||||
|
) {
|
||||||
|
|
||||||
if ($uso == 'cubierta'){
|
if ($uso == 'cubierta') {
|
||||||
$linea['fields']['num_formas']['num_formas_horizontales'] *= 2;
|
$linea['fields']['num_formas']['num_formas_horizontales'] *= 2;
|
||||||
$linea['fields']['num_formas']['value'] *= 2;
|
$linea['fields']['num_formas']['value'] *= 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(empty($linea))
|
if (empty($linea))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(!array_key_exists('tipo_linea', $linea['fields'])){
|
if (!array_key_exists('tipo_linea', $linea['fields'])) {
|
||||||
if($isColor){
|
if ($isColor) {
|
||||||
if($isHq)
|
if ($isHq)
|
||||||
$linea['fields']['tipo_linea'] = 'lp_colorhq';
|
$linea['fields']['tipo_linea'] = 'lp_colorhq';
|
||||||
else
|
else
|
||||||
$linea['fields']['tipo_linea'] = 'lp_color';
|
$linea['fields']['tipo_linea'] = 'lp_color';
|
||||||
}
|
} else {
|
||||||
else{
|
if ($isHq)
|
||||||
if($isHq)
|
|
||||||
$linea['fields']['tipo_linea'] = 'lp_bnhq';
|
$linea['fields']['tipo_linea'] = 'lp_bnhq';
|
||||||
else
|
else
|
||||||
$linea['fields']['tipo_linea'] = 'lp_bn';
|
$linea['fields']['tipo_linea'] = 'lp_bn';
|
||||||
@ -1830,7 +1856,7 @@ class PresupuestoService extends BaseService
|
|||||||
];
|
];
|
||||||
|
|
||||||
$pedido_id = $model_pedido->insert($data_pedido);
|
$pedido_id = $model_pedido->insert($data_pedido);
|
||||||
if($pedido_id){
|
if ($pedido_id) {
|
||||||
$data_pedido_linea = [
|
$data_pedido_linea = [
|
||||||
"pedido_id" => $pedido_id,
|
"pedido_id" => $pedido_id,
|
||||||
"presupuesto_id" => $presupuesto_id,
|
"presupuesto_id" => $presupuesto_id,
|
||||||
@ -1842,7 +1868,7 @@ class PresupuestoService extends BaseService
|
|||||||
PedidoXMLService::generate_xml($pedido_id);
|
PedidoXMLService::generate_xml($pedido_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($id_linea != 0 && $pedido_id != 0){
|
if ($id_linea != 0 && $pedido_id != 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -1853,7 +1879,8 @@ class PresupuestoService extends BaseService
|
|||||||
*******************************/
|
*******************************/
|
||||||
|
|
||||||
// Funcion que comprueba si existe una maquina
|
// Funcion que comprueba si existe una maquina
|
||||||
private static function checkMaquina($maquina_id){
|
private static function checkMaquina($maquina_id)
|
||||||
|
{
|
||||||
|
|
||||||
$maquina = (new MaquinaModel())->find($maquina_id);
|
$maquina = (new MaquinaModel())->find($maquina_id);
|
||||||
if (!$maquina) {
|
if (!$maquina) {
|
||||||
@ -1864,7 +1891,8 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
|
|
||||||
// Funcion que comprueba si existe un papel de impresion
|
// Funcion que comprueba si existe un papel de impresion
|
||||||
private static function checkPapelImpresion($papel_impresion_id){
|
private static function checkPapelImpresion($papel_impresion_id)
|
||||||
|
{
|
||||||
|
|
||||||
$papel = (new PapelImpresionModel())->find($papel_impresion_id);
|
$papel = (new PapelImpresionModel())->find($papel_impresion_id);
|
||||||
if (!$papel) {
|
if (!$papel) {
|
||||||
|
|||||||
@ -132,7 +132,9 @@
|
|||||||
<div id="form_buttons" class="row col-sm-12 justify-content-center" style="display: none;">
|
<div id="form_buttons" class="row col-sm-12 justify-content-center" style="display: none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<?= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?>
|
<?php if($formAction == 'edit'): ?>
|
||||||
|
<?= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?>
|
||||||
|
<?php endif; ?>
|
||||||
</div><!--//.row -->
|
</div><!--//.row -->
|
||||||
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
|
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
|
||||||
<?= view("themes/_commonPartialsBs/_modalMessageDialog") ?>
|
<?= view("themes/_commonPartialsBs/_modalMessageDialog") ?>
|
||||||
|
|||||||
@ -79,6 +79,7 @@ class PresupuestoCliente {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(".calcular-presupuesto").on('change', this.checkForm.bind(this));
|
$(".calcular-presupuesto").on('change', this.checkForm.bind(this));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -145,9 +146,21 @@ class PresupuestoCliente {
|
|||||||
if (datos_to_check.direcciones) {
|
if (datos_to_check.direcciones) {
|
||||||
delete datos_to_check.direcciones;
|
delete datos_to_check.direcciones;
|
||||||
}
|
}
|
||||||
if (datos_to_check.posPaginasColor) {
|
if (datos_to_check.posPaginasColor == "" || datos_to_check.posPaginasColor == null) {
|
||||||
delete datos_to_check.posPaginasColor;
|
delete datos_to_check.posPaginasColor;
|
||||||
}
|
}
|
||||||
|
if(datos_to_check.cubierta.acabados.barniz == undefined){
|
||||||
|
delete datos_to_check.cubierta.acabados.barniz;
|
||||||
|
}
|
||||||
|
if(datos_to_check.cubierta.acabados.plastificado == undefined){
|
||||||
|
delete datos_to_check.cubierta.acabados.plastificado;
|
||||||
|
}
|
||||||
|
if(datos_to_check.cubierta.acabados.estampado == undefined){
|
||||||
|
delete datos_to_check.cubierta.acabados.estampado;
|
||||||
|
}
|
||||||
|
if(datos_to_check.sobrecubierta.plastificado == undefined){
|
||||||
|
delete datos_to_check.sobrecubierta.plastificado;
|
||||||
|
}
|
||||||
|
|
||||||
if (Object.values(datos_to_check).every(this.#isValidDataForm)) {
|
if (Object.values(datos_to_check).every(this.#isValidDataForm)) {
|
||||||
try {
|
try {
|
||||||
@ -352,7 +365,7 @@ class PresupuestoCliente {
|
|||||||
$(`#containerTiradasEnvios .tirada-envio input[tirada="${response.tiradas[0]}"]`).trigger('click');
|
$(`#containerTiradasEnvios .tirada-envio input[tirada="${response.tiradas[0]}"]`).trigger('click');
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
|
$('#loader').modal('hide');
|
||||||
// DEBUG
|
// DEBUG
|
||||||
//console.log(response);
|
//console.log(response);
|
||||||
}
|
}
|
||||||
@ -420,7 +433,6 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
cubierta: {
|
cubierta: {
|
||||||
tipoCubierta: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id'),
|
tipoCubierta: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id'),
|
||||||
lomoRedondo: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id').includes('Redondo') ? 1 : 0,
|
|
||||||
papelCubierta: this.disenioCubierta.getPapel(),
|
papelCubierta: this.disenioCubierta.getPapel(),
|
||||||
gramajeCubierta: this.disenioCubierta.getGramaje(),
|
gramajeCubierta: this.disenioCubierta.getGramaje(),
|
||||||
cabezada: this.disenioCubierta.getCabezada(),
|
cabezada: this.disenioCubierta.getCabezada(),
|
||||||
@ -438,6 +450,10 @@ class PresupuestoCliente {
|
|||||||
'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
|
'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
let lomoRedondo = 0;
|
||||||
|
if(this.disenioCubierta.disenioCubierta.filter('.selected').length > 0)
|
||||||
|
lomoRedondo = this.disenioCubierta.disenioCubierta.filter('.selected').attr('id').includes('Redondo') ? 1 : 0;
|
||||||
|
this.datos.cubierta.lomoRedondo = lomoRedondo;
|
||||||
|
|
||||||
if (this.datos.tipo == "cosido") {
|
if (this.datos.tipo == "cosido") {
|
||||||
this.datos.paginasCuadernillo = this.datosGenerales.paginasCuadernillo.val();
|
this.datos.paginasCuadernillo = this.datosGenerales.paginasCuadernillo.val();
|
||||||
|
|||||||
Reference in New Issue
Block a user