From 25f0f84adb41f8519b13dd85f413f6e8050bff10 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 9 Jul 2018 11:04:29 +0200 Subject: [PATCH] Fix generazione codice + riporto allegati per interventi pianificati --- .../contratti.pianificazioneinterventi.php | 24 ++++++++++++------- modules/interventi/actions.php | 24 +++++++++++++++++-- modules/interventi/add.php | 8 ++++--- 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/modules/contratti/plugins/contratti.pianificazioneinterventi.php b/modules/contratti/plugins/contratti.pianificazioneinterventi.php index f6eba33da..eb03faf6f 100644 --- a/modules/contratti/plugins/contratti.pianificazioneinterventi.php +++ b/modules/contratti/plugins/contratti.pianificazioneinterventi.php @@ -126,7 +126,7 @@ switch (filter('op')) { //copio righe articoli nel nuovo promemoria $dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' '); - + $_SESSION['infos'][] = tr('Promemoria intervento pianificato!'); //pianificare anche l' intervento? @@ -144,13 +144,16 @@ switch (filter('op')) { $template = str_replace('#', '%', $formato); $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); - $codice = Util\Generator::generate($formato, $rs[0]['codice']); - + if (!empty($rs[0]['codice'])) + $codice = Util\Generator::generate($formato, $rs[0]['codice']); + if (empty($codice)) { $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); - $codice = Util\Generator::generate($formato, $rs[0]['codice']); } + + + // Creo intervento $dbo->insert('in_interventi', [ @@ -183,6 +186,9 @@ switch (filter('op')) { //copio gli articoli dal promemoria all'intervento $dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' '); + + //copio gli allegati dal promemoria all'intervento + $dbo->query('INSERT INTO zz_files (nome,filename,original,category,id_module,id_record) SELECT t.nome, t.filename, t.original, t.category, '.Modules::get('Interventi')['id'].', '.$idintervento.' FROM zz_files t WHERE t.id_record = '.$idcontratto_riga.' AND t.id_plugin = '.$id_plugin.'' ); // Decremento la quantità per ogni articolo copiato $rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$idintervento.' '); @@ -191,10 +197,12 @@ switch (filter('op')) { } // Collego gli impianti del promemoria all' intervento appena inserito - $rs_idimpianti = explode(',', $idimpianti); - foreach ($rs_idimpianti as $idimpianto) { - $dbo->query('INSERT INTO my_impianti_interventi (idintervento, idimpianto) VALUES ('.$idintervento.', '.$idimpianto.' )'); - } + if (!empty($idimpianti)){ + $rs_idimpianti = explode(',', $idimpianti); + foreach ($rs_idimpianti as $idimpianto) { + $dbo->query('INSERT INTO my_impianti_interventi (idintervento, idimpianto) VALUES ('.$idintervento.', '.prepare($idimpianto).' )'); + } + } // $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.'); diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 0871d71ee..c9d7ded34 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -203,11 +203,11 @@ switch (post('op')) { $template = str_replace('#', '%', $formato); $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); - $codice = Util\Generator::generate($formato, $rs[0]['codice']); + if (!empty($rs[0]['codice'])) + $codice = Util\Generator::generate($formato, $rs[0]['codice']); if (empty($codice)) { $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); - $codice = Util\Generator::generate($formato, $rs[0]['codice']); } @@ -268,6 +268,26 @@ switch (post('op')) { //copio gli articoli dal promemoria all'intervento $dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$id_record.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' '); + + //copio gli allegati dal promemoria all'intervento + $dbo->query('INSERT INTO zz_files (nome,filename,original,category,id_module,id_record) SELECT t.nome, t.filename, t.original, t.category, '.$id_module.', '.$id_record.' FROM zz_files t WHERE t.id_record = '.$idcontratto_riga.' AND t.id_plugin = '.Plugins::get('Pianificazione interventi')['id'].'' ); + + //sposto fisicamente i file allegati + $rs_allegati = $dbo->fetchArray('SELECT filename FROM zz_files WHERE id_record = '.$id_record.' AND id_module = '.$id_module); + foreach ($rs_allegati as $rs_allegato) { + + $from_dir = $docroot.'/files'; + $to_dir = $docroot.'/files/'.Modules::get('Interventi')['directory']; + + if (move_uploaded_file($from_dir.'/'.$rs_allegato['filename'] , $to_dir.'/'.$rs_allegato['filename'])) { + + } else { + $_SESSION['warnings'][] = tr('Errore durante la copia del file da _FROM_ a _TO_', [ + '_FROM_' => $from_dir, + '_TO_' => $to_dir, + ]); + } + } // Decremento la quantità per ogni articolo copiato $rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$id_record.' '); diff --git a/modules/interventi/add.php b/modules/interventi/add.php index de0dfcbe6..1f05638d3 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -113,7 +113,8 @@ $idintervento_template = str_replace('#', '%', $idintervento_template); // Calcolo codice intervento successivo $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($idintervento_template).' ORDER BY codice DESC LIMIT 0,1'); -$new_codice = Util\Generator::generate(get_var('Formato codice intervento'), $rs[0]['codice']); +if (!empty($rs[0]['codice'])) + $new_codice = Util\Generator::generate(get_var('Formato codice intervento'), $rs[0]['codice']); if (empty($new_codice)) { $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($idintervento_template).' ORDER BY codice DESC LIMIT 0,1'); @@ -405,8 +406,9 @@ if (empty($new_codice)) { // Se l'aggiunta intervento proviene dai contratti, faccio il submit via ajax e ricarico la tabella dei contratti else if(ref == "interventi_contratti"){ - $('#elenco_interventi > tbody').load(globals.rootdir + '/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='); - $("#bs-popup").modal('hide'); + //$('#elenco_interventi > tbody').load(globals.rootdir + '/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='); + //$("#bs-popup").modal('hide'); + redirect(.'/editor.php?id_module=''&id_record=''#tab_'.); } } });