Codice PHP:
<?php
session_start();
if(!isset($_SESSION['utente']))
{
header("Location: index.php");
}
include __DIR__ . '/includes/Functions.php';
$title = "Nuova Fattura";
//PREPARAZIONE RIGHE DI DEFAULT
$output = '';
$select_forn = "Fornitore";
$data_fatt = "Data Fattura";
$numero = "Numero Fattura";
if(isset($_POST['fornitore']))
{
$select_forn = $_POST['fornitore'];
}
if(isset($_POST['numero']))
{
$numero = $_POST['numero'];
}
if(isset($_POST['data_fatt']))
{
$data_fatt = $_POST['data_fatt'];
}
$output = dettaglio_posizioni_fattura($output, 5);
$record = array();
$dettaglio = array();
$chiave = array();
try
{
include __DIR__ . '/includes/DatabaseConnection.php';
$fornitori = SelectAllOrdinata($pdo, 'fornitori', '');
if(isset($_POST['salva']))
{ $output = '<tr id="tr';
$esercizio = substr($_POST['data_fatt'],0,4);
$codice_fornitore = strtok($_POST['fornitore'], "-");
$numero_fattura = addslashes($_POST['numero']);
$data_fattura = $_POST['data_fatt'];
$tot_netto = 0;
$tot_iva = 0;
$tasso_sconto = 0;
$tot_sconto = 0;
$totale_fattura = 0;
$item = $_POST['items'];
$delitem = $_POST['del_items'];
$da_elab = $item - $delitem;
$indice = 1;
$i = 1;
$elaborati = 0;
while($elaborati != $da_elab)
{
if (isset($_POST['descrizione'.$indice]))
{ $importo_netto = 0;
$importo_iva = 0;
$importo_sconto = 0;
$importo_totale = 0;
$record[] = " ";
$dettaglio[] = " ";
$chiave[] = " ";
$posizione = $indice;
$codart = addslashes($_POST['codart'.$indice]);
$descrizione = addslashes($_POST['descrizione'.$indice]);
$qta = $_POST['quantita'.$indice];
$um = addslashes($_POST['um'.$indice]);
$prezzo_unitario = $_POST['prezzo_unitario'.$indice];
$aliva = $_POST['aliquota_iva'.$indice];
$sconto = $_POST['sconto'.$indice];
$tasso_sconto = $_POST['sconto'.$indice];
//CALCOLO IMPORTO NETTO SENZA SCONTO
if(isset($_POST['prezzo_unitario'.$indice]))
{if(isset($um))
{$importo_netto = $_POST['prezzo_unitario'.$indice] * $qta;}
}
//CALCOLO SCONTO
if($tasso_sconto == ""){$tasso_sconto = 0;}
$importo_sconto = $importo_netto * $tasso_sconto / 100;
//CALCOLO IVA
if($aliva == ""){$aliva = 0;}
$importo_iva = ($importo_netto - $importo_sconto) * $aliva / 100;
$importo_netto = $importo_netto - $importo_sconto;//IMPORTO SCONTATO
$importo_totale = $importo_netto + $importo_iva; //TOTALE POSIZIONE
//TOTALIZZAZIONE PER DATI TESTATA
$tot_netto = $tot_netto + $importo_netto;
$tot_iva = $tot_iva + $importo_iva;
$tot_sconto = $tot_sconto + $importo_sconto;
$totale_fattura = $totale_fattura + $importo_totale;
//FORMATTAZIONE NUMERI PER STAMPA A VIDEO
$st_prezzo_unitario = round($prezzo_unitario, 2);
$st_importo_iva = round($importo_iva, 2);
$st_importo_sconto = round($importo_sconto, 2);
$st_importo_totale = number_format($importo_totale, 2, ',', '.');
$record = ['esercizio' => $esercizio,
'codice_fornitore' => $codice_fornitore,
'numero_fattura' => $numero_fattura,
'posizione' => $indice,
'codart' => $codart,
'descrizione' => $descrizione,
'quantita' => $_POST['quantita'.$indice],
'um' => $um,
'prezzo_unitario' => $_POST['prezzo_unitario'.$indice],
'aliquota_iva' => $_POST['aliquota_iva'.$indice],
'importo_iva' => $importo_iva,
'sconto' => $tasso_sconto,
'importo_sconto' => $importo_sconto,
'importo_netto' => $importo_netto,
'importo_totale' => $importo_totale];
$dettaglio = ['codart' => $codart,
'descrizione' => $descrizione,
'quantita' => $_POST['quantita'.$indice],
'um' => $um,
'prezzo_unitario' => $_POST['prezzo_unitario'.$indice],
'aliquota_iva' => $_POST['aliquota_iva'.$indice],
'importo_iva' => $importo_iva,
'sconto' => $tasso_sconto,
'importo_sconto' => $importo_sconto,
'importo_netto' => $importo_netto,
'importo_totale' => $importo_totale];
$chiave = ['esercizio' => $esercizio,
'codice_fornitore' => $codice_fornitore,
'numero_fattura' => $numero_fattura,
'posizione' => $indice];
//INSERT / UPDATE DETTAGLIO
save($pdo, 'dettaglio_fatture_fornitori', $chiave, $dettaglio, $record);
$indice++; $i++;
$elaborati++;
}
else
{
$indice++;
}
}
$chiave[] = " ";
$dettaglio[] = " ";
$record[] = " ";
$dettaglio = ['data_fattura' => $data_fattura,
'importo_totale_netto' => $tot_netto,
'importo_totale_sconto' => $tot_sconto,
'importo_totale_iva' => $tot_iva,
'importo_totale' => $totale_fattura];
$record = ['esercizio' => $esercizio,
'codice_fornitore' => $codice_fornitore,
'numero_fattura' => $numero_fattura,
'data_fattura' => $data_fattura,
'importo_totale_netto' => $tot_netto,
'importo_totale_sconto' => $tot_sconto,
'importo_totale_iva' => $tot_iva,
'importo_totale' => $totale_fattura];
//INSERT / UPDATE TESTATA
save($pdo, 'testata_fatture_fornitore', $chiave, $dettaglio, $record);
}
}
catch(PDOException $e)
{
$output = 'Impossibile connettersi al database server: '. $e->getMessage() . ' in ' . $e->getFile() . ': ' . $e->getLine();
}
?>