From 417bc74e1f8ba949b145d8b587f45b7c0ba67b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Wed, 21 Feb 2024 21:58:58 +0100 Subject: [PATCH] =?UTF-8?q?ya=20funciona=20a=C3=B1adir=20los=20servicios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Cosidotapablanda.php | 7 +- .../Presupuestos/Presupuestoacabados.php | 7 +- ci4/app/Controllers/Test.php | 6 +- .../PresupuestoAcabadosEntity.php | 4 ++ .../Presupuestos/PresupuestoAcabadosModel.php | 36 ++++++++-- ci4/app/Services/PresupuestoService.php | 31 +++++--- .../cosidotapablanda/_datosLibroItems.php | 13 ++-- .../_datosPresupuestoClienteItems.php | 3 +- .../cosidotapablanda/_datosServiciosItems.php | 71 ++++++++++++++++--- .../_lineasPresupuestoItems.php | 21 ++++-- 10 files changed, 150 insertions(+), 49 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 9687e780..0fc99f1a 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -571,11 +571,8 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $datosPedido->solapas_ancho = $reqData['solapas_ancho']; $datosPedido->lomo = $reqData['lomo']; - if($type=='sobrecubierta') - $datosPedido->lomo_cubierta = $reqData['lomo_cubierta']; - - $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($tipo_impresion_id, $datosPedido); - $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($tipo_impresion_id, $datosPedido); + $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($type, $tipo_impresion_id, $datosPedido); + $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($type, $tipo_impresion_id, $datosPedido); // Cubierta y sobrecubierta siempre color HQ $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, 1, $cliente_id); diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php b/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php index 7cd46225..a449aaf9 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php @@ -42,15 +42,14 @@ class Presupuestoacabados extends \App\Controllers\GoBaseResourceController endif; $postData = $this->request->getJSON(); - $tarifas = array_column($postData->datos, 'tarifa_id'); - if(count($tarifas)>0){ - $this->model->deleteServiciosNotInArray($requestedId, $tarifas); + if(count($postData->datos)>0){ + $this->model->deleteServiciosNotInArray($requestedId, $postData->datos); } else{ $this->model->deleteAllServicios($requestedId); } - if(count($tarifas)>0){ + if(count($postData->datos)>0){ $this->model->updateTarifas($requestedId, $postData->datos); } diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index 335538aa..581eca3b 100755 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -18,7 +18,11 @@ class Test extends BaseController public function index() { echo '
';
-        ($this->testLineasSobrecubierta());
+        $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
+        $tarifas = [
+            (object)['tarifa_id'=>1, "cubierta"=>0, "sobrecubierta"=>0]
+        ];
+        var_dump($model->deleteServiciosNotInArray(44, $tarifas));
         echo '
