@@ -122,7 +122,7 @@ public function aggiornaScadenzario($movimenti = null)
122122
123123 // Aggiornamento delle scadenze per i singoli documenti
124124 $ documenti = $ this ->getUniqueDocumenti ($ movimenti );
125- $ scadenze = $ this ->getScadenzePerDocumenti ($ movimenti , $ documenti );
125+ $ scadenze = $ this ->getScadenzePerDocumenti ($ documenti );
126126
127127 foreach ($ movimenti as $ movimento ) {
128128 $ this ->correggiScadenza ($ movimento , $ scadenze [$ movimento ->iddocumento ], $ movimento ->iddocumento );
@@ -198,12 +198,12 @@ protected function correggiScadenza(Movimento $movimento, $scadenze = null, $id_
198198 }
199199
200200 foreach ($ scadenze as $ scadenza ) {
201- $ totale_da_distribuire = ( $ movimento [ ' totale ' ] != 0 ? Movimento::where ('id_scadenza ' , '= ' , $ scadenza )
201+ $ totale_movimenti += Movimento::where ('id_scadenza ' , '= ' , $ scadenza )
202202 ->where ('totale ' , '> ' , 0 )
203- ->sum ('totale ' ) : 0 ) ;
203+ ->sum ('totale ' );
204204 }
205205
206- $ totale_da_distribuire = abs ($ totale_da_distribuire );
206+ $ totale_da_distribuire = abs ($ totale_movimenti );
207207
208208 // Ciclo tra le rate dei pagamenti per inserire su `pagato` l'importo effettivamente pagato
209209 // Nel caso il pagamento superi la rata, devo distribuirlo sulle rate successive
@@ -256,14 +256,15 @@ private function getUniqueDocumenti($movimenti)
256256 return $ documentIds ;
257257 }
258258
259- private function getScadenzePerDocumenti ($ movimenti , $ documenti )
259+ private function getScadenzePerDocumenti ($ documenti )
260260 {
261261 $ scadenze = [];
262- foreach ($ movimenti as $ movimento ) {
263- if (in_array ($ movimento ->iddocumento , $ documenti )) {
264- if (!in_array ($ movimento ->id_scadenza , $ scadenze [$ movimento ->iddocumento ] ?? [])) {
265- $ scadenze [$ movimento ->iddocumento ][] = $ movimento ->id_scadenza ;
266- }
262+ foreach ($ documenti as $ documento ) {
263+ $ scadenze [$ documento ] = [];
264+ $ scadenze_documento = database ()->fetchArray ('SELECT id FROM co_scadenziario WHERE iddocumento= ' .prepare ($ documento ));
265+ foreach ($ scadenze_documento as $ scadenza_row ) {
266+ $ id_scadenza = $ scadenza_row ['id ' ];
267+ $ scadenze [$ documento ][$ id_scadenza ] = $ id_scadenza ;
267268 }
268269 }
269270
0 commit comments