$fatture=$dbo->fetchArray('SELECT co_documenti.id, numero_esterno, data, ragione_sociale, co_tipidocumento.descrizione, co_tipidocumento.dir FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id WHERE co_documenti.id IN('.implode(',',$id_records).') AND co_statidocumento.descrizione="Emessa"');
$rs_fatture=$dbo->fetchArray("SELECT *, co_documenti.id AS id, co_documenti.data AS data_doc FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id IN(".implode(',',$id_records).")");
$idconto_aziendale=$dbo->fetchArray('SELECT '.$field.' FROM co_pagamenti WHERE id = (SELECT idpagamento FROM co_documenti WHERE id='.prepare($rs_fatture[$i]['id']).') GROUP BY descrizione')[0][$field];
$query='SELECT SUM(ABS(da_pagare-pagato)) AS rata FROM co_scadenziario WHERE iddocumento='.prepare($rs_fatture[$i]['id'])." GROUP BY iddocumento";
$rs=$dbo->fetchArray($query);
$totale_pagato=$rs[0]['rata'];
$importo_conto_aziendale=$totale_pagato;
// conto crediti clienti
if($dir=='entrata'){
// Se è la prima nota di una fattura leggo il conto del cliente
if($rs_fatture[$i]['id']!=''){
$query='SELECT idconto_cliente FROM an_anagrafiche INNER JOIN co_documenti ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_documenti.id='.prepare($rs_fatture[$i]['id']);
$rs=$dbo->fetchArray($query);
$idconto_controparte=$rs[0]['idconto_cliente'];
}else{
$query="SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo clienti'";
$rs=$dbo->fetchArray($query);
$idconto_controparte=$rs[0]['id'];
}
}
// conto debiti fornitori
else{
// Se è la prima nota di una fattura leggo il conto del fornitore
if($rs_fatture[$i]['id']!=''){
$query='SELECT idconto_fornitore FROM an_anagrafiche INNER JOIN co_documenti ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_documenti.id='.prepare($rs_fatture[$i]['id']);
$rs=$dbo->fetchArray($query);
$idconto_controparte=$rs[0]['idconto_fornitore'];
}else{
$query="SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo fornitori'";
$rs=$dbo->fetchArray($query);
$idconto_controparte=$rs[0]['id'];
}
}
// Lettura causale movimento (documento e ragione sociale)
// Verifico se la fattura è stata pagata tutta, così imposto lo stato a "Pagato"
$query='SELECT SUM(pagato) AS tot_pagato, SUM(da_pagare) AS tot_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento='.prepare($rs_fatture[$i]['id']);
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Pagato') WHERE id=".prepare($rs_fatture[$i]['id']));
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Parzialmente pagato') WHERE id=".prepare($rs_fatture[$i]['id']));
}else{
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Emessa') WHERE id=".prepare($rs_fatture[$i]['id']));
}
// Aggiorno lo stato dei preventivi collegati alla fattura se ce ne sono
$query2='SELECT idpreventivo FROM co_righe_documenti WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' AND NOT idpreventivo=0 AND idpreventivo IS NOT NULL';
$rs2=$dbo->fetchArray($query2);
for($j=0;$j<sizeof($rs2);++$j){
$dbo->query("UPDATE co_preventivi SET idstato=(SELECT id FROM co_statipreventivi WHERE descrizione='Pagato') WHERE id=".prepare($rs2[$j]['idpreventivo']));
}
// Aggiorno lo stato dei contratti collegati alla fattura se ce ne sono
$query2='SELECT idcontratto FROM co_righe_documenti WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' AND NOT idcontratto=0 AND idcontratto IS NOT NULL';
$rs2=$dbo->fetchArray($query2);
for($j=0;$j<sizeof($rs2);++$j){
$dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='Pagato') WHERE id=".prepare($rs2[$j]['idcontratto']));
}
// Aggiorno lo stato degli interventi collegati alla fattura se ce ne sono
$query2='SELECT idintervento FROM co_righe_documenti WHERE iddocumento='.prepare($rs_fatture[$i]['id']).' AND idintervento IS NOT NULL';
$rs2=$dbo->fetchArray($query2);
for($j=0;$j<sizeof($rs2);++$j){
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_preventivo=".prepare($rs2[$j]['idpreventivo']));
'msg'=>tr('Vuoi aggiungere un movimento contabile per le fatture selezionate? (le fatture dovranno essere in stato emessa altrimenti non verranno elaborate)'),