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));
$dir = $rs[0]['dir'];
$tipodoc = $rs[0]['descrizione'];
unset($_SESSION['superselect']['idanagrafica']);
unset($_SESSION['superselect']['idsede_partenza']);
unset($_SESSION['superselect']['idsede_destinazione']);
unset($_SESSION['superselect']['codice_modalita_pagamento_fe']);
$_SESSION['superselect']['idsede_partenza'] = $record['idsede_partenza'];
$_SESSION['superselect']['idsede_destinazione'] = $record['idsede_destinazione'];
$_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
$_SESSION['superselect']['ddt'] = $dir;
$_SESSION['superselect']['split_payment'] = $record['split_payment'];
if ($dir == 'entrata') {
$conto = 'vendite';
} else {
$conto = 'acquisti';
}
// Informazioni sulla dichiarazione d'intento
if ($dir == 'entrata' && !empty($fattura->dichiarazione) && $fattura->stato->descrizione == 'Bozza') {
$diff = $fattura->dichiarazione->massimale - $fattura->dichiarazione->totale;
$id_iva = setting("Iva per lettere d'intento");
$iva = Aliquota::find($id_iva);
if ($diff > 0) {
echo '
'.tr("La fattura è collegata a una dichiarazione d'intento con diponibilità di _MONEY_: per collegare una riga alla dichiarazione è sufficiente inserire come IVA _IVA_", [
'_MONEY_' => moneyFormat(abs($diff)),
'_IVA_' => '"'.$iva->descrizione.'"',
]).'.
';
} elseif ($diff == 0) {
echo '
'.tr("La dichiarazione d'intento ha raggiunto il massimale previsto di _MONEY_: le nuove righe della fattura devono presentare IVA diversa da _IVA_", [
'_MONEY_' => moneyFormat(abs($fattura->dichiarazione->massimale)),
'_IVA_' => '"'.$iva->descrizione.'"',
]).'.
';
} else {
echo '
'.tr("La dichiarazione d'intento ha superato il massimale previsto di _MONEY_: per rimuovere righe della fattura dalla dichiarazione è sufficiente modificare l'IVA in qualcosa di diverso da _IVA_", [
'_MONEY_' => moneyFormat(abs($diff)),
'_IVA_' => '"'.$iva->descrizione.'"',
]).'.
';
}
}
if ($dir == 'entrata') {
$numero_previsto = verifica_numero($fattura);
if (!empty($numero_previsto)) {
echo '
'.tr("E' assente una fattura di vendita di numero _NUM_ in data precedente o corrispondente a _DATE_: si potrebbero verificare dei problemi con la numerazione corrente delle fatture", [
'_DATE_' => dateFormat($fattura->data),
'_NUM_' => '"'.$numero_previsto.'"',
]).'.
';
}
}
?>
Righe
fetchArray($int_query)[0]['tot'];
// 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($record['idanagrafica']).' AND in_statiintervento.is_completato=1 AND in_statiintervento.is_fatturabile=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id_preventivo IS NULL AND in_interventi.id NOT IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL)';
$interventi = $dbo->fetchArray($int_query)[0]['tot'];
}
echo '
';
// Lettura preventivi accettati, in attesa di conferma o in lavorazione
$prev_query = 'SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstato IN(SELECT id FROM co_statipreventivi WHERE is_fatturabile = 1) AND default_revision=1 AND co_preventivi.id IN (SELECT idpreventivo FROM co_righe_preventivi WHERE co_righe_preventivi.idpreventivo = co_preventivi.id AND (qta - qta_evasa) > 0)';
$preventivi = $dbo->fetchArray($prev_query)[0]['tot'];
echo '
';
// Lettura contratti accettati, in attesa di conferma o in lavorazione
$contr_query = 'SELECT COUNT(*) AS tot FROM co_contratti WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstato IN( SELECT id FROM co_staticontratti WHERE is_fatturabile = 1) AND co_contratti.id IN (SELECT idcontratto FROM co_righe_contratti WHERE co_righe_contratti.idcontratto = co_contratti.id AND (qta - qta_evasa) > 0)';
$contratti = $dbo->fetchArray($contr_query)[0]['tot'];
echo '
';
}
// Lettura ddt (entrata o uscita)
$ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'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)';
$ddt = $dbo->fetchArray($ddt_query)[0]['tot'];
echo '
Ddt
';
// Lettura ordini (cliente o fornitore)
$ordini_query = 'SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Accettato\', \'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)';
$ordini = $dbo->fetchArray($ordini_query)[0]['tot'];
echo '
Ordine
';
}
// Lettura articoli
$art_query = 'SELECT id FROM mg_articoli WHERE attivo = 1 AND deleted_at IS NULL';
if ($dir == 'entrata') {
$art_query .= ' AND (qta > 0 OR servizio = 1)';
} else {
//Gli articoli possono essere creati al volo direttamente dal modale di aggiunta articolo
$art_query .= ' OR 1=1';
}
$articoli = $dbo->fetchNum($art_query);
echo '
'.tr('Articolo').'
';
echo '
'.tr('Riga').'
';
echo '
'.tr('Descrizione').'
';
echo '
'.tr('Sconto/maggiorazione').'
';
}
?>