<?php
include("Config.php");
// dir per le immagini e gli uploads
$image_dir = "images/";
$image_url = "images/";
$upload_dir = "uploads/";
$upload_url = "uplloads/";
// coppia di funzioni che inseriscono gli slash a seconda della configurazione di PHP
function ref_addslashes (&$var)
{
$var = addcslashes($var, "'");
}
function makeSlashes ($array)
{
$magic_quotes = get_magic_quotes_gpc();
if ($magic_quotes == "0")
{
array_walk ($array, "ref_addslashes");
}
return $array;
}
// funzione che controlla se il sistema e' stato configurato
function checkConfig ()
{
global $config_table;
$result = dynQuery("*", $config_table);
$config = mysql_num_rows($result);
return $config;
}
setlocale (LC_ALL, 'it');
class select_codice_iva
// classe per la generazione di select box dinamiche per i campi iva
{
function addSelected ($selected)
{
$this->selected=$selected;
}
function addSelectName($name)
{
$this->name=$name;
}
function output()
{
global $vat_table, $name;
print "\t <select name=\"$this->name\" class=\"FacetSelect\">\n";
// print "\t\t <option value=\"\"></option>\n";
$result = dynQuery("*", $vat_table);
while ($a_row = dbms_fetch_array($result))
{
$selected = "";
if($a_row["Percentuale"] == $this->selected)
$selected = "selected";
print "\t\t <option value=\"".$a_row["Percentuale"]."\" $selected >".$a_row["Descrizione"]."</option>\n";
}
print "\t </select>\n";
}
}
class selectPagamento
// classe per la generazione di select box per il tipo pagamento
{
function addSelected ($selected)
{
$this->selected=$selected;
}
function addSelectName($name)
{
$this->name=$name;
}
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";
}
}
class selectBank
// classe per la generazione dinamica di select box con le banche aziendali
{
var $name;
// assegno subito il nome della select box
function selectBank($name)
{
$this -> name = $name;
}
function addSelected ($selected)
{
$this->selected = $selected;
}
function output()
{
global $bank_table;
print "\t <select name=\"$this->name\" class=\"FacetSelect\">\n";
print "\t\t <option value=\"\"></option>\n";
$result = dynQuery("*", $bank_table);
while ($a_row = dbms_fetch_array($result))
{
$selected = "";
if($a_row["ID_Banca"] == $this->selected)
$selected = "selected";
print "\t\t <option value=\"".$a_row["ID_Banca"]."\" $selected >".$a_row["Banca"]."</option>\n";
}
print $this->selected;
print "\t </select>\n";
}
}
class selectFornitore
// classe per la generazione dinamica di select box con i fornitori
{
var $name;
// assegno subito il nome della select box
function selectFornitore($name)
{
$this -> name = $name;
}
function addSelected ($selected)
{
$this->selected = $selected;
}
function output()
{
global $suppliers_table;
print "\t <select name=\"$this->name\" class=\"FacetSelect\">\n";
print "\t\t <option value=\"\"></option>\n";
$result = dynQuery("*", $suppliers_table, 1, "Ragione_Sociale , Cognome");
while ($a_row = dbms_fetch_array($result))
{
$selected = "";
if($a_row["ID_Fornitore"] == $this->selected)
$selected = "selected";
print "\t\t <option value=\"".$a_row["ID_Fornitore"]."\" $selected >".$a_row["Ragione_Sociale"]." ".$a_row["Cognome"]."</option>\n";
}
print $this->selected;
print "\t </select>\n";
}
}
class selectCliente
// classe per la generazione dinamica di select box con i fornitori
{
var $name;
// assegno subito il nome della select box
function selectCliente($name)
{
$this -> name = $name;
}
function addSelected ($selected)
{
$this->selected = $selected;
}
function output()
{
global $customers_table;
print "\t <select name=\"$this->name\" class=\"FacetSelect\">\n";
print "\t\t <option value=\"\"></option>\n";
$result = dynQuery("*", $customers_table, 1, "Ragione_Sociale , Cognome");
while ($a_row = dbms_fetch_array($result))
{
$selected = "";
if($a_row["ID_Cliente"] == $this->selected)
$selected = "selected";
print "\t\t <option value=\"".$a_row["ID_Cliente"]."\" $selected >".$a_row["Ragione_Sociale"]." ".$a_row["Cognome"]."</option>\n";
}
print $this->selected;
print "\t </select>\n";
}
}
class selectDate
// classe per la generazione dinamica di select box per le date
{
// le proprieta' sono i nomi dei select e i tag "selected" sulle option
var $giorno;
var $mese;
var $anno;
var $dayselected;
var $monthselected;
var $yearselected;
// assegno subito il nome delle select box
function selectDate($giorno, $mese, $anno)
{
$this -> giorno = $giorno;
$this -> mese = $mese;
$this -> anno = $anno;
}
function daySelected ($selected)
{
if (!$selected)
$selected = strftime("%d");
$this->dayselected = $selected;
}
function monthSelected ($selected)
{
if (!$selected)
$selected = strftime("%m");
$this->monthselected = $selected;
}
function yearSelected ($selected)
{
if (!$selected)
$selected = strftime("%Y");
$this->yearselected = $selected;
}
function output()
{
// select del giorno
print "\t <select name=\"$this->giorno\" class=\"FacetSelect\">\n";
for( $counter = 1; $counter <= 31; $counter++ )
{
$selected = "";
if($counter == $this->dayselected)
$selected = "selected";
print "\t\t <option value=\"$counter\" $selected >$counter</option>\n";
}
print "\t </select>\n";
// select del mese
print "\t <select name=\"$this->mese\" class=\"FacetSelect\">\n";
for( $counter = 1; $counter <= 12; $counter++ )
{
$selected = "";
if($counter == $this->monthselected)
$selected = "selected";
$nome_mese = ucwords(strftime("%B", mktime (0,0,0,$counter,1,0)));
print "\t\t <option value=\"$counter\" $selected >$nome_mese</option>\n";
}
print "\t </select>\n";
// select del anno
print "\t <select name=\"$this->anno\" class=\"FacetSelect\">\n";
for( $counter = 2000; $counter <= 2010; $counter++ )
{
$selected = "";
if($counter == $this->yearselected)
$selected = "selected";
print "\t\t <option value=\"$counter\" $selected >$counter</option>\n";
}
print "\t </select>\n";
}
}
/* SEZIONE PER L'ORDINAMENTO DEI RECORD IN OUTPUT */
/* SONO IMPOSTATE TUTE LE VARIABILI NECESSARIE ALLA FUNZIONE dynQuery */
// imposto le variabili di sessione con i valori di default
if (!isset ($session["flag_order"]))
$session["flag_order"] = "" ;
if (!isset ($session["limit"]))
$session["limit"] = "0";
if (!isset ($session["passo"]))
$session["passo"] = "40";
if (!isset ($session["field"]))
$session["field"] = "2" ;
//flag di ordinamento ascendente e discendente
if (isset ($flag_order))
{
if ($session["flag_order"]=="ASC")
{
$session["flag_order"]="DESC";
}
elseif (!($session["flag_order"] == "ASC"))
{
$session["flag_order"]="ASC";
}
}
// se $PHP_SELF e' compreso nel referer (ricaricamento dalla stessa pagina), conservo tutte le variabili di
// sessione, altrimenti resetto $session['field'], $session['limit'], $session['passo'], $session['where'] e session['order']
if (!isset($_SERVER["HTTP_REFERER"]))
{
$_SERVER["HTTP_REFERER"] = "";
}
if (!strstr($_SERVER["HTTP_REFERER"], $PHP_SELF))
{
$session['field'] = "2"; // valore che indica alla dynQuery che orderby non va usato
$session['flag_order'] = "DESC"; // per default utilizziamo un LIFO, i dati piu' recenti sono i primi
$session['limit'] = "0";
$session['passo'] = "40";
$orderby = $session['field'] ." ".$session['flag_order'];
$session['where'] = '1'; // come insegna phpMyAdmin....
/*
print "<pre>";
print_r ($_SERVER);
print_r ($_GET);
print_r ($_POST);
print "</pre>";
*/
}
// imposto il nuovo campo per l'ordinamento
if (isset ($field))
$session["field"] = $field;
$orderby = $session["field"]." ".$session["flag_order"];
if (isset ($limit))
$session["limit"] = $limit;
// statement where di default = 1
if (!isset ($session['where']))
$session['where'] = "1";
else
$session['where'] = $session['where'];
/* FINE IMPOSTAZIONE VARIABILI */
// classe che visualizza i pulsanti per la navigazione dei record
// input= tabella, session[where], limit e passo.
// calcola i valori da impostare sulla variabile limit per scorrere i record
// visualizza il numero totale di record e i pulsanti
class recordnav
{
var $table;
var $where;
var $limit;
var $passo;
var $last;
function recordnav($table, $where, $limit, $passo)
{
// global $limit, $passo;
$this->table = $table;
$this->where = $where;
$this->limit = $limit;
$this->passo = $passo;
// faccio il conto totale dei record selezionati dalla query
$this->count = queryCount($table, $where);
// (recordcount - modulo del numero di record diviso il passo)
$this->last = queryCount($table, $where)-(queryCount($table, $where)%$this->passo);
// return $last;
}
function output ()
{
global $PHP_SELF;
$first = 0;
$next = $this->limit + $this->passo;
$prev = $this->limit - $this->passo;
// se e' arrivato a fondo scala imposto il fermo
if ($prev <= 0)
$prev = 0;
if ($next >= $this->last)
$next = $this->last;
if ( ($this->count) <= $this->passo )
{
// non visualizzo la barra di navigazione dei record
print "<p><div align=\"center\"><font class=\"FacetFormDataFont\">Record trovati $this->count</font></div>";
}
else
{
print "<p><div align=\"center\"><font class=\"FacetFormDataFont\">Record trovati $this->count</font></div>";
print "<div align=\"center\">";
print "| << <a href=\"$PHP_SELF?limit=0\" >Primo</a> ";
print "| < <a href=\"$PHP_SELF?limit=$prev\">Precedente</a> ";
print "| <a href=\"$PHP_SELF?limit=$next\">Successivo</a> > ";
print "| <a href=\"$PHP_SELF?limit=$this->last\">Ultimo</a> >> |";
print "</div>";
}
}
}
class linkHeaders
// classe per la creazione di headers cliccabili per l'ordinamento dei record
// accetta come parametro un array associativo composto dalle label e relativi campi del db
{
var $headers = array(); // label e campi degli headers
function linkHeaders ($headers)
{
$this->headers = $headers;
}
function output()
{
global $headers, $PHP_SELF;
foreach($this->headers as $header => $field)
{
if (!$field == "")
print "\t<th class=\"FacetFieldCaptionTD\"><a href=\"".$PHP_SELF."?field=".$field."&flag_order=\" title=\"Ordina per ".$header."\">".$header."</a></th>\n\r";
else
print "\t<th class=\"FacetFieldCaptionTD\">".$header."</th>\n\r";
}
}
}
function formatEuro($number)
{
//formatta l'argomento con due decimali, e' buono anche per i dollari (paypal)
$result = number_format($number, 2, ',', '.');
// money_format('%.2n', $numero)."\n";
return $result;
}
function formatNumber($numero)
{
// formatta il numero in modo comprensibile per il DBMS
$result = number_format($numero, 2, '','');
return $result;
}
function formatDate($data)
{
$result = ucwords(strftime("%d %B %Y", strtotime($data)));
return $result;
}
function sendEmail($to, $from, $subject, $body)
{
$error="Mail Inviata";
mail ($to, $subject, $body, "From: $from")
or $error = "Impossibile inviare l'email";
return $error;
}
function cleanMemberSession ($id, $login, $password)
{
global $session;
$session["id"] = $id;
$session["Login"] = $login;
$session["Password"] = $password;
$session["logged_in"] = true;
}
function checkAdmin()
{
global $session, $logged_in, $admin_table;
$session["logged_in"] = false;
// $session["E_Mail"] = "Null";
if (! isset ($session["Login"]))
{
$session["Login"]= "Null";
}
$club_row = getRow($admin_table, "Login", $session["Login"]);
if (!$club_row || $club_row["Password"] != $session["Password"])
{
require_once("Login_admin.php");
exit;
}
$session["logged_in"] = true;
return $club_row;
}
function checkUser()
{
global $session, $logged_in;
$session["logged_in"] = false;
if (! isset ($session["E_Mail"]))
{
$session["E_Mail"]= "Null";
}
$club_row = getRow("pws_clienti", "E_Mail", $session["E_Mail"]);
if (!$club_row || $club_row["Password"] != $session["Password"] || $club_row["Abilitato"] = '0')
{
header("Location: Login.php");
exit;
}
$session["logged_in"] = true;
return $club_row;
}
function Saldo($ID_Banca, $Data)
// calcola il saldo della banca in oggetto (ID_Banca=0 => Cassa) dalla tabella movimenti fino alla data specificata
{
global $link, $mov_table;
$query = " SELECT SUM(Entrate) - SUM(Uscite) FROM $mov_table where ID_Banca = '$ID_Banca' AND Data_Valuta <= '$Data' ";
$result = mysql_query($query, $link);
if (! $result )
{
$result = "<br>Errore nell'esecuzione della funzione <b>Saldo</b> <br>Query= <b>$query</b> <br> Errore Mysql = <b>".mysql_error()."</b><br>";
print $result;
}
$array_saldo = mysql_fetch_array( $result);
return $array_saldo['0'];
}
function saldoCliente($ID_Cliente)
// calcola il saldo del cliente dalla tabella scadenzario
{
global $link, $terms_table;
$query = " SELECT SUM(Entrate) - SUM(Uscite) FROM $terms_table where ID_Cliente = '$ID_Cliente' ";
$result = mysql_query($query, $link);
if (! $result )
{
$result = "<br>Errore nell'esecuzione della funzione <b>saldoCliente</b> <br>Query= <b>$query</b> <br> Errore Mysql = <b>".mysql_error()."</b><br>";
print $result;
}
$array_saldo = mysql_fetch_array( $result);
return $array_saldo['0'];
}
function saldoFornitore($ID_Fornitore)
// calcola il saldo del fornitore dalla tabella scadenzario
{
global $link, $terms_table;
$query = " SELECT SUM(Entrate) - SUM(Uscite) FROM $terms_table where ID_Fornitore = '$ID_Fornitore' ";
$result = mysql_query($query, $link);
if (! $result )
{
$result = "<br>Errore nell'esecuzione della funzione <b>saldoFornitore</b> <br>Query= <b>$query</b> <br> Errore Mysql = <b>".mysql_error()."</b><br>";
print $result;
}
$array_saldo = mysql_fetch_array( $result);
return $array_saldo['0'];
}
function monteCliente($ID_Cliente)
// calcola il monte pagamenti del cliente dalla tabella scadenzario
{
global $link, $terms_table;
$query = " SELECT SUM(Uscite) FROM $terms_table where ID_Cliente = '$ID_Cliente' AND ID_Movimento <> '' ";
$result = mysql_query($query, $link);
if (! $result )
{
$result = "<br>Errore nell'esecuzione della funzione <b>monteCliente</b> <br>Query= <b>$query</b> <br> Errore Mysql = <b>".mysql_error()."</b><br>";
print $result;
}
$array_saldo = mysql_fetch_array( $result);
return $array_saldo['0'];
}
function monteFornitore($ID_Fornitore)
// calcola il monte pagamenti al fornitore dalla tabella scadenzario
{
global $link, $terms_table;
$query = " SELECT SUM(Entrate) - SUM(Uscite) FROM $terms_table where ID_Fornitore= '$ID_Fornitore' AND ID_Movimento <> '' ";
$result = mysql_query($query, $link);
if (! $result )
{
$result = "<br>Errore nell'esecuzione della funzione <b>monteFornitore</b> <br>Query= <b>$query</b> <br> Errore Mysql = <b>".mysql_error()."</b><br>";
print $result;
}
$array_saldo = mysql_fetch_array( $result);
return $array_saldo['0'];
}
?>