mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'mod/papeles_imp_maquinas' into 'main'
rehecho papeles impresion. Lista de tarifas a 50 elementos por defecto See merge request jjimenez/safekat!43
This commit is contained in:
@ -100,6 +100,42 @@ class Maquinaspapelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
public function datatable_2() {
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
// modelos usados
|
||||
$tarifa_model = new MaquinasTarifasImpresionModel();
|
||||
|
||||
$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;
|
||||
}
|
||||
$start = $reqData['start'] ?? 0;
|
||||
$length = $reqData['length'] ?? 5;
|
||||
$search = $reqData['search']['value'];
|
||||
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
|
||||
$order = MaquinasPapelesImpresionModel::SORTABLE_2[$requestedOrder >= 0 ? $requestedOrder : 1];
|
||||
$dir = $reqData['order']['0']['dir'] ?? 'asc';
|
||||
|
||||
$papel_id = $reqData['papel_id'] ?? -1;
|
||||
$ancho = $reqData['ancho'] ?? -1;
|
||||
$alto = $reqData['alto'] ?? -1;
|
||||
$isRotativa = $reqData['isRotativa'] ?? -1;
|
||||
|
||||
$resourceData = $this->model->getResource_maquinas($search, $papel_id, $isRotativa, $ancho, $alto)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
|
||||
|
||||
return $this->respond(Collection::datatable(
|
||||
$resourceData,
|
||||
$this->model->getResource_maquinas()->countAllResults(),
|
||||
$this->model->getResource_maquinas($search, $papel_id, $isRotativa, $ancho, $alto)->countAllResults()
|
||||
));
|
||||
} else {
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateTableOnChange(){
|
||||
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
@ -32,6 +32,8 @@ use App\Models\Configuracion\PapelImpresionModel;
|
||||
use App\Models\Configuracion\PapelGenericoModel;
|
||||
|
||||
use App\Models\Configuracion\PapelImpresionTipologiaModel;
|
||||
use App\Models\Configuracion\MaquinasPapelesImpresionModel;
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
|
||||
|
||||
class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
@ -56,6 +58,8 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$this->viewData['pageTitle'] = lang('PapelImpresion.moduleTitle');
|
||||
$this->viewData['usingSweetAlert'] = true;
|
||||
|
||||
$this->viewData = ['usingServerSideDataTable' => true]; // JJO
|
||||
|
||||
// Se indica que este controlador trabaja con soft_delete
|
||||
$this->soft_delete = true;
|
||||
// Se indica el flag para los ficheros borrados
|
||||
@ -92,14 +96,11 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
public function add()
|
||||
{
|
||||
|
||||
|
||||
|
||||
$requestMethod = $this->request->getMethod();
|
||||
|
||||
if ($requestMethod === 'post') :
|
||||
|
||||
$nullIfEmpty = true; // !(phpversion() >= '8.1');
|
||||
$nullIfEmpty = false; // !(phpversion() >= '8.1');
|
||||
|
||||
$postData = $this->request->getPost();
|
||||
|
||||
@ -132,7 +133,8 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
if ($thenRedirect) :
|
||||
if (!empty($this->indexRoute)) :
|
||||
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
|
||||
return redirect()->to(site_url('/configuracion/papelesimpresion/edit/' . $id))->with('sweet-success', $message);
|
||||
//return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
|
||||
else :
|
||||
return $this->redirect2listView('sweet-success', $message);
|
||||
endif;
|
||||
@ -204,8 +206,18 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$sanitizedData['rotativa'] = false;
|
||||
}
|
||||
|
||||
// Hay que asegurarse de que se quitan los consumos de tintas de rotativa
|
||||
// en caso de que se haya deseleccionado la opción rotativa
|
||||
if(!$sanitizedData['rotativa']){
|
||||
$this->tpModel->removeForPapelImpresion($id);
|
||||
}
|
||||
|
||||
|
||||
// Si hay máquinas seleccionadas, hay que guardar las que cumplan las nuevas condiciones
|
||||
// y borrar el resto
|
||||
$this->updateMaquinas($id, $sanitizedData);
|
||||
|
||||
|
||||
$noException = true;
|
||||
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
||||
|
||||
@ -293,12 +305,22 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$length = $reqData['length'] ?? 5;
|
||||
$search = $reqData['search']['value'];
|
||||
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
|
||||
$order = PapelImpresionModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 1];
|
||||
$requestedOrder2 = $reqData['order']['1']['column'] ?? $requestedOrder;
|
||||
$requestedOrder3 = $reqData['order']['2']['column'] ?? $requestedOrder;
|
||||
$requestedOrder4 = $reqData['order']['3']['column'] ?? $requestedOrder;
|
||||
$order = PapelImpresionModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 0];
|
||||
$order2 = PapelImpresionModel::SORTABLE[$requestedOrder2 >= 0 ? $requestedOrder2 : 0];
|
||||
$order3 = PapelImpresionModel::SORTABLE[$requestedOrder3 >= 0 ? $requestedOrder3 : 0];
|
||||
$order4 = PapelImpresionModel::SORTABLE[$requestedOrder4 >= 0 ? $requestedOrder4 : 0];
|
||||
$dir = $reqData['order']['0']['dir'] ?? 'asc';
|
||||
$dir2 = $reqData['order']['1']['dir'] ?? $dir;
|
||||
$dir3 = $reqData['order']['2']['dir'] ?? $dir;
|
||||
$dir4 = $reqData['order']['3']['dir'] ?? $dir;
|
||||
|
||||
if($id_PG<0){
|
||||
|
||||
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject();
|
||||
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->orderBy($order2, $dir2)->orderBy($order3, $dir3)
|
||||
->orderBy($order4, $dir4)->limit($length, $start)->get()->getResultObject();
|
||||
|
||||
return $this->respond(Collection::datatable(
|
||||
$resourceData,
|
||||
@ -321,58 +343,6 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
|
||||
|
||||
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()) {
|
||||
|
||||
$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
|
||||
);
|
||||
|
||||
$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()
|
||||
{
|
||||
@ -424,24 +394,7 @@ 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)
|
||||
{
|
||||
@ -456,4 +409,23 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
endif;
|
||||
return $data;
|
||||
}
|
||||
|
||||
private function updateMaquinas($id, $data){
|
||||
|
||||
$ma_model = new MaquinaModel();
|
||||
$ma_pa_model = new MaquinasPapelesImpresionModel();
|
||||
|
||||
$active_values = $ma_pa_model->getInitSelectedMachines($id, $data['rotativa'], $data['ancho'], $data['alto'])->get()->getResult('array');
|
||||
|
||||
$ma_pa_model->deleteForPapelImpresion($id);
|
||||
|
||||
// Se obtienen las máquinas que cumplen las condiciones
|
||||
$rows = $ma_model->getIdMaquinasForPapelImpresion($id, $data['rotativa'], $data['ancho'], $data['alto'])->get()->getResult('array');
|
||||
$ma_pa_model->insertRows($rows);
|
||||
|
||||
// Se actualizan los activos que había en caso de que los hubiera
|
||||
if(count($active_values)>0){
|
||||
$ma_pa_model->updateRows($active_values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,18 @@ use App\Models\Configuracion\PapelImpresionTipologiaModel;
|
||||
|
||||
use App\Models\Configuracion\PapelImpresionModel;
|
||||
|
||||
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;
|
||||
|
||||
|
||||
class Papelimpresiontipologias extends \App\Controllers\GoBaseResourceController {
|
||||
|
||||
protected $modelName = PapelImpresionTipologiaModel::class;
|
||||
@ -217,6 +229,90 @@ class Papelimpresiontipologias extends \App\Controllers\GoBaseResourceController
|
||||
} // end function edit(...)
|
||||
|
||||
|
||||
public function datatable_editor() {
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
include(APPPATH . "ThirdParty/DatatablesEditor/DataTables.php");
|
||||
|
||||
// Build our Editor instance and process the data coming from _POST
|
||||
$response = Editor::inst( $db, 'lg_papel_impresion_tipologias' )
|
||||
->fields(
|
||||
Field::inst( 'tipo' )
|
||||
->validator( Validate::values( array('negro', 'color', 'bicolor') ) ),
|
||||
Field::inst( 'negro' )
|
||||
->validator( 'Validate::numeric', array(
|
||||
'message' => lang('ImpresionTipologias.validation.negro.decimal') )
|
||||
)
|
||||
->validator( 'Validate::notEmpty',array(
|
||||
'message' => lang('ImpresionTipologias.validation.negro.required') )
|
||||
),
|
||||
Field::inst( 'cyan' )
|
||||
->validator( 'Validate::numeric', array(
|
||||
'message' => lang('ImpresionTipologias.validation.cyan.decimal') )
|
||||
)
|
||||
->validator( 'Validate::notEmpty',array(
|
||||
'message' => lang('ImpresionTipologias.validation.cyan.required') )
|
||||
),
|
||||
Field::inst( 'magenta' )
|
||||
->validator( 'Validate::numeric', array(
|
||||
'message' => lang('ImpresionTipologias.validation.magenta.decimal') )
|
||||
)
|
||||
->validator( 'Validate::notEmpty',array(
|
||||
'message' => lang('ImpresionTipologias.validation.magenta.required') )
|
||||
),
|
||||
Field::inst( 'amarillo' )
|
||||
->validator( 'Validate::numeric', array(
|
||||
'message' => lang('ImpresionTipologias.validation.amarillo.decimal') )
|
||||
)
|
||||
->validator( 'Validate::notEmpty',array(
|
||||
'message' => lang('ImpresionTipologias.validation.amarillo.required') )
|
||||
),
|
||||
Field::inst( 'gota_negro' )
|
||||
->validator( 'Validate::numeric', array(
|
||||
'message' => lang('ImpresionTipologias.validation.gota_negro.decimal') )
|
||||
)
|
||||
->validator( 'Validate::notEmpty',array(
|
||||
'message' => lang('ImpresionTipologias.validation.gota_negro.required') )
|
||||
),
|
||||
Field::inst( 'gota_color' )
|
||||
->validator( 'Validate::numeric', array(
|
||||
'message' => lang('ImpresionTipologias.validation.gota_color.decimal') )
|
||||
)
|
||||
->validator( 'Validate::notEmpty',array(
|
||||
'message' => lang('ImpresionTipologias.validation.gota_color.required') )
|
||||
),
|
||||
Field::inst( 'papel_impresion_id' ),
|
||||
|
||||
)
|
||||
->validator( function($editor, $action, $data){
|
||||
if ($action === Editor::ACTION_CREATE || $action === Editor::ACTION_EDIT){
|
||||
foreach ($data['data'] as $pkey => $values ){
|
||||
$process_data['tipo'] = $data['data'][$pkey]['tipo'];
|
||||
$process_data['papel_impresion_id'] = $data['data'][$pkey]['papel_impresion_id'];
|
||||
$response = $this->model->checkTipo($process_data, $pkey);
|
||||
// No se pueden duplicar valores al crear o al editar
|
||||
if (!empty($response)){
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
->debug(true)
|
||||
->process( $_POST )
|
||||
->data();
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
|
||||
$response[$csrfTokenName] = $newTokenHash;
|
||||
|
||||
echo json_encode($response);
|
||||
|
||||
} else {
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function datatable() {
|
||||
if ($this->request->isAJAX()) {
|
||||
|
||||
Reference in New Issue
Block a user