precio minimo en tarifa encuadernacion a nivel de lineas

This commit is contained in:
2024-10-30 18:36:35 +01:00
parent 8556887567
commit d0ee0b27bc
11 changed files with 244 additions and 142 deletions

View File

@ -267,7 +267,15 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$precio_total = floatval(1.0* $tarifa_proveedor->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0);
if (!$POD){
$precio_total += floatval($tarifa_proveedor->tarifa_importe_fijo);
}
}
$tarifa_precio_min = floatval($tarifa_proveedor->tarifa_precio_min);
if($$tarifa_precio_min > $precio_total){
$total = $total-($total * $margen/100.0);
$margen = round(100.0 * (floatval($$tarifa_precio_min) - $total) / floatval($$tarifa_precio_min), 0);
$total = floatval($$tarifa_precio_min);
}
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad
$result_data[1] = $precio_total;
@ -323,11 +331,12 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$total = $precio_unidad * $ejemplares;
$margen = floatval($tarifa->margen);
$tarifa_precio_min = floatval($tarifa->tarifa_precio_min);
if($tarifa->tarifa_precio_min > $total){
if($tarifa_precio_min > $total){
$total = $total-($total * $margen/100.0);
$margen = round(100.0 * (floatval($tarifa->tarifa_precio_min) - $total) / floatval($tarifa->tarifa_precio_min), 0);
$total = floatval($tarifa->tarifa_precio_min);
$margen = round(100.0 * (floatval($tarifa_precio_min) - $total) / floatval($tarifa_precio_min), 0);
$total = floatval($tarifa_precio_min);
$precio_unidad = round(floatval($total / $ejemplares), 2);
}

View File

@ -17,7 +17,8 @@ class TarifaEncuadernacionLineaHorasModel extends \App\Models\BaseModel
1 => "t1.tiempo_min",
2 => "t1.tiempo_max",
3 => "t1.precio_hora",
4 => "t1.margen",
4 => "t1.total_min",
5 => "t1.margen",
];
protected $allowedFields = [
@ -25,6 +26,7 @@ class TarifaEncuadernacionLineaHorasModel extends \App\Models\BaseModel
"tiempo_min",
"tiempo_max",
"precio_hora",
"total_min",
"margen",
"user_created_id",
"is_deleted",
@ -54,6 +56,10 @@ class TarifaEncuadernacionLineaHorasModel extends \App\Models\BaseModel
"label" => "TarifaEncuadernacionLineas.precioHora",
"rules" => "required|decimal",
],
"total_min" => [
"label" => "TarifaEncuadernacionLineas.precioHora",
"rules" => "required|decimal",
],
"margen" => [
"label" => "TarifaEncuadernacionLineas.margen",
"rules" => "required|decimal",
@ -73,6 +79,10 @@ class TarifaEncuadernacionLineaHorasModel extends \App\Models\BaseModel
"decimal" => "TarifaEncuadernacionLineas.validation.tirada_max.decimal",
"required" => "TarifaEncuadernacionLineas.validation.tirada_max.required",
],
"total_min" => [
"decimal" => "TarifaEncuadernacionLineas.validation.tirada_max.decimal",
"required" => "TarifaEncuadernacionLineas.validation.tirada_max.required",
],
"margen" => [
"decimal" => "TarifaEncuadernacionLineas.validation.margen.decimal",
"required" => "TarifaEncuadernacionLineas.validation.margen.required",
@ -92,7 +102,7 @@ class TarifaEncuadernacionLineaHorasModel extends \App\Models\BaseModel
->table($this->table . " t1")
->select(
"t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.tiempo_min AS tiempo_min,
t1.tiempo_max AS tiempo_max, t1.precio_hora AS precio_hora, t1.margen AS margen,
t1.tiempo_max AS tiempo_max, t1.precio_hora AS precio_hora, t1.total_min AS total_min, t1.margen AS margen,
t2.id AS tarifa_encuadernacion"
);
//JJO

View File

@ -19,6 +19,8 @@ class TarifaEncuadernacionLineaModel extends \App\Models\BaseModel
3 => "t1.paginas_libro_max",
4 => "t1.precio_min",
5 => "t1.precio_max",
6 => "t1.total_min",
7 => "t1.margen",
];
protected $allowedFields = [
@ -30,6 +32,8 @@ class TarifaEncuadernacionLineaModel extends \App\Models\BaseModel
"precio_max",
"tirada_min",
"tirada_max",
"margen",
"total_min",
"user_created_id",
"is_deleted",
@ -62,6 +66,10 @@ class TarifaEncuadernacionLineaModel extends \App\Models\BaseModel
"label" => "TarifaEncuadernacionLineas.tiradaMin",
"rules" => "required|decimal",
],
"total_min" => [
"label" => "TarifaEncuadernacionLineas.precioMin",
"rules" => "required|decimal",
],
"paginas_libro_max" => [
"label" => "TarifaEncuadernacionLineas.paginasMax",
"rules" => "required|decimal",
@ -93,6 +101,10 @@ class TarifaEncuadernacionLineaModel extends \App\Models\BaseModel
"decimal" => "TarifaEncuadernacionLineas.validation.tirada_min.decimal",
"required" => "TarifaEncuadernacionLineas.validation.tirada_min.required",
],
"total_min" => [
"decimal" => "TarifaEncuadernacionLineas.validation.precio_min.decimal",
"required" => "TarifaEncuadernacionLineas.validation.precio_min.required",
],
"paginas_libro_max" => [
"decimal" => "TarifaEncuadernacionLineas.validation.paginas_libro_max.decimal",
"required" => "TarifaEncuadernacionLineas.validation.paginas_libro_max.required",
@ -120,7 +132,7 @@ class TarifaEncuadernacionLineaModel extends \App\Models\BaseModel
->table($this->table . " t1")
->select(
"t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min,
t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion, t3.id AS dimensiones_id, t3.ancho_min, t3.ancho_max, , t3.alto_min, t3.alto_max, t3.descripcion as descripcion"
t1.tirada_max AS tirada_max, t1.total_min as total_min, t1.margen AS margen, t2.id AS tarifa_encuadernacion, t3.id AS dimensiones_id, t3.ancho_min, t3.ancho_max, , t3.alto_min, t3.alto_max, t3.descripcion as descripcion"
);
//JJO
$builder->where('tirada_encuadernacion_id', $tirada_encuadernacion_id);
@ -190,6 +202,7 @@ class TarifaEncuadernacionLineaModel extends \App\Models\BaseModel
return $builder;
}
public function removeAllEncuadernacionLineasForTarifa($tarifaId = -1, $datetime = null, $delete_flag=1){

View File

@ -125,7 +125,7 @@ class TarifaEncuadernacionModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS tarifa_enc_id, t1.nombre AS tarifa_enc_nombre, t2.precio_min AS tarifa_precio_min, t2.importe_fijo AS tarifa_importe_fijo,
"t1.id AS tarifa_enc_id, t1.nombre AS tarifa_enc_nombre, t3.total_min AS tarifa_precio_min, t2.importe_fijo AS tarifa_importe_fijo,
t2.id AS tarifa_tirada_id, t2.proveedor_id AS proveedor_id, t5.nombre AS proveedor_nombre, t2.tirada_min AS tirada_min, t2.tirada_max AS tirada_max,
t3.id AS tarifa_linea_id, t3.paginas_libro_min AS paginas_min, t3.paginas_libro_max AS paginas_max, t3.precio_min AS precio_min, t3.precio_max AS precio_max, t3.margen AS margen,
t4.ancho_min AS ancho_min, t4.ancho_max AS ancho_max, t4.alto_min AS alto_min, t4.alto_max AS alto_max"
@ -161,7 +161,7 @@ class TarifaEncuadernacionModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS tarifa_enc_id, t1.nombre AS tarifa_enc_nombre, t2.precio_min AS tarifa_precio_min, t2.importe_fijo AS tarifa_importe_fijo,
"t1.id AS tarifa_enc_id, t1.nombre AS tarifa_enc_nombre, t3.total_min AS tarifa_precio_min, t2.importe_fijo AS tarifa_importe_fijo,
t2.id AS tarifa_tirada_id, t2.proveedor_id AS proveedor_id, t5.nombre AS proveedor_nombre, t2.tirada_min AS tirada_min, t2.tirada_max AS tirada_max,
t3.id AS tarifa_linea_id, t3.tiempo_min AS tiempo_min, t3.tiempo_max AS tiempo_max, t3.precio_hora AS precio_hora, t3.margen AS margen"
)

