diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
index 11a5668f..22b29d04 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
@@ -448,7 +448,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
'retractilado' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value,
'retractilado5' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado5')->value,
'ferro' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value,
+ 'ferro_2' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro_2')->value,
'prototipo' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value,
+ 'prototipo_2' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo_2')->value,
'solapas_grandes_cubierta' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_cubierta')->value,
'solapas_grandes_sobrecubierta' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_sobrecubierta')->value,
'solapas_grandes_faja' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_faja')->value,
@@ -565,7 +567,6 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$modelCliente = new ClienteModel();
$modelPapelGenerico = new PapelGenericoModel();
-
$presupuesto = $this->model->find($id);
$data = [];
if ($presupuesto) {
@@ -630,7 +631,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['datosLibro']['acabadoFaja']['text'] = $modelAcabado->find($presupuesto->acabado_faja_id)->nombre;
}
$data['datosLibro']['prototipo'] = $presupuesto->prototipo;
+ $data['datosLibro']['prototipo2'] = $this->hasPrototipo2($id);
$data['datosLibro']['ferro'] = $presupuesto->ferro;
+ $data['datosLibro']['ferro2'] = $this->hasFerro2($id);
$data['datosLibro']['ferroDigital'] = $presupuesto->ferro_digital;
$data['datosLibro']['marcapaginas'] = $presupuesto->marcapaginas;
$data['datosLibro']['retractilado'] = $presupuesto->retractilado;
@@ -659,6 +662,21 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['direcciones'] = $this->obtenerDireccionesEnvio($id, $presupuesto->cliente_id);
}
+ $data['direccionesFP'] = [];
+ $direccionFP1 = $this->obtenerDireccionesEnvio($id, $presupuesto->cliente_id, true, 1);
+ if(count($direccionFP1) > 0){
+ $data['direccionesFP']['fp1'] = $direccionFP1;
+ } else {
+ $data['direccionesFP']['fp1'] = [];
+ }
+ $direccionFP2 = $this->obtenerDireccionesEnvio($id, $presupuesto->cliente_id, true, 2);
+ if(count($direccionFP2) > 0){
+ $data['direccionesFP']['fp2'] = $direccionFP2;
+ } else {
+ $data['direccionesFP']['fp2'] = [];
+ }
+ $data['direccionesFP']['checkboxes'] = json_decode($presupuesto->getDireccionFPChecks());
+
$data['comentarios_cliente'] = $presupuesto->comentarios_cliente;
$data['comentarios_safekat'] = $presupuesto->comentarios_safekat;
$data['comentarios_pdf'] = $presupuesto->comentarios_pdf;
@@ -1951,7 +1969,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
return PresupuestoService::checkLineasEnvios($direccionesEnvio);
}
- protected function obtenerDireccionesEnvio($id, $cliente_id)
+ protected function obtenerDireccionesEnvio($id, $cliente_id, $is_fp = false, $num_fp = 0)
{
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
$model_direcciones = model('App\Models\Clientes\ClienteDireccionesModel');
@@ -1959,10 +1977,38 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
->join('lg_proveedores', 'presupuesto_direcciones.proveedor_id = lg_proveedores.id')
->join('lg_paises', 'presupuesto_direcciones.pais_id = lg_paises.id')
->select('presupuesto_direcciones.*, lg_proveedores.nombre AS proveedor, lg_paises.nombre AS pais')
- ->where('presupuesto_id', $id)->findAll();
+ ->where('presupuesto_id', $id)
+ ->where('is_ferro_prototipo', $is_fp);
+ if ($is_fp) {
+ $direcciones = $direcciones
+ ->where('num_ferro_prototipo', $num_fp);
+ }
- return $direcciones;
+
+ return $direcciones->findAll();
}
+ protected function hasPrototipo2($presupuestoId){
+ $servicios = (new PresupuestoServiciosExtraModel())->getResource($presupuestoId)->get()->getResultObject();
+ $id_servicio = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo_2')->value;
+ foreach ($servicios as $servicio) {
+ if ($servicio->tarifa_extra_id == $id_servicio) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected function hasFerro2($presupuestoId)
+ {
+ $servicios = (new PresupuestoServiciosExtraModel())->getResource($presupuestoId)->get()->getResultObject();
+ $id_servicio = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro_2')->value;
+ foreach ($servicios as $servicio) {
+ if ($servicio->tarifa_extra_id == $id_servicio) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php b/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php
index 93f9b848..fb348542 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php
@@ -55,6 +55,7 @@ class Presupuestodirecciones extends \App\Controllers\BaseResourceController
$proveedor_id = $reqData['proveedor_id'] ?? "";
$entregaPieCalle = $reqData['entregaPieCalle'] ?? 0;
$is_ferro_prototipo = $reqData['is_ferro_prototipo'] ?? 0;
+ $num_ferro_prototipo = $reqData['num_ferro_prototipo'] ?? 0;
$data = [
"presupuesto_id" => $presupuesto_id,
@@ -74,7 +75,8 @@ class Presupuestodirecciones extends \App\Controllers\BaseResourceController
"proveedor" => $proveedor,
"proveedor_id" => $proveedor_id,
"entregaPieCalle" => $entregaPieCalle,
- "is_ferro_prototipo" => $is_ferro_prototipo
+ "is_ferro_prototipo" => $is_ferro_prototipo,
+ "num_ferro_prototipo" => $num_ferro_prototipo
];
$response = $this->model->insert($data);
diff --git a/ci4/app/Database/Migrations/2025-07-04-090000_FerroPrototipo2.php b/ci4/app/Database/Migrations/2025-07-04-090000_FerroPrototipo2.php
new file mode 100644
index 00000000..ee46d797
--- /dev/null
+++ b/ci4/app/Database/Migrations/2025-07-04-090000_FerroPrototipo2.php
@@ -0,0 +1,33 @@
+db->table('config_variables_app')->insert([
+ 'name' => 'id_servicio_ferro_2',
+ 'value' => '31',
+ 'description' => 'D del servicio extra "ferro (2 unidades)" que aparece en los presupuestos',
+ 'created_at' => date('Y-m-d H:i:s')
+ ]);
+
+ $this->db->table('config_variables_app')->insert([
+ 'name' => 'id_servicio_prototipo_2',
+ 'value' => '28',
+ 'description' => 'D del servicio extra "Prototipo (2 unidades)" que aparece en los presupuestos',
+ 'created_at' => date('Y-m-d H:i:s')
+ ]);
+ }
+
+ public function down()
+ {
+ // Borrar los nuevos campos
+ $this->db->table('config_variables_app')->whereIn('name', [
+ 'id_servicio_ferro_2',
+ 'id_servicio_prototipo_2'
+ ])->delete();
+ }
+}
diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php
index 5a76511d..90c4d4b1 100755
--- a/ci4/app/Language/es/Presupuestos.php
+++ b/ci4/app/Language/es/Presupuestos.php
@@ -80,8 +80,10 @@ return [
'acabadoFaja' => 'Acabado Faja',
'cosido' => 'Cosido',
'ferro' => 'Ferro',
+ 'ferro_2' => 'Ferro (2 uds.)',
'ferroDigital' => 'Ferro Digital',
'prototipo' => 'Prototipo',
+ 'prototipo_2' => 'Prototipo (2 uds.)',
'imagenesBnInterior' => 'Imágenes B/N interior',
'recogerEnTaller' => 'Recoger en taller',
'marcapaginas' => 'Marcapáginas',
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
index 63246a7a..1529f8fb 100755
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
@@ -1,68 +1,207 @@
-
+
-
- = view("themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm") ?>
-
-
-
- Envio base
-
-
+
+
+ = view("themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm") ?>
+
+
+
+ Envio base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
recoger_en_taller == true ? 'checked' : ''; ?> >
-
= lang('Presupuestos.recogerEnTaller') ?>
+
-
-
-
-
= lang("Presupuestos.insertar")?>
+
+
+ = lang("Presupuestos.insertar") ?>
+
-
+
+
+
+
+
+
+
+ Dirección de envío ferro/prototipo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = lang('PresupuestosDirecciones.sameAddPrincipal') ?>
+
+
+
+
+
+ = lang("Presupuestos.insertar") ?>
+
+
+
+
+
+
+
+
+
+ Dirección de envío ferro/prototipo 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = lang("Presupuestos.insertar") ?>
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php
index e481ca95..76c7a106 100755
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php
@@ -303,11 +303,20 @@
-
-
-
+
+
+
+
+ >
+ = lang('Presupuestos.prototipo_2') ?>
+
+
+
+
@@ -326,6 +335,18 @@
+
+
+
+
+ >
+ = lang('Presupuestos.ferro_2') ?>
+
+
+
+
+
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php
index 14d190a1..2a688713 100755
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php
@@ -1,4 +1,4 @@
-