'; /* diff --git a/ci4/app/Entities/Presupuestos/PresupuestoAcabadosEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoAcabadosEntity.php index 89c30ac9..71c10315 100755 --- a/ci4/app/Entities/Presupuestos/PresupuestoAcabadosEntity.php +++ b/ci4/app/Entities/Presupuestos/PresupuestoAcabadosEntity.php @@ -12,6 +12,8 @@ class PresupuestoAcabadosEntity extends \CodeIgniter\Entity\Entity "precio_unidad" => null, "precio_total" => null, "margen" => null, + "cubierta" => null, + "sobrecubierta" => null, "created_at" => null, "updated_at" => null, ]; @@ -21,5 +23,7 @@ class PresupuestoAcabadosEntity extends \CodeIgniter\Entity\Entity "precio_unidad" => "float", "precio_total" => "float", "margen" => "float", + "cubierta" => "int", + "sobrecubierta" => "int", ]; } diff --git a/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php b/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php index 3bf50737..6923f0a1 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php @@ -19,7 +19,7 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel 2 => "t1.precio_total" ]; - protected $allowedFields = ["presupuesto_id", "tarifa_acabado_id", "nombre", "precio_total", "precio_unidad", "margen"]; + protected $allowedFields = ["presupuesto_id", "tarifa_acabado_id", "nombre", "precio_total", "precio_unidad", "margen", "cubierta", "sobrecubierta"]; protected $returnType = "App\Entities\Presupuestos\PresupuestoAcabadosEntity"; protected $useTimestamps = true; @@ -98,13 +98,33 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel ->delete(); } - public function deleteServiciosNotInArray($presupuesto_id, $tarifas_id){ + public function deleteServiciosNotInArray($presupuesto_id, $tarifas){ + + $builder = $this->db + ->table($this->table . " t1"); + $builder->select("*"); + $builder->where('presupuesto_id', $presupuesto_id); + $results = $builder->get()->getResultObject(); + + $ids_for_delete = []; + foreach($results as $result){ + $found = false; + foreach($tarifas as $tarifa){ + if($tarifa->tarifa_id == $result->tarifa_acabado_id && + $tarifa->cubierta == $result->cubierta && + $tarifa->sobrecubierta == $result->sobrecubierta) + $found = true; + } + if(!$found){ + array_push($ids_for_delete, $result->id); + } + } $builder = $this->db ->table($this->table . " t1"); $builder->where('presupuesto_id', $presupuesto_id); - foreach($tarifas_id as $id){ - $builder->where('tarifa_acabado_id !=', $id); + foreach($ids_for_delete as $id){ + $builder->orWhere('id', $id); } $builder->delete(); } @@ -118,6 +138,8 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel $builder->select("id"); $builder->where('presupuesto_id', $presupuesto_id); $builder->where('tarifa_acabado_id', $tarifa->tarifa_id); + $builder->where('cubierta', $tarifa->cubierta); + $builder->where('sobrecubierta', $tarifa->sobrecubierta); $result = $builder->get()->getResultObject(); if(count($result)>0){ $this->db @@ -127,6 +149,8 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel ->set('precio_unidad', $tarifa->precio_unidad) ->set('precio_total', $tarifa->precio_total) ->set('margen', $tarifa->margen) + ->set('cubierta', $tarifa->cubierta) + ->set('sobrecubierta', $tarifa->sobrecubierta) ->update(); @@ -139,6 +163,8 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel ->set('precio_unidad', $tarifa->precio_unidad) ->set('precio_total', $tarifa->precio_total) ->set('margen', $tarifa->margen) + ->set('cubierta', $tarifa->cubierta) + ->set('sobrecubierta', $tarifa->sobrecubierta) ->insert(); } } @@ -157,7 +183,7 @@ class PresupuestoAcabadosModel extends \App\Models\GoBaseModel ->table($this->table . " t1") ->select( "t1.id AS id, t1.tarifa_acabado_id AS tarifa_acabado_id, t1.precio_unidad AS precio_unidad, - t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre" + t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta" ); $builder->where('t1.presupuesto_id', $presupuesto_id); diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index aa81ef9a..83c7f2c6 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -541,8 +541,9 @@ class PresupuestoService extends BaseService /** * Devuelve el ancho de la cubierta/sobrecubierta, incluido el lomo. + * El $uso tiene que ser "cubierta" o "sobrecubierta" */ - public static function getAnchoTotalExteriores($tipo_impresion_id, $datosPedido=null) + public static function getAnchoTotalExteriores($uso="cubierta", $tipo_impresion_id, $datosPedido=null) { $ancho_total = 0; @@ -550,8 +551,7 @@ class PresupuestoService extends BaseService // Tapa blanda (cosido y fresado) if($tipo_impresion_id == 2 || $tipo_impresion_id == 4){ $ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo); - $ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0; - + // añadimos ancho de las solapas // si se añaden solapas hay que sumar 3mm de los dobleces if ($datosPedido->solapas) { @@ -563,9 +563,14 @@ class PresupuestoService extends BaseService // Tapa dura cosido y fresado else if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){ $ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo); - $ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0; - // Se añaden 20mm de sangre por cada lado + 2 * 0.6mm de portada y contraportada -> total 41.2 - $ancho_total += (1.2+2*self::SANGRE_FORMAS_CUBIERTA); + // si es cubierta + // Se añaden 20mm de sangre por cada lado + 2 * 6mm de vuelo portada y contraportada -> total 52 + if($uso=="cubierta") + $ancho_total += (12+2*self::SANGRE_FORMAS_CUBIERTA); + // si es sobrecubierta + // Se añaden 5mm de sangre por cada lado + 2 * 6mm de vuelo portada y contraportada -> total 52 + else + $ancho_total += (12+2*self::SANGRE_FORMAS); } else{ // En cualquier otro caso se le suma 5mm de sangre por cada lado @@ -576,9 +581,9 @@ class PresupuestoService extends BaseService } /** - * Devuelve el ancho de la cubierta/sobrecubierta, incluido el lomo. + * Devuelve el alto de la cubierta/sobrecubierta */ - public static function getAltoTotalExteriores($tipo_impresion_id, $datosPedido=null) + public static function getAltoTotalExteriores($uso="cubierta", $tipo_impresion_id, $datosPedido=null) { $alto_total = 0; @@ -586,8 +591,14 @@ class PresupuestoService extends BaseService $alto_total = floatval($datosPedido->alto); // Tapa dura (cosido y fresado) if($tipo_impresion_id == 1 || $tipo_impresion_id == 3){ - // Se añaden 20mm de sangre por cada lado + 0.7mm extra que sobresale -> total 40.7 - $alto_total += (0.7+2*self::SANGRE_FORMAS_CUBIERTA); + // Se añaden 20mm de sangre por cada lado + 7mm extra que sobresale -> total 47 + if($uso=="cubierta") + $alto_total += (7+2*self::SANGRE_FORMAS_CUBIERTA); + // si es sobrecubierta + // Se añaden 5mm de sangre por cada lado + 7mm de vuelo -> total 52 + else + $alto_total += (7+2*self::SANGRE_FORMAS); + } // En cualquier otro caso se le suma 5mm de sangre por cada lado else{ diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php index e0acc12a..543a1f26 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosLibroItems.php @@ -180,10 +180,10 @@
-