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') {