solucionado guardado de servicios acabado cubierta y sobrecubierta

This commit is contained in:
2024-12-12 20:38:36 +01:00
parent 74de9330cc
commit aebfeb77d9
7 changed files with 45 additions and 1925 deletions

View File

@ -22,6 +22,7 @@ use App\Services\PresupuestoClienteService;
use App\Services\PresupuestoService;
use Exception;
use stdClass;
use function PHPUnit\Framework\containsOnly;
@ -718,6 +719,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$reqData = $this->request->getPost();
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
$id = $reqData['id'] ?? 0;
$id = intval($id);
@ -932,23 +935,24 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($id != 0) {
$borrar_antes = true;
}
$sobrecubierta_acabado_id = [];
if ($datos_presupuesto['sobrecubierta']) {
$acabado_id = $this->obtenerTarifasAcabado(['plastificado' => $datos_presupuesto['sobrecubierta']['acabados']]);
if (count($acabado_id) > 0) {
$datos_presupuesto['sobrecubierta']['acabados'] = $acabado_id[0];
$sobrecubierta_acabado_id = $this->obtenerTarifasAcabado(['plastificado' => $datos_presupuesto['sobrecubierta']['acabados']]);
if (count($sobrecubierta_acabado_id) > 0) {
// la sobrecubierta sólo tiene plastificado
$datos_presupuesto['sobrecubierta']['acabados'] = $sobrecubierta_acabado_id['plastificado'];
}
}
$acabado_id = $this->obtenerTarifasAcabado($datos_presupuesto['cubierta']['acabadosCubierta']);
if (count($acabado_id) > 0) {
if (array_key_exists('plastificado', $acabado_id)) {
$datos_presupuesto['cubierta']['acabadosCubierta']['plastificado'] = $acabado_id['plastificado'];
$cubierta_acabado_id = $this->obtenerTarifasAcabado($datos_presupuesto['cubierta']['acabadosCubierta']);
if (count($cubierta_acabado_id) > 0) {
if (array_key_exists('plastificado', $cubierta_acabado_id)) {
$datos_presupuesto['cubierta']['acabadosCubierta']['plastificado'] = $cubierta_acabado_id['plastificado'];
}
if (array_key_exists('barniz', $acabado_id)) {
$datos_presupuesto['cubierta']['acabadosCubierta']['barniz'] = $acabado_id['barniz'];
if (array_key_exists('barniz', $cubierta_acabado_id)) {
$datos_presupuesto['cubierta']['acabadosCubierta']['barniz'] = $cubierta_acabado_id['barniz'];
}
if (array_key_exists('estampado', $acabado_id)) {
$datos_presupuesto['cubierta']['acabadosCubierta']['estampado'] = $acabado_id['estampado'];
if (array_key_exists('estampado', $cubierta_acabado_id)) {
$datos_presupuesto['cubierta']['acabadosCubierta']['estampado'] = $cubierta_acabado_id['estampado'];
}
} else {
$datos_presupuesto['cubierta']['acabadosCubierta']['id'] = 0;
@ -991,6 +995,27 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$this->guardarLineaPresupuesto($id, $resultado_presupuesto['info']['guardas']);
// Servicios
foreach ($sobrecubierta_acabado_id as $acabado) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa($acabado, intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', false, true);
}
}
}
foreach ($cubierta_acabado_id as $acabado) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa($acabado, intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', true, false);
}
}
}
foreach ($resultado_presupuesto['info']['serviciosDefecto'] as $servicio) {
$this->guardarServicio($id, $servicio, 'encuadernacion');
}
@ -1311,7 +1336,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
protected function guardarServicio($presupuestoId, $servicio, $tipo)
protected function guardarServicio($presupuestoId, $servicio, $tipo, $cubierta = false, $sobrecubierta = false)
{
if ($tipo == 'encuadernacion') {
@ -1349,9 +1374,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data = [
'presupuesto_id' => $presupuestoId,
'tarifa_acabado_id' => $servicio->tarifa_id,
'precio_total' => $servicio->total,
'precio_unidad' => $servicio->precio_unidad,
'precio_total' => round($servicio->total, 2),
'precio_unidad' => round($servicio->precio_unidad, 2),
'margen' => $servicio->margen,
'proveedor_id' => $servicio->proveedor_id,
'cubierta' => $cubierta,
'sobrecubierta' => $sobrecubierta,
];
$model->insert($data);
} else if ($tipo == 'manipulado') {
@ -1790,7 +1818,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($tarifaAcabadoSobrecubierta as $tarifa) {
// NONE
if ($tarifaAcabadoSobrecubierta[0] == 0)
if ($tarifa == 0)
continue;
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoSobrecubierta = $model->getPrecioTarifa($tarifa, $datosPedido->tirada, -1, $POD);
@ -2590,10 +2618,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($value != 'NONE') {
$data = $model->where('code', $value)->first();
$data = $data->id;
array_push($tarifas, [$acabado => $data]);
} else {
array_push($tarifas, 0);
$tarifas[$acabado] = $data->id;
}
}