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 @@