diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
index 513ae1b4..2194a775 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
@@ -412,11 +412,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$direccion['unidades'],
$direccion['entregaPalets'] == 'true' ? 1 : 0
)[0];
-
+
if (!property_exists($coste_direccion, 'coste')) {
$return_data['errors']->envios = "No se ha podido calcular el coste de envío";
- }else{
+ } else {
$coste_envio += $coste_direccion->coste;
}
}
@@ -425,16 +425,16 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} else {
for ($i = 0; $i < count($tirada); $i++) {
-
+
$coste_envio = 0.0;
$coste_direccion = $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0];
-
+
if (!property_exists($coste_direccion, 'coste')) {
$return_data['errors']->envios = "No se ha podido calcular el coste de envío";
- }else{
+ } else {
$coste_envio += $coste_direccion->coste;
}
-
+
$return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio / $tirada[$i], 4);
}
@@ -616,11 +616,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$selected_tirada = $reqData['selectedTirada'] ?? 0;
$tamanio = $reqData['tamanio'];
$paginas = $reqData['paginas'] ?? 0;
-
+ $paginas_color = $reqData['paginasColor'] ?? 0;
+
$posPaginasColor = $reqData['posPaginasColor'] ?? "";
$paginasColorConsecutivas = $reqData['pagColorConsecutivas'] ?? 0;
- $papelInteriorDiferente = $reqData['papelInteriorDiferente'] ?? 0;
-
+ $papelInteriorDiferente = $reqData['papelInteriorDiferente'] ?? 0;
+
$tipo = $reqData['tipo'];
$paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null;
@@ -655,11 +656,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$interior = [
'papel_generico' => $papel,
'gramaje' => $gramaje,
- 'excluirRotativa' => $excluirRotativa,
+ 'excluirRotativa' => $excluirRotativa,
'paginas' => $paginas,
+ 'paginasColor' => $paginas_color,
'pos_paginas_color' => $posPaginasColor,
'paginas_color_consecutivas' => $paginasColorConsecutivas,
- 'papel_interior_diferente' => $papelInteriorDiferente
+ 'papelInteriorDiferente' => $papelInteriorDiferente
];
@@ -916,7 +918,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['datosGenerales']['excluirRotativa'] = $presupuesto->excluir_rotativa;
$data['datosGenerales']['clienteId'] = $presupuesto->cliente_id;
$data['datosGenerales']['clienteNombre'] = $modelCliente->getNombre($presupuesto->cliente_id);
- model('App\Models\Clientes\ClienteModel')
+ model('App\Models\Clientes\ClienteModel')
->find($presupuesto->cliente_id)->nombre;
$data['datosGenerales']['papelFormatoId'] = $presupuesto->papel_formato_id;
$data['datosGenerales']['papelFormatoNombre'] = $modelPapelFormato->getNombre($presupuesto->papel_formato_id);
@@ -951,7 +953,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$modelLinea = new PresupuestoLineaModel();
$lineas = $modelLinea->where('presupuesto_id', $id)->findAll();
- [$data['datosGenerales']['paginasNegro'], $data['datosGenerales']['paginasColor']] =
+ [$data['datosGenerales']['paginasNegro'], $data['datosGenerales']['paginasColor']] =
$this->getPaginas($lineas);
@@ -1339,7 +1341,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$gramaje = $datos_entrada['interior']['gramaje'];
$excluirRotativa = $datos_entrada['interior']['excluirRotativa'];
$paginas = $datos_entrada['interior']['paginas'];
- $paginas_color = $datos_entrada['interior']['paginas_color'];
+ $paginas_color = $datos_entrada['interior']['paginasColor'];
// Cubierta
@@ -1358,15 +1360,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios
$servicios = $datos_entrada['servicios'] ?? [];
- $error = (object) [
- 'interior' => "",
- 'cubierta' => "",
- 'sobrecubierta' => "",
- 'guardas' => "",
- 'servicios' => "",
- 'serviciosDefecto' => "",
- "envios" => "",
- ];
$coste_servicios = 0.0;
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
@@ -1427,9 +1420,15 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($interior == -1) {
$errorModel = new ErrorPresupuesto();
- $errorModel->insertError($datos_entrada['id'], auth()->user()->id, 'No se puede obtener el interior', $input_data);
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ '
+ No se puede obtener el interior',
+ $input_data
+ );
$return_data = [
- 'errors' => (object)([
+ 'errors' => (object) ([
'status' => 1
]),
];
@@ -1455,8 +1454,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
-
-
// Si es POD hay que volver a calcular para incluir la merma correcta
if ($tirada[$t] <= $POD) {
$num_formas = [];
@@ -1472,10 +1469,16 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$interior = PresupuestoClienteService::obtenerInterior($input_data);
if ($interior == -1) {
+
$errorModel = new ErrorPresupuesto();
- $errorModel->insertError($datos_entrada['id'], auth()->user()->id, 'No se puede obtener el interior', $input_data);
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener el interior',
+ $input_data
+ );
$return_data = [
- 'errors' => (object)([
+ 'errors' => (object) ([
'status' => 1
]),
];
@@ -1511,11 +1514,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
- if ($costeInterior <= 0)
- $error->interior = lang('Presupuestos.errores.noInterior');
- else
- $error->interior = "";
+ if ($costeInterior <= 0){
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener el interior',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
// Cubierta
$input_data['papel_generico'] = $papel_generico_cubierta;
@@ -1548,11 +1561,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
);
}
}
- if ($coste_cubierta <= 0)
- $error->cubierta = lang('Presupuestos.errores.noCubiertaSobrecubierta');
- else
- $error->cubierta = "";
+ if ($coste_cubierta <= 0) {
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener la cubierta',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
// Acabados Cubierta
$tarifaAcabadoCubierta = $this->obtenerTarifasAcabado($acabadosCubierta);
$acabadoCubierta = [];
@@ -1564,8 +1587,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$acabadoCubierta = $model->getPrecioTarifa($tarifa, $datosPedido->tirada, -1, $POD);
if (count($acabadoCubierta) > 0) {
- if ($acabadoCubierta[0]->total <= 0)
- $error->servicios = lang('Presupuestos.errores.errorPresupuesto');
+ if ($acabadoCubierta[0]->total <= 0) {
+
+ $input_data['tarifas_acabado_cubierta'] = $tarifaAcabadoCubierta;
+ $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
+ ]),
+ ];
+ }
$coste_servicios += floatval($acabadoCubierta[0]->total);
}
}
@@ -1607,11 +1644,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
);
}
}
- if ($coste_sobrecubierta <= 0)
- $error->sobrecubierta = lang('Presupuestos.errores.noCubiertaSobrecubierta');
- else
- $error->sobrecubierta = "";
+ if ($coste_sobrecubierta <= 0) {
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener la sobrecubierta',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
$lomo_sobrecubierta = $lomo + floatval($linea_sobrecubierta['mano']);
$tarifaAcabadoSobrecubierta = $this->obtenerTarifasAcabado(['plastificado' => $sobreCubierta['acabados']]);
@@ -1619,14 +1666,30 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($tarifaAcabadoSobrecubierta as $tarifa) {
// NONE
- if($tarifaAcabadoSobrecubierta[0] == 0)
+ if ($tarifaAcabadoSobrecubierta[0] == 0)
continue;
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoSobrecubierta = $model->getPrecioTarifa($tarifa, $datosPedido->tirada, -1, $POD);
if (count($acabadoSobrecubierta) > 0) {
- if ($acabadoSobrecubierta[0]->total <= 0)
- $error->servicios = lang('Presupuestos.errores.errorPresupuesto');
+
+ if ($acabadoSobrecubierta[0]->total <= 0) {
+
+ $input_data['tarifas_acabado_sobrecubierta'] = $tarifaAcabadoSobrecubierta;
+ $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
+ ]),
+ ];
+ }
+
$coste_servicios += floatval($acabadoSobrecubierta[0]->total);
}
}
@@ -1677,10 +1740,20 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
);
}
}
- if ($coste_guardas <= 0)
- $error->guardas = lang('Presupuestos.errores.noGuardas');
- else
- $error->guardas = "";
+ if ($coste_guardas <= 0) {
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener las guardas',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
}
}
if ($extra_info) {
@@ -1704,8 +1777,23 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
]);
$costeServiciosDefecto = 0.0;
foreach ($servDefecto as $servicio) {
- if ($servicio->total <= 0)
- $error->serviciosDefecto = lang('Presupuestos.errores.errorPresupuesto');
+ if ($servicio->total <= 0) {
+
+ $input_data['servicios'] = $servDefecto;
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener servicios',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
+
$costeServiciosDefecto += floatval($servicio->total);
if ($extra_info) {
@@ -1741,6 +1829,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($datos_entrada['servicios']['prototipo'])
array_push($servicios, 9);
foreach ($servicios as $servicio) {
+
if (intval($servicio) == 3) {
// Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosAcabados([
@@ -1749,8 +1838,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'POD' => $POD,
]);
array_push($serviciosAutomaticos, $resultado[0]);
- if ($resultado[0]->total <= 0)
- $error->servicios = lang('Presupuestos.errores.errorPresupuesto');
+
+ if ($resultado[0]->total <= 0) {
+
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener servicio con id 3',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
$coste_servicios += floatval($resultado[0]->total);
if ($extra_info) {
@@ -1763,8 +1866,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'tarifa_id' => $servicio,
]);
array_push($serviciosAutomaticos, $resultado[0]);
- if ($resultado[0]->precio <= 0)
- $error->servicios = lang('Presupuestos.errores.errorPresupuesto');
+ if ($resultado[0]->precio <= 0){
+
+ $errorModel = new ErrorPresupuesto();
+ $errorModel->insertError(
+ $datos_entrada['id'],
+ auth()->user()->id,
+ 'No se puede obtener servicio con id 9',
+ $input_data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ }
+
$coste_servicios += floatval($resultado[0]->precio);
if ($extra_info) {
@@ -1776,11 +1893,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4));
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2));
- foreach ($error as $err) {
- if ($err != "")
- break;
- }
-
+
if ($extra_info) {
$totalServicios -= $margenServicios;
$porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100;
@@ -1806,8 +1919,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
));
}
- $info['lomo_cubierta'] = $lomo;
- $info['lomo_sobrecubierta'] = $lomo_sobrecubierta;
+ $info['lomo_cubierta'] = round(floatval($lomo), 2);
+ $info['lomo_sobrecubierta'] = round(floatval($lomo_sobrecubierta), 2);
$return_data['info'] = $info;
@@ -1823,7 +1936,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$return_data += [
- 'errors' => $error,
+ 'errors' => [],
//'total_lp' => $costeInterior + $coste_cubierta + $coste_sobrecubierta,
//'acabadoCubierta' => $acabadoCubierta,
//'acabadoSobrecubierta' => $acabadoSobrecubierta,
@@ -1839,6 +1952,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
return $return_data;
+
} catch (Exception $e) {
return [
'exception' => $e->getMessage(),
@@ -2285,11 +2399,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
- private function getPaginas($lineas){
+ private function getPaginas($lineas)
+ {
$paginasNegro = 0;
$paginasColor = 0;
-
+
foreach ($lineas as $linea) {
if (strpos($linea->tipo, "lp_bn") !== false || strpos($linea->tipo, "lp_bnhq") !== false) {
$paginasNegro = $linea->paginas;
@@ -2308,7 +2423,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$paginasNegro = $linea->paginas - $linea->rotativa_pag_color;
}
}
-
+
return [$paginasNegro, $paginasColor];
}
}
diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php
index ee35e651..b4484b49 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php
@@ -426,7 +426,7 @@ class PresupuestoModel extends \App\Models\BaseModel
'pos_paginas_color' => $data['interior']['pos_paginas_color'],
'paginas_color_consecutivas' => $data['interior']['paginas_color_consecutivas'],
- 'papel_interior_diferente' => $data['interior']['papel_interior_diferente'],
+ 'papel_interior_diferente' => $data['interior']['papelInteriorDiferente'],
'lomo_cubierta' => $extra_info['lomo_cubierta'],
'lomo_sobrecubierta' => $extra_info['lomo_sobrecubierta'],
@@ -495,27 +495,27 @@ class PresupuestoModel extends \App\Models\BaseModel
if (is_array($data)) {
// -- INTERIOR --
// Si hay negro
- if ($data['interior']['paginas'] > $data['interior']['paginas_color']) {
+ if (intval($data['interior']['paginas']) > intval($data['interior']['paginasColor'])) {
if ($data['isHq'])
$key = 'bnhq';
else
$key = 'bn';
$values[$key] = array(
- 'paginas' => intval($data['interior']['paginas']) - intval($data['interior']['paginas_color']),
+ 'paginas' => intval($data['interior']['paginas']) - intval(intval($data['interior']['paginasColor'])),
'papel_id' => intval($data['interior']['papel_generico']['id']),
'gramaje' => intval($data['interior']['gramaje']),
);
}
// Si hay color
- if ($data['interior']['paginas_color'] > 0) {
+ if (intval($data['interior']['paginasColor']) > 0) {
if ($data['isHq'])
$key = 'colorhq';
else
$key = 'color';
$values[$key] = array(
- 'paginas' => intval($data['interior']['paginas_color']),
+ 'paginas' => intval(intval($data['interior']['paginasColor'])),
'papel_id' => intval($data['interior']['papel_generico']['id']),
'gramaje' => intval($data['interior']['gramaje']),
);
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php
index 844d36f0..048b2110 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php
@@ -127,7 +127,7 @@
-