@@ -352,7 +352,7 @@ public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea
352352
353353 if (!$ is_descrizione ) {
354354 $ iva_value = !empty ($ iva [$ key ]) ? $ iva [$ key ] : setting ('Iva predefinita ' );
355-
355+
356356 $ obj ->id_iva = $ iva_value ;
357357 $ obj ->idconto = $ conto [$ key ];
358358
@@ -369,13 +369,26 @@ public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea
369369 $ obj ->id_rivalsa_inps = $ id_rivalsa ;
370370 }
371371
372- // Nel caso il prezzo sia negativo viene gestito attraverso l'inversione della quantità (come per le note di credito)
372+ // Gestione corretta dei segni in base al tipo di documento
373+ $ tipo_documento = $ this ->getBody ()['DatiGenerali ' ]['DatiGeneraliDocumento ' ]['TipoDocumento ' ];
374+ $ is_nota_credito = ($ tipo_documento == 'TD04 ' );
375+
373376 if (!empty ($ articolo ->um ) && !empty ($ articolo ->um_secondaria ) && !empty ((float ) $ articolo ->fattore_um_secondaria ) && strtolower ((string ) $ riga ['UnitaMisura ' ]) == strtolower ((string ) $ articolo ->um_secondaria )) {
374377 $ qta = (($ riga ['Quantita ' ] ?: 1 ) / ($ articolo ->fattore_um_secondaria ?: 1 ));
375- $ prezzo = $ totale_righe_riepilogo > 0 ? $ totale_righe_riepilogo / ($ qta ?: 1 ) : -($ totale_righe_riepilogo / ($ qta ?: 1 ));
378+ // Solo per le note di credito (TD04) invertiamo i segni quando il totale è negativo
379+ if ($ is_nota_credito && $ totale_righe_riepilogo < 0 ) {
380+ $ prezzo = -($ totale_righe_riepilogo / ($ qta ?: 1 ));
381+ } else {
382+ $ prezzo = abs ($ totale_righe_riepilogo ) / ($ qta ?: 1 );
383+ }
376384 } else {
377385 $ qta = ($ riga ['Quantita ' ] ?: 1 );
378- $ prezzo = $ totale_righe_riepilogo > 0 ? $ riga ['PrezzoUnitario ' ] : -$ riga ['PrezzoUnitario ' ];
386+ // Solo per le note di credito (TD04) invertiamo i segni quando necessario
387+ if ($ is_nota_credito && $ riga ['PrezzoUnitario ' ] > 0 ) {
388+ $ prezzo = -$ riga ['PrezzoUnitario ' ];
389+ } else {
390+ $ prezzo = $ riga ['PrezzoUnitario ' ];
391+ }
379392 }
380393
381394 // Prezzo e quantità
0 commit comments