mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-24 14:31:42 +01:00
Aggiunta tabella do_categorie_lang
This commit is contained in:
parent
12a3a760e3
commit
74930d424f
@ -26,15 +26,13 @@ switch (post('op')) {
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
// Verifico che il nome non sia duplicato
|
||||
$count = $dbo->fetchNum('SELECT descrizione FROM do_categorie WHERE descrizione='.prepare($descrizione).' AND deleted_at IS NULL AND id !='.prepare($id_record));
|
||||
$count = $dbo->fetchNum('SELECT `name` FROM `do_categorie` LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione).' AND `deleted_at` IS NULL AND `do_categorie`.`id` !='.prepare($id_record));
|
||||
if ($count != 0) {
|
||||
flash()->error(tr('Categoria _NAME_ già esistente!', [
|
||||
'_NAME_' => $descrizione,
|
||||
]));
|
||||
} else {
|
||||
$categoria->descrizione = $descrizione;
|
||||
$categoria->save();
|
||||
|
||||
$dbo->query('UPDATE `do_categorie_lang` SET `name` = '.prepare($descrizione).' WHERE `id_record` = '.prepare($id_record).' AND `id_lang` = '.prepare(setting('Lingua')));
|
||||
$categoria->syncPermessi(post('permessi') ?: []);
|
||||
|
||||
flash()->info(tr('Informazioni salvate correttamente!'));
|
||||
@ -46,7 +44,7 @@ switch (post('op')) {
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
// 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 `name` FROM `do_categorie` LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione).' AND `deleted_at` IS NULL');
|
||||
if ($count != 0) {
|
||||
flash()->error(tr('Categoria _NAME_ già esistente!', [
|
||||
'_NAME_' => $descrizione,
|
||||
@ -65,7 +63,7 @@ switch (post('op')) {
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$dbo->query('UPDATE do_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 documenti eliminata!'));
|
||||
|
||||
|
@ -21,18 +21,18 @@ include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'categorie_documenti':
|
||||
$query = 'SELECT id, descrizione FROM do_categorie |where| ORDER BY descrizione ASC';
|
||||
$query = 'SELECT `do_categorie`.`id`, `do_categorie_lang`.`name` as descrizione FROM `do_categorie` LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).')|where| ORDER BY `name` ASC';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'do_categorie.id='.prepare($element);
|
||||
$filter[] = '`do_categorie`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (empty($filter)) {
|
||||
$where[] = 'deleted_at IS NULL';
|
||||
$where[] = '`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -33,7 +33,7 @@ if ($record['doc_associati'] > 0) {
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
{[ "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": "$name$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
@ -25,10 +25,14 @@ if (isset($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');
|
||||
(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_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = ".prepare(setting('Lingua')).")
|
||||
LEFT JOIN `do_permessi` ON `do_permessi`.`id_categoria` = `do_categorie`.`id`
|
||||
WHERE
|
||||
`do_categorie`.`id`=".prepare($id_record)."
|
||||
GROUP BY
|
||||
`do_categorie`.`id`");
|
||||
}
|
||||
|
@ -52,4 +52,34 @@ class Categoria extends Model
|
||||
'id_gruppo' => $groups,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'attributo name della Categoria
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNameAttribute()
|
||||
{
|
||||
return database()->table($this->table.'_lang')
|
||||
->select('name')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first()->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'id della categoria a partire dal nome.
|
||||
*
|
||||
* @param string $name il nome da ricercare
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getByName($name)
|
||||
{
|
||||
return database()->table($this->table.'_lang')
|
||||
->select('id_record')
|
||||
->where('name', '=', $name)
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
@ -744,4 +744,59 @@ HAVING
|
||||
ORDER BY
|
||||
`co_documenti`.`data` DESC,
|
||||
CAST(IF(`co_documenti`.`numero` = '', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC" WHERE `name` = 'Fatture di acquisto';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_tipidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = 'Tipo';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_tipidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = 'Tipo';
|
||||
|
||||
-- Aggiunta tabella do_categorie_lang
|
||||
CREATE TABLE IF NOT EXISTS `do_categorie_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `do_categorie_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `do_categorie_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `do_categorie_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `do_categorie`;
|
||||
|
||||
ALTER TABLE `do_categorie`
|
||||
DROP `descrizione`;
|
||||
|
||||
ALTER TABLE `do_categorie` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
|
||||
|
||||
ALTER TABLE `do_categorie_lang` ADD CONSTRAINT `do_categorie_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `do_categorie`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Gestione documentale
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`do_documenti`
|
||||
INNER JOIN `do_categorie` ON `do_categorie`.`id` = `do_documenti`.`idcategoria`
|
||||
LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = |lang|)
|
||||
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`)| OR data IS NULL
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
`data` DESC" WHERE `name` = 'Gestione documentale';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`do_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Gestione documentale' AND `zz_views`.`name` = 'Categoria';
|
||||
|
||||
-- Allineamento vista Categorie documenti
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`do_categorie`
|
||||
LEFT JOIN `do_categorie_lang` ON (`do_categorie_lang`.`id_record` = `do_categorie`.`id` AND `do_categorie_lang`.`id_lang` = |lang|)
|
||||
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';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`do_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Categorie documenti' AND `zz_views`.`name` = 'Descrizione';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`do_categorie`.`id`' WHERE `zz_modules`.`name` = 'Categorie documenti' AND `zz_views`.`name` = 'id';
|
@ -59,6 +59,7 @@ return [
|
||||
'co_tipi_scadenze',
|
||||
'co_stampecontabili',
|
||||
'do_categorie',
|
||||
'do_categorie_lang',
|
||||
'do_documenti',
|
||||
'do_permessi',
|
||||
'dt_aspettobeni',
|
||||
|
Loading…
Reference in New Issue
Block a user