trabajando en generar la tabla bn interior

This commit is contained in:
Jaime Jimenez
2023-09-26 09:25:40 +02:00
parent 834ba3488d
commit 991a27286b
4 changed files with 263 additions and 156 deletions

View File

@ -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()) {