From 6edd61f28a93fd2cfd565dcb78e9d69e1ea28ac0 Mon Sep 17 00:00:00 2001 From: Beppe Date: Thu, 11 Feb 2021 15:05:29 +0100 Subject: [PATCH] Aggiunti referenti ai documenti per invio mail --- modules/anagrafiche/ajax/select.php | 2 +- modules/contratti/variables.php | 4 ++-- modules/ddt/actions.php | 1 + modules/ddt/edit.php | 10 +++++++++- modules/ddt/variables.php | 4 ++-- modules/fatture/actions.php | 1 + modules/fatture/edit.php | 15 ++++++++++++--- modules/fatture/variables.php | 3 ++- modules/ordini/actions.php | 1 + modules/ordini/edit.php | 10 +++++++++- modules/ordini/variables.php | 4 ++-- modules/preventivi/variables.php | 4 ++-- update/2_4_22.sql | 7 ++++++- 13 files changed, 50 insertions(+), 16 deletions(-) diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index 98c477127..46dd12d86 100755 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -289,7 +289,7 @@ switch ($resource) { */ case 'referenti': if (isset($superselect['idanagrafica'])) { - $query = 'SELECT id, nome AS descrizione FROM an_referenti |where| ORDER BY nome'; + $query = 'SELECT id, nome AS descrizione, an_referenti.mansione AS optgroup FROM an_referenti |where| ORDER BY optgroup, nome'; foreach ($elements as $element) { $filter[] = 'id='.prepare($element); diff --git a/modules/contratti/variables.php b/modules/contratti/variables.php index e9bdc0027..b32e3a6c0 100755 --- a/modules/contratti/variables.php +++ b/modules/contratti/variables.php @@ -18,9 +18,9 @@ */ $r = $dbo->fetchOne('SELECT *, - an_anagrafiche.email, + IF( (an_referenti.email IS NOT NULL AND an_referenti.email!=""), an_referenti.email, an_anagrafiche.email) AS email, an_anagrafiche.ragione_sociale -FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE co_contratti.id='.prepare($id_record)); +FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica LEFT OUTER JOIN an_referenti ON an_referenti.id=co_contratti.idreferente WHERE co_contratti.id='.prepare($id_record)); // Variabili da sostituire return [ diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 1998d4e6a..095287ec9 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -93,6 +93,7 @@ switch (post('op')) { 'idpagamento' => $idpagamento, 'idconto' => post('idconto'), 'idanagrafica' => $id_anagrafica, + 'idreferente' => post('idreferente'), 'idspedizione' => post('idspedizione'), 'idcausalet' => post('idcausalet'), 'idsede_partenza' => post('idsede_partenza'), diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 64fc514e3..ed242ea22 100755 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -114,8 +114,16 @@ if ($module['name'] == 'Ddt di vendita') { {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori" ]} +'; + if (!empty($record['idreferente'])) { + echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"'); + } + echo ' + {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'} ]} + '; - fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN dt_righe_ddt ON mg_articoli.id=dt_righe_ddt.idarticolo) INNER JOIN dt_ddt ON dt_ddt.id=dt_righe_ddt.idddt) WHERE dt_ddt.id='.prepare($id_record)); $id_modulo_anagrafiche = Modules::get('Anagrafiche')['id']; diff --git a/modules/ddt/variables.php b/modules/ddt/variables.php index af214de98..6e69632f8 100755 --- a/modules/ddt/variables.php +++ b/modules/ddt/variables.php @@ -18,8 +18,8 @@ */ $r = $dbo->fetchOne('SELECT *, - (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=dt_ddt.idanagrafica) AS email -FROM dt_ddt WHERE id='.prepare($id_record)); + IF( (an_referenti.email IS NOT NULL AND an_referenti.email!=""), an_referenti.email, an_anagrafiche.email) AS email +FROM dt_ddt INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=dt_ddt.idanagrafica LEFT OUTER JOIN an_referenti ON an_referenti.id=dt_ddt.idreferente WHERE dt_ddt.id='.prepare($id_record)); // Variabili da sostituire return [ diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index b4e8ef839..d5f79f054 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -88,6 +88,7 @@ switch (post('op')) { $fattura->idanagrafica = post('idanagrafica'); $fattura->idagente = post('idagente'); + $fattura->idreferente = post('idreferente'); $fattura->idpagamento = post('idpagamento'); $fattura->id_banca_azienda = post('id_banca_azienda'); $fattura->id_banca_controparte = post('id_banca_controparte'); diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index e75b03de0..d5c23631f 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -203,7 +203,7 @@ elseif ($record['stato'] == 'Bozza') {
-
+
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"'); if ($dir == 'entrata') { @@ -219,12 +219,21 @@ elseif ($record['stato'] == 'Bozza') { echo '
'; - if ($dir == 'entrata') { + if ($dir == 'entrata') { echo ' -
+
{[ "type": "select", "label": "'.tr('Agente di riferimento').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente_fattura$" ]}
'; + } + + echo ' +
'; + if (!empty($record['idreferente'])) { + echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"'); } + echo ' + {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'} ]} +
'; // Conteggio numero articoli fatture $articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record)); diff --git a/modules/fatture/variables.php b/modules/fatture/variables.php index a977f816e..61f93e1e5 100755 --- a/modules/fatture/variables.php +++ b/modules/fatture/variables.php @@ -18,7 +18,7 @@ */ $r = $dbo->fetchOne('SELECT co_documenti.*, - an_anagrafiche.email, + IF( (an_referenti.email IS NOT NULL AND an_referenti.email!=""), an_referenti.email, an_anagrafiche.email) AS email, an_anagrafiche.idconto_cliente, an_anagrafiche.idconto_fornitore, an_anagrafiche.pec, @@ -28,6 +28,7 @@ $r = $dbo->fetchOne('SELECT co_documenti.*, FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN co_tipidocumento ON co_tipidocumento.id=co_documenti.idtipodocumento + LEFT OUTER JOIN an_referenti ON an_referenti.id=co_documenti.idreferente WHERE co_documenti.id='.prepare($id_record)); if (!empty(setting('Logo stampe'))) { diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 5ceb0bc0c..87b85ed9a 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -82,6 +82,7 @@ switch (post('op')) { // Query di aggiornamento $dbo->update('or_ordini', [ 'idanagrafica' => post('idanagrafica'), + 'idreferente' => post('idreferente'), 'data' => post('data'), 'numero' => post('numero'), 'numero_esterno' => post('numero_esterno'), diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index fa00e57f9..c58be9db8 100755 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -93,7 +93,15 @@ if ($module['name'] == 'Ordini cliente') { +
+ +
'; + if (!empty($record['idreferente'])) { + echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"'); + } + echo ' + {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'} ]} +
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "required": 1, "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "'.$record['idsede'].'" ]} diff --git a/modules/ordini/variables.php b/modules/ordini/variables.php index 1dd4eef94..429975a67 100755 --- a/modules/ordini/variables.php +++ b/modules/ordini/variables.php @@ -18,8 +18,8 @@ */ $r = $dbo->fetchOne('SELECT *, - (SELECT email FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=or_ordini.idanagrafica) AS email -FROM or_ordini WHERE id='.prepare($id_record)); + IF( (an_referenti.email IS NOT NULL AND an_referenti.email!=""), an_referenti.email, an_anagrafiche.email) AS email +FROM or_ordini INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=or_ordini.idanagrafica LEFT OUTER JOIN an_referenti ON an_referenti.id=or_ordini.idreferente WHERE or_ordini.id='.prepare($id_record)); // Variabili da sostituire return [ diff --git a/modules/preventivi/variables.php b/modules/preventivi/variables.php index 9ef146e87..7ec368a35 100755 --- a/modules/preventivi/variables.php +++ b/modules/preventivi/variables.php @@ -19,8 +19,8 @@ $r = $dbo->fetchOne('SELECT *, an_anagrafiche.ragione_sociale, - an_anagrafiche.email -FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica WHERE co_preventivi.id='.prepare($id_record)); + IF( (an_referenti.email IS NOT NULL AND an_referenti.email!=""), an_referenti.email, an_anagrafiche.email) AS email +FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica LEFT OUTER JOIN an_referenti ON an_referenti.id=co_preventivi.idreferente WHERE co_preventivi.id='.prepare($id_record)); $revisione = $dbo->fetchNum('SELECT * FROM co_preventivi WHERE master_revision = (SELECT master_revision FROM co_preventivi WHERE id = '.prepare($id_record).') AND id < '.prepare($id_record)) + 1; diff --git a/update/2_4_22.sql b/update/2_4_22.sql index 26ef9bdaf..9c58cb343 100644 --- a/update/2_4_22.sql +++ b/update/2_4_22.sql @@ -116,4 +116,9 @@ INSERT INTO `fe_modalita_pagamento` (`codice`, `descrizione`) VALUES ('MP23','PagoPA'); INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `codice_modalita_pagamento_fe`) VALUES -(NULL, 'PagoPA', '0', '1', '100', 'MP23'); \ No newline at end of file +(NULL, 'PagoPA', '0', '1', '100', 'MP23'); + +-- Aggiunti referenti ai documenti +ALTER TABLE `or_ordini` ADD `idreferente` INT NULL DEFAULT NULL AFTER `idanagrafica`; +ALTER TABLE `co_documenti` ADD `idreferente` INT NULL DEFAULT NULL AFTER `idanagrafica`; +ALTER TABLE `dt_ddt` ADD `idreferente` INT NULL DEFAULT NULL AFTER `idanagrafica`; \ No newline at end of file