mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-06-05 22:09:38 +02:00
Aggiunti permessi gruppi sui documentali
This commit is contained in:
@@ -29,6 +29,7 @@ return [
|
|||||||
'modules/stati_preventivo' => 'Modules\StatiPreventivo',
|
'modules/stati_preventivo' => 'Modules\StatiPreventivo',
|
||||||
'modules/stati_contratto' => 'Modules\StatiContratto',
|
'modules/stati_contratto' => 'Modules\StatiContratto',
|
||||||
'modules/tipi_intervento' => 'Modules\TipiIntervento',
|
'modules/tipi_intervento' => 'Modules\TipiIntervento',
|
||||||
|
'modules/categorie_documenti' => 'Modules\CategorieDocumentali',
|
||||||
'plugins/exportFE' => 'Plugins\ExportFE',
|
'plugins/exportFE' => 'Plugins\ExportFE',
|
||||||
'plugins/importFE' => 'Plugins\ImportFE',
|
'plugins/importFE' => 'Plugins\ImportFE',
|
||||||
'plugins/receiptFE' => 'Plugins\ReceiptFE',
|
'plugins/receiptFE' => 'Plugins\ReceiptFE',
|
||||||
|
@@ -2,20 +2,23 @@
|
|||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
use Modules\CategorieDocumentali\Categoria;
|
||||||
|
|
||||||
switch (post('op')) {
|
switch (post('op')) {
|
||||||
case 'update':
|
case 'update':
|
||||||
$descrizione = post('descrizione');
|
$descrizione = post('descrizione');
|
||||||
|
|
||||||
// Verifico che il nome non sia duplicato
|
// Verifico che il nome non sia duplicato
|
||||||
$count = $dbo->fetchNum('SELECT descrizione FROM zz_documenti_categorie WHERE descrizione='.prepare($descrizione).' AND deleted_at IS NULL');
|
$count = $dbo->fetchNum('SELECT descrizione FROM do_categorie WHERE descrizione='.prepare($descrizione).' AND deleted_at IS NULL AND id !='.prepare($id_record));
|
||||||
if ($count != 0) {
|
if ($count != 0) {
|
||||||
flash()->error(tr('Categoria _NAME_ già esistente!', [
|
flash()->error(tr('Categoria _NAME_ già esistente!', [
|
||||||
'_NAME_' => $descrizione,
|
'_NAME_' => $descrizione,
|
||||||
]));
|
]));
|
||||||
} else {
|
} else {
|
||||||
$dbo->update('zz_documenti_categorie', [
|
$categoria->descrizione = $descrizione;
|
||||||
'descrizione' => $descrizione,
|
$categoria->save();
|
||||||
], ['id' => $id_record]);
|
|
||||||
|
$categoria->syncPermessi(post('permessi') ?: []);
|
||||||
|
|
||||||
flash()->info(tr('Informazioni salvate correttamente!'));
|
flash()->info(tr('Informazioni salvate correttamente!'));
|
||||||
}
|
}
|
||||||
@@ -25,33 +28,29 @@ switch (post('op')) {
|
|||||||
case 'add':
|
case 'add':
|
||||||
$descrizione = post('descrizione');
|
$descrizione = post('descrizione');
|
||||||
|
|
||||||
if (isset($_POST['descrizione'])) {
|
// Verifico che il nome non sia duplicato
|
||||||
// Verifico che il nome non sia duplicato
|
$count = $dbo->fetchNum('SELECT descrizione FROM do_categorie WHERE descrizione='.prepare($descrizione).' AND deleted_at IS NULL');
|
||||||
$count = $dbo->fetchNum('SELECT descrizione FROM zz_documenti_categorie WHERE descrizione='.prepare($descrizione).' AND deleted_at IS NULL');
|
if ($count != 0) {
|
||||||
if ($count != 0) {
|
flash()->error(tr('Categoria _NAME_ già esistente!', [
|
||||||
flash()->error(tr('Categoria _NAME_ già esistente!', [
|
'_NAME_' => $descrizione,
|
||||||
'_NAME_' => $descrizione,
|
]));
|
||||||
]));
|
} else {
|
||||||
} else {
|
$categoria = Categoria::build($descrizione);
|
||||||
$dbo->insert('zz_documenti_categorie', [
|
$id_record = $categoria->id;
|
||||||
'descrizione' => $descrizione,
|
|
||||||
]);
|
|
||||||
$id_record = $dbo->last_inserted_id();
|
|
||||||
|
|
||||||
if (isAjaxRequest()) {
|
if (isAjaxRequest()) {
|
||||||
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
||||||
}
|
|
||||||
|
|
||||||
flash()->info(tr('Nuova categoria documenti aggiunta!'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flash()->info(tr('Nuova categoria documenti aggiunta!'));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
$dbo->query('UPDATE zz_documenti_categorie SET deleted_at = NOW() WHERE id = '.prepare($id_record));
|
$dbo->query('UPDATE do_categorie SET deleted_at = NOW() WHERE id = '.prepare($id_record));
|
||||||
|
|
||||||
flash()->info(tr('Categoria docimenti eliminata!'));
|
flash()->info(tr('Categoria documenti eliminata!'));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -4,10 +4,10 @@ include_once __DIR__.'/../../../core.php';
|
|||||||
|
|
||||||
switch ($resource) {
|
switch ($resource) {
|
||||||
case 'categorie_documenti':
|
case 'categorie_documenti':
|
||||||
$query = 'SELECT id, descrizione FROM zz_documenti_categorie |where| ORDER BY descrizione ASC';
|
$query = 'SELECT id, descrizione FROM do_categorie |where| ORDER BY descrizione ASC';
|
||||||
|
|
||||||
foreach ($elements as $element) {
|
foreach ($elements as $element) {
|
||||||
$filter[] = 'zz_documenti_categorie.id='.prepare($element);
|
$filter[] = 'do_categorie.id='.prepare($element);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($filter)) {
|
if (empty($filter)) {
|
||||||
|
@@ -15,11 +15,13 @@ if ($record['doc_associati'] > 0) {
|
|||||||
<input type="hidden" name="op" value="update">
|
<input type="hidden" name="op" value="update">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<div class="col-md-9">
|
||||||
<div class="col-md-12">
|
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$", "extra": "" ]}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "select", "label": "<?php echo tr('Gruppi abilitati'); ?>", "name": "permessi[]", "value": "$permessi$", "values": "query=SELECT `id`, `nome` AS text FROM `zz_groups`", "multiple": 1 ]}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
use Modules\CategorieDocumentali\Categoria;
|
||||||
|
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$record = $dbo->fetchOne('SELECT *, (SELECT COUNT(id) FROM zz_documenti WHERE idcategoria = '.prepare($id_record).') AS doc_associati FROM zz_documenti_categorie WHERE id='.prepare($id_record));
|
$categoria = Categoria::find($id_record);
|
||||||
|
|
||||||
|
$record = $dbo->fetchOne("SELECT *,
|
||||||
|
(SELECT COUNT(id) FROM do_documenti WHERE idcategoria = '.prepare($id_record).') AS doc_associati,
|
||||||
|
GROUP_CONCAT(do_permessi.id_gruppo SEPARATOR ',') AS permessi
|
||||||
|
FROM do_categorie
|
||||||
|
LEFT JOIN do_permessi ON do_permessi.id_categoria = do_categorie.id
|
||||||
|
WHERE id=".prepare($id_record).'
|
||||||
|
GROUP BY do_categorie.id');
|
||||||
}
|
}
|
||||||
|
36
modules/categorie_documenti/src/Categoria.php
Normal file
36
modules/categorie_documenti/src/Categoria.php
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\CategorieDocumentali;
|
||||||
|
|
||||||
|
use Common\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
class Categoria extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
protected $table = 'do_categorie';
|
||||||
|
|
||||||
|
public static function build($descrizione)
|
||||||
|
{
|
||||||
|
$model = parent::build();
|
||||||
|
$model->descrizione = $descrizione;
|
||||||
|
|
||||||
|
$model->save();
|
||||||
|
|
||||||
|
$gruppi = database()->fetchArray('SELECT `id` FROM `zz_groups`');
|
||||||
|
$model->syncPermessi($gruppi);
|
||||||
|
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function syncPermessi(array $groups)
|
||||||
|
{
|
||||||
|
$groups[] = 1;
|
||||||
|
|
||||||
|
$database = database();
|
||||||
|
$database->sync('do_permessi', ['id_categoria' => $this->id], [
|
||||||
|
'id_gruppo' => $groups,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
@@ -327,7 +327,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
|
|||||||
// 6) Aggiungo la ritenuta enasarco se c'è
|
// 6) Aggiungo la ritenuta enasarco se c'è
|
||||||
// Lettura id conto ritenuta e la storno subito
|
// Lettura id conto ritenuta e la storno subito
|
||||||
if ($totale_ritenutacontributi != 0) {
|
if ($totale_ritenutacontributi != 0) {
|
||||||
$query = "SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione=\"Erario c/enasarco\"";
|
$query = 'SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione="Erario c/enasarco"';
|
||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
$idconto_ritenutaenasarco = $rs[0]['id'];
|
$idconto_ritenutaenasarco = $rs[0]['id'];
|
||||||
$descrizione_conto_ritenutaenasarco = $rs[0]['descrizione'];
|
$descrizione_conto_ritenutaenasarco = $rs[0]['descrizione'];
|
||||||
|
@@ -4,19 +4,19 @@ include_once __DIR__.'/../../core.php';
|
|||||||
|
|
||||||
switch (post('op')) {
|
switch (post('op')) {
|
||||||
case 'add':
|
case 'add':
|
||||||
$dbo->insert('zz_documenti', [
|
$dbo->insert('do_documenti', [
|
||||||
'idcategoria' => post('idcategoria'),
|
'idcategoria' => post('idcategoria'),
|
||||||
'nome' => post('nome'),
|
'nome' => post('nome'),
|
||||||
'data' => post('data'),
|
'data' => post('data'),
|
||||||
]);
|
]);
|
||||||
$id_record = $dbo->last_inserted_id();
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
|
||||||
flash()->info(tr('Nuova documento aggiunto!'));
|
flash()->info(tr('Nuova documento aggiunto!'));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'update':
|
case 'update':
|
||||||
$dbo->update('zz_documenti', [
|
$dbo->update('do_documenti', [
|
||||||
'idcategoria' => post('idcategoria'),
|
'idcategoria' => post('idcategoria'),
|
||||||
'nome' => post('nome'),
|
'nome' => post('nome'),
|
||||||
'data' => post('data'),
|
'data' => post('data'),
|
||||||
@@ -26,7 +26,7 @@ switch (post('op')) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
$dbo->query('DELETE FROM zz_documenti WHERE id = '.prepare($id_record));
|
$dbo->query('DELETE FROM do_documenti WHERE id = '.prepare($id_record));
|
||||||
|
|
||||||
Uploads::deleteLinked([
|
Uploads::deleteLinked([
|
||||||
'id_module' => $id_module,
|
'id_module' => $id_module,
|
||||||
|
@@ -3,5 +3,5 @@
|
|||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$record = $dbo->fetchOne('SELECT *, zz_documenti.`id`as id, zz_documenti.nome AS nome, zz_documenti.`data` AS `data` FROM zz_documenti WHERE zz_documenti.id = '.prepare($id_record));
|
$record = $dbo->fetchOne('SELECT *, do_documenti.`id`as id, do_documenti.nome AS nome, do_documenti.`data` AS `data` FROM do_documenti WHERE do_documenti.id = '.prepare($id_record));
|
||||||
}
|
}
|
||||||
|
@@ -67,8 +67,6 @@ if (!empty($user)) {
|
|||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
include $structure->filepath('components/password.php');
|
include $structure->filepath('components/password.php');
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
@@ -39,6 +39,23 @@ foreach ($logs as $log) {
|
|||||||
|
|
||||||
$database->query('ALTER TABLE `zz_operations` ADD FOREIGN KEY (`id_email`) REFERENCES `em_emails`(`id`) ON DELETE SET NULL');
|
$database->query('ALTER TABLE `zz_operations` ADD FOREIGN KEY (`id_email`) REFERENCES `em_emails`(`id`) ON DELETE SET NULL');
|
||||||
|
|
||||||
|
// Aggiunta permessi alla gestione documentale
|
||||||
|
$gruppi = $database->fetchArray('SELECT `id` FROM `zz_groups`');
|
||||||
|
$viste = $database->fetchArray('SELECT `id` FROM `do_categorie`');
|
||||||
|
|
||||||
|
$array = [];
|
||||||
|
foreach ($viste as $vista) {
|
||||||
|
foreach ($gruppi as $gruppo) {
|
||||||
|
$array[] = [
|
||||||
|
'id_gruppo' => $gruppo['id'],
|
||||||
|
'id_categoria' => $vista['id'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($array)) {
|
||||||
|
$database->insert('do_permessi', $array);
|
||||||
|
}
|
||||||
|
|
||||||
// File e cartelle deprecate
|
// File e cartelle deprecate
|
||||||
$files = [
|
$files = [
|
||||||
'src\API.php',
|
'src\API.php',
|
||||||
|
@@ -681,4 +681,37 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
|
|||||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Liste newsletter'), 'Descrizione', 'description', 3, 1, 0, 1, 1),
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Liste newsletter'), 'Descrizione', 'description', 3, 1, 0, 1, 1),
|
||||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Liste newsletter'), 'Dinamica', 'IF(query IS NULL, ''No'', ''Si'')', 4, 1, 0, 1, 1);
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Liste newsletter'), 'Dinamica', 'IF(query IS NULL, ''No'', ''Si'')', 4, 1, 0, 1, 1);
|
||||||
|
|
||||||
UPDATE `zz_prints` SET `is_record` = '0' WHERE `zz_prints`.`name` = 'Inventario magazzino';
|
UPDATE `zz_prints` SET `is_record` = '0' WHERE `zz_prints`.`name` = 'Inventario magazzino';
|
||||||
|
|
||||||
|
-- Gestione permessi per le categorie documentali
|
||||||
|
ALTER TABLE `zz_documenti` RENAME TO `do_documenti`;
|
||||||
|
ALTER TABLE `zz_documenti_categorie` RENAME TO `do_categorie`;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `do_permessi` (
|
||||||
|
`id_categoria` int(11) NOT NULL,
|
||||||
|
`id_gruppo` int(11) NOT NULL,
|
||||||
|
FOREIGN KEY (`id_categoria`) REFERENCES `do_categorie`(`id`) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`id_gruppo`) REFERENCES `zz_groups`(`id`) ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `do_categorie`
|
||||||
|
WHERE 1=1 AND `deleted_at` IS NULL AND
|
||||||
|
(SELECT `idgruppo` FROM `zz_users` WHERE `id` = |id_utente|) IN (SELECT `id_gruppo` FROM `do_permessi` WHERE `id_categoria` = `do_categorie`.`id`)
|
||||||
|
HAVING 2=2' WHERE `name` = 'Categorie documenti';
|
||||||
|
|
||||||
|
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `default`, `visible`) VALUES
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Categorie documenti'), 'id', 'id', 1, 0, 0, 1, 0),
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Categorie documenti'), 'Descrizione', 'descrizione', 2, 0, 0, 1, 1);
|
||||||
|
|
||||||
|
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `do_documenti`
|
||||||
|
INNER JOIN `do_categorie` ON `do_categorie`.`id` = `do_documenti`.`idcategoria`
|
||||||
|
WHERE 1=1 AND `deleted_at` IS NULL AND
|
||||||
|
(SELECT `idgruppo` FROM `zz_users` WHERE `zz_users`.`id` = |id_utente|) IN (SELECT `id_gruppo` FROM `do_permessi` WHERE `id_categoria` = `do_documenti`.`idcategoria`)
|
||||||
|
|date_period(`data`)|
|
||||||
|
HAVING 2=2' WHERE `name` = 'Gestione documentale';
|
||||||
|
|
||||||
|
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `format`, `default`, `visible`) VALUES
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione documentale'), '`do_documenti`.`id`', 'id', 1, 0, 0, 1, 0),
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione documentale'), 'Categoria', '`do_categorie`.`descrizione`', 2, 0, 0, 1, 1),
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione documentale'), 'Nome', '`do_documenti`.`nome`', 3, 0, 0, 1, 1),
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Gestione documentale'), 'Data', '`do_documenti`.`data`', 4, 0, 1, 1, 1);
|
||||||
|
Reference in New Issue
Block a user