|
924 | 924 | ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva') |
925 | 925 | ->where('co_righe_documenti.iddocumento', $fattura->id) |
926 | 926 | ->whereIn('co_iva.codice_natura_fe', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9']) |
927 | | - ->sum('subtotale'); |
| 927 | + ->sum('subtotale'); |
928 | 928 |
|
929 | 929 | $sconto = $database->table('co_righe_documenti') |
930 | 930 | ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva') |
931 | 931 | ->where('co_righe_documenti.iddocumento', $fattura->id) |
932 | 932 | ->whereIn('co_iva.codice_natura_fe', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9']) |
933 | 933 | ->sum('sconto'); |
934 | 934 |
|
935 | | - $totale_imponibile = setting('Utilizza prezzi di vendita comprensivi di IVA') ? ($imponibile - $sconto) + (($imponibile - $sconto) * $iva->percentuale / 100) : ($imponibile - $sconto); |
936 | | - $totale_imponibile = $fattura->tipo->reversed == 1 ? -$totale_imponibile : $totale_imponibile; |
| 935 | + $imponibile_indetraibile = $database->table('co_righe_documenti') |
| 936 | + ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva') |
| 937 | + ->where('co_righe_documenti.iddocumento', $fattura->id) |
| 938 | + ->where('co_iva.indetraibile', 100) |
| 939 | + ->sum('subtotale'); |
| 940 | + |
| 941 | + $sconto_indetraibile = $database->table('co_righe_documenti') |
| 942 | + ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva') |
| 943 | + ->where('co_righe_documenti.iddocumento', $fattura->id) |
| 944 | + ->where('co_iva.indetraibile', 100) |
| 945 | + ->sum('sconto'); |
| 946 | + |
| 947 | + $iva_indetraibile = $database->table('co_righe_documenti') |
| 948 | + ->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva') |
| 949 | + ->where('co_righe_documenti.iddocumento', $fattura->id) |
| 950 | + ->where('co_iva.indetraibile', 100) |
| 951 | + ->first(); |
| 952 | + |
| 953 | + if ($imponibile) { |
| 954 | + $totale_imponibile = setting('Utilizza prezzi di vendita comprensivi di IVA') ? ($imponibile - $sconto) + (($imponibile - $sconto) * $iva->percentuale / 100) : ($imponibile - $sconto); |
| 955 | + $totale_imponibile = $fattura->tipo->reversed == 1 ? -$totale_imponibile : $totale_imponibile; |
| 956 | + } else if ($imponibile_indetraibile) { |
| 957 | + $totale_imponibile = setting('Utilizza prezzi di vendita comprensivi di IVA') ? ($imponibile_indetraibile - $sconto_indetraibile) + (($imponibile_indetraibile - $sconto_indetraibile) * $iva_indetraibile->percentuale / 100) : ($imponibile_indetraibile - $sconto_indetraibile); |
| 958 | + $totale_imponibile = $fattura->tipo->reversed == 1 ? -$totale_imponibile : $totale_imponibile; |
| 959 | + } |
937 | 960 |
|
938 | 961 | $autofattura = Fattura::build($anagrafica, $tipo, $data, $id_segment); |
939 | 962 | $autofattura->idconto = $fattura->idconto; |
|
944 | 967 |
|
945 | 968 | $riga = Riga::build($autofattura); |
946 | 969 | $riga->descrizione = $tipo->getTranslation('title'); |
947 | | - $riga->id_iva = $iva->id; |
| 970 | + $riga->id_iva = $imponibile ? $iva->id: $iva_indetraibile->id; |
948 | 971 | $riga->idconto = setting('Conto per autofattura') ?: setting('Conto predefinito fatture di vendita'); |
949 | | - $riga->setPrezzoUnitario($totale_imponibile, $iva->id); |
| 972 | + $riga->setPrezzoUnitario($totale_imponibile, $imponibile ? $iva->id: $iva_indetraibile->id); |
950 | 973 | $riga->qta = 1; |
951 | 974 | $riga->save(); |
952 | 975 |
|
|
0 commit comments