mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
acabado actualizar lineas presupuesto
This commit is contained in:
@ -102,6 +102,10 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
$sanitizedData['papel_formato_id'] = 0;
|
$sanitizedData['papel_formato_id'] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($sanitizedData['is_duplicado']) || $sanitizedData['is_duplicado'] == null) {
|
||||||
|
$sanitizedData['is_duplicado'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$noException = true;
|
$noException = true;
|
||||||
if ($successfulResult = $this->canValidate($this->model->validationRulesAdd, $this->model->validationMessagesAdd)) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
if ($successfulResult = $this->canValidate($this->model->validationRulesAdd, $this->model->validationMessagesAdd)) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
||||||
|
|
||||||
@ -191,10 +195,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
|
|
||||||
$sanitizedData = $this->sanitized($postData, $nullIfEmpty);
|
$sanitizedData = $this->sanitized($postData, $nullIfEmpty);
|
||||||
|
|
||||||
|
|
||||||
// JJO
|
// JJO
|
||||||
$sanitizedData['user_updated_id'] = $session->id_user;
|
$sanitizedData['user_updated_id'] = $session->id_user;
|
||||||
|
|
||||||
|
if ($this->request->getPost('is_duplicado') == null) {
|
||||||
|
$sanitizedData['is_duplicado'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->request->getPost('retractilado') == null) {
|
if ($this->request->getPost('retractilado') == null) {
|
||||||
$sanitizedData['retractilado'] = false;
|
$sanitizedData['retractilado'] = false;
|
||||||
}
|
}
|
||||||
@ -351,10 +358,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
$this->viewData['presupuestoEntity']->cambios_lineas=true;
|
$this->viewData['presupuestoEntity']->cambios_lineas=true;
|
||||||
}
|
}
|
||||||
// Tarifas
|
// Tarifas
|
||||||
$this->viewData['serviciosAcabado'] = $this->getServiciosAcabado();
|
|
||||||
$this->viewData['serviciosPreimpresion'] = $this->getServiciosPreimpresion();
|
$this->viewData['serviciosPreimpresion'] = $this->getServiciosPreimpresion();
|
||||||
$this->viewData['serviciosEncuadernacion'] = $this->getServiciosEncuadernacion();
|
$this->viewData['serviciosEncuadernacion'] = $this->getServiciosEncuadernacion();
|
||||||
$this->viewData['serviciosManipulado'] = $this->getServiciosManipulado();
|
$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['serviciosEncuadernacionList'] = (new PresupuestoEncuadernacionesModel())->getResource($id)->get()->getResultObject();
|
||||||
$this->viewData['serviciosAcabadosList'] = (new PresupuestoAcabadosModel())->getResource($id)->get()->getResultObject();
|
$this->viewData['serviciosAcabadosList'] = (new PresupuestoAcabadosModel())->getResource($id)->get()->getResultObject();
|
||||||
$this->viewData['serviciosManipuladoList'] = (new PresupuestoManipuladosModel())->getResource($id)->get()->getResultObject();
|
$this->viewData['serviciosManipuladoList'] = (new PresupuestoManipuladosModel())->getResource($id)->get()->getResultObject();
|
||||||
@ -380,8 +390,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
|
|
||||||
$this->viewData['formAction'] = route_to('updateCosidotapablanda', $id);
|
$this->viewData['formAction'] = route_to('updateCosidotapablanda', $id);
|
||||||
|
|
||||||
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3');
|
// Si se ha llamado a esta funcion porque se ha duplicado el presupuesto
|
||||||
|
// se actualiza la bbdd para que sólo ejecute algunas funciones una vez
|
||||||
|
if($presupuestoEntity->is_duplicado){
|
||||||
|
$this->model->removeIsDuplicado($presupuestoEntity->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3');
|
||||||
|
|
||||||
return $this->displayForm(__METHOD__, $id);
|
return $this->displayForm(__METHOD__, $id);
|
||||||
} // end function edit(...)
|
} // end function edit(...)
|
||||||
@ -834,6 +849,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
|
|
||||||
$presupuesto = $this->model->find($id);
|
$presupuesto = $this->model->find($id);
|
||||||
$presupuesto->titulo = $presupuesto->titulo .' - ' . lang('Presupuestos.duplicado');
|
$presupuesto->titulo = $presupuesto->titulo .' - ' . lang('Presupuestos.duplicado');
|
||||||
|
$presupuesto->is_duplicado = 1;
|
||||||
$new_id = $this->model->insert($presupuesto);
|
$new_id = $this->model->insert($presupuesto);
|
||||||
|
|
||||||
$presupuestoAcabadosModel = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$presupuestoAcabadosModel = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
@ -1326,4 +1342,41 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
|
|
||||||
return PresupuestoService::checkLineasPresupuesto($input_data, $lineas);
|
return PresupuestoService::checkLineasPresupuesto($input_data, $lineas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getLineasServicios($presupuestoEntity){
|
||||||
|
|
||||||
|
$serviciosPresupuesto = (object)array();
|
||||||
|
|
||||||
|
$serviciosPresupuesto->serviciosAcabado = (new PresupuestoAcabadosModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
|
||||||
|
$serviciosPresupuesto->serviciosPreimpresion = (new PresupuestoPreimpresionesModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
|
||||||
|
$serviciosPresupuesto->serviciosEncuadernacion = (new PresupuestoEncuadernacionesModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
|
||||||
|
$serviciosPresupuesto->serviciosManipulado = (new PresupuestoManipuladosModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
|
||||||
|
|
||||||
|
$input_data = [];
|
||||||
|
$input_data['presupuesto_id'] = $presupuestoEntity->id;
|
||||||
|
$input_data['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id;
|
||||||
|
$input_data['tirada'] = $presupuestoEntity->tirada;
|
||||||
|
$input_data['POD'] = $this->getPOD();
|
||||||
|
$input_data['paginas'] = $presupuestoEntity->paginas;
|
||||||
|
$input_data['is_duplicado'] = $presupuestoEntity->is_duplicado;
|
||||||
|
|
||||||
|
if($presupuestoEntity->papel_formato_personalizado){
|
||||||
|
$input_data['ancho'] = $presupuestoEntity->ancho;
|
||||||
|
$input_data['alto'] = $presupuestoEntity->alto;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$model = model("App\Models\Configuracion\PapelFormatoModel");
|
||||||
|
$papel = $model->find($presupuestoEntity->papel_formato_id);
|
||||||
|
if($papel){
|
||||||
|
$input_data['ancho'] = $papel->ancho;
|
||||||
|
$input_data['alto'] = $papel->alto;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$input_data['ancho'] = 0;
|
||||||
|
$input_data['alto'] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return PresupuestoService::checkLineasServicios($input_data, $serviciosPresupuesto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,6 +87,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
"total_factor_ponderado" => null,
|
"total_factor_ponderado" => null,
|
||||||
"acabado_cubierta_id" => null,
|
"acabado_cubierta_id" => null,
|
||||||
"acabado_sobrecubierta_id" => null,
|
"acabado_sobrecubierta_id" => null,
|
||||||
|
"is_duplicado" => false,
|
||||||
];
|
];
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
"cliente_id" => "int",
|
"cliente_id" => "int",
|
||||||
@ -149,5 +150,6 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
"total_factor_ponderado" => "?float",
|
"total_factor_ponderado" => "?float",
|
||||||
"acabado_cubierta_id" => "int",
|
"acabado_cubierta_id" => "int",
|
||||||
"acabado_sobrecubierta_id" => "int",
|
"acabado_sobrecubierta_id" => "int",
|
||||||
|
"is_duplicado" => "boolean",
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,23 +75,7 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
private function calcularTarifa($tarifa, $tirada, $is_POD=false){
|
|
||||||
|
|
||||||
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max))/($tarifa->tirada_max - $tarifa->tirada_min) * ($tirada - $tarifa->tirada_min);
|
|
||||||
if ($tirada > $tarifa->tirada_max)
|
|
||||||
$precio_unidad = $tarifa->precio_max;
|
|
||||||
$precio_unidad = $precio_unidad* (1+ floatval($tarifa->margen)/100.0);
|
|
||||||
|
|
||||||
$total = $precio_unidad * $tirada;
|
|
||||||
$margen = floatval($tarifa->margen);
|
|
||||||
|
|
||||||
if (!$is_POD){
|
|
||||||
$total += floatval($tarifa->tarifa_importe_fijo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return [$precio_unidad, $total, $margen];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function deleteAllServicios($presupuesto_id){
|
public function deleteAllServicios($presupuesto_id){
|
||||||
|
|
||||||
$this->db
|
$this->db
|
||||||
@ -261,4 +245,21 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel
|
|||||||
return $builder;
|
return $builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function calcularTarifa($tarifa, $tirada, $is_POD=false){
|
||||||
|
|
||||||
|
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max))/($tarifa->tirada_max - $tarifa->tirada_min) * ($tirada - $tarifa->tirada_min);
|
||||||
|
if ($tirada > $tarifa->tirada_max)
|
||||||
|
$precio_unidad = $tarifa->precio_max;
|
||||||
|
$precio_unidad = $precio_unidad* (1+ floatval($tarifa->margen)/100.0);
|
||||||
|
|
||||||
|
$total = $precio_unidad * $tirada;
|
||||||
|
$margen = floatval($tarifa->margen);
|
||||||
|
|
||||||
|
if (!$is_POD){
|
||||||
|
$total += floatval($tarifa->tarifa_importe_fijo);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [$precio_unidad, $total, $margen];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -105,6 +105,7 @@ class PresupuestoModel extends \App\Models\GoBaseModel
|
|||||||
"total_factor_ponderado",
|
"total_factor_ponderado",
|
||||||
"acabado_cubierta_id",
|
"acabado_cubierta_id",
|
||||||
"acabado_sobrecubierta_id",
|
"acabado_sobrecubierta_id",
|
||||||
|
"is_duplicado"
|
||||||
];
|
];
|
||||||
protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity";
|
protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity";
|
||||||
|
|
||||||
@ -264,6 +265,13 @@ class PresupuestoModel extends \App\Models\GoBaseModel
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function removeIsDuplicado($presupuesto_id){
|
||||||
|
$this->db
|
||||||
|
->table($this->table . " t1")
|
||||||
|
->where('id', $presupuesto_id)
|
||||||
|
->set('is_duplicado', false)
|
||||||
|
->update();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get resource data for creating PDFs.
|
* Get resource data for creating PDFs.
|
||||||
@ -299,6 +307,4 @@ class PresupuestoModel extends \App\Models\GoBaseModel
|
|||||||
|
|
||||||
return $builder;
|
return $builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,8 +11,15 @@ use App\Models\Configuracion\PapelImpresionModel;
|
|||||||
use App\Models\Configuracion\PapelGenericoModel;
|
use App\Models\Configuracion\PapelGenericoModel;
|
||||||
use App\Models\Configuracion\TipoPresupuestoModel;
|
use App\Models\Configuracion\TipoPresupuestoModel;
|
||||||
use App\Models\Configuracion\PapelFormatoModel;
|
use App\Models\Configuracion\PapelFormatoModel;
|
||||||
|
|
||||||
use App\Models\Presupuestos\PresupuestoLineaModel;
|
use App\Models\Presupuestos\PresupuestoLineaModel;
|
||||||
|
|
||||||
|
use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
||||||
|
use App\Models\Presupuestos\PresupuestoManipuladosModel;
|
||||||
|
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
|
||||||
|
|
||||||
|
use App\Models\Tarifas\TarifaEncuadernacionModel;
|
||||||
|
|
||||||
class PresupuestoService extends BaseService
|
class PresupuestoService extends BaseService
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -1119,6 +1126,192 @@ class PresupuestoService extends BaseService
|
|||||||
return $output_data;
|
return $output_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Funcion que procesa los servicios y actualiza los precios en caso de cambio
|
||||||
|
public static function checkLineasServicios($input_data, $servicios){
|
||||||
|
|
||||||
|
$cambio_en_servicios = false;
|
||||||
|
$cambio = false;
|
||||||
|
|
||||||
|
if(count($servicios->serviciosAcabado)>0){
|
||||||
|
|
||||||
|
[$cambio, $servicios->serviciosAcabado] =
|
||||||
|
PresupuestoService::procesarServiciosAcabado($input_data, $servicios->serviciosAcabado);
|
||||||
|
|
||||||
|
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count($servicios->serviciosManipulado)>0){
|
||||||
|
|
||||||
|
[$cambio, $servicios->serviciosManipulado] =
|
||||||
|
PresupuestoService::procesarServiciosManipulado($input_data, $servicios->serviciosManipulado);
|
||||||
|
|
||||||
|
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count($servicios->serviciosEncuadernacion)>0){
|
||||||
|
|
||||||
|
[$cambio, $servicios->serviciosEncuadernacion] =
|
||||||
|
PresupuestoService::procesarServiciosEncuadernacion($input_data, $servicios->serviciosEncuadernacion);
|
||||||
|
|
||||||
|
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Los servicios de preimpresion se dejan tal y como esten
|
||||||
|
|
||||||
|
return [$cambio_en_servicios, $servicios];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Funcion que procesa los servicios de acabado del presupuesto
|
||||||
|
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
||||||
|
private static function procesarServiciosAcabado($input_data, $servicios){
|
||||||
|
|
||||||
|
$serviciosUpdated = [];
|
||||||
|
$cambio = false;
|
||||||
|
|
||||||
|
$model = new PresupuestoAcabadosModel();
|
||||||
|
foreach ($servicios as $servicio) {
|
||||||
|
$count = 0;
|
||||||
|
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $input_data['POD']);
|
||||||
|
if($nueva_tarifa && count($nueva_tarifa)>0){
|
||||||
|
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
|
||||||
|
$nueva_tarifa[0]->margen != $servicio->margen){
|
||||||
|
|
||||||
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
|
$servicio->margen = round($nueva_tarifa[0]->margen);
|
||||||
|
$cambio = true;
|
||||||
|
}
|
||||||
|
array_push($serviciosUpdated, $servicio);
|
||||||
|
$servicio_temp = $servicio;
|
||||||
|
$servicio_temp->tarifa_id = $servicio_temp->tarifa_acabado_id;
|
||||||
|
$model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [$cambio, $serviciosUpdated];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funcion que procesa los servicios de manipulado del presupuesto
|
||||||
|
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
||||||
|
private static function procesarServiciosManipulado($input_data, $servicios){
|
||||||
|
|
||||||
|
$serviciosUpdated = [];
|
||||||
|
$cambio = false;
|
||||||
|
|
||||||
|
$model = new PresupuestoManipuladosModel();
|
||||||
|
foreach ($servicios as $servicio) {
|
||||||
|
$count = 0;
|
||||||
|
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_manipulado_id, $input_data['tirada'], $input_data['POD']);
|
||||||
|
if($nueva_tarifa && count($nueva_tarifa)>0){
|
||||||
|
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
|
||||||
|
$nueva_tarifa[0]->margen != $servicio->margen){
|
||||||
|
|
||||||
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
|
$servicio->margen = round($nueva_tarifa[0]->margen);
|
||||||
|
$cambio = true;
|
||||||
|
}
|
||||||
|
array_push($serviciosUpdated, $servicio);
|
||||||
|
$servicio_temp = $servicio;
|
||||||
|
$servicio_temp->tarifa_id = $servicio_temp->tarifa_manipulado_id;
|
||||||
|
$model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [$cambio, $serviciosUpdated];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Funcion que procesa los servicios de encuadernacion del presupuesto
|
||||||
|
// y actualiza los precios en caso de cambio de valor en precio_unidad
|
||||||
|
private static function procesarServiciosEncuadernacion($input_data, $servicios){
|
||||||
|
|
||||||
|
$serviciosUpdated = [];
|
||||||
|
$cambio = false;
|
||||||
|
|
||||||
|
$model = new PresupuestoEncuadernacionesModel();
|
||||||
|
$tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel');
|
||||||
|
|
||||||
|
foreach ($servicios as $servicio) {
|
||||||
|
|
||||||
|
// Si es un presupuesto duplicado hay que buscar el proveedor más barato
|
||||||
|
if($input_data['is_duplicado']){
|
||||||
|
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){
|
||||||
|
$nueva_tarifa = $model->getPrecioTarifaHoras(
|
||||||
|
$servicio->tarifa_encuadernado_id,
|
||||||
|
$input_data['paginas'],
|
||||||
|
$input_data['tirada'],
|
||||||
|
-1,
|
||||||
|
$input_data['POD']);
|
||||||
|
}else{
|
||||||
|
$nueva_tarifa = $model->getPrecioTarifa(
|
||||||
|
$servicio->tarifa_encuadernado_id,
|
||||||
|
$input_data['paginas'],
|
||||||
|
$input_data['tirada'],
|
||||||
|
$input_data['ancho'],
|
||||||
|
$input_data['alto'],
|
||||||
|
-1,
|
||||||
|
$input_data['POD']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// En caso de que el presupuesto no sea duplicado, recalcular la tarifa
|
||||||
|
// con el mismo proveedor
|
||||||
|
else{
|
||||||
|
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){
|
||||||
|
$nueva_tarifa = $model->getPrecioTarifaHoras(
|
||||||
|
$servicio->tarifa_encuadernado_id,
|
||||||
|
$input_data['paginas'],
|
||||||
|
$input_data['tirada'],
|
||||||
|
$servicio->proveedor_id,
|
||||||
|
$input_data['POD']);
|
||||||
|
}else{
|
||||||
|
$nueva_tarifa = $model->getPrecioTarifa(
|
||||||
|
$servicio->tarifa_encuadernado_id,
|
||||||
|
$input_data['paginas'],
|
||||||
|
$input_data['tirada'],
|
||||||
|
$input_data['ancho'],
|
||||||
|
$input_data['alto'],
|
||||||
|
$servicio->proveedor_id,
|
||||||
|
$input_data['POD']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($nueva_tarifa && count($nueva_tarifa)>0){
|
||||||
|
if(!isset($nueva_tarifa[0]->proveedor_id)){
|
||||||
|
$nueva_tarifa[0]->proveedor_id = null;
|
||||||
|
}
|
||||||
|
// Si el presupuesto no es duplicado, se comprueba que
|
||||||
|
// no ha cambiado el precio unidad
|
||||||
|
if(round($nueva_tarifa[0]->precio_unidad, 2) != $servicio->precio_unidad ||
|
||||||
|
$nueva_tarifa[0]->margen != $servicio->margen){
|
||||||
|
|
||||||
|
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
|
||||||
|
$servicio->precio_total = round($nueva_tarifa[0]->total, 2);
|
||||||
|
$servicio->margen = round($nueva_tarifa[0]->margen);
|
||||||
|
$cambio = true;
|
||||||
|
}
|
||||||
|
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_total = round($nueva_tarifa[0]->total, 2);
|
||||||
|
$servicio->margen = round($nueva_tarifa[0]->margen);
|
||||||
|
$servicio->proveedor = $nueva_tarifa[0]->proveedor;
|
||||||
|
$servicio->proveedor_id = $nueva_tarifa[0]->proveedor_id;
|
||||||
|
$cambio = true;
|
||||||
|
}
|
||||||
|
array_push($serviciosUpdated, $servicio);
|
||||||
|
$servicio_temp = $servicio;
|
||||||
|
$servicio_temp->tarifa_id = $servicio_temp->tarifa_encuadernado_id;
|
||||||
|
$model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [$cambio, $serviciosUpdated];
|
||||||
|
}
|
||||||
|
|
||||||
// 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){
|
||||||
|
|||||||
@ -527,6 +527,8 @@ function init_servicio_encuadernado(){
|
|||||||
|
|
||||||
data: function (params) {
|
data: function (params) {
|
||||||
|
|
||||||
|
const dimension = getDimensionLibro();
|
||||||
|
|
||||||
if(parseInt($('#tirada').val())>0){
|
if(parseInt($('#tirada').val())>0){
|
||||||
var tirada = parseInt($('#tirada').val())
|
var tirada = parseInt($('#tirada').val())
|
||||||
}
|
}
|
||||||
@ -538,8 +540,8 @@ function init_servicio_encuadernado(){
|
|||||||
tarifa_id: tarifa_id,
|
tarifa_id: tarifa_id,
|
||||||
paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
|
paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
|
||||||
tirada: tirada,
|
tirada: tirada,
|
||||||
ancho: ancho_libro,
|
ancho: dimension.ancho,
|
||||||
alto: alto_libro,
|
alto: dimension.alto,
|
||||||
searchtxt: params.term, // search term
|
searchtxt: params.term, // search term
|
||||||
};
|
};
|
||||||
return_data = Object.assign(return_data, window.token_ajax);
|
return_data = Object.assign(return_data, window.token_ajax);
|
||||||
|
|||||||
@ -245,7 +245,7 @@
|
|||||||
|
|
||||||
window.routes_servicios = {
|
window.routes_servicios = {
|
||||||
dataTableOfPresupuestoAcabados: "<?=route_to('dataTableOfPresupuestoAcabados') ?>",
|
dataTableOfPresupuestoAcabados: "<?=route_to('dataTableOfPresupuestoAcabados') ?>",
|
||||||
dataTableOfPresupuestoPreimpresion: "<?=route_to('dataTableOfPresupuestoPreimpresion') ?>",
|
dataTableOfPresupuestoPreimpresion: "<?=route_to('dataTableOfPresupuestoPreimpresiones') ?>",
|
||||||
dataTableOfPresupuestoEncuadernaciones: "<?=route_to('dataTableOfPresupuestoEncuadernaciones') ?>",
|
dataTableOfPresupuestoEncuadernaciones: "<?=route_to('dataTableOfPresupuestoEncuadernaciones') ?>",
|
||||||
dataTableOfPresupuestoManipulados: "<?=route_to('dataTableOfPresupuestoManipulados') ?>",
|
dataTableOfPresupuestoManipulados: "<?=route_to('dataTableOfPresupuestoManipulados') ?>",
|
||||||
menuItemsOfPresupuestoEncuadernaciones: '<?= route_to("menuItemsOfPresupuestoEncuadernaciones") ?>',
|
menuItemsOfPresupuestoEncuadernaciones: '<?= route_to("menuItemsOfPresupuestoEncuadernaciones") ?>',
|
||||||
|
|||||||
Reference in New Issue
Block a user