Exemple #1
0
 function output()
 {
     global $payment_table, $name;
     print "\t <select name=\"{$this->name}\" class=\"FacetSelect\">\n";
     print "\t\t <option value=\"\"></option>\n";
     $result = dynQuery("*", $payment_table);
     while ($a_row = dbms_fetch_array($result)) {
         $selected = "";
         if ($a_row["Tipo_Pagamento"] == $this->selected) {
             $selected = "selected";
         }
         print "\t\t <option value=\"" . $a_row["Tipo_Pagamento"] . "\" {$selected} >" . $a_row["Tipo_Pagamento"] . "</option>\n";
     }
     print "\t </select>\n";
 }
 // recupero i dati della fattura da stornare
 $rs_fattura = dynQuery("*", $invoices_table, "ID_Fattura = {$form['ID_Fattura']}");
 $fattura = dbms_fetch_array($rs_fattura);
 $ts_data_nota = mktime(0, 0, 0, $mese, $giorno, $anno);
 $ts_data_fattura = strtotime($fattura['Data_Fattura']);
 if ($ts_data_nota < $ts_data_fattura) {
     $message = "La data della nota di credito ({$giorno} {$mese} {$anno}) non pu&ograve; essere inferiore alla data fattura (" . strftime("%d %m %Y", $fattura['Data_Fattura']) . ")!<br>";
 }
 // controllo che il totale non sia superiore alla fattura da stornare: se prevedo la possibilita' di creare piu' note
 // per la stessa fattura, devo controllare che non sia superiore al saldo tra fattura e note gia' emesse
 $form['Totale'] = $form['Imponibile'] * 1.2;
 if ($form['Totale'] > $fattura['Totale']) {
     $message = "Il totale della nota di credito {$form['Totale']} non pu&ograve; essere superiore al totale della fattura {$fattura['Totale']} da stornare!<br>";
 }
 // controllo che l'ultima nota inserita non abbia data successiva alla presente
 $rs_ultima_nota = dynQuery("*", $credit_notes_table, 1, "ID_Nota Desc");
 $ultima_nota = dbms_fetch_array($rs_ultima_nota);
 if ($ultima_nota) {
     $ts_ultima_nota = strtotime($ultima_nota['Data_Nota']);
 } else {
     $ts_ultima_nota = 0;
 }
 // se e' la prima nota metto il time stamp a 0
 if ($ts_data_nota < $ts_ultima_nota) {
     $message .= "La data dell'ultima nota emessa (" . strftime("%d %B %Y", $ts_ultima_nota) . ") non pu&ograve; essere superiore alla data nota !<br>";
 }
 // se tutto ok, procedo con la visualizzazione dell'anteprima
 if ($message == "") {
     // trasformo i parametri da passare in var di sessione
     $session['ID_Fattura'] = $form['ID_Fattura'];
     $session['Imponibile'] = $form['Imponibile'];
    <td colspan="4" class="FacetDataTD"><?php 
print $message;
?>
</td></tr>

   <tr>
<?php 
$headers_fatture = array("N. Fattura" => "N_Fattura", "Ragione Sociale" => "Ragione_Sociale", "Data Fattura" => "Data_Fattura", "Data Scadenza" => "Scadenza", "Totale" => "Totale", "Cancella" => "");
$headerFatture = new linkHeaders($headers_fatture);
$headerFatture->output();
?>
 
   </tr>

<?php 
$result = dynQuery('*', $spl_invoices_table, $session['where'], $orderby, $session['limit'], $session['passo']);
while ($a_row = dbms_fetch_array($result)) {
    print "<tr>";
    print "<td class=\"FacetDataTD\"><a href=\"Admin_Upd_Fattura_Fornitore.php?ID_Fattura_Acquisto=" . $a_row['ID_Fattura_Acquisto'] . "\">" . $a_row["N_Fattura"] . "</a> &nbsp;</td>";
    print "<td class=\"FacetDataTD\">" . $a_row["Ragione_Sociale"] . " &nbsp;</td><td class=\"FacetDataTD\">" . formatDate($a_row["Data_Fattura"]) . " &nbsp;</td><td class=\"FacetDataTD\">" . formatDate($a_row["Scadenza"]) . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row['Totale'] . "&nbsp;</td>";
    print "<td class=\"FacetDataTD\"><a href=\"Admin_Del_Fattura_Fornitore.php?ID_Fattura_Acquisto=" . $a_row['ID_Fattura_Acquisto'] . "\"><img src=\"images/x.gif\" alt=\"Cancella\" border=\"0\"></a></td>";
    print "</tr>";
}
?>

 </table>




$resource = dynQuery("ID_Nota, ID_Fornitore, Ragione_Sociale, Totale, Tipo_Pagamento, Data_Nota ", $spl_credit_notes_table, 1, 2, $limit, $passo);
while ($a_row = dbms_fetch_array($resource)) {
    $query = "\tINSERT INTO " . $terms_table . " \r\n\t\t\t\t(\r\n\t\t\t\tID_Nota_Fornitore,\r\n\t\t\t\tID_Fornitore, \r\n\t\t\t\tRagione_Sociale, \r\n\t\t\t\tEntrate, \r\n\t\t\t\tTipo_Pagamento, \r\n\t\t\t\tScadenza \r\n\t\t\t\t)\r\n\t\t\t\t\tVALUES \r\n\t\t\t\t(\r\n\t\t\t\t'{$a_row['ID_Nota']}',\r\n\t\t\t\t'{$a_row['ID_Fornitore']}',\r\n\t\t\t\t'{$a_row['Ragione_Sociale']}',\r\n\t\t\t\t'{$a_row['Totale']}',\t\t\t\t\r\n\t\t\t\t'{$a_row['Tipo_Pagamento']}',\r\n\t\t\t\t'{$a_row['Data_Nota']}'\t\t\t\t\r\n\t\t\t\t)";
    $result = mysql_query($query, $link);
    if (!$result) {
        print "Importazione note credito vendita non riuscita, script terminato<br>";
        print mysql_error();
        exit;
    }
}
// importazione movimenti
// prima cancello tutte gli inserimenti nella tabella
$query_svuota = "DELETE FROM " . $terms_table . " WHERE ID_Movimento <> '' ";
$result = mysql_query($query_svuota, $link);
$passo = recordCount($mov_table);
$resource = dynQuery("ID_Movimento, ID_Cliente, ID_Fornitore, Ragione_Sociale, Data_Valuta, Tipo_Pagamento, Entrate, Uscite ", $mov_table, 1, 2, $limit, $passo);
while ($a_row = dbms_fetch_array($resource)) {
    if (!empty($a_row['ID_Cliente'])) {
        $in_out = "Uscite";
        if ($a_row['Entrate'] == 0) {
            // si tratta di una nota credito pagata al cliente
            $a_row['Entrate'] = $a_row['Uscite'];
            $in_out = "Entrate";
        }
        $query = "\tINSERT INTO " . $terms_table . " \r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\tID_Movimento,\r\n\t\t\t\t\t\tID_Cliente, \r\n\t\t\t\t\t\tRagione_Sociale, \r\n\t\t\t\t\t\t{$in_out}, \r\n\t\t\t\t\t\tTipo_Pagamento, \r\n\t\t\t\t\t\tScadenza \r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\tVALUES \r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t'{$a_row['ID_Movimento']}',\r\n\t\t\t\t\t\t'{$a_row['ID_Cliente']}',\r\n\t\t\t\t\t\t'{$a_row['Ragione_Sociale']}',\r\n\t\t\t\t\t\t'{$a_row['Entrate']}',\t\t\t\t\r\n\t\t\t\t\t\t'{$a_row['Tipo_Pagamento']}',\r\n\t\t\t\t\t\t'{$a_row['Data_Valuta']}'\t\t\t\t\r\n\t\t\t\t\t\t)";
        $result = mysql_query($query, $link);
    }
    if (!empty($a_row['ID_Fornitore'])) {
        $in_out = "Entrate";
        // indica il campo
        if ($a_row['Uscite'] == 0) {
     $message .= "I campi Numero Fattura, Tipo Pagamento, Totale e Imposta sono obbligatori ! <br>";
 }
 if (empty($giorno) || empty($mese) || empty($anno)) {
     $message .= "Devi inserire la data emissione della nota di credito ! <br>";
 }
 // controllo che l'imponibile non sia 0
 if ($form['Totale'] == 0) {
     $message = "Il totale della nota di credito non pu&ograve; essere nullo!<br>";
 }
 // controllo che sia inserita e corretta la data nota
 if (!checkdate($mese, $giorno, $anno)) {
     $message .= "La data nota di credito {$giorno}-{$mese}-{$anno} non &egrave; corretta! <br>";
 }
 // controllo che la data nota di credito non sia inferiore alla data fattura
 // recupero i dati della fattura da stornare
 $rs_fattura = dynQuery("*", $spl_invoices_table, "ID_Fattura_Acquisto = {$form['ID_Fattura_Acquisto']}");
 $fattura = dbms_fetch_array($rs_fattura);
 $ts_data_nota = mktime(0, 0, 0, $mese, $giorno, $anno);
 $ts_data_fattura = strtotime($fattura['Data_Fattura']);
 if ($ts_data_nota < $ts_data_fattura) {
     $message = "La data della nota di credito " . strftime("{$anno}-{$mese}-{$giorno}") . " non pu&ograve; essere inferiore alla data fattura " . strftime($fattura['Data_Fattura']) . "!<br>";
 }
 // controllo che il totale non sia superiore alla fattura da stornare: se prevedo la possibilita' di creare piu' note
 // per la stessa fattura, devo controllare che non sia superiore al saldo tra fattura e note gia' emesse
 // $form['Totale'] = $form['Imponibile']*1.2;
 // calcolo il saldo per fare il casting a float
 $saldo = $fattura['Totale'] - $form['Totale'];
 if ($saldo < 0) {
     $message = "Il totale della nota di credito {$form['Totale']} non pu&ograve; essere superiore al totale della fattura {$fattura['Totale']} da stornare!<br>";
 }
 if ($message == "") {
    $monte_cliente[$a_row['ID_Cliente']] = monteCliente($a_row['ID_Cliente']);
    $saldo_cliente[$a_row['ID_Cliente']] = saldoCliente($a_row['ID_Cliente']);
}
$rs_saldo = dynQuery("DISTINCT ID_Fornitore", $terms_table);
// lista degli id_fornitore
while ($a_row = dbms_fetch_array($rs_saldo)) {
    $monte_fornitore[$a_row['ID_Fornitore']] = monteFornitore($a_row['ID_Fornitore']);
    $saldo_fornitore[$a_row['ID_Fornitore']] = saldoFornitore($a_row['ID_Fornitore']);
}
// i record vengono sempre ordinati con la scadenza piu' recente per ultima
$orderby = "Scadenza Desc, ID_Fattura_Vendita Desc, ID_Fattura_Acquisto Desc";
// calcolo il numero totale di record e lo inserisco come $session['passo']
$session['passo'] = recordCount($terms_table);
// seleziono solo le fatture e le note, non i movimenti
$session['where'] = " ID_Movimento = '' ";
$result = dynQuery('*', $terms_table, $session['where'], $orderby, $session['limit'], $session['passo']);
while ($a_row = dbms_fetch_array($result)) {
    // calcolo il totale delle entrate e delle uscite
    if (!isset($entrate)) {
        $entrate = 0;
    }
    if (!isset($uscite)) {
        $uscite = 0;
    }
    // resetto la variabile per il link
    $riferimento = "";
    if (!empty($a_row['ID_Fattura_Vendita'])) {
        $documento = getRow($invoices_table, "ID_Fattura", $a_row['ID_Fattura_Vendita']);
        $riferimento = "<a href=\"Admin_Stampa_Fattura.php?ID_Fattura=" . $a_row['ID_Fattura_Vendita'] . "\">Fattura " . $documento['Prog_Fattura_Annuo'] . "/" . strftime("%Y", strtotime($documento['Data_Fattura'])) . "</a> &nbsp;";
    }
    if (!empty($a_row['ID_Nota_Cliente'])) {
include "dblib.inc";
include "clublib.inc";
checkAdmin();
$message = "";
if (isset($actionflag) && $actionflag == "Delete") {
    $result = delRow($spl_credit_notes_table, "ID_Nota", $ID_Nota);
    header("Location: Admin_Note_Fornitori.php");
    exit;
}
if (!isset($actionflag)) {
    // recupero i dati della nota
    $form = getRow($spl_credit_notes_table, "ID_Nota", $ID_Nota);
    // recupero i dati del fornitore e relative fatture per lo storno
    $fornitore = getRow($suppliers_table, "ID_Fornitore", $form['ID_Fornitore']);
    $rs_fatture = dynQuery('*', $spl_invoices_table, "ID_Fornitore = {$form['ID_Fornitore']}");
    // faccio qualche operazione sulla data
    // converto la data in Unix timestamp
    $ts_Data_Nota = strtotime($form['Data_Nota']);
    // ricavo giorno, mese, anno
    $giorno = strftime("%d", $ts_Data_Nota);
    $mese = strftime("%m", $ts_Data_Nota);
    $anno = strftime("%Y", $ts_Data_Nota);
    // print $giorno ."-".$mese."-".$anno  ;
    // print strftime ($form['Data_Ordine']);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    // recupero i dati del cliente
    $cliente = getRow($customers_table, "ID_Cliente", $session['ID_Cliente']);
    // gli ordini inseriti in fattura
    // $rs_ordini_fattura = dynQuery ('*', $orders_table, "ID_Cliente = $session[ID_Cliente] and Status = 'INSERITO'" );
    // calcolo l'imponibile, iva e totale
    // okkio: session[iva] ha l'aliquota, mentre form[iva] ha l'imposta totale
    $form['Imponibile'] = $session['Imponibile'];
    $form['Iva'] = $form['Imponibile'] * $session['Iva'] / 100;
    $form['Totale'] = $form['Imponibile'] + $form['Iva'];
    // ripristino l'array
    // faccio qualche operazione sulle date
    $data_nota = strftime("%d %B %Y", $session['ts_data_nota']);
    // $data_scadenza = strftime("%d %B %Y", $session['ts_data_scadenza']);
    // ricavo di nuovo il progressivo nota -- esiste una probabilita' "non nulla" che qualcuno abbia inserito una nota nel frattempo
    $anno_riferimento = strftime("%Y");
    $rs_ultima_nota = dynQuery("*", $credit_notes_table, "Data_Nota like '%{$anno_riferimento}%'", "ID_Nota Desc");
    $ultima_nota = dbms_fetch_array($rs_ultima_nota);
    // ricavo il progressivo annuo, ma se e' la prima nota dell'anno, resetto il contatore
    if ($ultima_nota) {
        $form['Prog_Nota_Annuo'] = $ultima_nota['Prog_Nota_Annuo'] + 1;
    } else {
        $form['Prog_Nota_Annuo'] = 1;
    }
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">



<html>
    <td class="FacetFieldCaptionTD">Cliente * &nbsp;</td>

    <td class="FacetDataTD"><select name="form[ID_Cliente]" disabled  class="FacetSelect">

	

<?php 
// imposto come selzionato il cliente che e' nel database
print "<option value=\"" . $form['ID_Cliente'] . "\" selected>" . $form['Ragione_Sociale'] . "</option>\n";
?>
 
 <option value=""></option>
 
 <?php 
// recupero tutti i clienti per la select del form
$result = dynQuery('*', $customers_table);
while ($a_row = dbms_fetch_array($result)) {
    print "<option value=\"" . $a_row['ID_Cliente'] . "\">" . $a_row['Ragione_Sociale'] . " - " . $a_row['Cognome'] . "</option>\n";
}
?>

	 </select></td>

  </tr>

 <tr>

 	<td class="FacetFieldCaptionTD">Tipo Pagamento * &nbsp;</td>

    <td colspan="2" class="FacetDataTD">
	<select name="form[Tipo_Pagamento]" disabled  class="FacetSelect">
Exemple #10
0
   <tr>

    <td colspan="4" class="FacetDataTD"><?php 
print $message;
?>
</td></tr>

   <tr>

   <th class="FacetFieldCaptionTD">Banca &nbsp;</th><th class="FacetFieldCaptionTD">Indirizzo &nbsp;</th>
   <th class="FacetFieldCaptionTD">Agenzia &nbsp;</th><th class="FacetFieldCaptionTD">Abi &nbsp;</th><th class="FacetFieldCaptionTD">Cab &nbsp;</th><th class="FacetFieldCaptionTD">Numero Conto &nbsp;</th>
   <th class="FacetFieldCaptionTD">Titolare &nbsp;</th>   <th class="FacetFieldCaptionTD">Cancella &nbsp;</th>
   </tr>

<?php 
$result = dynQuery('*', $bank_table);
while ($a_row = dbms_fetch_array($result)) {
    print "<tr>";
    print "<td class=\"FacetDataTD\"><a href=\"Admin_Upd_Banca.php?ID_Banca=" . $a_row["ID_Banca"] . "\">" . $a_row["Banca"] . "</a> &nbsp;</td>";
    print "<td class=\"FacetDataTD\">" . $a_row["Indirizzo"] . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row["Agenzia"] . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row["Abi"] . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row["Cab"] . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row["Conto"] . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row["Titolare"] . " &nbsp;</td>";
    print "<td class=\"FacetDataTD\"><a href=\"Admin_Del_Banca.php?ID_Banca=" . $a_row["ID_Banca"] . "\"><img src=\"images/x.gif\" alt=\"Cancella\" border=\"0\"></a></td>";
    print "</tr>";
}
?>

 </table>



</body>
    $form['Iva'] = 0;
    $form['Totale'] = 0;
    while ($a_row = dbms_fetch_array($rs_ordini_fattura)) {
        $form['Iva'] = $form['Iva'] + $a_row['Prezzo'] * $a_row['Iva'] / 100;
        $form['Imponibile'] = $form['Imponibile'] + $a_row['Prezzo'];
        $form['Totale'] = $form['Totale'] + $a_row['Prezzo'] + $a_row['Prezzo'] * $a_row['Iva'] / 100;
    }
    // ripristino l'array
    // reset($a_row);
    $rs_ordini_fattura = dynQuery('*', $orders_table, "ID_Cliente = {$session['ID_Cliente']} and Status = 'INSERITO'");
    // faccio qualche operazione sulle date
    $data_fattura = strftime("%d %B %Y", $session['ts_data_fattura']);
    $data_scadenza = 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
    $rs_ultima_fattura = dynQuery("*", $invoices_table, 1, "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.
	<?php 
    <td colspan="4" class="FacetDataTD"><?php 
print $message;
?>
</td></tr>

   <tr>
<?php 
$headers_fatture = array("N. Nota" => "N_Nota", "Ragione Sociale" => "Ragione_Sociale", "Data Nota" => "Data_Nota", "Totale" => "Totale", "Imposta" => "Imposta", "Cancella" => "");
$headerFatture = new linkHeaders($headers_fatture);
$headerFatture->output();
?>
 
   </tr>

<?php 
$result = dynQuery('*', $spl_credit_notes_table, $session['where'], $orderby, $session['limit'], $session['passo']);
while ($a_row = dbms_fetch_array($result)) {
    print "<tr>";
    print "<td class=\"FacetDataTD\"><a href=\"Admin_Upd_Nota_Fornitore.php?ID_Nota=" . $a_row['ID_Nota'] . "\">" . $a_row["N_Nota"] . "</a> &nbsp;</td>";
    print "<td class=\"FacetDataTD\">" . $a_row["Ragione_Sociale"] . " &nbsp;</td>";
    print "<td class=\"FacetDataTD\">" . formatDate($a_row["Data_Nota"]) . " &nbsp;</td>";
    print "<td class=\"FacetDataTD\">" . $a_row['Totale'] . "&nbsp;</td>";
    print "<td class=\"FacetDataTD\">" . $a_row['Imposta'] . "&nbsp;</td>";
    print "<td class=\"FacetDataTD\"><a href=\"Admin_Del_Nota_Fornitore.php?ID_Nota=" . $a_row['ID_Nota'] . "\"><img src=\"images/x.gif\" alt=\"Cancella\" border=\"0\"></a></td>";
    print "</tr>";
}
?>

 </table>

    $form['Totale'] = 0;
    while ($a_row = dbms_fetch_array($rs_ordini_fattura)) {
        $form['Iva'] = $form['Iva'] + $a_row['Prezzo'] * $a_row['Iva'] / 100;
        $form['Imponibile'] = $form['Imponibile'] + $a_row['Prezzo'];
        $form['Totale'] = $form['Totale'] + $a_row['Prezzo'] + $a_row['Prezzo'] * $a_row['Iva'] / 100;
    }
    // ripristino l'array
    // reset($a_row);
    $rs_ordini_fattura = dynQuery('*', $orders_table, "ID_Cliente = {$session['ID_Cliente']} and Status = 'INSERITO'");
    // 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.
	<?php 
echo $border;
?>
>

 <tr>
   <th class="FacetFieldCaptionTD">Data Ordine</th>
   <th class="FacetFieldCaptionTD">Protocollo</th>
   <th class="FacetFieldCaptionTD">Oggetto</th>
   <th class="FacetFieldCaptionTD">Imponibile</th>
   <th class="FacetFieldCaptionTD">Iva</th>
 </tr>
		

		<?php 
// ripristino l'array degli ordini inseriti in fattura
$rs_ordini_fattura = dynQuery('*', $orders_table, "ID_Fattura = '{$fattura['ID_Fattura']}'");
// 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 align=\"center\" class=\"FacetDataTD\">" . formatDate($a_row["Data_Ordine"]) . " &nbsp;</td>";
    print "<td align=\"center\"  class=\"FacetDataTD\">" . $a_row["Protocollo"] . " &nbsp;</td><td class=\"FacetDataTD\">" . $a_row["Oggetto"] . " &nbsp;</td>";
    print "<td align=\"center\" class=\"FacetDataTD\">&#128; " . formatEuro($a_row["Prezzo"]) . " &nbsp;</td>";
    print "<td align=\"center\" class=\"FacetDataTD\">" . $a_row["Iva"] . "% &nbsp;</td>";
    print "</tr>";
}
?>

</table>