mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'mod/servicios_extra_cliente' into 'main'
Mod/servicios extra cliente See merge request jjimenez/safekat!584
This commit is contained in:
@ -45,11 +45,16 @@ const SK_PERMISSION_MATRIX = [
|
|||||||
"tarifa-encuadernacion.edit",
|
"tarifa-encuadernacion.edit",
|
||||||
"tarifa-encuadernacion.delete",
|
"tarifa-encuadernacion.delete",
|
||||||
"tarifa-encuadernacion.menu",
|
"tarifa-encuadernacion.menu",
|
||||||
|
"tarifa-extra.create",
|
||||||
|
"tarifa-extra.edit",
|
||||||
|
"tarifa-extra.delete",
|
||||||
|
"tarifa-extra.menu",
|
||||||
"tarifa-envio.create",
|
"tarifa-envio.create",
|
||||||
"tarifa-envio.edit",
|
"tarifa-envio.edit",
|
||||||
"tarifa-envio.delete",
|
"tarifa-envio.delete",
|
||||||
"tarifa-envio.menu",
|
"tarifa-envio.menu",
|
||||||
"servicio-acabado.create",
|
"servicio-acabado.create",
|
||||||
|
"servicio-acabado.edit",
|
||||||
"servicio-acabado.delete",
|
"servicio-acabado.delete",
|
||||||
"servicio-acabado.menu",
|
"servicio-acabado.menu",
|
||||||
"proveedores.create",
|
"proveedores.create",
|
||||||
@ -222,10 +227,18 @@ const SK_PERMISSION_MATRIX = [
|
|||||||
"tarifa-encuadernacion.edit",
|
"tarifa-encuadernacion.edit",
|
||||||
"tarifa-encuadernacion.delete",
|
"tarifa-encuadernacion.delete",
|
||||||
"tarifa-encuadernacion.menu",
|
"tarifa-encuadernacion.menu",
|
||||||
|
"tarifa-extra.create",
|
||||||
|
"tarifa-extra.edit",
|
||||||
|
"tarifa-extra.delete",
|
||||||
|
"tarifa-extra.menu",
|
||||||
"tarifa-envio.create",
|
"tarifa-envio.create",
|
||||||
"tarifa-envio.edit",
|
"tarifa-envio.edit",
|
||||||
"tarifa-envio.delete",
|
"tarifa-envio.delete",
|
||||||
"tarifa-envio.menu",
|
"tarifa-envio.menu",
|
||||||
|
"servicio-acabado.create",
|
||||||
|
"servicio-acabado.edit",
|
||||||
|
"servicio-acabado.delete",
|
||||||
|
"servicio-acabado.menu",
|
||||||
"proveedores.create",
|
"proveedores.create",
|
||||||
"proveedores.edit",
|
"proveedores.edit",
|
||||||
"proveedores.delete",
|
"proveedores.delete",
|
||||||
|
|||||||
@ -57,7 +57,7 @@ class ImprimelibrosApi extends ResourceController
|
|||||||
'precios' => $response['precio_u']
|
'precios' => $response['precio_u']
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
} else {
|
}else{
|
||||||
$response = [
|
$response = [
|
||||||
'status' => 400,
|
'status' => 400,
|
||||||
'error' => $response
|
'error' => $response
|
||||||
@ -75,42 +75,23 @@ class ImprimelibrosApi extends ResourceController
|
|||||||
// Access the entire POST data
|
// Access the entire POST data
|
||||||
$post_data = $this->request->getJSON(true);
|
$post_data = $this->request->getJSON(true);
|
||||||
|
|
||||||
|
//return $this->respond(var_dump($post_data));
|
||||||
|
|
||||||
// Instancia de presupuesto cliente
|
// Instancia de presupuesto cliente
|
||||||
$presupuestocliente = new Presupuestocliente();
|
$presupuestocliente = new Presupuestocliente();
|
||||||
try {
|
$response = $presupuestocliente->guardar($post_data);
|
||||||
$response = $presupuestocliente->guardar($post_data);
|
|
||||||
|
|
||||||
// DEBUG LINE
|
return $this->respond($response);
|
||||||
//return $this->respond($response);
|
|
||||||
|
|
||||||
if (!isset($response['sk_id'])) {
|
$response = [
|
||||||
return $this->respond([
|
'status' => 200,
|
||||||
'status' => 400,
|
'error' => null,
|
||||||
'error' => 'Missing sk_id',
|
'data' => [
|
||||||
'message' => 'El identificador sk_id es requerido pero no se recibió.'
|
'tiradas' => $response['tiradas'],
|
||||||
], 400);
|
'precios' => $response['precio_u']
|
||||||
}
|
]
|
||||||
|
];
|
||||||
$response = [
|
return $this->respond($response);
|
||||||
'status' => 200,
|
|
||||||
'error' => null,
|
|
||||||
'data' => [
|
|
||||||
'sk_id' => $response['sk_id'],
|
|
||||||
'sk_url' => $response['sk_url'] ?? null
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
return $this->respond($response);
|
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
|
|
||||||
return $this->respond([
|
|
||||||
'status' => 500,
|
|
||||||
'error' => 'Server error',
|
|
||||||
'message' => 'Error inesperado durante el procesado'
|
|
||||||
]);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -181,6 +181,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$this->viewData['state'] = intval($presupuestoEntity->estado_id);
|
$this->viewData['state'] = intval($presupuestoEntity->estado_id);
|
||||||
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3');
|
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3');
|
||||||
|
|
||||||
|
$this->viewData['serviciosExtra'] = $this->getServiciosExtra();
|
||||||
|
|
||||||
return $this->displayForm(__METHOD__, $id);
|
return $this->displayForm(__METHOD__, $id);
|
||||||
} // end function edit(...)
|
} // end function edit(...)
|
||||||
|
|
||||||
@ -1243,6 +1245,37 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$borrar_antes = true;
|
$borrar_antes = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$servicio_ferro = (object) [
|
||||||
|
'nombre' => 'ferro',
|
||||||
|
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value
|
||||||
|
];
|
||||||
|
|
||||||
|
$servicio_ferro_digital = (object) [
|
||||||
|
'nombre' => 'ferro_digital',
|
||||||
|
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro_digital')->value
|
||||||
|
];
|
||||||
|
$servicio_prototipo = (object) [
|
||||||
|
'nombre' => 'prototipo',
|
||||||
|
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
if(isset($resultado_presupuesto['values']['servicios_extra']))
|
||||||
|
{
|
||||||
|
foreach ($resultado_presupuesto['values']['servicios_extra'] as $servicio) {
|
||||||
|
if($servicio->tarifa_id == $servicio_ferro->id){
|
||||||
|
$ferro = 1;
|
||||||
|
}
|
||||||
|
else if($servicio->tarifa_id == $servicio_ferro_digital->id){
|
||||||
|
$ferroDigital = 1;
|
||||||
|
}
|
||||||
|
else if($servicio->tarifa_id == $servicio_prototipo->id){
|
||||||
|
$prototipo = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$datos_presupuesto['prototipo'] = $prototipo;
|
$datos_presupuesto['prototipo'] = $prototipo;
|
||||||
$datos_presupuesto['ferro'] = $ferro;
|
$datos_presupuesto['ferro'] = $ferro;
|
||||||
$datos_presupuesto['ferro_digital'] = $ferroDigital;
|
$datos_presupuesto['ferro_digital'] = $ferroDigital;
|
||||||
@ -1354,14 +1387,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
foreach ($resultado_presupuesto['values']['serviciosDefecto']['manipulado'] as $servicio) {
|
foreach ($resultado_presupuesto['values']['serviciosDefecto']['manipulado'] as $servicio) {
|
||||||
$this->guardarServicio($id, $servicio, 'manipulado');
|
$this->guardarServicio($id, $servicio, 'manipulado');
|
||||||
}
|
}
|
||||||
$servicio_ferro = (object) [
|
|
||||||
'nombre' => 'ferro',
|
|
||||||
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value
|
|
||||||
];
|
|
||||||
$servicio_prototipo = (object) [
|
|
||||||
'nombre' => 'prototipo',
|
|
||||||
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value
|
|
||||||
];
|
|
||||||
$servicio_retractilado = (object) [
|
$servicio_retractilado = (object) [
|
||||||
'nombre' => 'retractilado',
|
'nombre' => 'retractilado',
|
||||||
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value
|
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value
|
||||||
@ -1399,6 +1425,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_faja')->value
|
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_faja')->value
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Funcionalidad servicios extra
|
||||||
|
foreach ($resultado_presupuesto['values']['servicios_extra'] as $servicio) {
|
||||||
|
$this->guardarServicio($id, $servicio, 'extra');
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($resultado_presupuesto['values']['servicios_automaticos'] as $servicio) {
|
foreach ($resultado_presupuesto['values']['servicios_automaticos'] as $servicio) {
|
||||||
if ($servicio->tarifa_id == $servicio_retractilado->id || $servicio->tarifa_id == $servicio_retractilado5->id) {
|
if ($servicio->tarifa_id == $servicio_retractilado->id || $servicio->tarifa_id == $servicio_retractilado5->id) {
|
||||||
// Servicios acabado
|
// Servicios acabado
|
||||||
@ -1501,6 +1532,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$data['datosGenerales']['retractilado'] = $presupuesto->retractilado;
|
$data['datosGenerales']['retractilado'] = $presupuesto->retractilado;
|
||||||
$data['datosGenerales']['retractilado5'] = $presupuesto->retractilado5;
|
$data['datosGenerales']['retractilado5'] = $presupuesto->retractilado5;
|
||||||
|
|
||||||
|
$modelServiciosExtra = new PresupuestoServiciosExtraModel();
|
||||||
|
$data['datosGenerales']['serviciosExtra'] = $modelServiciosExtra
|
||||||
|
->where('presupuesto_id', $id)->findColumn('tarifa_extra_id');
|
||||||
|
|
||||||
$datos_papel = $this->obtenerDatosPapel($presupuesto->id);
|
$datos_papel = $this->obtenerDatosPapel($presupuesto->id);
|
||||||
if (array_key_exists('interior', $datos_papel)) {
|
if (array_key_exists('interior', $datos_papel)) {
|
||||||
$data['interior'] = $datos_papel['interior'];
|
$data['interior'] = $datos_papel['interior'];
|
||||||
@ -1783,11 +1818,15 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'presupuesto_id' => $presupuestoId,
|
'presupuesto_id' => $presupuestoId,
|
||||||
'tarifa_extra_id' => $servicio->tarifa_id,
|
'tarifa_extra_id' => intval($servicio->tarifa_id),
|
||||||
'precio' => round($servicio->precio, 2),
|
'precio' => round($servicio->precio, 2),
|
||||||
'margen' => $servicio->margen,
|
'margen' => floatval($servicio->margen),
|
||||||
];
|
];
|
||||||
$model->insert($data);
|
$errors = null;
|
||||||
|
|
||||||
|
if (!$model->insert($data)) {
|
||||||
|
$errors = $model->errors();
|
||||||
|
}
|
||||||
} else if ($tipo == 'acabado') {
|
} else if ($tipo == 'acabado') {
|
||||||
$model = new PresupuestoAcabadosModel();
|
$model = new PresupuestoAcabadosModel();
|
||||||
|
|
||||||
@ -2637,13 +2676,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
if ($datos_entrada['servicios'] !== []) {
|
if ($datos_entrada['servicios'] !== []) {
|
||||||
|
|
||||||
if ($datos_entrada['servicios']['retractilado']) // acabado
|
if (isset($datos_entrada['servicios']['retractilado']) && $datos_entrada['servicios']['retractilado']) // acabado
|
||||||
array_push($servicios, $servicio_retractilado);
|
array_push($servicios, $servicio_retractilado);
|
||||||
if ($datos_entrada['servicios']['retractilado5']) // acabado
|
if (isset($datos_entrada['servicios']['retractilado5']) && $datos_entrada['servicios']['retractilado5']) // acabado
|
||||||
array_push($servicios, $servicio_retractilado5);
|
array_push($servicios, $servicio_retractilado5);
|
||||||
if ($datos_entrada['servicios']['prototipo']) // extra
|
if (isset($datos_entrada['servicios']['prototipo']) && $datos_entrada['servicios']['prototipo']) // extra
|
||||||
array_push($servicios, $servicio_prototipo);
|
array_push($servicios, $servicio_prototipo);
|
||||||
if ($datos_entrada['servicios']['ferro']) // extra
|
if (isset($datos_entrada['servicios']['ferro']) && $datos_entrada['servicios']['ferro']) // extra
|
||||||
array_push($servicios, $servicio_ferro);
|
array_push($servicios, $servicio_ferro);
|
||||||
if ($solapasCubierta > 0)
|
if ($solapasCubierta > 0)
|
||||||
array_push($servicios, $servicio_solapas_cubierta);
|
array_push($servicios, $servicio_solapas_cubierta);
|
||||||
@ -2758,6 +2797,46 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$serviciosExtra = [];
|
||||||
|
// funcionalidad para los servicios extra añadidos por el usuario
|
||||||
|
if($datos_entrada['servicios'] !== [] && isset($datos_entrada['servicios']['serviciosExtra']) &&
|
||||||
|
$datos_entrada['servicios']['serviciosExtra'] !== []){
|
||||||
|
|
||||||
|
foreach($datos_entrada['servicios']['serviciosExtra'] as $servicio){
|
||||||
|
$resultado = PresupuestoCLienteService::getServiciosExtra([
|
||||||
|
'tarifa_id' => intval($servicio),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($resultado[0]->precio <= 0) {
|
||||||
|
|
||||||
|
$errorModel = new ErrorPresupuesto();
|
||||||
|
$errorModel->insertError(
|
||||||
|
$datos_entrada['id'],
|
||||||
|
auth()->user()->id,
|
||||||
|
'No se puede obtener servicio con id ' . ((string) $servicio),
|
||||||
|
$input_data
|
||||||
|
);
|
||||||
|
$return_data = [
|
||||||
|
'errors' => (object) ([
|
||||||
|
'status' => 1
|
||||||
|
]),
|
||||||
|
];
|
||||||
|
return $return_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
array_push($serviciosExtra, $resultado[0]);
|
||||||
|
|
||||||
|
$coste_servicios += round(floatval($resultado[0]->precio), 2);
|
||||||
|
if ($extra_info) {
|
||||||
|
$totalServicios += round(floatval($resultado[0]->precio), 2);
|
||||||
|
$base = round(floatval($resultado[0]->precio / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
|
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
||||||
|
$margenServicios += round(floatval($resultado[0]->precio - $base), 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Plegado de solapas grandes
|
// Plegado de solapas grandes
|
||||||
if (intval($solapasCubierta) > 0 && intval($cubierta['dimension_desarrollo']['ancho']) > 630) {
|
if (intval($solapasCubierta) > 0 && intval($cubierta['dimension_desarrollo']['ancho']) > 630) {
|
||||||
// Servicios manipulado
|
// Servicios manipulado
|
||||||
@ -2925,6 +3004,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$return_data['values']['serviciosDefecto']['encuadernacion'] = $servDefectoEnc;
|
$return_data['values']['serviciosDefecto']['encuadernacion'] = $servDefectoEnc;
|
||||||
$return_data['values']['serviciosDefecto']['manipulado'] = $servDefectoMan;
|
$return_data['values']['serviciosDefecto']['manipulado'] = $servDefectoMan;
|
||||||
$return_data['values']['servicios_automaticos'] = $serviciosAutomaticos;
|
$return_data['values']['servicios_automaticos'] = $serviciosAutomaticos;
|
||||||
|
$return_data['values']['servicios_extra'] = $serviciosExtra;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3434,4 +3514,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
return [$paginasNegro, $paginasColor];
|
return [$paginasNegro, $paginasColor];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getServiciosExtra(){
|
||||||
|
|
||||||
|
$servicios = [];
|
||||||
|
|
||||||
|
$model = model('App\Models\Tarifas\TarifaextraModel');
|
||||||
|
$data = $model->where('deleted_at', null)->where('mostrar_en_presupuesto_cliente', 1)->findAll();
|
||||||
|
|
||||||
|
foreach ($data as $servicio) {
|
||||||
|
$id = "service_extra_" . $servicio->id;
|
||||||
|
array_push($servicios,
|
||||||
|
"<input class=\"calcular-presupuesto form-check-input\" type=\"checkbox\" id=\"{$id}\"
|
||||||
|
name=\"{$id}\" value=\"1\" data-tarifa-id=\"{$servicio->id}\" data-tarifa-tipo=\"extra\" data-tarifa-nombre=\"{$servicio->nombre}\">
|
||||||
|
<label class=\"form-check-label\" for=\"{$id}\">{$servicio->nombre}</label>");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $servicios;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,8 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel
|
|||||||
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio", "margen"];
|
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio", "margen"];
|
||||||
protected $returnType = "App\Entities\Presupuestos\PresupuestoServiciosExtraEntity";
|
protected $returnType = "App\Entities\Presupuestos\PresupuestoServiciosExtraEntity";
|
||||||
|
|
||||||
|
protected $primaryKey = 'id';
|
||||||
|
|
||||||
protected $useTimestamps = true;
|
protected $useTimestamps = true;
|
||||||
protected $useSoftDeletes = false;
|
protected $useSoftDeletes = false;
|
||||||
|
|
||||||
@ -30,14 +32,14 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel
|
|||||||
public static $labelField = "nombre";
|
public static $labelField = "nombre";
|
||||||
|
|
||||||
protected $validationRules = [
|
protected $validationRules = [
|
||||||
"precio_total" => [
|
"precio" => [
|
||||||
"label" => "Presupuestos.precioTotal",
|
"label" => "Presupuestos.precioTotal",
|
||||||
"rules" => "decimal|required",
|
"rules" => "decimal|required",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $validationMessages = [
|
protected $validationMessages = [
|
||||||
"precio_total" => [
|
"precio" => [
|
||||||
"decimal" => "Presupuestos.validation.decimal",
|
"decimal" => "Presupuestos.validation.decimal",
|
||||||
"requerido" => "Presupuestos.validation.decimal",
|
"requerido" => "Presupuestos.validation.decimal",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -268,37 +268,31 @@
|
|||||||
<h3 class="mb-1 fw-bold"> Servicios extra </h3>
|
<h3 class="mb-1 fw-bold"> Servicios extra </h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row col-sm-9 mb-3 d-flex flex-column align-items-left">
|
<div class="row col-sm-8 mb-3 d-flex flex-column align-items-left">
|
||||||
<div class="row" >
|
<div class="row align-items-center" >
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="prototipo" name="prototipo"
|
|
||||||
value="1">
|
|
||||||
<label class="form-check-label" for="prototipo">Prototipo</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferro" name="ferro" value="1">
|
|
||||||
<label class="form-check-label" for="ferro">Ferro</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="ferroDigital"
|
|
||||||
name="ferro_digital" value="1">
|
|
||||||
<label class="form-check-label" for="ferro">Ferro digital</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
|
|
||||||
name="marcapaginas" value="1">
|
|
||||||
<label class="form-check-label" for="ferro">Marcapáginas</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado"
|
||||||
name="retractilado" value="1">
|
name="retractilado" value="1">
|
||||||
<label class="form-check-label" for="ferro">Retractilado</label>
|
<label class="form-check-label" for="ferro">Retractilado</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3 form-check form-switch mb-2">
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="retractilado5"
|
||||||
name="retractilado5" value="1">
|
name="retractilado5" value="1">
|
||||||
<label class="form-check-label" for="ferro">Retractilado de 5</label>
|
<label class="form-check-label" for="ferro">Retractilado de 5</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php foreach ($serviciosExtra as $servicio): ?>
|
||||||
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
|
<?= $servicio ?>
|
||||||
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<div class="col-sm-3 form-check form-switch mb-2 d-flex align-items-center gap-2">
|
||||||
|
<input class="calcular-presupuesto form-check-input" type="checkbox" id="marcapaginas"
|
||||||
|
name="marcapaginas" value="1">
|
||||||
|
<label class="form-check-label" for="ferro">Marcapáginas</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -183,35 +183,8 @@
|
|||||||
|
|
||||||
<div class="rl-servicios-extra rl-item d-none">
|
<div class="rl-servicios-extra rl-item d-none">
|
||||||
<div class="row">Servicios extra</div>
|
<div class="row">Servicios extra</div>
|
||||||
<div class="row">
|
<div id="rl-servicios-extra-items" class="row">
|
||||||
<ul class="list-group list-group-timeline">
|
|
||||||
<li id="rl_prototipo" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
|
||||||
Prototipo</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-group list-group-timeline">
|
|
||||||
<li id="rl_ferro" class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
|
||||||
Ferro</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-group list-group-timeline">
|
|
||||||
<li id="rl_ferroDigital"
|
|
||||||
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
|
||||||
Ferro digital</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-group list-group-timeline">
|
|
||||||
<li id="rl_marcapaginas"
|
|
||||||
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
|
||||||
Marcapáginas</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-group list-group-timeline">
|
|
||||||
<li id="rl_retractilado"
|
|
||||||
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
|
||||||
Retractilado</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-group list-group-timeline">
|
|
||||||
<li id="rl_retractilado5"
|
|
||||||
class="list-group-item list-group-timeline-primary texto-resumen-lateral d-none">
|
|
||||||
Retractilado de 5</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -478,7 +478,7 @@ class DatosGenerales {
|
|||||||
|
|
||||||
// servicios extra
|
// servicios extra
|
||||||
menu_off = true;
|
menu_off = true;
|
||||||
if(this.prototipo.is(':checked')){
|
/*if(this.prototipo.is(':checked')){
|
||||||
this.rl_prototipo.removeClass("d-none");
|
this.rl_prototipo.removeClass("d-none");
|
||||||
menu_off = false;
|
menu_off = false;
|
||||||
}
|
}
|
||||||
@ -501,29 +501,67 @@ class DatosGenerales {
|
|||||||
else{
|
else{
|
||||||
this.rl_ferroDigital.addClass('d-none');
|
this.rl_ferroDigital.addClass('d-none');
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
$('#rl-servicios-extra-items').empty();
|
||||||
|
|
||||||
if(this.marcapaginas.is(':checked')){
|
if(this.marcapaginas.is(':checked')){
|
||||||
this.rl_marcapaginas.removeClass("d-none");
|
let $ul = $('<ul>', {
|
||||||
|
class: 'list-group list-group-timeline'
|
||||||
|
});
|
||||||
|
|
||||||
|
let $li = $('<li>', {
|
||||||
|
class: 'list-group-item list-group-timeline-primary texto-resumen-lateral',
|
||||||
|
text: 'Marcapáginas'
|
||||||
|
});
|
||||||
|
|
||||||
|
$ul.append($li);
|
||||||
|
$('#rl-servicios-extra-items').append($ul);
|
||||||
menu_off = false;
|
menu_off = false;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
this.rl_marcapaginas.addClass('d-none');
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.retractilado.is(':checked')){
|
if(this.retractilado.is(':checked')){
|
||||||
this.rl_retractilado.removeClass("d-none");
|
let $ul = $('<ul>', {
|
||||||
|
class: 'list-group list-group-timeline'
|
||||||
|
});
|
||||||
|
|
||||||
|
let $li = $('<li>', {
|
||||||
|
class: 'list-group-item list-group-timeline-primary texto-resumen-lateral',
|
||||||
|
text: 'Retractilado'
|
||||||
|
});
|
||||||
|
|
||||||
|
$ul.append($li);
|
||||||
|
$('#rl-servicios-extra-items').append($ul);
|
||||||
menu_off = false;
|
menu_off = false;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
this.rl_retractilado.addClass('d-none');
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.retractilado5.is(':checked')){
|
if(this.retractilado5.is(':checked')){
|
||||||
this.rl_retractilado5.removeClass("d-none");
|
let $ul = $('<ul>', {
|
||||||
|
class: 'list-group list-group-timeline'
|
||||||
|
});
|
||||||
|
|
||||||
|
let $li = $('<li>', {
|
||||||
|
class: 'list-group-item list-group-timeline-primary texto-resumen-lateral',
|
||||||
|
text: 'Retractilado de 5'
|
||||||
|
});
|
||||||
|
|
||||||
|
$ul.append($li);
|
||||||
|
$('#rl-servicios-extra-items').append($ul);
|
||||||
menu_off = false;
|
menu_off = false;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
this.rl_retractilado5.addClass('d-none');
|
const serviciosExtra = $('input[type="checkbox"][data-tarifa-tipo="extra"]:checked');
|
||||||
|
for(let i=0; i<serviciosExtra.length; i++){
|
||||||
|
let $ul = $('<ul>', {
|
||||||
|
class: 'list-group list-group-timeline'
|
||||||
|
});
|
||||||
|
|
||||||
|
let $li = $('<li>', {
|
||||||
|
class: 'list-group-item list-group-timeline-primary texto-resumen-lateral',
|
||||||
|
text: '' + $(serviciosExtra[i]).data('tarifa-nombre')
|
||||||
|
});
|
||||||
|
|
||||||
|
$ul.append($li);
|
||||||
|
$('#rl-servicios-extra-items').append($ul);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!menu_off){
|
if(!menu_off){
|
||||||
@ -603,9 +641,23 @@ class DatosGenerales {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.prototipo.prop('checked', datos.prototipo);
|
|
||||||
this.ferro.prop('checked', datos.ferro);
|
if(datos.serviciosExtra){
|
||||||
this.ferroDigital.prop('checked', datos.ferroDigital);
|
|
||||||
|
let serviciosExtra = $('input[type="checkbox"][data-tarifa-tipo="extra"]');
|
||||||
|
|
||||||
|
$(serviciosExtra).each(function() {
|
||||||
|
let tarifaId = $(this).data('tarifa-id') + "";
|
||||||
|
|
||||||
|
if (datos.serviciosExtra.includes(tarifaId)) {
|
||||||
|
$(this).prop('checked', true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//this.prototipo.prop('checked', datos.prototipo);
|
||||||
|
//this.ferro.prop('checked', datos.ferro);
|
||||||
|
//this.ferroDigital.prop('checked', datos.ferroDigital);
|
||||||
this.marcapaginas.prop('checked', datos.marcapaginas);
|
this.marcapaginas.prop('checked', datos.marcapaginas);
|
||||||
this.retractilado.prop('checked', datos.retractilado);
|
this.retractilado.prop('checked', datos.retractilado);
|
||||||
this.retractilado5.prop('checked', datos.retractilado5);
|
this.retractilado5.prop('checked', datos.retractilado5);
|
||||||
@ -920,6 +972,26 @@ class DatosGenerales {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getServiciosExtra() {
|
||||||
|
|
||||||
|
let serviciosExtra = $('input[type="checkbox"][data-tarifa-tipo="extra"]:checked');
|
||||||
|
|
||||||
|
if (serviciosExtra.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
let servicios = [];
|
||||||
|
|
||||||
|
$(serviciosExtra).each(function() {
|
||||||
|
let tarifaId = $(this).data('tarifa-id');
|
||||||
|
if (tarifaId) {
|
||||||
|
servicios.push(tarifaId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return servicios;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -773,12 +773,13 @@ class PresupuestoCliente {
|
|||||||
this.datos.excluirRotativa = this.datosGenerales.excluirRotativa.is(':checked') ? 1 : 0;
|
this.datos.excluirRotativa = this.datosGenerales.excluirRotativa.is(':checked') ? 1 : 0;
|
||||||
this.datos.ivaReducido = this.datosGenerales.ivaReducido.find('option:selected').val();
|
this.datos.ivaReducido = this.datosGenerales.ivaReducido.find('option:selected').val();
|
||||||
this.datos.servicios = {
|
this.datos.servicios = {
|
||||||
'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
|
//'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
|
||||||
'ferro': this.datosGenerales.ferro.is(':checked') ? 1 : 0,
|
//'ferro': this.datosGenerales.ferro.is(':checked') ? 1 : 0,
|
||||||
'ferroDigital': this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0,
|
//'ferroDigital': this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0,
|
||||||
'marcapaginas': this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0,
|
'marcapaginas': this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0,
|
||||||
'retractilado': this.datosGenerales.retractilado.is(':checked') ? 1 : 0,
|
'retractilado': this.datosGenerales.retractilado.is(':checked') ? 1 : 0,
|
||||||
'retractilado5': this.datosGenerales.retractilado5.is(':checked') ? 1 : 0,
|
'retractilado5': this.datosGenerales.retractilado5.is(':checked') ? 1 : 0,
|
||||||
|
'serviciosExtra': this.datosGenerales.getServiciosExtra(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let lomoRedondo = 0;
|
let lomoRedondo = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user