Aggiunta tabella my_impianti_categorie_lang
This commit is contained in:
parent
c3338c78a9
commit
88ba7311b3
|
@ -21,6 +21,7 @@ include_once __DIR__.'/../../core.php';
|
|||
|
||||
use Models\Module;
|
||||
use Modules\Checklists\Check;
|
||||
use Modules\Impianti\Categoria;
|
||||
|
||||
$modulo_impianti = (new Module())->getByField('name', 'Impianti');
|
||||
|
||||
|
@ -32,13 +33,11 @@ switch (filter('op')) {
|
|||
$id_original = filter('id_original') ?: null;
|
||||
|
||||
if (isset($nome) && isset($nota) && isset($colore)) {
|
||||
$database->table('my_impianti_categorie')
|
||||
->where('id', '=', $id_record)
|
||||
->update([
|
||||
'nome' => $nome,
|
||||
'nota' => $nota,
|
||||
'colore' => $colore,
|
||||
]);
|
||||
$categoria->nota = $nota;
|
||||
$categoria->colore = $colore;
|
||||
$categoria->parent = $id_original ?: null;
|
||||
$categoria->setTranslation('name', $nome);
|
||||
$categoria->save();
|
||||
|
||||
flash()->info(tr('Salvataggio completato!'));
|
||||
} else {
|
||||
|
@ -61,32 +60,26 @@ switch (filter('op')) {
|
|||
|
||||
$id_original = filter('id_original') ?: null;
|
||||
|
||||
// Ricerca corrispondenze con stesso nome
|
||||
$corrispondenze = $database->table('my_impianti_categorie')
|
||||
->where('nome', '=', $nome);
|
||||
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('name', $nome));
|
||||
if (!empty($id_original)) {
|
||||
$corrispondenze = $corrispondenze->where('parent', '=', $id_original);
|
||||
$categoria_new = $categoria_new->where('parent', '=', $id_original);
|
||||
} else {
|
||||
$corrispondenze = $corrispondenze->whereNull('parent');
|
||||
$categoria_new = $categoria_new->whereNull('parent');
|
||||
}
|
||||
$corrispondenze = $corrispondenze->get();
|
||||
$categoria_new = $categoria_new->first();
|
||||
|
||||
// Eventuale creazione del nuovo record
|
||||
if ($corrispondenze->count() == 0) {
|
||||
$id_record = $database->table('my_impianti_categorie')
|
||||
->insertGetId([
|
||||
'nome' => $nome,
|
||||
'nota' => $nota,
|
||||
'colore' => $colore,
|
||||
'parent' => $id_original,
|
||||
]);
|
||||
if (!empty($categoria_new)) {
|
||||
flash()->error(tr('Questo nome è già stato utilizzato per un altra categoria.'));
|
||||
} else {
|
||||
$categoria = Categoria::build($nota, $colore);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$categoria->parent = $id_original;
|
||||
$categoria->setTranslation('name', $nome);
|
||||
$categoria->save();
|
||||
|
||||
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
|
||||
'_TYPE_' => 'categoria',
|
||||
]));
|
||||
} else {
|
||||
$id_record = $corrispondenze->first()->id;
|
||||
flash()->error(tr('Esiste già una categoria con lo stesso nome!'));
|
||||
}
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
|
@ -106,7 +99,7 @@ switch (filter('op')) {
|
|||
$id = $id_record;
|
||||
}
|
||||
|
||||
if ($dbo->fetchNum('SELECT * FROM `my_impianti` WHERE (`id_categoria`='.prepare($id).' OR `id_sottocategoria`='.prepare($id).' OR `id_sottocategoria` IN (SELECT id FROM `my_impianti_categorie` WHERE `parent`='.prepare($id).')) AND `deleted_at` IS NULL') == 0) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `my_impianti` WHERE (`id_categoria`='.prepare($id).' OR `id_sottocategoria`='.prepare($id).' OR `id_sottocategoria` IN (SELECT `id` FROM `my_impianti_categorie` WHERE `parent`='.prepare($id).')) AND `deleted_at` IS NULL') == 0) {
|
||||
$dbo->query('DELETE FROM `my_impianti_categorie` WHERE `id`='.prepare($id));
|
||||
|
||||
flash()->info(tr('_TYPE_ eliminata con successo!', [
|
||||
|
|
|
@ -34,7 +34,7 @@ use Models\Module;
|
|||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$name$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
@ -94,7 +94,7 @@ use Models\Module;
|
|||
|
||||
<?php
|
||||
|
||||
$elementi = $dbo->fetchArray('SELECT `my_impianti`.`id`, `my_impianti`.`matricola`, `my_impianti`.`nome` FROM `my_impianti` WHERE (`id_categoria`='.prepare($id_record).' OR `id_sottocategoria`='.prepare($id_record).' OR `id_sottocategoria` IN (SELECT id FROM `my_impianti_categorie` WHERE `parent`='.prepare($id_record).'))');
|
||||
$elementi = $dbo->fetchArray('SELECT `my_impianti`.`id`, `my_impianti`.`matricola`, `my_impianti`.`nome` FROM `my_impianti` WHERE (`id_categoria`='.prepare($id_record).' OR `id_sottocategoria`='.prepare($id_record).' OR `id_sottocategoria` IN (SELECT `id` FROM `my_impianti_categorie` WHERE `parent`='.prepare($id_record).'))');
|
||||
|
||||
if (!empty($elementi)) {
|
||||
echo '
|
||||
|
|
|
@ -18,7 +18,10 @@
|
|||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Impianti\Categoria;
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `my_impianti_categorie` WHERE id='.prepare($id_record));
|
||||
$record = $dbo->fetchOne('SELECT * FROM `my_impianti_categorie` LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id`=`my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).' WHERE `my_impianti_categorie`.`id`='.prepare($id_record));
|
||||
|
||||
$categoria = Categoria::find($id_record);
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$subcategorie = $dbo->fetchArray('SELECT * FROM `my_impianti_categorie` WHERE `parent`='.prepare($id_record).' ORDER BY nome ASC ');
|
||||
$subcategorie = $dbo->fetchArray('SELECT `my_impianti_categorie`.*, `my_impianti_categorie_lang`.`name` FROM `my_impianti_categorie` LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id`=`my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `parent`='.prepare($id_record).' ORDER BY `name` ASC ');
|
||||
|
||||
foreach ($subcategorie as $sub) {
|
||||
$n_impianti = $dbo->fetchNum('SELECT * FROM `my_impianti` WHERE `id_sottocategoria`='.prepare($sub['id']).' AND deleted_at IS NULL');
|
||||
|
|
|
@ -120,16 +120,16 @@ switch ($resource) {
|
|||
break;
|
||||
|
||||
case 'categorie_imp':
|
||||
$query = 'SELECT `id`, `nome` AS descrizione FROM `my_impianti_categorie` |where| ORDER BY `nome`';
|
||||
$query = 'SELECT `my_impianti_categorie`.`id`, `my_impianti_categorie_lang`.`name` AS descrizione FROM `my_impianti_categorie` LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id`=`my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
$filter[] = '`my_impianti_categorie`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = '`parent` IS NULL';
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = '`nome` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -140,16 +140,16 @@ switch ($resource) {
|
|||
*/
|
||||
case 'sottocategorie_imp':
|
||||
if (isset($superselect['id_categoria'])) {
|
||||
$query = 'SELECT `id`, `nome` AS descrizione FROM `my_impianti_categorie` |where| ORDER BY `nome`';
|
||||
$query = 'SELECT ``my_impianti_categorie`.`id`, `my_impianti_categorie_lang`.`name` AS descrizione FROM `my_impianti_categorie` LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id`=`my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') |where| ORDER BY `name`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
$filter[] = '`my_impianti_categorie`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = '`parent`='.prepare($superselect['id_categoria']);
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = '`nome` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -22,20 +22,25 @@ namespace Modules\Impianti;
|
|||
use Common\SimpleModelTrait;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Traits\HierarchyTrait;
|
||||
use Traits\RecordTrait;
|
||||
|
||||
class Categoria extends Model
|
||||
{
|
||||
use SimpleModelTrait;
|
||||
use HierarchyTrait;
|
||||
|
||||
use RecordTrait;
|
||||
protected $table = 'my_impianti_categorie';
|
||||
protected static $parent_identifier = 'parent';
|
||||
|
||||
public static function build($nome = null)
|
||||
protected static $translated_fields = [
|
||||
'name',
|
||||
];
|
||||
|
||||
public static function build($nota = null, $colore = null)
|
||||
{
|
||||
$model = new static();
|
||||
|
||||
$model->nome = $nome;
|
||||
$model->nota = $nota;
|
||||
$model->colore = $colore;
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
|
@ -45,4 +50,14 @@ class Categoria extends Model
|
|||
{
|
||||
return $this->hasMany(Impianto::class, 'id_categoria');
|
||||
}
|
||||
|
||||
public function getModuleAttribute()
|
||||
{
|
||||
return 'Categorie impianti';
|
||||
}
|
||||
|
||||
public static function getTranslatedFields()
|
||||
{
|
||||
return self::$translated_fields;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,24 +82,29 @@ class Impianti extends AppResource
|
|||
public function retrieveRecord($id)
|
||||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT my_impianti.id,
|
||||
my_impianti.idanagrafica AS id_cliente,
|
||||
my_impianti.idsede AS id_sede,
|
||||
my_impianti.matricola,
|
||||
my_impianti.nome,
|
||||
my_impianti.descrizione,
|
||||
my_impianti.data AS data_installazione,
|
||||
my_impianti.proprietario,
|
||||
my_impianti.ubicazione,
|
||||
my_impianti.palazzo,
|
||||
my_impianti.scala,
|
||||
my_impianti.piano,
|
||||
my_impianti.interno,
|
||||
my_impianti.occupante,
|
||||
my_impianti_categorie.nome AS categoria
|
||||
FROM my_impianti
|
||||
LEFT JOIN my_impianti_categorie ON my_impianti_categorie.id = my_impianti.id_categoria
|
||||
WHERE my_impianti.id = '.prepare($id);
|
||||
$query = 'SELECT
|
||||
`my_impianti`.`id`,
|
||||
`my_impianti`.`idanagrafica` AS id_cliente,
|
||||
`my_impianti`.`idsede` AS id_sede,
|
||||
`my_impianti`.`matricola`,
|
||||
`my_impianti`.`nome`,
|
||||
`my_impianti`.`descrizione`,
|
||||
`my_impianti`.`data` AS data_installazione,
|
||||
`my_impianti`.`proprietario`,
|
||||
`my_impianti`.`ubicazione`,
|
||||
`my_impianti`.`palazzo`,
|
||||
`my_impianti`.`scala`,
|
||||
`my_impianti`.`piano`,
|
||||
`my_impianti`.`interno`,
|
||||
`my_impianti`.`occupante`,
|
||||
`categorie_lang`.`name` AS categoria
|
||||
`sottocategorie_lang`.`name` AS sottocategoria
|
||||
FROM `my_impianti`
|
||||
LEFT JOIN `my_impianti_categorie` ON `my_impianti_categorie`.`id` = `my_impianti`.`id_categoria`
|
||||
LEFT JOIN `my_impianti_categorie_lang` as categorie_lang ON (`categorie_lang`.`id_record` = `my_impianti_categorie`.`id` AND `categorie_lang`.|lang|)
|
||||
LEFT JOIN `my_impianti_categorie` as sottocategorie ON (`sottocategorie`.`id` = `my_impianti_categorie`.`id_sottocategoria`)
|
||||
LEFT JOIN `my_impianti_categorie_lang` as sottocategorie_lang ON (`sottocategorie_lang`.`id_record` = `sottocategorie`.`id` AND `sottocategorie_lang`.|lang|)
|
||||
WHERE `my_impianti`.`id` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -1364,6 +1364,62 @@ ORDER BY
|
|||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Articoli' AND `zz_views`.`name` = 'Categoria';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Articoli' AND `zz_views`.`name` = 'Sottocategoria';
|
||||
|
||||
-- Aggiunta tabella my_impianti_categorie_lang
|
||||
CREATE TABLE IF NOT EXISTS `my_impianti_categorie_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `my_impianti_categorie_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `my_impianti_categorie_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `my_impianti_categorie_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `predefined` = 1), `id`, `nome` FROM `my_impianti_categorie`;
|
||||
|
||||
ALTER TABLE `my_impianti_categorie`
|
||||
DROP `nome`;
|
||||
|
||||
ALTER TABLE `my_impianti_categorie_lang` ADD CONSTRAINT `my_impianti_categorie_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `my_impianti_categorie`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Categorie impianti
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`my_impianti_categorie`
|
||||
LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id` = `my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.|lang|)
|
||||
WHERE
|
||||
1=1 AND parent IS NULL
|
||||
HAVING
|
||||
2=2" WHERE `name` = 'Categorie impianti';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`my_impianti_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Categorie impianti' AND `zz_views`.`name` = 'Nome';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`my_impianti_categorie`.`id`' WHERE `zz_modules`.`name` = 'Categorie impianti' AND `zz_views`.`name` = 'id';
|
||||
|
||||
-- Allineamento vista Impianti
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`my_impianti`
|
||||
LEFT JOIN `an_anagrafiche` AS clienti ON `clienti`.`idanagrafica` = `my_impianti`.`idanagrafica`
|
||||
LEFT JOIN `an_anagrafiche` AS tecnici ON `tecnici`.`idanagrafica` = `my_impianti`.`idtecnico`
|
||||
LEFT JOIN `my_impianti_categorie` ON `my_impianti_categorie`.`id` = `my_impianti`.`id_categoria`
|
||||
LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id` = `my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.|lang|)
|
||||
LEFT JOIN `my_impianti_categorie` as sub ON sub.`id` = `my_impianti`.`id_sottocategoria`
|
||||
LEFT JOIN `my_impianti_categorie_lang` as sub_lang ON (sub.`id` = sub_lang.`id_record` AND sub_lang.|lang|)
|
||||
LEFT JOIN (SELECT an_sedi.id, CONCAT(an_sedi.nomesede, '<br />',IF(an_sedi.telefono!='',CONCAT(an_sedi.telefono,'<br />'),''),IF(an_sedi.cellulare!='',CONCAT(an_sedi.cellulare,'<br />'),''),an_sedi.citta,IF(an_sedi.indirizzo!='',CONCAT(' - ',an_sedi.indirizzo),'')) AS info FROM an_sedi) AS sede ON sede.id = my_impianti.idsede
|
||||
WHERE
|
||||
1=1
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
`matricola`" WHERE `name` = 'impianti';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`my_impianti_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Categoria';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`sub_lang`.`name`' WHERE `zz_modules`.`name` = 'Impianti' AND `zz_views`.`name` = 'Sottocategoria';
|
||||
|
||||
-- Aggiunta tabella mg_causali_movimenti_lang
|
||||
CREATE TABLE IF NOT EXISTS `mg_causali_movimenti_lang` (
|
||||
`id` int NOT NULL,
|
||||
|
|
|
@ -134,6 +134,7 @@ return [
|
|||
'my_componenti_interventi',
|
||||
'my_impianti',
|
||||
'my_impianti_categorie',
|
||||
'my_impianti_categorie_lang',
|
||||
'my_impianti_contratti',
|
||||
'my_impianti_interventi',
|
||||
'mg_articolo_attributo',
|
||||
|
|
Loading…
Reference in New Issue