<?
require_once("dblib.inc");
require_once("clublib.inc");
checkAdmin();
$message = "";
if (!isset($session['ID_Cliente']))
{ // se per qualsiasi ragione ho perso l'ID_Cliente lo rimando sull'elenco fatture
header("Location: Admin_Fatture.php");
exit;
}
if (isset($actionflag) && ( ($actionflag == "Insert") || ($actionflag == "Stampa" ) ) )
{
// recupero i dati del cliente
$cliente = getRow($customers_table, "ID_Cliente", $session['ID_Cliente']);
// gli ordini inseriti in fattura
$rs_ordini_DDT = dynQuery ('*', $orders_table, "ID_Cliente = $session[ID_Cliente] and Status = 'INSERITODDT' and Data_Scadenza = '$session[Data_Scadenza]'" );
// calcolo l'imponibile, iva e totale
$form['Imponibile'] = 0;
$form['Iva'] = 0;
$form['Totale'] = 0;
$form['Ritenuta'] = 0;
while ($a_row = dbms_fetch_array($rs_ordini_DDT))
{
$form['Iva'] = $form['Iva'] + $a_row['Prezzo'] * $a_row['Iva'] / 100 * $a_row['Protocollo'];
$form['Imponibile'] = $form['Imponibile'] + $a_row['Prezzo'] * $a_row['Protocollo'];
$form['Totale'] = $form['Imponibile'] + $form['Iva'];
$form['Ritenuta'] = $form['Imponibile'] * $session['salvrite'] /100 ;
}
// formatto le date
$form['Data_Fattura'] = strftime("%Y-%m-%d", $session['ts_data_fattura']);
$form['Scadenza'] = strftime("%Y-%m-%d", $session['ts_data_scadenza']);
// inserisco i dati nella tabella fatture, aggiorno gli ordini con l'ID_Fattura e lo Status
invoiceInsert($form['Prog_Fattura_Annuo'], $cliente['ID_Cliente'], $session['ID_Banca'], $form['Data_Fattura'], $cliente['Ragione_Sociale'], $session['Causale'], $session['ora_ddt'], $session['per_dest'], $session['ind_dest'], $session['citt_dest'], $session['aspet_ben'], $session['num_colli'], $session['tip_sped'], $session['vett_sped'], $session['PI'], $session['CF'], $cliente['Indirizzo'], $cliente['Citta'], $cliente['CAP'], $cliente['Provincia'], $session['Descrizione'], $form['Totale'], $form['Ritenuta'], $form['Totimp'], $session['Tipo_Pagamento'], $form['Scadenza'], $session['Note']);
// ricavo l'ID_Fattura appena inserito
$ID_Fattura = mysql_insert_id();
$rs_ordini_DDT = dynQuery ('*', $DDT_table, "ID_Cliente = $session[ID_Cliente] and Status = 'INSERITODDT' and Scadenza = '$session[Data_Scadenza]' " );
while ($a_row = dbms_fetch_array($rs_ordini_DDT))
{
DDTupdate ($a_row['Prog_DDT_Annuo'], $session['ID_Cliente'], $a_row['ID_Banca'], $a_row['Data_DDT'], $a_row['Ragione_Sociale'], $a_row['Causale'], $a_row['ora_ddt'], $a_row['per_dest'], $a_row['ind_dest'], $a_row['citt_dest'], $a_row['aspet_ben'], $a_row['num_colli'], $a_row['tip_sped'], $session['vett_sped'], $session['PI'], $session['CF'], $cliente['Indirizzo'], $cliente['Citta'], $cliente['CAP'], $cliente['Provincia'], $a_row['Descrizione'], $a_row['Imponibile'], $a_row['Iva'], $a_row['Totale'], $a_row['Ritenuta'], $a_row['Totimp'], $a_row['Tipo_Pagamento'], $a_row['Scadenza'], $a_row['Note'], 'FATTURATO');
}
// ripristino l'array degli ordini per l'update
$rs_ordini_DDT = dynQuery ('*', $orders_table, "ID_Cliente = $session[ID_Cliente] and Status = 'INSERITODDT' and Data_Scadenza = '$session[Data_Scadenza]'" );
while ($a_row = dbms_fetch_array($rs_ordini_DDT))
{
orderUpdate($a_row['ID_Ordine'], $session['ID_Cliente'], $a_row['Protocollo'], $a_row['Oggetto'], $ID_Fattura, $a_row ['ID_DDT'], $a_row['Data_Ordine'], $a_row['Data_Scadenza'], $a_row['Tipo_Pagamento'], $a_row['Prezzo'], $a_row['Iva'], $a_row['Ragione_Sociale'], $a_row['Cognome'], $a_row['Nome'], $a_row['PI'], $a_row['CF'], $a_row['Indirizzo'], $a_row['Citta'], $a_row['CAP'], $a_row['Provincia'], $a_row['Telefono'], $a_row['Fax'], $a_row['E_mail'],$a_row['Prog_DDT_Annuo'], 'FATTURATO');
}
// scarico le variabili di sessione per la fattura
unset($session['ID_Cliente']);
unset($session['Ragione_Sociale']);
unset($session['PI']);
unset($session['CF']);
unset($session['Tipo_Pagamento']);
unset($session['ts_data_fattura']);
unset($session['Causale']);
unset($session['Prog_Fattura_Annuo']);
unset($session['ts_data_scadenza']);
unset($session['Data_Scadenza']);
unset($session['Descrizione']);
unset($session['ora_ddt']);
unset($session['per_dest']);
unset($session['ind_dest']);
unset($session['citt_dest']);
unset($session['aspet_ben']);
unset($session['num_colli']);
unset($session['tip_sped']);
unset($session['vett_sped']);
unset($session['Note']);
// se e' insert lo rimando all'elenco fatture
if ($actionflag == "Insert")
{
header("Location: Admin_Fatture.php");
exit;
}
// altrimenti lo invio al file stampabile
if ($actionflag == "Stampa")
{
header("Location: Admin_Stampa_Fattura.php?ID_Fattura=$ID_Fattura");
exit;
}
}
// terzo caso: Annulla tutto e va ar cinema
if (isset($actionflag) && ($actionflag == "Annulla"))
{
// scarico le variabili di sessione per la fattura
unset($session['ID_Cliente']);
unset($session['Ragione_Sociale']);
unset($session['PI']);
unset($session['CF']);
unset($session['Tipo_Pagamento']);
unset($session['ts_data_fattura']);
unset($session['Causale']);
unset($session['salvrite']);
unset($session['Prog_Fattura_Annuo']);
unset($session['ts_data_scadenza']);
unset($session['Data_Scadenza']);
unset($session['Descrizione']);
unset($session['ora_ddt']);
unset($session['per_dest']);
unset($session['ind_dest']);
unset($session['citt_dest']);
unset($session['aspet_ben']);
unset($session['num_colli']);
unset($session['tip_sped']);
unset($session['vett_sped']);
unset($session['Note']);
// torno a bomba
header("Location: Admin_Fatture.php");
exit;
}
if (!isset($actionflag))
{
// recupero i dati della ditta
$azienda = getRow($config_table, "ID_Azienda", 1);
// recupero i dati del cliente
$cliente = getRow($customers_table, "ID_Cliente", $session['ID_Cliente']);
// recupero i dati della banca
$banca = getRow($bank_table, "ID_Banca", $session['ID_Banca']);
// gli ordini inseriti in fattura
$rs_ordini_fattura = dynQuery ('*', $orders_table, "ID_Cliente = $session[ID_Cliente] and Status = 'INSERITODDT' and Data_Scadenza = '$session[Data_Scadenza]'" );
// calcolo l'imponibile, iva e totale
$form['Imponibile'] = 0;
$form['Iva'] = 0;
$form['Totale'] = 0;
$form['Ritenuta'] = 0;
while ($a_row = dbms_fetch_array($rs_ordini_fattura))
{
$form['Iva'] = $form['Iva'] + $a_row['Prezzo'] * $a_row['Iva'] / 100 * $a_row['Protocollo'];
$form['Imponibile'] = $form['Imponibile'] + $a_row['Prezzo'] * $a_row['Protocollo'];
$form['Totale'] = $form['Imponibile'] + $form['Iva'];
$form['Ritenuta'] = $form['Imponibile'] * $session['salvrite'] /100 ;
}
// ripristino l'array
// reset($a_row);
$rs_ordini_fattura = dynQuery ('*', $orders_table, "ID_Cliente = $session[ID_Cliente] and Status = 'INSERITODDT' and Data_Scadenza = '$session[Data_Scadenza]'" );
// faccio qualche operazione sulle date
$data_fattura = ucwords(strftime("%d %B %Y", $session['ts_data_fattura']));
$data_scadenza = ucwords(strftime("%d %B %Y", $session['ts_data_scadenza']));
// ricavo il progressivo fattura -- e' solo temporaneo, il definitivo verra' inserito al momento
// dell'inserimento della fattura per gestire le concorrenze
$anno_riferimento = strftime("%Y");
$rs_ultima_fattura = dynQuery("*", $invoices_table, "Data_Fattura like '%$anno_riferimento%'" , "ID_Fattura Desc" );
$ultima_fattura = dbms_fetch_array($rs_ultima_fattura);
$form['Prog_Fattura_Annuo'] = $ultima_fattura['Prog_Fattura_Annuo'] + 1;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Fattura N.
<? print $form['Prog_Fattura_Annuo'] ."/". strftime("%Y"); ?>
</title>
<STYLE>
.main {font-family : Arial; font-size : 12pt}
.info { font-family : Arial; font-style : italic; font-size : xx-small; background-color : #FFFFFF;}
.style1 {font-family: Eurostile}
.style3 {font-family: Eurostile; font-weight: bold; }
</STYLE>
</head>
<body>
<!-- inizio intestazione -->
<table width="100%">
<tr>
<td align="left" valign="middle" width="7%" > </td>
<td align="left" valign="middle" width="54%" >
<span class="style1">
<? if( file_exists ( "$image_dir/logo.jpg" ))
{
print "<img src=\"$image_dir/logo.jpg\" border=0>";
}
else
{
print "<h1>".$azienda['Ragione_Sociale']."</h1>";
}
?>
</span> </td>
<td width="12%"></td>
<td width="27%" class="info">
<span class="style1">
<?
// riepilogo dati aziendali che possono essere messi anche nel footer
echo $azienda['Indirizzo']."<BR>";
echo $azienda['CAP']." ". $azienda['Citta']." ". $azienda['Provincia'] ."<BR>";
echo "Telefono ".$azienda['Telefono'] ." ";
if (!($azienda['Telefono2'] == ""))
{
echo " ".$azienda['Telefono2'] ." ";
}
if (!($azienda['Telefono3'] == ""))
{
echo " ".$azienda['Telefono3'] ." ";
}
if (!($azienda['Cell'] == ""))
{
echo "Mobile ".$azienda['Cell'] ."<br>";
}
if (!($azienda['Fax'] == ""))
{
echo "Fax ".$azienda['Fax'] ."<br>";
}
if (!($azienda['E_mail'] == ""))
{
echo "Email ".$azienda['E_mail'] ."<br>";
}
if (!($azienda['Web'] == ""))
{
echo "Web ".$azienda['Web'] ."<br>";
}
if (!($azienda['PI'] == ""))
{
echo "P. Iva ".$azienda['PI'] ."<br>";
}
if (!($azienda['CF'] == ""))
{
echo "Cod. Fisc. ".$azienda['CF'] ."<br>";
}
?>
</span>
</td>
</tr>
</table>
<table width="97%" cellpadding="10">
<tr align="left">
<td width="4%" align="left" valign="top"> </td>
<td width="40%" align="left" valign="top"><div align="left">
<p align="left"><b><br>
</b></p>
</div></td>
<td width="16%" > </td>
<td width="36%" bgcolor="#99CCFF" ><span class="style1">Spett.le<br>
<b><?print $cliente['Ragione_Sociale']?> <br>
<? Print $cliente["Indirizzo"] ?> <br>
<? Print $cliente["CAP"] ?> <? Print $cliente["Citta"] ?> <? Print $cliente["Provincia"] ?> <br>
PI <? Print $cliente["PI"] ?> <br>
CF <? Print $cliente["CF"] ?>
</b></span></td>
<td width="4%" >
<p align="left"><span class="style1"></span> </p>
</td>
</tr>
</table>
<div align="center"></div>
<table with="100%" border="0">
<tr>
<td width="20%"></td>
<td >
<p class="style1">
<? print $azienda['Citta'].", ". $data_fattura ?> </p> </td>
</tr>
</table>
<!-- fine intestazione -->
<!-- inizio corpo fattura -->
<table width="90%" align="center">
<tr>
<td width="54%" class="style1"><u><b>FATTURA N. <? print $session['Prog_Fattura_Annuo'] ."/". strftime("%Y"); ?></b></u> </td>
<td width="46%" class="style1"> </td>
</tr>
</table>
<table width="95%" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#000000" bgcolor="#99CCFF" class="FacetFormTABLE">
<tr>
<th width="7%" height="38" class="FacetFieldCaptionTD style1"> Ord.</th>
<th width="10%" class="FacetFieldCaptionTD style1">Data</th>
<th width="10%" class="FacetFieldCaptionTD style1">Quantitá</th>
<th width="58%" bordercolor="#000000" class="FacetFieldCaptionTD style1">Descrizione</th>
<th width="8%" class="FacetFieldCaptionTD style1">Prezzo</th>
<th width="7%" class="FacetFieldCaptionTD style1"> Iva % </th>
</tr>
</table>
<table width="95%" height="450" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#000000" class="FacetFormTABLE">
<tr><td valign="top">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" valign=top>
<?php
// visualizzo l'elenco degli ordini inseriti in fattura
while ($a_row = dbms_fetch_array($rs_ordini_fattura))
{
// per il momento la gestione degli allegati e' rimandata
$a_row["Allegato"] = "";
print "<tr>";
print "<td width=7% align=\"center\" valign=\"top\" class=\"FacetDataTD\">".$a_row["ID_Ordine"]." </td>";
print "<td width=10% align=\"center\" valign=\"top\" class=\"FacetDataTD\">".$a_row["Data_Ordine"]." </td>";
print "<td width=10% align=\"center\" valign=\"top\" class=\"FacetDataTD\">".$a_row["Protocollo"]." </td>
<td width=58% align=\"center\" valign=\"top\" class=\"FacetDataTD\">".$a_row["Oggetto"]." rif. DDT n. ".$a_row["Prog_DDT_Annuo"]."</td>";
print "<td width=8% align=\"center\" valign=\"top\" class=\"FacetDataTD\">".$a_row["Prezzo"]." </td>";
print "<td width=7% align=\"center\" valign=\"top\" class=\"FacetDataTD\">".$a_row["Iva"]." </td>";
print "</tr>";
}
?>
</table>
</td>
</tr>
</table>
<div align="center">
<table width="95%" height="53" class="FacetFormTABLE" border="0" cellpadding="3" cellspacing="1">
<tr>
<td width="25%" align="center" valign="top" bgcolor="#99CCFF"><div align="center" class="style1">
<p><strong>Totale Imponibile</strong></p>
<p>€ <? print formatEuro($form['Imponibile'])?></p>
</div></td>
<td width="22%" align="center" valign="top" bgcolor="#99CCFF"><p class="style1"><strong>Totale Imposta </strong></p>
<p class="style1">€ <? print formatEuro($form['Iva'])?></p></td>
<td width="14%" align="center" valign="top" bgcolor="#99CCFF" class="style1"><p><strong>Ritenuta 4% </strong></p>
<p>€ <? print formatEuro($form['Ritenuta'])?></p></td>
<td width="39%" align="center" valign="top" bgcolor="#99CCFF"><p class="style1"><strong>Totale Fattura </strong></p>
<p class="style1">€ <? print formatEuro($form['Totale'])?></p></td>
</tr>
</table>
<? $form['Totimp'] = $form['Totale']-$form['Ritenuta']; ?>
<table width="95%" height="53" class="FacetFormTABLE" border="2" cellpadding="2" cellspacing="0" bordercolor="#FFFFFF">
<tr>
<td width="31%" align="center" valign="top" bgcolor="#99CCFF"><p class="style1"><strong>Scadenza Fattura</strong> <? print ucwords($data_scadenza) ?></p>
<p class="style1"><strong>Pagamento:</strong> <? print $session['Tipo_Pagamento'] ?></p></td>
<td width="31%" align="center" valign="top" bgcolor="#99CCFF"><p class="style1">
<?
if (!$session['Note'] == "")
{
print " ". $session["Note"];
}
?>
</p> </td>
<td width="26%" align="center" valign="top" bgcolor="#99CCFF"><p class="style3">Totale Netto Fattura </p>
<p class="style3"> € <? echo formatEuro($form['Totale']- $form['Ritenuta']) ?> </p></td>
</tr>
</table>
</div>
<br>
<table border="0" cellpadding="3" cellspacing="1" class="FacetFormTABLE" align="center" width = "90%">
<form method="post" action="<? print $PHP_SELF ?>">
<!-- flag di invio del modulo -->
<input type="Hidden" name="actionflag" value="Insert">
<input type="Hidden" name="ID_Cliente" value="<? print $session['ID_Cliente'] ?>">
<input type="Hidden" name="form[Prog_Fattura_Annuo] " value="<? print $session['Prog_Fattura_Annuo'] ?>">
<input type="Hidden" name="form[Imponibile]" value="<? print $form['Imponibile'] ?>">
<input type="Hidden" name="form[Iva]" value="<? print $form['Iva'] ?>">
<input type="Hidden" name="form[Totale]" value="<? print $form['Totale'] ?>">
<input type="Hidden" name="form[Ritenuta]" value="<? print $form['Ritenuta'] ?>">
<input type="Hidden" name="form[Totimp]" value="<? print $form['Totimp'] ?>">
<input type="Hidden" name="form[salvrite]" value="<? print $session['salvrite'] ?>">
<input type="Hidden" name="form[PI]" value="<? print $cliente['PI'] ?>">
<input type="Hidden" name="form[CF]" value="<? print $cliente['CF'] ?>">
<input type="Hidden" name="form[Ragione_Sociale]" value="<? print $session['Ragione_Sociale']?>">
<input type="Hidden" name="form[Descrizione]" value="<? print $session['Descrizione']?>">
<input type="Hidden" name="form[Note]" value="<? print $session['Note']?>">
<tr>
<td colspan="2" align="right" nowrap class="FacetFooterTD">
<!-- BEGIN Button Insert --><input name="Insert" type="submit" value="Salva Fattura" class="FacetButton"><!-- END Button Insert -->
</td>
</form>
</tr>
<tr>
<td colspan="2" align="right" nowrap class="FacetFooterTD">
<form action="Admin_Anteprima_Fattura_Mese.php" method="POST">
<input type="Hidden" name="actionflag" value="Annulla">
<input name="Insert" type="submit" value="Annulla" class="FacetButton">
</form>
</td>
</tr>
</table>
</form>
</body>
</html>