From 643c1f2f81e11764640b6f11dd048325a7ce9e8b Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Thu, 17 Jun 2021 18:33:00 +0200 Subject: [PATCH] Aggiunto nuovo plugin Componenti in Impianti --- CHANGELOG.md | 1 + plugins/componenti/actions.php | 125 ++++++++++++++++++++ plugins/componenti/add.php | 40 +++++++ plugins/componenti/allegati.php | 22 ++++ plugins/componenti/edit.php | 194 ++++++++++++++++++++++++++++++++ update/2_4_24.sql | 11 +- 6 files changed, 392 insertions(+), 1 deletion(-) create mode 100644 plugins/componenti/actions.php create mode 100644 plugins/componenti/add.php create mode 100644 plugins/componenti/allegati.php create mode 100644 plugins/componenti/edit.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 3380af962..87ac64172 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Aggiunta nel calendario della Dashboard visualizzazione dei preventivi pianificabili in corrispondenza alla data di accettazione e conclusione. - Aggiunta impostazione per la visualizzazione delle ore nella stampa intervento (Decimale, Sessantesimi). - Aggiunta possibilità di selezionare la sede di partenza della merce in fase di aggiunta articolo da un'attività + - Sostituito plugin **Componenti** nel modulo Impianti con la possibilità di inserire gli articoli di magazzino ### Fixed - diff --git a/plugins/componenti/actions.php b/plugins/componenti/actions.php new file mode 100644 index 000000000..85a6e291a --- /dev/null +++ b/plugins/componenti/actions.php @@ -0,0 +1,125 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +use Carbon\Carbon; + +$operazione = filter('op'); + +switch ($operazione) { + case 'update': + $articolo = (array)post('id_articolo'); + $data_installazione = (array)post('data_installazione'); + $data_disinstallazione = (array)post('data_disinstallazione'); + $data_registrazione = (array)post('data_registrazione'); + $note = (array)post('note'); + + $key = key($articolo); + + if(post('sostituito')){ + $field_articolo = 'pre_id_articolo'; + } else{ + $field_articolo = 'id_articolo'; + } + + $dbo->update('my_componenti_articoli', [ + $field_articolo => $articolo[$key], + 'data_installazione' => $data_installazione[$key] ?: null, + 'data_disinstallazione' => $data_disinstallazione[$key] ?: null, + 'data_registrazione' => $data_registrazione[$key] ?: null, + 'note' => $note[$key], + ], ['id' => $key]); + + flash()->info(tr('Salvataggio completato!')); + $dbo->commitTransaction(); + header('Location: '.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); + exit; + + break; + + case 'add': + $dbo->insert('my_componenti_articoli', [ + 'id_impianto' => $id_record, + 'data_registrazione' => Carbon::now(), + 'id_articolo' => post('id_articolo'), + ]); + + flash()->info(tr('Salvataggio completato!')); + + break; + + case 'sostituisci': + $old_id = get('id_old'); + $old = $dbo->selectOne('my_componenti_articoli', '*', ['id' => $old_id]); + + if(!empty($old['id_articolo'])){ + + if(empty($old['data_disinstallazione'])){ + $data = Carbon::now(); + } else{ + $data = $old['data_disinstallazione']; + } + + $dbo->update('my_componenti_articoli', [ + 'pre_id_articolo' => $old['id_articolo'], + 'id_articolo' => 0, + 'data_disinstallazione' => $data, + ],[ + 'id' => $old_id, + ]); + + $dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM my_componenti_articoli WHERE id= '.prepare($old_id)); + $dbo->query('ALTER TABLE tmp DROP id'); + $dbo->query('INSERT INTO my_componenti_articoli SELECT NULL,tmp. * FROM tmp'); + $new_id = $dbo->lastInsertedID(); + $dbo->query('DROP TEMPORARY TABLE tmp'); + + $dbo->update('my_componenti_articoli', [ + 'id_articolo' => $old['id_articolo'], + 'pre_id_articolo' => 0, + 'data_registrazione' => Carbon::now(), + 'data_installazione' => $data, + 'data_disinstallazione' => null, + ], [ + 'id' => $new_id, + ]); + + flash()->info(tr('Informazioni salvate correttamente!')); + } else{ + flash()->warning(tr('Inserire un articolo prima di effettuare la sostituzione!')); + } + + $dbo->commitTransaction(); + header('Location: '.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); + exit; + + break; + + case 'delete': + $dbo->query('DELETE FROM my_componenti_articoli WHERE id='.prepare(get('id'))); + + flash()->info(tr('Componente eliminato!')); + + $dbo->commitTransaction(); + header('Location: '.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); + exit; + + break; +} diff --git a/plugins/componenti/add.php b/plugins/componenti/add.php new file mode 100644 index 000000000..833d680a7 --- /dev/null +++ b/plugins/componenti/add.php @@ -0,0 +1,40 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +echo ' +
+ + + + +
+
+ {["type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "ajax-source": "articoli", "value": "", "required": 1, "select-options": {"permetti_movimento_a_zero": 1} ]} +
+
+ + +
+
+ +
+
+
'; diff --git a/plugins/componenti/allegati.php b/plugins/componenti/allegati.php new file mode 100644 index 000000000..41c0f9d21 --- /dev/null +++ b/plugins/componenti/allegati.php @@ -0,0 +1,22 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +echo '{( "name": "filelist_and_upload", "id":"'.rand(1,999).'", "id_record": "'.get('id').'", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'" )}'; \ No newline at end of file diff --git a/plugins/componenti/edit.php b/plugins/componenti/edit.php new file mode 100644 index 000000000..a5ed2ef01 --- /dev/null +++ b/plugins/componenti/edit.php @@ -0,0 +1,194 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +echo '
'; + +$componenti = $dbo->fetchArray('SELECT my_componenti_articoli.*, my_impianti.idanagrafica, CONCAT(a.codice, " - ", a.descrizione) AS art_sostituito, CONCAT(b.codice, " - ", b.descrizione) AS art_installato, a.codice FROM my_componenti_articoli LEFT JOIN my_impianti ON my_componenti_articoli.id_impianto=my_impianti.id LEFT JOIN mg_articoli AS a ON my_componenti_articoli.pre_id_articolo=a.id LEFT JOIN mg_articoli AS b ON my_componenti_articoli.id_articolo=b.id WHERE id_impianto='.prepare($id_record).' ORDER BY data_registrazione, id_articolo DESC'); + +$installati = 0; +$disinstallati = 0; + +foreach($componenti as $componente){ + if(!empty($componente['pre_id_articolo'])){ + $id_articolo = $componente['pre_id_articolo']; + $check_value = 1; + $box = 'danger'; + $articolo = $componente['art_sostituito']; + $data = dateFormat($componente['data_disinstallazione']); + $text = 'DISINSTALLATO'; + $class = 'danger'; + $title = ''.tr('Storico').''; + $table ='default'; + if($disinstallati==0){ + echo ' +
+
+

ARTICOLI DISINSTALLATI

+
+
+
'; + $disinstallati++; + } + } else{ + $id_articolo = $componente['id_articolo']; + $check_value = 0; + $box = 'primary'; + $articolo = $componente['art_installato']; + $data = dateFormat($componente['data_installazione']); + $text = 'INSTALLATO'; + $class = 'primary'; + $title = ''.tr('Dati').''; + $table ='primary'; + if($installati==0){ + echo ' +
+
+

ARTICOLI INSTALLATI

+
+
+
'; + $installati++; + } + } + + $allegati = $dbo->fetchOne('SELECT COUNT(id) AS num FROM zz_files WHERE id_plugin='.prepare($id_plugin).' AND id_record='.$componente['id'].' GROUP BY id_record')['num']; + + if($allegati){ + $icon = 'fa fa-check text-success'; + } else{ + $icon = 'fa fa-times text-danger'; + } + + echo ' +
+ + + + + + + +
+
+
+ + + + + + + + + + + + + + + +
'.tr('ARTICOLO').' + '.$text.''.tr('REGISTRAZIONE').''.tr('ALLEGATI').'
'.$articolo.''.$data.''.dateFormat($componente['data_registrazione']).'
+
+ +
+ +
+
+
+
+
+

'.$title.'

+
+ + +
+ +
+
+ {[ "type":"select","label":"'.tr('Articolo').'","name":"id_articolo['.$componente['id'].']", "required":"1","value":"'.$id_articolo.'", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1} ]} +
+
+ {[ "type":"date","label":"'.tr('Data registrazione').'","name":"data_registrazione['.$componente['id'].']", "value":"'.$componente['data_registrazione'].'" ]} +
+
+ {[ "type":"date","label":"'.tr('Data installazione').'","name":"data_installazione['.$componente['id'].']", "value":"'.$componente['data_installazione'].'" ]} +
+ +
+ {[ "type":"date","label":"'.tr('Data disinstallazione').'","name":"data_disinstallazione['.$componente['id'].']", "value":"'.$componente['data_disinstallazione'].'" ]} +
+
+ +
+
+ {[ "type":"textarea","label":"'.tr('Note').'","name":"note['.$componente['id'].']", "value":"'.$componente['note'].'" ]} +
+
+ + +
+
+ +
+ '; + + if(!empty($componente['id_articolo'])){ + echo ' +
+ +
'; + } + echo ' +
+ +
+
+
+
+
+
+
+
'; +} + +echo ' +'; \ No newline at end of file diff --git a/update/2_4_24.sql b/update/2_4_24.sql index 10dea31d4..7d687e35b 100644 --- a/update/2_4_24.sql +++ b/update/2_4_24.sql @@ -30,4 +30,13 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione` INSERT INTO `zz_plugins` (`name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES ('Allegati', 'Allegati', (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='Anagrafiche'), (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='Anagrafiche'), 'tab', 'allegati.php', '1', '0', '0', '', '', NULL, NULL, '', ''); -- Aggiunta idsede nelle righe dell'intervento -ALTER TABLE `in_righe_interventi` ADD `idsede_partenza` INT NOT NULL AFTER `id_dettaglio_fornitore`; \ No newline at end of file +ALTER TABLE `in_righe_interventi` ADD `idsede_partenza` INT NOT NULL AFTER `id_dettaglio_fornitore`; + + +-- Aggiunto nuovo plugin Componenti e disabilitato quello precedente +UPDATE `zz_plugins` SET `name`='Componenti ini', `title`='Componenti ini' WHERE `name`='Componenti'; +UPDATE `zz_plugins` SET `enabled`=0 WHERE `name`='Componenti ini'; + +INSERT INTO `zz_plugins` ( `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`, `created_at`, `updated_at`) VALUES ('Componenti', 'Componenti', (SELECT `id` FROM `zz_modules` WHERE name='Impianti'), (SELECT `id` FROM `zz_modules` WHERE name='Impianti'), 'tab', '', '1', '0', '0', '', '', NULL, 'custom', 'componenti', '', NOW(), NOW()); + +CREATE TABLE `my_componenti_articoli` ( `id` INT NOT NULL AUTO_INCREMENT, `id_impianto` INT NOT NULL , `id_articolo` INT NOT NULL , `pre_id_articolo` INT NOT NULL, `note` TEXT NOT NULL , `data_registrazione` DATE NULL , `data_installazione` DATE NULL , `data_disinstallazione` DATE NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`));