mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'bug/cosido_tapa_dura' into 'main'
Bug/cosido tapa dura See merge request jjimenez/safekat!154
This commit is contained in:
@ -1087,8 +1087,10 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
|||||||
|
|
||||||
if ($tipo == 'gramaje') {
|
if ($tipo == 'gramaje') {
|
||||||
// En este caso contiene el nombre del papel generico
|
// En este caso contiene el nombre del papel generico
|
||||||
|
$tirada = $reqData['tirada'] ?? 0;
|
||||||
|
$merma = $reqData['merma'] ?? 0;
|
||||||
$model = new PapelGenericoModel();
|
$model = new PapelGenericoModel();
|
||||||
$menu = $model->getGramajeComparador($datos, $uso );
|
$menu = $model->getGramajeComparador($datos, $uso, intval($tirada+$merma) );
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'menu' => $menu,
|
'menu' => $menu,
|
||||||
|
|||||||
@ -18,7 +18,7 @@ class Test extends BaseController
|
|||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
\var_dump($this->get_tarifa_enc(12, 100, 100, 150, 210));
|
\var_dump($this->get_precio_tarifa(18,300,10,150,210,-1,30));
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
|||||||
@ -160,7 +160,7 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGramajeComparador(string $papel_generico_nombre="", $uso="")
|
public function getGramajeComparador(string $papel_generico_nombre="", $uso="", $ejemplares=0)
|
||||||
{
|
{
|
||||||
if($uso == 'cubierta' || $uso == 'sobrecubierta')
|
if($uso == 'cubierta' || $uso == 'sobrecubierta')
|
||||||
$tipo = 'colorhq';
|
$tipo = 'colorhq';
|
||||||
@ -206,6 +206,9 @@ class PapelGenericoModel extends \App\Models\GoBaseModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
$builder->where("t5.uso", $uso_tarifa);
|
$builder->where("t5.uso", $uso_tarifa);
|
||||||
|
|
||||||
|
$builder->where("t4.min <=", $ejemplares);
|
||||||
|
$builder->where("t4.max >=", $ejemplares);
|
||||||
|
|
||||||
$values = $builder->orderBy("t2.gramaje", "asc")->get()->getResultObject();
|
$values = $builder->orderBy("t2.gramaje", "asc")->get()->getResultObject();
|
||||||
$id = 1;
|
$id = 1;
|
||||||
|
|||||||
@ -64,26 +64,41 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
|||||||
|
|
||||||
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa['tarifa_id'], $tiempo, $tirada);
|
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa['tarifa_id'], $tiempo, $tirada);
|
||||||
if (count($tarifa_value)>0) {
|
if (count($tarifa_value)>0) {
|
||||||
|
|
||||||
$precio_total = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0);
|
|
||||||
if (!$POD){
|
|
||||||
$precio_total += floatval($tarifa_value[0]->tarifa_importe_fijo);
|
|
||||||
}
|
|
||||||
|
|
||||||
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad
|
$result_array = [];
|
||||||
$result_data[1] = $precio_total;
|
foreach($tarifa_value as $tarifa_proveedor){
|
||||||
$result_data[2] = $tarifa_value[0]->margen ; // margen
|
$precio_total = floatval(1.0* $tarifa_proveedor->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0);
|
||||||
|
if (!$POD){
|
||||||
array_push($tarifas,
|
$precio_total += floatval($tarifa_proveedor->tarifa_importe_fijo);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad
|
||||||
|
$result_data[1] = $precio_total;
|
||||||
|
$result_data[2] = $tarifa_proveedor->margen ; // margen
|
||||||
|
|
||||||
|
array_push($result_array,
|
||||||
(object)[
|
(object)[
|
||||||
'tarifa_id'=> $tarifa['tarifa_id'],
|
'tarifa_id'=> $tarifa['tarifa_id'],
|
||||||
'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre,
|
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
|
||||||
'precio_unidad'=> $result_data[0],
|
'precio_unidad'=> $result_data[0],
|
||||||
'total'=> $result_data[1],
|
'total'=> $result_data[1],
|
||||||
'margen' => $result_data[2],
|
'margen' => $result_data[2],
|
||||||
'proveedor' => $tarifa_value[0]->proveedor_nombre,
|
'proveedor' => $tarifa_proveedor->proveedor_nombre,
|
||||||
'proveedor_id' => $tarifa_value[0]->proveedor_id,
|
'proveedor_id' => $tarifa_proveedor->proveedor_id,
|
||||||
]);
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
usort($result_array, function($a, $b) {
|
||||||
|
|
||||||
|
if ($a->total == $b->total) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a->total < $b->total) ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
array_push($tarifas, $result_array[0]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
array_push($tarifas,
|
array_push($tarifas,
|
||||||
@ -100,17 +115,30 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
|||||||
else{
|
else{
|
||||||
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto);
|
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto);
|
||||||
if (count($tarifa_value)>0) {
|
if (count($tarifa_value)>0) {
|
||||||
$result_data = $this->calcularTarifa($tarifa_value[0], $paginas, $POD<$tirada?false:true);
|
|
||||||
array_push($tarifas,
|
$result_array = [];
|
||||||
(object)[
|
foreach($tarifa_value as $tarifa_proveedor){
|
||||||
'tarifa_id'=> $tarifa['tarifa_id'],
|
$result_data = $this->calcularTarifa($tarifa_proveedor, $paginas, $tirada, $POD<$tirada?false:true);
|
||||||
'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre,
|
array_push($result_array, (object)[
|
||||||
|
'tarifa_id'=> $tarifa_proveedor->tarifa_enc_id,
|
||||||
|
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
|
||||||
'precio_unidad'=> $result_data[0],
|
'precio_unidad'=> $result_data[0],
|
||||||
'total'=> $result_data[1],
|
'total'=> $result_data[1],
|
||||||
'margen'=> $result_data[2],
|
'margen'=> $result_data[2],
|
||||||
'proveedor' => $tarifa_value[0]->proveedor_nombre,
|
'proveedor' => $tarifa_proveedor->proveedor_nombre,
|
||||||
'proveedor_id' => $tarifa_value[0]->proveedor_id,
|
'proveedor_id' => $tarifa_proveedor->proveedor_id,
|
||||||
]);
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
usort($result_array, function($a, $b) {
|
||||||
|
|
||||||
|
if ($a->total == $b->total) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a->total < $b->total) ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
array_push($tarifas, $result_array[0]);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
array_push($tarifas,
|
array_push($tarifas,
|
||||||
@ -164,17 +192,29 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
|||||||
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto);
|
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto);
|
||||||
}
|
}
|
||||||
if (count($tarifa_value)>0) {
|
if (count($tarifa_value)>0) {
|
||||||
|
|
||||||
|
$ret_array = [];
|
||||||
|
foreach($tarifa_value as $tarifa){
|
||||||
|
|
||||||
|
$result_data = $this->calcularTarifa($tarifa, $paginas, $tirada, $POD<$tirada?false:true);
|
||||||
|
array_push($ret_array, (object)[
|
||||||
|
'tarifa_id'=> $tarifa->tarifa_enc_id,
|
||||||
|
'tarifa_nombre'=> $tarifa->tarifa_enc_nombre,
|
||||||
|
'precio_unidad'=> $result_data[0],
|
||||||
|
'total'=> $result_data[1],
|
||||||
|
'margen'=> $result_data[2],
|
||||||
|
'proveedor' => $tarifa->proveedor_nombre,
|
||||||
|
'proveedor_id' => $tarifa->proveedor_id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
$result_data = $this->calcularTarifa($tarifa_value[0], $paginas, $POD<$tirada?false:true);
|
usort($ret_array, function($a, $b) {
|
||||||
$ret_array[] = (object)[
|
|
||||||
'tarifa_id'=> $tarifa_value[0]->tarifa_enc_id,
|
if ($a->total == $b->total) {
|
||||||
'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre,
|
return 0;
|
||||||
'precio_unidad'=> $result_data[0],
|
}
|
||||||
'total'=> $result_data[1],
|
return ($a->total < $b->total) ? -1 : 1;
|
||||||
'margen'=> $result_data[2],
|
});
|
||||||
'proveedor' => $tarifa_value[0]->proveedor_nombre,
|
|
||||||
'proveedor_id' => $tarifa_value[0]->proveedor_id,
|
|
||||||
];
|
|
||||||
return $ret_array;
|
return $ret_array;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -200,24 +240,37 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
|||||||
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada, $proveedor_id);
|
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada, $proveedor_id);
|
||||||
if (count($tarifa_value)>0) {
|
if (count($tarifa_value)>0) {
|
||||||
|
|
||||||
$precio_total = floatval(1.0* $tarifa_value[0]->precio_hora* $tiempo) * (1+$tarifa_value[0]->margen/100.0);
|
$ret_array = [];
|
||||||
if (!$POD){
|
foreach($tarifa_value as $tarifa_proveedor){
|
||||||
$precio_total += floatval($tarifa_value[0]->tarifa_importe_fijo);
|
$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);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad
|
||||||
|
$result_data[1] = $precio_total;
|
||||||
|
$result_data[2] = $tarifa_proveedor->margen ; // margen
|
||||||
|
|
||||||
|
array_push($ret_array,
|
||||||
|
(object)[
|
||||||
|
'tarifa_id'=> $tarifa['tarifa_id'],
|
||||||
|
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
|
||||||
|
'precio_unidad'=> $result_data[0],
|
||||||
|
'total'=> $result_data[1],
|
||||||
|
'margen' => $result_data[2],
|
||||||
|
'proveedor' => $tarifa_proveedor->proveedor_nombre,
|
||||||
|
'proveedor_id' => $tarifa_proveedor->proveedor_id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
usort($ret_array, function($a, $b) {
|
||||||
|
|
||||||
|
if ($a->total == $b->total) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a->total < $b->total) ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad
|
|
||||||
$result_data[1] = $precio_total;
|
|
||||||
$result_data[2] = $tarifa_value[0]->margen; // 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,
|
|
||||||
];
|
|
||||||
return $ret_array;
|
return $ret_array;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -235,14 +288,14 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private function calcularTarifa($tarifa, $paginas, $is_POD=false){
|
private function calcularTarifa($tarifa, $paginas, $ejemplares, $is_POD=false){
|
||||||
|
|
||||||
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max))/($tarifa->paginas_max - $tarifa->paginas_min) * ($paginas - $tarifa->paginas_min);
|
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max))/($tarifa->paginas_max - $tarifa->paginas_min) * ($paginas - $tarifa->paginas_min);
|
||||||
if ($paginas > $tarifa->paginas_max)
|
if ($paginas > $tarifa->paginas_max)
|
||||||
$precio_unidad = $tarifa->precio_max;
|
$precio_unidad = $tarifa->precio_max;
|
||||||
$precio_unidad = $precio_unidad* (1+ floatval($tarifa->margen)/100.0);
|
$precio_unidad = $precio_unidad* (1+ floatval($tarifa->margen)/100.0);
|
||||||
|
|
||||||
$total = $precio_unidad * $paginas;
|
$total = $precio_unidad * $ejemplares;
|
||||||
$margen = floatval($tarifa->margen);
|
$margen = floatval($tarifa->margen);
|
||||||
|
|
||||||
if (!$is_POD){
|
if (!$is_POD){
|
||||||
@ -348,9 +401,9 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
|
|||||||
private function calcularTiempo($maquina_id, $paginas, $tirada){
|
private function calcularTiempo($maquina_id, $paginas, $tirada){
|
||||||
|
|
||||||
$maquinaModel = model("App\Models\Configuracion\MaquinaModel");
|
$maquinaModel = model("App\Models\Configuracion\MaquinaModel");
|
||||||
$pliegos_libro = $paginas/4;
|
$cuadernillos_libro = $paginas/4;
|
||||||
$pliegos_pedido = $pliegos_libro*$tirada;
|
$cuadernillos_pedido = $cuadernillos_libro*$tirada;
|
||||||
$velocidad = $maquinaModel->getVelocidad($maquina_id);
|
$velocidad = $maquinaModel->getVelocidad($maquina_id);
|
||||||
return round($pliegos_pedido/($velocidad*60.0), 2);
|
return round($cuadernillos_pedido/($velocidad*60.0), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -557,6 +557,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'bn',
|
uso: 'bn',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
|
datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -588,6 +590,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'bnhq',
|
uso: 'bnhq',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
|
datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -624,6 +628,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'color',
|
uso: 'color',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelColor').select2('data')[0].text.trim() ,
|
datos: $('#compPapelColor').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -651,6 +657,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'colorhq',
|
uso: 'colorhq',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
|
datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -1443,6 +1451,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'bn',
|
uso: 'bn',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
|
datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -1485,6 +1495,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'bnhq',
|
uso: 'bnhq',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
|
datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -1529,6 +1541,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'color',
|
uso: 'color',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelColor').select2('data')[0].text.trim() ,
|
datos: $('#compPapelColor').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -1573,6 +1587,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'colorhq',
|
uso: 'colorhq',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
|
datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
@ -1614,6 +1630,8 @@
|
|||||||
return {
|
return {
|
||||||
tipo: 'gramaje',
|
tipo: 'gramaje',
|
||||||
uso: 'cubierta',
|
uso: 'cubierta',
|
||||||
|
tirada: parseInt($('#tirada').val()),
|
||||||
|
merma: parseInt($('#mermacubierta').val()),
|
||||||
datos: $('#compPapelCubierta').select2('data')[0].text.trim() ,
|
datos: $('#compPapelCubierta').select2('data')[0].text.trim() ,
|
||||||
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user