mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
trabajando en generar la tabla bn interior
This commit is contained in:
@ -3,13 +3,19 @@
|
||||
namespace App\Controllers\Presupuestos;
|
||||
|
||||
use App\Controllers\GoBaseResourceController;
|
||||
|
||||
use App\Entities\Configuracion\Maquina;
|
||||
use App\Models\Collection;
|
||||
|
||||
use App\Entities\Presupuestos\PresupuestoEntity;
|
||||
use App\Models\Configuracion\PapelGenericoModel;
|
||||
use App\Models\Presupuestos\PresupuestoModel;
|
||||
|
||||
use App\Services\PresupuestoService;
|
||||
use App\Models\Configuracion\PapelImpresionModel;
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
||||
|
||||
|
||||
class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
{
|
||||
|
||||
@ -397,43 +403,34 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$order = PresupuestoModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 0];
|
||||
$dir = $reqData['order']['0']['dir'] ?? 'asc';
|
||||
|
||||
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
|
||||
foreach ($resourceData as $item) :
|
||||
if (isset($item->comentarios_pdf) && strlen($item->comentarios_pdf) > 100) :
|
||||
$item->comentarios_pdf = character_limiter($item->comentarios_pdf, 100);
|
||||
endif;
|
||||
if (isset($item->causa_cancelacion) && strlen($item->causa_cancelacion) > 100) :
|
||||
$item->causa_cancelacion = character_limiter($item->causa_cancelacion, 100);
|
||||
endif;
|
||||
if (isset($item->comentarios) && strlen($item->comentarios) > 100) :
|
||||
$item->comentarios = character_limiter($item->comentarios, 100);
|
||||
endif;
|
||||
if (isset($item->comentarios_safekat) && strlen($item->comentarios_safekat) > 100) :
|
||||
$item->comentarios_safekat = character_limiter($item->comentarios_safekat, 100);
|
||||
endif;
|
||||
if (isset($item->comentarios_tarifa) && strlen($item->comentarios_tarifa) > 100) :
|
||||
$item->comentarios_tarifa = character_limiter($item->comentarios_tarifa, 100);
|
||||
endif;
|
||||
if (isset($item->tirada_alternativa_json_data) && strlen($item->tirada_alternativa_json_data) > 100) :
|
||||
$item->tirada_alternativa_json_data = character_limiter($item->tirada_alternativa_json_data, 100);
|
||||
endif;
|
||||
if (isset($item->titulo) && strlen($item->titulo) > 100) :
|
||||
$item->titulo = character_limiter($item->titulo, 100);
|
||||
endif;
|
||||
if (isset($item->paginas_color_posicion) && strlen($item->paginas_color_posicion) > 100) :
|
||||
$item->paginas_color_posicion = character_limiter($item->paginas_color_posicion, 100);
|
||||
endif;
|
||||
if (isset($item->aprobado_json_data) && strlen($item->aprobado_json_data) > 100) :
|
||||
$item->aprobado_json_data = character_limiter($item->aprobado_json_data, 100);
|
||||
endif;
|
||||
if (isset($item->comparador_json_data) && strlen($item->comparador_json_data) > 100) :
|
||||
$item->comparador_json_data = character_limiter($item->comparador_json_data, 100);
|
||||
endif;
|
||||
if (isset($item->ws_externo_json_data) && strlen($item->ws_externo_json_data) > 100) :
|
||||
$item->ws_externo_json_data = character_limiter($item->ws_externo_json_data, 100);
|
||||
endif;
|
||||
endforeach;
|
||||
$table_type = $reqData['table_type'] ?? null;
|
||||
|
||||
if (is_null($table_type)){
|
||||
return $this->failNotFound('Table type not found', 404);
|
||||
}
|
||||
|
||||
switch($table_type){
|
||||
case 'comp_int_bn':
|
||||
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => $reqData['paginas'] ?? 0,
|
||||
'tirada' => $reqData['tirada'] ?? 0,
|
||||
'merma' => $reqData['merma'] ?? 0,
|
||||
'ancho' => $reqData['alto'] ?? 100000,
|
||||
'alto' => $reqData['ancho'] ?? 100000,
|
||||
'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto
|
||||
);
|
||||
|
||||
$papel_generico_id = $reqData['papel_generico_id'] ?? 0;
|
||||
$gramaje = $reqData['gramaje'] ?? 0;
|
||||
|
||||
$resourceData = $this->getCompBnData($datosPedido, $papel_generico_id, $gramaje);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return $this->respond(Collection::datatable(
|
||||
$resourceData,
|
||||
$this->model->getResource()->countAllResults(),
|
||||
@ -444,6 +441,51 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
private function getCompBnData($datosPedido, $papel_generico_id, $gramaje){
|
||||
$uso = 'interior';
|
||||
$tipo = 'negro';
|
||||
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'cubierta' => 0,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
|
||||
// Se obtienen los papeles disponibles
|
||||
$papelimpresionmodel = new PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: $papel_generico_id,
|
||||
gramaje: $gramaje,
|
||||
options: $opciones_papel
|
||||
);
|
||||
|
||||
$resultado = json_encode(
|
||||
array('data' => array())
|
||||
);
|
||||
|
||||
// Para cada papel, se obtienen las maquinas disponibles
|
||||
foreach ($papeles as $papel) {
|
||||
$maquinamodel = new MaquinaModel();
|
||||
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: $tipo,
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
);
|
||||
|
||||
// Se recorren las máquinas y se calcula el coste de linea por cada una
|
||||
foreach ($maquinas as $maquina) {
|
||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||
$tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
}
|
||||
}
|
||||
|
||||
return $resultado;
|
||||
|
||||
}
|
||||
|
||||
public function allItemsSelect()
|
||||
{
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
@ -350,7 +350,7 @@ class MaquinaModel extends \App\Models\GoBaseModel
|
||||
->select(
|
||||
"t1.id AS maquina_id, t1.nombre AS maquina, t1.ancho_impresion AS ancho_impresion,
|
||||
t1.alto_impresion AS alto_impresion, t1.ancho AS ancho, t1.alto AS alto,
|
||||
t1.is_rotativa AS is rotativa"
|
||||
t1.is_rotativa AS is rotativa, t1.alto_click AS alto_click"
|
||||
)
|
||||
->join("lg_maquinas_tarifas_impresion t2", "t1.id = t2.maquina_id", "left")
|
||||
->join("lg_maquina_papel_impresion t3", "t1.id = t3.maquina_id", "left")
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Configuracion;
|
||||
|
||||
class MaquinasTarifasImpresionModel extends \App\Models\GoBaseModel
|
||||
@ -59,7 +60,7 @@ class MaquinasTarifasImpresionModel extends \App\Models\GoBaseModel
|
||||
],
|
||||
];
|
||||
|
||||
|
||||
|
||||
public function findAllWithMaquinas(string $selcols = "*", int $limit = null, int $offset = 0)
|
||||
{
|
||||
$sql =
|
||||
@ -88,7 +89,7 @@ class MaquinasTarifasImpresionModel extends \App\Models\GoBaseModel
|
||||
*
|
||||
* @return \CodeIgniter\Database\BaseBuilder
|
||||
*/
|
||||
public function getResource(string $search = "", $maquina_id=-1)
|
||||
public function getResource(string $search = "", $maquina_id = -1)
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
@ -97,24 +98,45 @@ class MaquinasTarifasImpresionModel extends \App\Models\GoBaseModel
|
||||
);
|
||||
|
||||
//JJO
|
||||
$builder->where('maquina_id', $maquina_id);
|
||||
$builder->where('maquina_id', $maquina_id);
|
||||
$builder->where("t1.is_deleted", 0);
|
||||
|
||||
|
||||
$builder->join("lg_maquinas t2", "t1.maquina_id = t2.id", "left");
|
||||
|
||||
return empty($search)
|
||||
? $builder
|
||||
: $builder
|
||||
->groupStart()
|
||||
->like("t1.id", $search)
|
||||
->orLike("t1.tipo", $search)
|
||||
->orLike("t1.precio", $search)
|
||||
->orLike("t1.uso", $search)
|
||||
->orLike("t1.id", $search)
|
||||
->orLike("t1.maquina_id", $search)
|
||||
->orLike("t1.tipo", $search)
|
||||
->orLike("t1.precio", $search)
|
||||
->orLike("t1.uso", $search)
|
||||
->groupEnd();
|
||||
->groupStart()
|
||||
->like("t1.id", $search)
|
||||
->orLike("t1.tipo", $search)
|
||||
->orLike("t1.precio", $search)
|
||||
->orLike("t1.uso", $search)
|
||||
->orLike("t1.id", $search)
|
||||
->orLike("t1.maquina_id", $search)
|
||||
->orLike("t1.tipo", $search)
|
||||
->orLike("t1.precio", $search)
|
||||
->orLike("t1.uso", $search)
|
||||
->groupEnd();
|
||||
}
|
||||
|
||||
public function getTarifa($maquina_id = -1, $uso = " ", $tipo = " ")
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.precio AS precio"
|
||||
);
|
||||
|
||||
//JJO
|
||||
$builder->where('maquina_id', $maquina_id);
|
||||
$builder->where('tipo', $tipo);
|
||||
$builder->where('uso', $uso);
|
||||
$builder->where("t1.is_deleted", 0);
|
||||
|
||||
$tarifas = $builder->get()->getResultArray();
|
||||
if (count($tarifas)>0){
|
||||
return floatval($tarifas[0]['precio']);
|
||||
}
|
||||
return $tarifas;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,13 +12,24 @@ class PresupuestoService extends BaseService
|
||||
|
||||
public static function test()
|
||||
{
|
||||
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa(8, "interior", "negro");
|
||||
var_dump($tarifa);
|
||||
}
|
||||
|
||||
|
||||
public static function test2()
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
$tipo = 'negro';
|
||||
$cantidad = (object)array(
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => 200,
|
||||
'tirada' => 500,
|
||||
'merma' => 10,
|
||||
'merma_portada' => 10,
|
||||
'ancho' => 165,
|
||||
'alto' => 148,
|
||||
'isCosido' => true,
|
||||
);
|
||||
|
||||
|
||||
@ -32,9 +43,6 @@ class PresupuestoService extends BaseService
|
||||
'rotativa' => 0,
|
||||
);
|
||||
$papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
|
||||
|
||||
echo 'Papeles impresion con gramaje=90';
|
||||
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: 4,
|
||||
gramaje: 90,
|
||||
@ -45,93 +53,32 @@ class PresupuestoService extends BaseService
|
||||
$maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: 'negro',
|
||||
tirada: $datosPedido->tirada + $datosPedido->merma,
|
||||
papel_impresion_id: $papel->id,
|
||||
tirada: $cantidad->tirada+$cantidad->merma
|
||||
);
|
||||
echo '<pre>';
|
||||
echo '<p>Para papel impresion: ' . $papel->nombre . '</p>';
|
||||
echo '';
|
||||
var_dump($maquinas);
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*public static function test2()
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
$tipo = 'negro';
|
||||
$cantidad = (object)array(
|
||||
'paginas' => 100,
|
||||
'tirada' => 50,
|
||||
'merma' => 5,
|
||||
'merma_portada' => 1,
|
||||
);
|
||||
|
||||
|
||||
$maquina_model = new \App\Models\Configuracion\MaquinaModel();
|
||||
|
||||
|
||||
$opciones_papel = array(
|
||||
'bn' => 1,
|
||||
'cubierta' => 0,
|
||||
'sobrecubierta' => 0,
|
||||
'rotativa' => 0,
|
||||
);
|
||||
$papelimpresionmodel = new \App\Models\Configuracion\PapelImpresionModel();
|
||||
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
|
||||
papel_generico_id: 4,
|
||||
gramaje: 70,
|
||||
options: $opciones_papel
|
||||
);
|
||||
foreach ($papeles as $papel) {
|
||||
echo '-------------------------------';
|
||||
$maquinas = $maquina_model->getMaquinaImpresionForPresupuesto(
|
||||
is_rotativa: $papel->rotativa,
|
||||
tarifa_tipo: 'negro',
|
||||
papel_impresion_id: $papel->id
|
||||
);
|
||||
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
if ($maquina->maquina == 'C1100-ByN') {
|
||||
|
||||
$formas = PresupuestoService::getNumFormasPlanaInterior(
|
||||
maquina: $maquina,
|
||||
ancho: 165.0,
|
||||
alto: 148.0,
|
||||
isCosido: true
|
||||
);
|
||||
$precio_pliego = PresupuestoService::getPrecioPliego($maquina, $papel);
|
||||
echo '<pre>';
|
||||
echo '<p>Para papel impresion: ' . $papel->nombre . '</p>';
|
||||
echo '';
|
||||
var_dump($maquina);
|
||||
var_dump($formas);
|
||||
var_dump($precio_pliego);
|
||||
echo '</pre>';
|
||||
}
|
||||
echo '----------------------------<br>';
|
||||
var_dump($maquina->maquina);
|
||||
var_dump($papel->nombre);
|
||||
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
echo '<pre>';
|
||||
var_dump($linea);
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
public static function test2(){
|
||||
|
||||
|
||||
|
||||
$papel = (object) array('id' => 201, 'gramaje'=>70, "precio_tonelada"=>1750);
|
||||
$maquina = (object) array('alto' => 120, 'ancho'=>200);
|
||||
echo PresupuestoService::getPrecioPliego($maquina, $papel,2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param mixed $uso
|
||||
* contiene algun parametro de la lista ['interior,'cubierta','sobrecubierta']
|
||||
* @param mixed $tipo
|
||||
* contiene algun parametro de la lista ['negro','color','negrohq','bicolor','colorhq']
|
||||
* @param mixed $datos_cantidad
|
||||
* @param mixed $datosPedido
|
||||
* objeto con la siguiente extructura:
|
||||
* -> paginas: numero de paginas por libro
|
||||
* -> tirada: numero de unidades a imprimir
|
||||
@ -141,33 +88,101 @@ class PresupuestoService extends BaseService
|
||||
* objeto con la siguiente estructura:
|
||||
* -> id: el id de la maquina
|
||||
* -> nombre: nombre de la maquina
|
||||
* -> calles: objeto con la configuracion de las calles de la maquina
|
||||
* -> formas: numero de formas
|
||||
* -> calle_interna: valor de las calles internas de la maquina
|
||||
* -> calle_externa: valor de las calles externas de la maquina
|
||||
* -> ancho_impresion: valor maximo del ancho para imprimir
|
||||
* -> alto_impresion: valor maximo del alto para imprimir
|
||||
* @param mixed $papel_impresion
|
||||
* @param mixed $tarifa
|
||||
*
|
||||
* @return [type]
|
||||
*/
|
||||
public function getCostesLinea($uso, $tipo, $datos_cantidad, $maquina, $temp)
|
||||
public static function getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa)
|
||||
{
|
||||
$response['fields'] = [];
|
||||
|
||||
$tipo = array_get($args, 'tipo');
|
||||
$tirada = array_get($args, 'tirada');
|
||||
$merma = array_get($args, 'merma');
|
||||
$merma_portada = array_get($args, 'merma_portada');
|
||||
$ancho = array_get($args, 'ancho');
|
||||
$alto = array_get($args, 'alto');
|
||||
$paginas = array_get($args, 'paginas');
|
||||
$papel = array_get($args, 'papel');
|
||||
$papel_compra = array_get($args, 'papel_compra');
|
||||
$gramaje = array_get($args, 'gramaje');
|
||||
$maquina = array_get($args, 'maquina');
|
||||
$tarifa = array_get($args, 'tarifa');
|
||||
$cosido = array_get($args, 'cosido', false);
|
||||
switch ($uso) {
|
||||
case 'interior':
|
||||
$formas = PresupuestoService::getNumFormasPlanaInterior($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido);
|
||||
$response['fields'] = $formas;
|
||||
break;
|
||||
|
||||
case 'cubierta':
|
||||
case 'sobrecubierta':
|
||||
break;
|
||||
|
||||
case 'rotativa':
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if ($response['fields']['num_formas']['posicion_formas'] == 'n/a') {
|
||||
$response['error']['value'] = true;
|
||||
$response['error']['message'] = 'no_formas_disponibles';
|
||||
return response;
|
||||
}
|
||||
|
||||
// precio del pliego de impresion
|
||||
$precio_pliego_impresion = PresupuestoService::getPrecioPliego($maquina, $papel_impresion, $datosPedido->paginas);
|
||||
$precio_click = 0;
|
||||
$precio_click_pedido = 0;
|
||||
$pliegos_libro = 0;
|
||||
|
||||
$cubierta = array_key_exists('cubierta', $opciones_papel) ? $opciones_papel['cubierta'] : 0;
|
||||
$sobrecubierta = array_key_exists('sobrecubierta', $opciones_papel) ? $opciones_papel['sobrecubierta'] : 0;
|
||||
$rotativa = array_key_exists('rotativa', $opciones_papel) ? $opciones_papel['rotativa'] : 0;
|
||||
|
||||
//interior (bn o color)
|
||||
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
|
||||
// precio papel
|
||||
$pliegos_libro = ($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value'];
|
||||
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$precio_libro = $pliegos_libro * $precio_pliego_impresion;
|
||||
$precio_pedido = $precio_libro * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
$mano = PresupuestoService::computeLomoInterior($datosPedido->paginas, $papel_impresion->espesor);
|
||||
|
||||
// peso
|
||||
$peso = PresupuestoService::computePeso(
|
||||
ancho: $datosPedido->isCosido ? $datosPedido->ancho / 2.0 : $datosPedido->ancho,
|
||||
alto: $datosPedido->alto,
|
||||
gramaje: $papel_impresion->gramaje,
|
||||
paginas: $datosPedido->paginas
|
||||
);
|
||||
|
||||
// impresion
|
||||
$precio_click = $tarifa;
|
||||
$precio_click_pedido = $pliegos_pedido * 2 * $precio_click;
|
||||
|
||||
}
|
||||
// cubierta o sobrecubierta (siempre a color)
|
||||
else if (($cubierta == 1 || $sobrecubierta == 1) && $rotativa == 0) {
|
||||
}
|
||||
// rotativa
|
||||
else if ($rotativa == 1) {
|
||||
}
|
||||
|
||||
|
||||
// response
|
||||
$response['fields']['pliegos_libro'] = $pliegos_libro;
|
||||
$response['fields']['pliegos_pedido'] = $pliegos_pedido;
|
||||
$response['fields']['precios_pliegos'] = $precio_pliego_impresion;
|
||||
$response['fields']['precio_libro'] = $precio_libro;
|
||||
$response['fields']['precio_pedido'] = $precio_pedido;
|
||||
$response['fields']['mano'] = $mano;
|
||||
$response['fields']['peso'] = $peso;
|
||||
$response['fields']['precio_click'] = $precio_click;
|
||||
$response['fields']['precio_click_pedido'] = $precio_click_pedido;
|
||||
|
||||
$response['fields']['dimensiones_maquina'] = [$maquina->ancho, $maquina->alto];
|
||||
$response['fields']['dimensiones_maquina_impresion'] = [$maquina->ancho_impresion, $maquina->alto_impresion];
|
||||
$response['fields']['dimensiones_maquina_click'] = [$maquina->ancho_impresion, $maquina->alto_click];
|
||||
$response['fields']['dimensiones_libro'] = [$datosPedido->ancho, $datosPedido->alto];
|
||||
|
||||
//$response['fields']['datos_rotativa'] = $datos_rotativa;
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
private static function getNumFormasPlanaInterior($maquina, $ancho, $alto, $isCosido)
|
||||
{
|
||||
$anchoForCalculo = $isCosido ? $ancho * 2 : $ancho;
|
||||
@ -193,10 +208,6 @@ class PresupuestoService extends BaseService
|
||||
// solo hay calles para 2 formas o mas
|
||||
if ((($formas_h > $formas_v) ? $h1 : $h2) > 1) {
|
||||
|
||||
var_dump($formas_v);
|
||||
var_dump($formas_h);
|
||||
var_dump($h1);
|
||||
var_dump(($formas_h > $formas_v));
|
||||
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, ($formas_h > $formas_v) ? $h1 : $h2)[0];
|
||||
// se calcula el tamaño necesario para el numero de formas + el numero de calles internas
|
||||
$size_needed = (($formas_h > $formas_v) ? $anchoForCalculo : $alto) * (($formas_h > $formas_v) ? $h1 : $h2) +
|
||||
@ -213,7 +224,7 @@ class PresupuestoService extends BaseService
|
||||
$formas_v = ($formas_v - 1 > 0) ? $formas_v - 1 : 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Si solo hay una forma, tiene que entrar en el ancho de impresion
|
||||
else if ((($formas_h > $formas_v) ? $h1 : $h2) == 1) {
|
||||
if ((($formas_h > $formas_v) ? $h1 : $h2) < $maquina->ancho_impresion) {
|
||||
@ -225,15 +236,16 @@ class PresupuestoService extends BaseService
|
||||
// si no hay formas se devuelve n/a
|
||||
if ($num_formas == 0) {
|
||||
$response['num_formas']['posicion_formas'] = 'n/a'; // not available
|
||||
}
|
||||
else if ($formas_h > $formas_v) {
|
||||
} else if ($formas_h > $formas_v) {
|
||||
$response['num_formas']['posicion_formas'] = 'h';
|
||||
$response['num_formas']['num_formas_horizontales'] = $h1;
|
||||
$response['num_formas']['num_formas_verticales'] = $v1;
|
||||
$response['num_formas']['value'] = $num_formas;
|
||||
} else {
|
||||
$response['num_formas']['posicion_formas'] = 'v';
|
||||
$response['num_formas']['num_formas_horizontales'] = $h2;
|
||||
$response['num_formas']['num_formas_verticales'] = $v2;
|
||||
$response['num_formas']['value'] = $num_formas;
|
||||
}
|
||||
|
||||
return $response;
|
||||
@ -243,12 +255,43 @@ class PresupuestoService extends BaseService
|
||||
private static function getPrecioPliego($maquina, $papel_impresion, $paginas)
|
||||
{
|
||||
$margen = (new \App\Models\Configuracion\PapelImpresionMargenModel())->getMargenFormPags($papel_impresion->id, $paginas);
|
||||
if(count($margen)>0){
|
||||
if (count($margen) > 0) {
|
||||
$peso_por_pliego = $maquina->alto * $maquina->ancho * $papel_impresion->gramaje / 1000000;
|
||||
$precio_pliego = $papel_impresion->precio_tonelada*(1+(floatval($margen[0]['margen'])/100.0)) / 1000000 * $peso_por_pliego;
|
||||
$precio_pliego = $papel_impresion->precio_tonelada * (1 + (floatval($margen[0]['margen']) / 100.0)) / 1000000 * $peso_por_pliego;
|
||||
|
||||
return round($precio_pliego, 6);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve la dimensión del lomo interior.
|
||||
*/
|
||||
private static function computeLomoInterior($paginas = null, $espesor = null)
|
||||
{
|
||||
$lomo = 0;
|
||||
|
||||
if (!is_null($paginas) && !is_null($espesor)) {
|
||||
|
||||
$lomo += (($espesor * $paginas / 2.0) + 1) / 1000.0;
|
||||
}
|
||||
|
||||
return $lomo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve el peso de un pedido.
|
||||
*/
|
||||
private static function computePeso($ancho, $alto, $gramaje, $paginas = null)
|
||||
{
|
||||
$peso = ($ancho / 1000.0) * ($alto / 1000.0) * $gramaje;
|
||||
|
||||
if (!is_null($paginas)) {
|
||||
if ($paginas > 0) {
|
||||
$peso *= ($paginas / 2.0);
|
||||
}
|
||||
}
|
||||
|
||||
return $peso;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user