mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-28 09:17:55 +01:00
Fix su calcolo movimenti in caso di insoluto
This commit is contained in:
parent
f0f4b273ae
commit
5fb9dc76ff
@ -110,8 +110,12 @@ foreach ($id_documenti as $id_documento) {
|
|||||||
$conto_field = 'idconto_'.($dir == 'entrata' ? 'cliente' : 'fornitore');
|
$conto_field = 'idconto_'.($dir == 'entrata' ? 'cliente' : 'fornitore');
|
||||||
$id_conto_controparte = $fattura->anagrafica[$conto_field];
|
$id_conto_controparte = $fattura->anagrafica[$conto_field];
|
||||||
|
|
||||||
// Lettura delle scadenza della fattura
|
// Se sto registrando un insoluto, leggo l'ultima scadenza pagata altrimenti leggo la scadenza della fattura
|
||||||
|
if ($is_insoluto) {
|
||||||
|
$scadenze = $dbo->fetchArray('SELECT id, ABS(da_pagare) AS rata, iddocumento FROM co_scadenziario WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) = ABS(pagato) ORDER BY updated_at DESC LIMIT 0, 1');
|
||||||
|
} else {
|
||||||
$scadenze = $dbo->fetchArray('SELECT id, ABS(da_pagare - pagato) AS rata, iddocumento FROM co_scadenziario WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) > ABS(pagato) ORDER BY YEAR(scadenza) ASC, MONTH(scadenza) ASC');
|
$scadenze = $dbo->fetchArray('SELECT id, ABS(da_pagare - pagato) AS rata, iddocumento FROM co_scadenziario WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) > ABS(pagato) ORDER BY YEAR(scadenza) ASC, MONTH(scadenza) ASC');
|
||||||
|
}
|
||||||
|
|
||||||
// Selezione prima scadenza
|
// Selezione prima scadenza
|
||||||
if ($singola_scadenza && !empty($scadenze)) {
|
if ($singola_scadenza && !empty($scadenze)) {
|
||||||
@ -134,21 +138,13 @@ foreach ($id_documenti as $id_documento) {
|
|||||||
// Riga aziendale
|
// Riga aziendale
|
||||||
$totale = sum(array_column($scadenze, 'rata'));
|
$totale = sum(array_column($scadenze, 'rata'));
|
||||||
|
|
||||||
if ($totale != 0) {
|
|
||||||
if ($nota_credito) {
|
|
||||||
$totale_rata = -$totale;
|
|
||||||
} else {
|
|
||||||
$totale_rata = $totale;
|
|
||||||
}
|
|
||||||
|
|
||||||
$righe_documento[] = [
|
$righe_documento[] = [
|
||||||
'iddocumento' => $scadenze[0]['iddocumento'],
|
'iddocumento' => $scadenze[0]['iddocumento'],
|
||||||
'id_scadenza' => $scadenze[0]['id'],
|
'id_scadenza' => $scadenze[0]['id'],
|
||||||
'id_conto' => $id_conto_aziendale,
|
'id_conto' => $id_conto_aziendale,
|
||||||
'dare' => ($dir == 'entrata') ? $totale_rata : 0,
|
'dare' => (($dir == 'entrata' && !$nota_credito && !$is_insoluto) || ($dir == 'uscita' && ($nota_credito || $is_insoluto))) ? $totale : 0,
|
||||||
'avere' => ($dir == 'entrata') ? 0 : $totale_rata,
|
'avere' => (($dir == 'entrata' && !$nota_credito && !$is_insoluto) || ($dir == 'uscita' && ($nota_credito || $is_insoluto))) ? 0 : $totale,
|
||||||
];
|
];
|
||||||
}
|
|
||||||
|
|
||||||
$movimenti = array_merge($movimenti, $righe_documento);
|
$movimenti = array_merge($movimenti, $righe_documento);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user