From e18135d8c17f769d1b91542f6dad4ba91b73151f Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 23 May 2018 18:05:49 +0200 Subject: [PATCH] Import articoli + fix allegati plugin --- actions.php | 7 +- modules/anagrafiche/bulk.php | 25 +-- modules/anagrafiche/import.php | 4 +- modules/articoli/import.php | 160 ++++++++++++++++++ .../contratti/plugins/addpianficazione.php | 6 +- modules/contratti/plugins/ajax_articoli.php | 3 +- modules/contratti/plugins/ajax_righe.php | 3 +- modules/interventi/add.php | 5 +- src/HTMLBuilder/Manager/FileManager.php | 9 +- update/2_4_1.sql | 4 + 10 files changed, 199 insertions(+), 27 deletions(-) create mode 100644 modules/articoli/import.php diff --git a/actions.php b/actions.php index 05e80c3e0..f7b95c811 100644 --- a/actions.php +++ b/actions.php @@ -8,6 +8,8 @@ if (!empty($id_plugin)) { $directory = '/plugins/'.$info['directory']; $permesso = $info['idmodule_to']; + $id_module = $info['idmodule_to']; + } else { $info = Modules::get($id_module); @@ -172,11 +174,12 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') { 'nome' => $nome, 'filename' => $filename, 'original' => $_FILES['blob']['name'], - 'id_module' => $id_module, + 'id_module' => !empty($id_module) ? $id_module : null, 'id_record' => $id_record, 'id_plugin' => !empty($id_plugin) ? $id_plugin : null, ]); - + + $_SESSION['infos'][] = tr('File caricato correttamente!'); } else { $_SESSION['errors'][] = tr('Errore durante il caricamento del file!'); diff --git a/modules/anagrafiche/bulk.php b/modules/anagrafiche/bulk.php index 478583880..eee9353b2 100644 --- a/modules/anagrafiche/bulk.php +++ b/modules/anagrafiche/bulk.php @@ -4,19 +4,24 @@ include_once __DIR__.'/../../core.php'; switch (post('op')) { case 'delete-bulk': - $id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica']; + + if ($debug){ + $id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica']; - foreach ($id_records as $id) { - $records = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id)); - $tipi = array_column($records, 'idtipoanagrafica'); + foreach ($id_records as $id) { + $records = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id)); + $tipi = array_column($records, 'idtipoanagrafica'); - // Se l'anagrafica non è l'azienda principale, la disattivo - if (!in_array($id_azienda, $tipi)) { - $dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module)); - } - } + // Se l'anagrafica non è l'azienda principale, la disattivo + if (!in_array($id_azienda, $tipi)) { + $dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module)); + } + } - $_SESSION['infos'][] = tr('Anagrafiche eliminate!'); + $_SESSION['infos'][] = tr('Anagrafiche eliminate!'); + }else{ + $_SESSION['warnings'][] = tr('Procedura in fase di sviluppo. Nessuna modifica apportata.'); + } break; } diff --git a/modules/anagrafiche/import.php b/modules/anagrafiche/import.php index fd7f86446..a06ca44dd 100644 --- a/modules/anagrafiche/import.php +++ b/modules/anagrafiche/import.php @@ -12,7 +12,9 @@ switch (post('op')) { array('Codice','Ragione sociale','Partita IVA','Nazione','Indirizzo','CAP','Città','Provincia','Telefono','Fax','Cellulare','Email','IBAN','Note','Tipologia'), array('00001','Cliente','12345678910','ITALIA','Via Giuseppe Mazzini, 123','12345','Este','PD','786 543 21','123 456 78','321 123 456 78','email@cliente.it','IT60 X054 2811 1010 0000 0123 456','Anagrafica di esempio','Cliente'), ); - + + directory('../../files/'.$module); + $fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w'); foreach ($list as $fields) { diff --git a/modules/articoli/import.php b/modules/articoli/import.php new file mode 100644 index 000000000..002a18c30 --- /dev/null +++ b/modules/articoli/import.php @@ -0,0 +1,160 @@ + $value) { + if (!empty($value)) { + + $qta = force_decimal($data[$key]['qta']); + unset($data[$key]['qta']); + + $data[$key]['prezzo_acquisto'] = force_decimal($data[$key]['prezzo_acquisto']); + $data[$key]['prezzo_vendita'] = force_decimal($data[$key]['prezzo_vendita']); + $data[$key]['peso_lordo'] = force_decimal($data[$key]['peso_lordo']); + $data[$key]['volume'] = force_decimal($data[$key]['volume']); + + + // Categorie + $rs = $dbo->select('mg_categorie', 'id', [ + 'nome' => $data[$key]['id_categoria'], + ]); + + if (empty($rs[0]['id'])) { + $dbo->insert('mg_categorie', [ + 'nome' => $data[$key]['id_categoria'], + ]); + $data[$key]['id_categoria'] = $dbo->lastInsertedID(); + }else{ + $data[$key]['id_categoria'] = $rs[0]['id']; + } + + + // Insert o update + $insert = true; + if (!empty($primary_key)) { + $rs = $dbo->select('mg_articoli', $primary_key, [ + $primary_key => $data[$key][$primary_key], + ]); + + $insert = !in_array($data[$key][$primary_key], $rs[0]); + } + + // Insert + if ($insert) { + + + + $dbo->insert('mg_articoli', $data[$key]); + + add_movimento_magazzino($dbo->lastInsertedID(), $qta, [], 'Movimento da import', date()); + } + + // Update + else { + $dbo->update('mg_articoli', $data[$key], [$primary_key => $data[$key][$primary_key]]); + + $rs = $dbo->select('mg_articoli', 'id', [ + $primary_key => $data[$key][$primary_key], + ]); + add_movimento_magazzino($rs[0]['id'], $qta, [], 'Movimento da import', date()); + + } + + unset($data[$key]); + } + } + + break; +} + +return [ + [ + 'field' => 'codice', + 'label' => 'Codice', + 'primary_key' => true, + ], + [ + 'field' => 'descrizione', + 'label' => 'Descrizione', + ], + [ + 'field' => 'qta', + 'label' => 'Quantità', + ], + [ + 'field' => 'um', + 'label' => 'Unità di misura', + 'names' => [ + 'Unità di misura', + 'Unità misura', + 'unità misura', + 'unità di misura', + ], + 'query' => 'SELECT valore as result FROM mg_unitamisura WHERE LOWER(valore) = LOWER(|value|)', + ], + [ + 'field' => 'prezzo_acquisto', + 'label' => 'Prezzo acquisto', + ], + [ + 'field' => 'prezzo_vendita', + 'label' => 'Prezzo vendita', + ], + [ + 'field' => 'peso_lordo', + 'label' => 'Peso lordo (KG)', + 'names' => [ + 'Peso lordo (KG)', + 'Peso', + ], + ], + [ + 'field' => 'volume', + 'label' => 'Volume (M3)', + 'names' => [ + 'Volume (M3)', + 'volume', + ], + ], + [ + 'field' => 'id_categoria', + 'label' => 'Categoria', + 'names' => [ + 'Categoria', + 'id_categoria', + 'idcategoria', + 'categoria', + ], + ], + [ + 'field' => 'note', + 'label' => 'Note', + ] +]; diff --git a/modules/contratti/plugins/addpianficazione.php b/modules/contratti/plugins/addpianficazione.php index 8226ae5f7..8179ad861 100644 --- a/modules/contratti/plugins/addpianficazione.php +++ b/modules/contratti/plugins/addpianficazione.php @@ -43,6 +43,8 @@ if (!empty($get['idcontratto_riga'])){ (empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_righe_contratti`')[0]['max_idcontratto_riga'] : ''; (empty($idcontratto_riga)) ? $idcontratto_riga = 1 : ''; + + //orari inizio fine interventi (8h standard) $orario_inizio = '09:00'; $orario_fine = (!empty($tempo_standard)) ? date('H:i', strtotime($orario_inizio) + ((60 * 60 ) * $tempo_standard)) : '17:00'; @@ -98,7 +100,7 @@ echo ' '; - + ?> @@ -146,7 +148,7 @@ echo ' echo ' - {( "name": "filelist_and_upload", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "id_plugin": "'.$id_plugin.'", "ajax":"true", '.((!empty($readonly)) ? '"readonly":"true"' : '"readonly":"false"' ). ' )} + {( "name": "filelist_and_upload", "id_record": "'.$idcontratto_riga.'", "id_plugin": "'.$id_plugin.'", "ajax":"true", '.((!empty($readonly)) ? '"readonly":"true"' : '"readonly":"false"' ). ' )} diff --git a/modules/contratti/plugins/ajax_articoli.php b/modules/contratti/plugins/ajax_articoli.php index a2568291b..c6c114348 100644 --- a/modules/contratti/plugins/ajax_articoli.php +++ b/modules/contratti/plugins/ajax_articoli.php @@ -7,7 +7,8 @@ include_once $docroot.'/modules/articoli/modutil.php'; //$query = 'SELECT *, (SELECT codice FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS codice, mg_articoli_interventi.id AS idriga, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino'); //$rs = $dbo->fetchArray($query); -$idcontratto_riga = $get['idcontratto_riga']; +if (!empty($get['idcontratto_riga'])) + $idcontratto_riga = $get['idcontratto_riga']; $query = 'SELECT * FROM co_righe_contratti_articoli WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC'; $rs = $dbo->fetchArray($query); diff --git a/modules/contratti/plugins/ajax_righe.php b/modules/contratti/plugins/ajax_righe.php index cb23650e3..76e194da4 100644 --- a/modules/contratti/plugins/ajax_righe.php +++ b/modules/contratti/plugins/ajax_righe.php @@ -2,7 +2,8 @@ include_once __DIR__.'/../../../core.php'; -$idcontratto_riga = $get['idcontratto_riga']; +if (!empty($get['idcontratto_riga'])) + $idcontratto_riga = $get['idcontratto_riga']; $query = 'SELECT * FROM co_righe_contratti_materiali WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC'; $rs2 = $dbo->fetchArray($query); diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 8d8ecf0d4..5fe1b600b 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -133,7 +133,7 @@ if (empty($new_codice)) {
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente", "data-heavy": 0 ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente||", "data-heavy": 0 ]}
@@ -156,7 +156,7 @@ if (empty($new_codice)) {
- {[ "type": "select", "label": "", "multiple": 1, "name": "idimpianti[]", "value": "", "placeholder": "...", "ajax-source": "impianti", "icon-after": "add||source=Attività", "data-heavy": 0 ]} + {[ "type": "select", "label": "", "multiple": 1, "name": "idimpianti[]", "value": "", "placeholder": "...", "ajax-source": "impianti", "icon-after": "add||source=Attività|", "data-heavy": 0 ]}
@@ -254,7 +254,6 @@ if (empty($new_codice)) { $("#idcontratto").prop("disabled", true); $("#idimpianti").prop("disabled", true); $("#componenti").prop("disabled", true); - $("#impianti").find("button").prop("disabled", true); fetchArray($query); if (!empty($rs)) { @@ -76,7 +72,6 @@ $result .= ' //Anteprime supportate dal browser - // $extension = end((explode('.', $r['original']))); $supported_extensions = ['pdf','jpg','png','gif','jpeg','bmp']; if ( in_array($extension, $supported_extensions)){ diff --git a/update/2_4_1.sql b/update/2_4_1.sql index a32726771..bf0756466 100644 --- a/update/2_4_1.sql +++ b/update/2_4_1.sql @@ -215,3 +215,7 @@ ALTER TABLE `dt_ddt` ADD `note_aggiuntive` TEXT NOT NULL AFTER `note`; -- Fix id_plugin (zz_files) UPDATE `zz_files` SET `id_plugin` = NULL WHERE `id_plugin` = 0; + +-- Fix id_module (zz_files) +ALTER TABLE `zz_files` CHANGE `id_module` `id_module` INT(11) NULL; +UPDATE `zz_files` SET `id_module` = NULL WHERE `id_module` = 0;