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:
2023-07-28 15:27:43 +00:00
21 changed files with 677 additions and 448 deletions

View File

@ -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);
}
}
}