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