modificado presupuesto cliente

This commit is contained in:
2025-02-26 21:31:42 +01:00
parent 4adc124ca2
commit 94c8076f3a

View File

@ -1290,37 +1290,55 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios
if ($sobrecubierta) {
if (intval($sobrecubierta['acabado']) > 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($sobrecubierta['acabado']), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', false, true);
$modelServicioAcabado = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel');
$serviciosAcabado = $modelServicioAcabado->getTarifasForServicio($sobrecubierta['acabado']);
foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($service), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', false, true);
}
}
}
}
}
if (intval($cubierta['acabado']) > 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($cubierta['acabado']), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', true, false);
$modelServicioAcabado = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel');
$serviciosAcabado = $modelServicioAcabado->getTarifasForServicio($sobrecubierta['acabado']);
foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($service), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', true, false);
}
}
}
}
if (is_array($faja) && $faja !== [] && intval($faja['acabado']) > 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($faja['acabado']), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', false, false, true);
$modelServicioAcabado = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel');
$serviciosAcabado = $modelServicioAcabado->getTarifasForServicio($faja['acabado']);
foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($service), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', false, false, true);
}
}
}
}
foreach ($resultado_presupuesto['values']['serviciosDefecto']['encuadernacion'] as $servicio) {
$this->guardarServicio($id, $servicio, 'encuadernacion');
@ -1415,10 +1433,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'url' => site_url('presupuestos/presupuestocliente/edit'),
'message' => lang('Basic.global.saveSuccess', [lang('Basic.global.record')]),
]);
}else{
} else {
return [
'sk_id' => $id,
'sk_url' => site_url('presupuestos/presupuestocliente/edit/' . $id)
'sk_url' => site_url('presupuestos/presupuestocliente/edit/' . $id)
];
}
}
@ -1439,7 +1457,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['lsc'] = $presupuesto->lomo_sobrecubierta;
$data['eb'] = $presupuesto->envio_base;
$data['state'] = intval($presupuesto->estado_id);
if($presupuesto->estado_id == 2){ // confirmado
if ($presupuesto->estado_id == 2) { // confirmado
$data['datosGenerales']['selectedTirada'] = $presupuesto->tirada;
}
$data['datosGenerales']['titulo'] = $presupuesto->titulo;
@ -1492,7 +1510,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['cubierta']['solapas'] = $presupuesto->solapas ? 1 : 0;
$data['cubierta']['solapas_ancho'] = $presupuesto->solapas_ancho;
$data['cubierta']['cabezada'] = $presupuesto->cabezada;
$modelAcabado = model("App\Models\Tarifas\Acabados\TarifaAcabadoModel");
$modelAcabado = model("App\Models\Tarifas\Acabados\ServicioAcabadoModel");
$data['cubierta']['acabado']['id'] = $presupuesto->acabado_cubierta_id;
if ($presupuesto->acabado_cubierta_id == 0) {
$data['cubierta']['acabado']['text'] = "Ninguno";
@ -2127,36 +2145,41 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Acabado Cubierta
if (intval($datos_entrada['cubierta']['acabado']) != 0) {
$modelServicioAcabado = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel');
$serviciosAcabado = $modelServicioAcabado->getTarifasForServicio(intval($datos_entrada['cubierta']['acabado']));
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoCubierta = $model->getPrecioTarifa(intval($datos_entrada['cubierta']['acabado']), $datosPedido->tirada, -1, $POD);
foreach ($serviciosAcabado as $servicio) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoCubierta = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
if (count($acabadoCubierta) > 0) {
if ($acabadoCubierta[0]->total <= 0) {
if (count($acabadoCubierta) > 0) {
if ($acabadoCubierta[0]->total <= 0) {
$input_data['tarifas_acabado_cubierta'] = intval($datos_entrada['cubierta']['acabado']);
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener acabados de cubierta',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += round(floatval($acabadoCubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
$input_data['tarifas_acabado_cubierta'] = intval($servicio);
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener acabados de cubierta',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += round(floatval($acabadoCubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
}
}
}
}
@ -2217,35 +2240,40 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Acabado sobrecubierta
if (intval($datos_entrada['sobrecubierta']['acabado']) != 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoSobrecubierta = $model->getPrecioTarifa(intval($datos_entrada['sobrecubierta']['acabado']), $datosPedido->tirada, -1, $POD);
$modelServicioAcabado = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel');
$serviciosAcabado = $modelServicioAcabado->getTarifasForServicio(intval($datos_entrada['sobrecubierta']['acabado']));
if (count($acabadoSobrecubierta) > 0) {
foreach ($serviciosAcabado as $servicio) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoSobrecubierta = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
if ($acabadoSobrecubierta[0]->total <= 0) {
if (count($acabadoSobrecubierta) > 0) {
$input_data['tarifas_acabado_sobrecubierta'] = intval($datos_entrada['sobrecubierta']['acabado']);
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener acabados de sobrecubierta',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
if ($acabadoSobrecubierta[0]->total <= 0) {
$coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
$input_data['tarifas_acabado_sobrecubierta'] = intval($servicio);
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener acabados de sobrecubierta',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
}
}
}
}
@ -2370,14 +2398,18 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Acabado faja
if (intval($faja['acabado']) != 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoFaja = $model->getPrecioTarifa(intval($faja['acabado']), $datosPedido->tirada, -1, $POD);
$modelServicioAcabado = model('App\Models\Tarifas\Acabados\TarifasAcabadoServiciosAcabadoModel');
$serviciosAcabado = $modelServicioAcabado->getTarifasForServicio(intval($faja['acabado']));
foreach ($serviciosAcabado as $servicio)
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoFaja = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
if (count($acabadoFaja) > 0) {
if ($acabadoFaja[0]->total <= 0) {
$input_data['tarifas_acabado_faja'] = intval($faja['acabado']);
$input_data['tarifas_acabado_faja'] = intval($servicio);
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
@ -2902,7 +2934,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$margenImpresion += round($linea['precio_impresion_horas'], 2); // coste de maquina y magen son MARGEN, no COSTE
$margenImpresion += round($linea['margen_impresion_horas'], 2);
$margenImpresion += round($linea['margen_click_pedido'], 2);
}
protected function calcular_lomo($lineas, $lomo_inicial)