View File

@ -16,7 +16,6 @@ class TarifaEncuadernacionTiradaModel extends \App\Models\BaseModel
0 => "t3.nombre",
1 => "t1.tirada_min",
2 => "t1.tirada_max",
3 => "t1.precio_min",
4 => "t1.importe_fijo",
];
@ -25,7 +24,6 @@ class TarifaEncuadernacionTiradaModel extends \App\Models\BaseModel
"tirada_min",
"tirada_max",
"proveedor_id",
"precio_min",
"importe_fijo",
"user_created_id",
"user_updated_id",
@ -53,10 +51,6 @@ class TarifaEncuadernacionTiradaModel extends \App\Models\BaseModel
"label" => "TarifaEncuadernacionTiradas.tiradaMin",
"rules" => "required|integer",
],
"precio_min" => [
"label" => "Tarifaencuadernacion.precioMin",
"rules" => "required|decimal",
],
"importe_fijo" => [
"label" => "Tarifaencuadernacion.importeFijo",
"rules" => "required|decimal",
@ -72,10 +66,6 @@ class TarifaEncuadernacionTiradaModel extends \App\Models\BaseModel
"integer" => "TarifaEncuadernacionTiradas.validation.tirada_min.integer",
"required" => "TarifaEncuadernacionTiradas.validation.tirada_min.required",
],
"precio_min" => [
"required" => "Tarifaencuadernacion.validation.precio_min.required",
"decimal" => "Tarifaencuadernacion.validation.precio_min.decimal",
],
"importe_fijo" => [
"required" => "Tarifaencuadernacion.validation.importe_fijo.required",
"decimal" => "Tarifaencuadernacion.validation.importe_fijo.decimal",
@ -95,7 +85,7 @@ class TarifaEncuadernacionTiradaModel extends \App\Models\BaseModel
->table($this->table . " t1")
->select(
"t1.id AS id, t1.tarifa_encuadernacion_id AS tarifa_encuadernacion_id,
t1.precio_min AS precio_min, t1.importe_fijo AS importe_fijo,
t1.importe_fijo AS importe_fijo,
t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max,
t3.nombre AS proveedor, t3.id AS proveedor_id, t2.id AS tarifa_encuadernacion"
);