haciendo la conexion con el ajax del comparador negro

This commit is contained in:
Jaime Jiménez
2023-09-26 15:17:49 +02:00
parent 991a27286b
commit 693504f9d7
10 changed files with 298 additions and 64 deletions

View File

@ -0,0 +1,26 @@
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class Js_loader extends BaseController
{
function __construct()
{
}
function comparadorCosidoTapaBlanda_js()
{
$this->response->setHeader('Content-Type', 'text/javascript');
return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js');
}
}

View File

@ -138,7 +138,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['presupuestoEntity'] = isset($sanitizedData) ? new PresupuestoEntity($sanitizedData) : new PresupuestoEntity();
$this->viewData['clienteList'] = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null);
$this->viewData['incReiList'] = array('incidencia'=>lang('Presupuestos.incidencia'), 'reimpresion'=>lang('Presupuestos.reimpresion'), 'sin_cargo'=>lang('Presupuestos.sinCargo'));
$this->viewData['incReiList'] = array('incidencia' => lang('Presupuestos.incidencia'), 'reimpresion' => lang('Presupuestos.reimpresion'), 'sin_cargo' => lang('Presupuestos.sinCargo'));
$this->viewData['paisList'] = $this->getPaisListItems();
$this->viewData['papelFormatoList'] = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
$this->viewData['papelGenericoNegroList'] = $this->getPapelGenericoNegro();
@ -147,9 +147,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['papelGenericoColorHQList'] = $this->getPapelGenericoColorHQ();
$this->viewData['papelGenericoCubiertaList'] = $this->getPapelGenericoCubierta();
$this->viewData['papelGenericoSobrecubiertaList'] = $this->getPapelGenericoSobreCubierta();
/*
$this->viewData['formaPagoList'] = $this->getFormaPagoListItems();
@ -375,7 +375,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$this->viewData['papelGenericoColorHQList'] = $this->getPapelGenericoColorHQ();
$this->viewData['papelGenericoCubiertaList'] = $this->getPapelGenericoCubierta();
$this->viewData['papelGenericoSobrecubiertaList'] = $this->getPapelGenericoSobreCubierta();
$this->viewData['formAction'] = route_to('updatePresupuesto', $id);
@ -391,46 +391,102 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
if (!isset($reqData['draw']) || !isset($reqData['columns'])) {
$errstr = 'No data available in response to this specific request.';
$response = $this->respond(Collection::datatable([], 0, 0, $errstr), 400, $errstr);
return $response;
$table_type = $reqData['table_type'] ?? null;
if (is_null($table_type)) {
if (!isset($reqData['draw']) || !isset($reqData['columns'])) {
$errstr = 'No data available in response to this specific request.';
$response = $this->respond(Collection::datatable([], 0, 0, $errstr), 400, $errstr);
return $response;
}
$search = $reqData['search']['value'];
}
$start = $reqData['start'] ?? 0;
$length = $reqData['length'] ?? 5;
$search = $reqData['search']['value'];
$requestedOrder = $reqData['order']['0']['column'] ?? 0;
$order = PresupuestoModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 0];
$dir = $reqData['order']['0']['dir'] ?? 'asc';
$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;
}
if (is_null($table_type)) {
$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;
} else {
switch ($table_type) {
case 'comp_int_bn':
$datosPedido = (object)array(
'paginas' => intval($reqData['paginas']) ?? 0,
'tirada' => intval($reqData['tirada']) ?? 0,
'merma' => intval($reqData['merma']) ?? 0,
'ancho' => intval($reqData['alto']) ?? 100000,
'alto' => intval($reqData['ancho']) ?? 100000,
'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto
);
$papel_generico = [
'id' => $reqData['papel_generico_id'] ?? 0,
'nombre' => $reqData['papel_generico'] ?? "",
];
$gramaje = $reqData['gramaje'] ?? 0;
$resourceData = $this->getCompBnData($datosPedido, $papel_generico, $gramaje);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'lineas' => $resourceData,
$csrfTokenName => $newTokenHash
];
//return json_encode(array("data"=>$resourceData));
return $this->respond($data);
break;
default:
break;
}
}
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource()->countAllResults(),
@ -441,10 +497,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
}
private function getCompBnData($datosPedido, $papel_generico_id, $gramaje){
private function getCompBnData($datosPedido, $papel_generico, $gramaje)
{
$uso = 'interior';
$tipo = 'negro';
$opciones_papel = array(
'bn' => 1,
'cubierta' => 0,
@ -455,15 +512,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
// Se obtienen los papeles disponibles
$papelimpresionmodel = new PapelImpresionModel();
$papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto(
papel_generico_id: $papel_generico_id,
papel_generico_id: $papel_generico['id'],
gramaje: $gramaje,
options: $opciones_papel
);
$resultado = json_encode(
array('data' => array())
);
$lineas = array();
// Para cada papel, se obtienen las maquinas disponibles
foreach ($papeles as $papel) {
$maquinamodel = new MaquinaModel();
@ -476,14 +531,23 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
$tarifamodel = new MaquinasTarifasImpresionModel();
$tarifamodel = new MaquinasTarifasImpresionModel();
$tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
$linea = PresupuestoService::getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
$linea['fields']['maquina'] = $maquina->maquina;
$linea['fields']['maquina_id'] = $maquina->maquina_id;
$linea['fields']['papel_impresion'] = $papel->nombre;
$linea['fields']['papel_impresion_id'] = $papel->id;
$linea['fields']['paginas'] = $datosPedido->paginas;
$linea['fields']['gramaje'] = $gramaje;
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
$linea['fields']['papel_generico_id'] = $papel_generico['nombre'];
array_push($lineas, $linea);
}
}
return $resultado;
return $lineas;
}
public function allItemsSelect()
@ -512,7 +576,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
public function menuItems()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
$tipo = $reqData['tipo'] ?? null;
@ -520,12 +584,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$searchStr = goSanitize($this->request->getPost('searchTerm'))[0];
if ($tipo == 'gramaje'){
if ($tipo == 'gramaje') {
// En este caso contiene el nombre del papel generico
$model = new PapelGenericoModel();
$menu = $model->getGramajeComparador($datos, $searchStr);
}
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@ -567,7 +631,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
{
$papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel');
$data = $papelFormatoModel->getElementsForMenu();
array_unshift($data, (object)['id'=>'', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]);
array_unshift($data, (object)['id' => '', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]);
return $data;
}

View File

@ -16,10 +16,9 @@ class Js_loader extends BaseController
function comparadorCosidoTapablanda_js()
{
$this->load->view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js', $data);
$this->load->view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js');
$this->output->set_content_type('text/javascript');
}
}

View File

@ -2,8 +2,7 @@
namespace App\Controllers;
use App\Models\Presupuestos\PresupuestoModel;
use App\Services\PresupuestoService;
use App\Controllers\BaseController;
class Test extends BaseController
{
@ -16,12 +15,21 @@ class Test extends BaseController
public function index()
{
PresupuestoService::test();
//PresupuestoService::test();
return view('themes/backend/vuexy/form/test_js/viewTest');
}
function test_js()
{
/*$this->response->setHeader('Content-Type', 'text/javascript');
return view('themes/backend/vuexy/form/test_js/test_js.js');*/
}
public function pruebaJJO()
{
PresupuestoService::test2();
//PresupuestoService::test2();
}
}