diff --git a/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php index e1ce106d..9716d26d 100755 --- a/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php +++ b/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php @@ -11,6 +11,7 @@ class PresupuestoEncuadernacionesEntity extends \CodeIgniter\Entity\Entity "tarifa_encuadernado_id" => null, "precio_unidad" => null, "precio_total" => null, + "margen" => null, "created_at" => null, "updated_at" => null, ]; @@ -19,5 +20,6 @@ class PresupuestoEncuadernacionesEntity extends \CodeIgniter\Entity\Entity "tarifa_encuadernado_id" => "int", "precio_unidad" => "float", "precio_total" => "float", + "margen" => "float", ]; } diff --git a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php index 9b75d5ab..a2e0b46c 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php @@ -21,7 +21,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 4 => "t1.precio_total" ]; - protected $allowedFields = ["presupuesto_id", "tarifa_encuadernado_id", "nombre", "precio_total", "precio_unidad"]; + protected $allowedFields = ["presupuesto_id", "tarifa_encuadernado_id", "nombre", "precio_total", "precio_unidad", "margen"]; protected $returnType = "App\Entities\Presupuestos\PresupuestoEncuadernacionesEntity"; protected $useTimestamps = true; @@ -66,17 +66,22 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa['tarifa_id'], $tiempo, $tirada); if (count($tarifa_value)>0) { - $result_data[0] = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo / $tirada); - $result_data[1] = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo) ; + $precio_total = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0); if (!$POD){ - $result_data[1] += floatval($tarifa_value[0]->tarifa_importe_fijo); + $precio_total += floatval($tarifa_value[0]->tarifa_importe_fijo); } + + $result_data[0] = floatval($precio_total / $tirada); // Precio/unidad + $result_data[1] = $precio_total; + $result_data[2] = $precio_total * ($tarifa_value[0]->margen/100.0) ; // margen + array_push($tarifas, (object)[ 'tarifa_id'=> $tarifa['tarifa_id'], 'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre, 'precio_unidad'=> $result_data[0], 'total'=> $result_data[1], + 'margen' => $result_data[2], 'proveedor' => $tarifa_value[0]->proveedor_nombre, 'proveedor_id' => $tarifa_value[0]->proveedor_id, ]); @@ -89,6 +94,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 'proveedor' => lang('Presupuestos.no_disponible'), 'precio_unidad'=> 0, 'total'=> 0, + 'margen' => 0, ]); } } @@ -102,6 +108,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre, 'precio_unidad'=> $result_data[0], 'total'=> $result_data[1], + 'margen'=> $result_data[2], 'proveedor' => $tarifa_value[0]->proveedor_nombre, 'proveedor_id' => $tarifa_value[0]->proveedor_id, ]); @@ -114,6 +121,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 'proveedor' => lang('Presupuestos.no_disponible'), 'precio_unidad'=> 0, 'total'=> 0, + 'margen' => 0, ]); } } @@ -162,6 +170,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre, 'precio_unidad'=> $result_data[0], 'total'=> $result_data[1], + 'margen'=> $result_data[2], 'proveedor' => $tarifa_value[0]->proveedor_nombre, 'proveedor_id' => $tarifa_value[0]->proveedor_id, ]; @@ -174,6 +183,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 'proveedor' => lang('Presupuestos.no_disponible'), 'precio_unidad'=> 0, 'total'=> 0, + 'marge'=> 0, ]; return $ret_array; } @@ -189,16 +199,21 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada, $proveedor_id); if (count($tarifa_value)>0) { - $result_data[0] = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo / $tirada); - $result_data[1] = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo) ; + $precio_total = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0); if (!$POD){ - $result_data[1] += floatval($tarifa_value[0]->tarifa_importe_fijo); + $precio_total += floatval($tarifa_value[0]->tarifa_importe_fijo); } + + $result_data[0] = floatval($precio_total / $tirada); // Precio/unidad + $result_data[1] = $precio_total; + $result_data[2] = $precio_total * ($tarifa_value[0]->margen/100.0) ; // margen + $ret_array[] = (object)[ 'tarifa_id'=> $tarifa_encuadernacion_id, 'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre, 'precio_unidad'=> $result_data[0], 'total'=> $result_data[1], + 'margen' => $result_data[2], 'proveedor' => $tarifa_value[0]->proveedor_nombre, 'proveedor_id' => $tarifa_value[0]->proveedor_id, ]; @@ -211,6 +226,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel 'proveedor' => lang('Presupuestos.no_disponible'), 'precio_unidad'=> 0, 'total'=> 0, + 'margen' => 0, ]; return $ret_array; } @@ -226,12 +242,13 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel $precio_unidad = $precio_unidad* (1+ floatval($tarifa->margen)/100.0); $total = $precio_unidad * $paginas; + $margen = $total * (floatval($tarifa->margen)/100.0); if (!$is_POD){ $total += floatval($tarifa->tarifa_importe_fijo); } - return [$precio_unidad, $total]; + return [$precio_unidad, $total, $margen]; } @@ -285,6 +302,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel ->set('proveedor_id', $proveedor, false) ->set('precio_unidad', $tarifa->precio_unidad) ->set('precio_total', $tarifa->precio_total) + ->set('margen', $tarifa->margen) ->update(); @@ -297,6 +315,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel ->set('proveedor_id', $proveedor, false) ->set('precio_unidad', $tarifa->precio_unidad) ->set('precio_total', $tarifa->precio_total) + ->set('margen', $tarifa->margen) ->insert(); } } @@ -315,7 +334,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel ->table($this->table . " t1") ->select( "t1.id AS id, t1.tarifa_encuadernado_id AS tarifa_encuadernado_id, t1.precio_unidad AS precio_unidad, - t1.precio_total AS precio_total, t2.nombre AS nombre, t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor" + t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor" ); $builder->where('t1.presupuesto_id', $presupuesto_id); diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php index 3c36f85d..82cee6d3 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php @@ -154,6 +154,7 @@