papel impresion terminado a falta de añadir maquinas y revisar UI

This commit is contained in:
Jaime Jimenez
2023-06-12 08:21:57 +02:00
parent 3932da5b84
commit 4ca43ad7ef
79 changed files with 25638 additions and 126 deletions

View File

@ -5,14 +5,35 @@ namespace App\Controllers\Configuracion;
use App\Controllers\GoBaseResourceController;
// DataTables PHP library
// Alias Editor classes so they are easy to use
use
DataTables\Editor,
DataTables\Database,
DataTables\Editor\Field,
DataTables\Editor\Format,
DataTables\Editor\Mjoin,
DataTables\Editor\Options,
DataTables\Editor\Upload,
DataTables\Editor\Validate,
DataTables\Editor\ValidateOptions;
use App\Models\Collection;
use App\Entities\Configuracion\PapelImpresion;
use App\Models\Configuracion\PapelImpresionModel;
use App\Models\Configuracion\PapelGenericoModel;
use App\Models\Configuracion\PapelImpresionTipologiaModel;
class Papelesimpresion extends \App\Controllers\GoBaseResourceController
{
@ -30,8 +51,6 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
protected $indexRoute = 'papelImpresionList';
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
{
$this->viewData['pageTitle'] = lang('PapelImpresion.moduleTitle');
@ -42,6 +61,8 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
// Se indica el flag para los ficheros borrados
$this->delete_flag = 1;
$this->tpModel = new PapelImpresionTipologiaModel();
parent::initController($request, $response, $logger);
}
@ -230,6 +251,7 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('PapelImpresion.moduleTitle') . ' ' . lang('Basic.global.edit3');
$this->viewData['usingServerSideDataTable'] = true; //JJO
return $this->displayForm(__METHOD__, $id);
} // end function edit(...)
@ -239,72 +261,118 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
public function datatable()
{
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;
}
$id_PG = $reqData['id_PG'] ?? -1;
$start = $reqData['start'] ?? 0;
$length = $reqData['length'] ?? 5;
$search = $reqData['search']['value'];
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
$order = PapelImpresionModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 1];
$dir = $reqData['order']['0']['dir'] ?? 'asc';
if($id_PG<0){
if(isset($reqData['id_PI'])){
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
$id_PI = $reqData['id_PI'] ?? -1;
if($id_PI>=0){
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource()->countAllResults(),
$this->model->getResource($search)->countAllResults()
));
}else{
$resourceData = $this->model->getResource($search, $id_PG)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
$data = $this->tpModel->findTipologiasForPapelImpresion($id_PI);
$resourceData = $data->get()->getResultObject();
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource("", $id_PG)->countAllResults(),
$this->model->getResource($search, $id_PG)->countAllResults()
));
return $this->respond(Collection::datatable(
$resourceData,
$this->tpModel->findTipologiasForPapelImpresion($id_PI)->countAllResults(),
$this->tpModel->findTipologiasForPapelImpresion($id_PI)->countAllResults()
));
}
}
else{
$id_PG = $reqData['id_PG'] ?? -1;
$start = $reqData['start'] ?? 0;
$length = $reqData['length'] ?? 5;
$search = $reqData['search']['value'];
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
$order = PapelImpresionModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 1];
$dir = $reqData['order']['0']['dir'] ?? 'asc';
if($id_PG<0){
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource()->countAllResults(),
$this->model->getResource($search)->countAllResults()
));
}else{
$resourceData = $this->model->getResource($search, $id_PG)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource("", $id_PG)->countAllResults(),
$this->model->getResource($search, $id_PG)->countAllResults()
));
}
}
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
public function datatablePG()
{
public function datatable_editor(){
/*if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
$rows_id = array_keys($reqData['data']);
echo '<pre>' ;
var_dump($reqData['data'][$keys[0]]) ;
echo '</pre>';
}*/
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;
}
$generico_id = $reqData['id'] ?? null;
$start = $reqData['start'] ?? 0;
$length = $reqData['length'] ?? 5;
$search = $reqData['search']['value'];
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
$order = PapelImpresionModel::SORTABLE2[$requestedOrder >= 0 ? $requestedOrder : 1];
$dir = $reqData['order']['0']['dir'] ?? 'asc';
$resourceData = $this->model->getResource($search, $generico_id)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
$sql_details = array(
"type" => "Mysql", // Database type: "Mysql", "Postgres", "Sqlserver", "Sqlite" or "Oracle"
"user" => "sk_jjo", // Database user name
"pass" => "61tv&G1Zf^XY", // Database password
"host" => "localhost", // Database host
"port" => "", // Database connection port (can be left empty for default)
"db" => "sk_jjo", // Database name
"dsn" => "", // PHP DSN extra information. Set as `charset=utf8mb4` if you are using MySQL
"pdoAttr" => array() // PHP PDO attributes array. See the PHP documentation for all options
);
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource("", $generico_id)->countAllResults(),
$this->model->getResource($search, $generico_id)->countAllResults()
));
} else {
return $this->failUnauthorized('Invalid request', 403);
$db = new Database( array(
"type" => "Mysql",
"pdo" => $sql_details
) );
// Build our Editor instance and process the data coming from _POST
Editor::inst( $db, 'lg_papel_impresion_tipologias' )
->fields(
Field::inst( 'tipo' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),//->validator( Validate::values( array('negro', 'color', 'bicolor') ) ),
Field::inst( 'negro' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),
Field::inst( 'cyan' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),
Field::inst( 'magenta' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),
Field::inst( 'amarillo' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),
Field::inst( 'gota_negro' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),
Field::inst( 'got_color' ),
//->validator( Validate::notEmpty( ValidateOptions::inst()) ),
)
->process( $_POST )
->json();
}
}
public function allItemsSelect()
{
if ($this->request->isAJAX()) {
@ -355,6 +423,24 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
}
}
function fetch_single_data()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
if(isset($reqData['id']))
{
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'data' => $this->tpModel->getResource($reqData['id'])->get()->getResultObject()[0],
$csrfTokenName => $newTokenHash
];
echo json_encode($data);
}
}
}
protected function getPapelGenericoListItems($selId = null)
{