$rs=$dbo->fetchArray('SELECT co_tipidocumento.descrizione, dir FROM co_tipidocumento INNER JOIN co_documenti ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE co_documenti.id='.prepare($id_record));
$rs2=$dbo->fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia FROM an_anagrafiche WHERE idanagrafica='.prepare($records[0]['idanagrafica']));
$campi_mancanti=[];
if($rs2[0]['piva']==''){
if($rs2[0]['codice_fiscale']==''){
array_push($campi_mancanti,'codice fiscale');
}
}
if($rs2[0]['citta']==''){
array_push($campi_mancanti,'citta');
}
if($rs2[0]['indirizzo']==''){
array_push($campi_mancanti,'indirizzo');
}
if($rs2[0]['cap']==''){
array_push($campi_mancanti,'C.A.P.');
}
if(sizeof($campi_mancanti)>0){
echo"<div class='alert alert-warning'><i class='fa fa-warning'></i> Prima di procedere alla stampa completa i seguenti campi dell'anagrafica:<br/><b>".implode(', ',$campi_mancanti).'</b><br/>
{["type":"select","label":"<?php echo tr('Stato'); ?>","name":"idstatodocumento","required":1,"values":"query=SELECT * FROM co_statidocumento","value":"$idstatodocumento$","class":"unblockable","extra":" onchange = \"if ($('#idstatodocumento option:selected').text()=='Pagato'){if( confirm('Sicuri di voler impostare manualmente la fattura come pagata senza aggiungerla in prima nota?') ){ return true; }else{$('#idstatodocumento').selectSet(<?php echo $records[0]['idstatodocumento']; ?>); }}\""]}
{["type":"select","label":"<?php echo tr('Pagamento'); ?>","name":"idpagamento","required":1,"values":"query=SELECT id, descrizione, (SELECT id FROM co_banche WHERE id_pianodeiconti3 = co_pagamenti.idconto_<?php echo $conto; ?> ) AS idbanca FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC","value":"$idpagamento$","extra":"onchange=\"$('#idbanca').val( $(this).find('option:selected').data('idbanca') ).change(); \""]}
{["type":"select","label":"<?php echo tr('Banca'); ?>","name":"idbanca","required":0,"values":"query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted = 0 ORDER BY nome ASC","value":"$idbanca$"]}
{["type":"select","label":"<?php echo tr('Aspetto beni'); ?>","name":"idaspettobeni","placeholder":"-","values":"query=SELECT id, descrizione FROM dt_aspettobeni ORDER BY descrizione ASC","value":"$idaspettobeni$"]}
{["type":"select","label":"<?php echo tr('Causale trasporto'); ?>","name":"idcausalet","placeholder":"-","values":"query=SELECT id, descrizione FROM dt_causalet ORDER BY descrizione ASC","value":"$idcausalet$"]}
{["type":"select","label":"<?php echo tr('Porto'); ?>","name":"idporto","placeholder":"-","values":"query=SELECT id, descrizione FROM dt_porto ORDER BY descrizione ASC","value":"$idporto$"]}
{["type":"select","label":"<?php echo tr('Tipo di spedizione'); ?>","name":"idspedizione","values":"query=SELECT id, descrizione FROM dt_spedizione ORDER BY descrizione ASC","value":"$idspedizione$"]}
{["type":"select","label":"<?php echo tr('Vettore'); ?>","name":"idvettore","values":"query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Vettore') ORDER BY descrizione ASC","value":"$idvettore$"]}
{["type":"number","label":"<?php echo tr('Marca da bollo'); ?>","name":"bollo","value":"$bollo$","help":"<?php echo tr('Applicato solo se il totale della fattura è maggiore di _TOT_ €', [
$rs3=$dbo->fetchArray('SELECT SUM(da_pagare-pagato) AS differenza, SUM(da_pagare) FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento='.prepare($id_record));
// Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti
$int_query='SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_preventivi_interventi WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_contratti_promemoria WHERE idintervento IS NOT NULL)';
// Se non trovo niente provo a vedere se ce ne sono per clienti terzi
if(empty($interventi)){
// Lettura interventi non rifiutati, non fatturati e non collegati a preventivi o contratti (clienti terzi)
$int_query='SELECT COUNT(*) AS tot FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE idclientefinale='.prepare($records[0]['idanagrafica']).' AND in_statiintervento.completato=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_preventivi_interventi WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_contratti_promemoria WHERE idintervento IS NOT NULL)';
<aclass="btn btn-sm btn-primary tip"'.(!empty($interventi) ? '' : 'disabled').'data-toggle="tooltip"title="'.tr('Interventi non collegati a preventivi o contratti.').'"data-href="'.$rootdir.'/modules/fatture/add_intervento.php?id_module='.$id_module.'&id_record='.$id_record.'"data-title="Aggiungi intervento"data-target="#bs-popup">
// Lettura preventivi accettati, in attesa di conferma o in lavorazione
$prev_query='SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($records[0]['idanagrafica'])." AND id NOT IN (SELECT idpreventivo FROM co_righe_documenti WHERE NOT idpreventivo=NULL) AND idstato IN( SELECT id FROM co_statipreventivi WHERE descrizione='Accettato' OR descrizione='In lavorazione' OR descrizione='In attesa di conferma')";
<aclass="btn btn-sm btn-primary tip"'.(!empty($preventivi) ? '' : 'disabled').'title="'.tr('Preventivi accettati, in attesa di conferma o in lavorazione.').'"data-href="'.$rootdir.'/modules/fatture/add_preventivo.php?id_module='.$id_module.'&id_record='.$id_record.'"data-toggle="tooltip"data-title="Aggiungi preventivo"data-target="#bs-popup">
// Lettura contratti accettati, in attesa di conferma o in lavorazione
$contr_query='SELECT COUNT(*) AS tot FROM co_contratti WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' AND id NOT IN (SELECT idcontratto FROM co_righe_documenti WHERE NOT idcontratto=NULL) AND idstato IN( SELECT id FROM co_staticontratti WHERE fatturabile = 1) AND NOT EXISTS (SELECT id FROM co_righe_documenti WHERE co_righe_documenti.idcontratto = co_contratti.id)';
<aclass="btn btn-sm btn-primary tip"'.(!empty($contratti) ? '' : 'disabled').'title="'.tr('Contratti accettati, in attesa di conferma o in lavorazione.').'"data-href="'.$rootdir.'/modules/fatture/add_contratto.php?id_module='.$id_module.'&id_record='.$id_record.'"data-toggle="tooltip"data-title="Aggiungi contratto"data-target="#bs-popup">
$ddt_query='SELECT COUNT(*) AS tot FROM dt_ddt WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' AND idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Bozza\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt IN (SELECT id FROM dt_tipiddt WHERE dir='.prepare($dir).') AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)';
$ordini_query='SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Bozza\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoordine=(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND or_ordini.id IN (SELECT idordine FROM or_righe_ordini WHERE or_righe_ordini.idordine = or_ordini.id AND (qta - qta_evasa) > 0)';
//Visualizzo il log delle operazioni di invio email
$rs_operations=$dbo->fetchArray('SELECT DATE_FORMAT(created_at,"%d/%m/%Y") AS data , DATE_FORMAT(created_at,"%H:%i") AS ora, (SELECT name FROM zz_emails WHERE id = id_email) AS tipo_email, (SELECT username FROM zz_users WHERE id = id_utente) AS user FROM zz_operations WHERE id_record = '.prepare($id_record).' AND op = "send-email" ORDER BY created_at DESC');
//Se la mail è stata inviata, mostro la data
if(count($rs_operations)>0){
foreach($rs_operationsas$operation){
echo"
<spanclass='label label-success pull-right'>".tr('_TIPO_ inviata il _DATA_ alle _ORA_ da _USER_.', [
'_TIPO_'=>$operation['tipo_email'],
'_DATA_'=>$operation['data'],
'_ORA_'=>$operation['ora'],
'_USER_'=>$operation['user'],
]).'</span><br>';
}
}else{
echo"<span class='label label-warning pull-right'>".tr("nessuna email inviata al cliente.")."</span>\n";