diff --git a/mail.php b/mail.php index 038d0088d..9e4a67360 100755 --- a/mail.php +++ b/mail.php @@ -28,7 +28,7 @@ $smtp = $template->account; $body = $module->replacePlaceholders($id_record, $template['body']); $subject = $module->replacePlaceholders($id_record, $template['subject']); -$emails = explode( ';', $module->replacePlaceholders($id_record, '{email}') ); +$emails = explode(';', $module->replacePlaceholders($id_record, '{email}')); $id_anagrafica = $module->replacePlaceholders($id_record, '{id_anagrafica}'); // Campi mancanti @@ -84,7 +84,7 @@ echo ' $idx = 0; - foreach( $emails as $email ){ + foreach ($emails as $email) { echo '
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 1 ]} diff --git a/modules/interventi/add.php b/modules/interventi/add.php index dcae02126..e95a5f4c0 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -313,7 +313,6 @@ echo '
-
@@ -325,12 +324,11 @@ echo '
-
- Prima seleziona un cliente... +
+ '.tr('Prima seleziona un cliente').'...
-
@@ -416,25 +414,26 @@ echo ' // Gestione della modifica dell\'anagrafica anagrafica.change(function() { - updateSelectOption("idanagrafica", $(this).val()); - session_set("superselect,idanagrafica", $(this).val(), 0); + let value = $(this).val(); + updateSelectOption("idanagrafica", value); + session_set("superselect,idanagrafica",value, 0); - let value = !$(this).val(); - let placeholder = value ? "'.tr('Seleziona prima un cliente').'" : "'.tr("Seleziona un'opzione").'"; + let selected = !$(this).val(); + let placeholder = selected ? "'.tr('Seleziona prima un cliente').'" : "'.tr("Seleziona un'opzione").'"; - sede.setDisabled(value) + sede.setDisabled(selected) .getElement().selectReset(placeholder); - preventivo.setDisabled(value) + preventivo.setDisabled(selected) .getElement().selectReset(placeholder); - contratto.setDisabled(value) + contratto.setDisabled(selected) .getElement().selectReset(placeholder); - ordine.setDisabled(value) + ordine.setDisabled(selected) .getElement().selectReset(placeholder); - input("idimpianti").setDisabled(value); + input("idimpianti").setDisabled(selected); let data = anagrafica.getData(); if (data) { @@ -447,12 +446,12 @@ echo ' } if (data !== undefined) { - //Carico nel panel i dettagli del cliente - $.get("'.base_path().'/modules/interventi/ajax_details.php?op=dettagli&id_anagrafica="+$(this).val(), function(data){ - $("#dettagli_ciente").html(data); + // Carico nel panel i dettagli del cliente + $.get("'.base_path().'/ajax_complete.php?module=Interventi&op=dettagli&id_anagrafica=" + value, function(data){ + $("#dettagli_cliente").html(data); }); - }else{ - $("#dettagli_ciente").html("Prima seleziona un cliente..."); + } else { + $("#dettagli_cliente").html("'.tr('Seleziona prima un cliente').'..."); } }); diff --git a/modules/interventi/ajax/complete.php b/modules/interventi/ajax/complete.php new file mode 100644 index 000000000..3119159a4 --- /dev/null +++ b/modules/interventi/ajax/complete.php @@ -0,0 +1,112 @@ +permission != '-') { + // Contratti attivi per l'anagrafica + $contratti = Contratto::where('idanagrafica', '=', $id_anagrafica) + ->whereHas('stato', function ($query) { + $query->where('is_pianificabile', '=', 1); + }) + ->latest()->take($numero_documenti)->get(); + + echo ' +
+
+ '.tr('Contratti').':
    '; + if (!$contratti->isEmpty()) { + foreach ($contratti as $contratto) { + echo ' +
  • '.$contratto->getReference().' ['.$contratto->stato->descrizione.']: '.dateFormat($contratto->data_accettazione).' - '.dateFormat($contratto->data_conclusione).'
  • '; + } + } else { + echo ' +
  • '.tr('Nessun contratto attivo per questo cliente').'
  • '; + } + echo ' +
+
'; + } + + // Informazioni sui preventivi + $modulo_preventivi = Module::get('Preventivi'); + if ($modulo_preventivi->permission != '-') { + // Preventivi attivi + $preventivi = Preventivo::where('idanagrafica', '=', $id_anagrafica) + ->whereHas('stato', function ($query) { + $query->where('is_pianificabile', '=', 1); + }) + ->latest()->take($numero_documenti)->get(); + echo ' +
+ '.tr('Preventivi').':
    '; + if (!$preventivi->isEmpty()) { + foreach ($preventivi as $preventivo) { + echo ' +
  • '.$preventivo->getReference().' ['.$preventivo->stato->descrizione.']
  • '; + } + } else { + echo ' +
  • '.tr('Nessun preventivo attivo per questo cliente').'
  • '; + } + echo ' +
+
'; + } + + // Informazioni sui preventivi + $modulo_fatture_vendita = Module::get('Fatture di vendita'); + if ($modulo_fatture_vendita->permission != '-') { + // Fatture attive + $fatture = Fattura::where('idanagrafica', '=', $id_anagrafica) + ->whereHas('stato', function ($query) { + $query->whereIn('descrizione', ['Emessa', 'Parzialmente pagato']); + }) + ->latest()->take($numero_documenti)->get(); + echo ' +
+ '.tr('Fatture').':
    '; + if (!$fatture->isEmpty()) { + foreach ($fatture as $fattura) { + $scadenze = $fattura->scadenze; + $da_pagare = $scadenze->sum('da_pagare') - $scadenze->sum('pagato'); + echo ' +
  • '.$fattura->getReference().': '.moneyFormat($da_pagare).'
  • '; + } + } else { + echo ' +
  • '.tr('Nessuna fattura attiva per questo cliente').'
  • '; + } + echo ' +
+
'; + } + + // Note dell'anagrafica + $anagrafica = Anagrafica::find($id_anagrafica); + $note_anagrafica = $anagrafica->note; + echo ' +
+

'.tr('Note interne sul cliente').':

+ '.(!empty($note_anagrafica) ? $note_anagrafica : tr('Nessuna nota interna per questo cliente')).' +
'; + + echo ' +
'; + + break; +} diff --git a/modules/interventi/ajax_details.php b/modules/interventi/ajax_details.php deleted file mode 100644 index 33f6a082f..000000000 --- a/modules/interventi/ajax_details.php +++ /dev/null @@ -1,74 +0,0 @@ -"; - - //Contratti attivi - $rs_contratti = $dbo->fetchArray("SELECT co_contratti.id AS id, CONCAT('Contratto ', numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y'), ' - ', co_contratti.nome, ' [', (SELECT `descrizione` FROM `co_staticontratti` WHERE `co_staticontratti`.`id` = `idstato`) , ']') AS descrizione FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE idstato IN (SELECT `id` FROM `co_staticontratti` WHERE is_pianificabile=1) AND co_contratti.idanagrafica=".prepare($id_anagrafica)); - - echo " -
- CONTRATTI:
"; - if (sizeof($rs_contratti) > 0) { - foreach ($rs_contratti as $contratto) { - echo " -
- ".$contratto['descrizione'].' -
'; - } - } else { - echo 'Nessun contratto per questo cliente...'; - } - echo ' -
'; - - //Fatture emesse o parzialnente pagate - $rs_documenti = $dbo->fetchArray("SELECT co_documenti.id AS id, CONCAT('Fattura ', numero_esterno, ' del ', DATE_FORMAT(data, '%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idstatodocumento IN(SELECT id FROM co_statidocumento WHERE descrizione IN('Emessa', 'Parzialmente pagato')) AND idanagrafica=".prepare($id_anagrafica)); - - echo " -
- Fatture:
"; - if (sizeof($rs_documenti) > 0) { - foreach ($rs_documenti as $documento) { - $rs_scadenze = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento='.prepare($documento['id'])); - - echo " -
- ".$documento['descrizione'].'
'; - foreach ($rs_scadenze as $scadenza) { - echo Translator::dateToLocale($scadenza['scadenza']).' - '.Translator::numberToLocale($scadenza['da_pagare']).' €
'; - } - echo ' -
'; - } - } else { - echo 'Nessuna fattura per questo cliente...'; - } - echo ' -
'; - - //Note dell'anagrafica - $rs_anagrafica = $dbo->fetchOne('SELECT note FROM an_anagrafiche WHERE idanagrafica='.prepare($id_anagrafica)); - - if ($rs_anagrafica['note'] != '') { - echo " -
- NOTE CLIENTE:
-
".$rs_anagrafica['note'].'
-
'; - } else { - echo 'Nessuna nota per questo cliente...'; - } - - echo ' -
'; - - break; -}