He afegit una comprovació alhora d'afegir una compra nova.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Ètxelon - Veure compra</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
</head>
<body>
<H1 ALIGN=center>Ètxelon</H1>
<H2>Veure compra</H2>
<?php
include("getdb.inc");
// Fem la connexió
$connexio = mysql_connect($mysql_server, $mysql_user, $mysql_password);
mysql_select_db($mysql_db, $connexio);
$data = $_GET["id"];
// Crides a funcions per obtenir parametres
$habitants = obtenir_habitants($connexio);
$num_habitants = count($habitants);
$altres = obtenir_altres($connexio);
$gent = obtenir_gent($connexio);
$compra = obtenir_compra($data, $connexio);
$compradors = obtenir_compradors($data, $connexio);
$excepcions = obtenir_excepcions($data, $connexio);
$preu_per_compradors = $compra["preu"];
$max_compradors_ex = 0;
// La variable $comprador_excepcions_existeix servirà per saber si algú de
// gent tindrà a veure amb la compra. Indica que la persona (índex de
// l'array) existeix com a comprador d'alguna excepció.
if ($excepcions != 0)
foreach($excepcions as $key => $value)
{
$preu_per_compradors -= $excepcions[$key]["preu"];
$compradors_excepcions[$key] = obtenir_compradors_excepcions($key, $connexio);
$max_compradors_ex = max(count($compradors_excepcions[$key]),$max_compradors_ex);
foreach($compradors_excepcions[$key] as $persona => $dades)
{
$comprador_excepcions_existeix[$persona] = 1; // Existeix
}
}
?>
<H2>Dades generals</H2>
<p> Dades de la compra: </p>
<TABLE BORDER=0>
<TR>
<TH>Data i Hora:
<TD> <?php
echo date("d/m/Y H:i",$data); ?>
<TR>
<TH> Botiga:
<TD> <?php
echo strtohtml($compra["botiga"]); ?>
<TR>
<TH> Motiu:
<TD> <?php
echo strtohtml($compra["motiu"]); ?>
<TR>
<TH> Comentari:
<TD> <?php
echo strtohtml($compra["comentari"]); ?>
<TR>
<TH> Preu:
<TD> <?php
echo pricetohtml($compra["preu"]); ?>
<TR>
<TH> Preu (a repartir)
<TD> <?php
echo pricetohtml($preu_per_compradors); ?>
</TABLE>
<!-- Taula de compradors globals -->
<TABLE BORDER=1>
<CAPTION>Compradors globals</CAPTION>
<TR>
<TH>Persona
<TH>Pagat
<TH>Toca pagar
<TH>Percentatge
<TH>Toca pagar + excepcions
<TH>Balanç
<?php
$suma_pagat = 0;
$suma_toca_pagar = 0;
$suma_percentatge = 0;
$suma_toca_pagar_ex = 0;
$suma_balans = 0;
foreach($gent as $key => $value)
{
// Serveix per calcular el preu que toca pagar a cada un realment
$modificador = 0;
if ($excepcions != 0)
foreach($excepcions as $key_ex => $value_ex)
{
if(isset($compradors_excepcions[$key_ex][$key]["toca_pagar"]))
$modificador += $compradors_excepcions[$key_ex][$key]["toca_pagar"];
}
if (isset($compradors[$key]) ||
isset($comprador_excepcions_existeix[$key]))
{
if (!isset($compradors[$key]["pagat"]))
$compradors[$key]["pagat"] = 0;
if (!isset($compradors[$key]["toca_pagar"]))
$compradors[$key]["toca_pagar"] = 0;
echo "<TR>\n\t<TD>". strtohtml($gent[$key]["nom"]) . "\n";
printf("\t<TD align=right>%s\n", pricetohtml($compradors[$key]["pagat"]));
printf("\t<TD align=right>%s\n", pricetohtml($compradors[$key]["toca_pagar"]));
printf("\t<TD align=right>%s\n", pricetohtml($compradors[$key]["toca_pagar"]
* 100 / $preu_per_compradors));
printf("\t<TD align=right>%s\n", pricetohtml($compradors[$key]["toca_pagar"]
+ $modificador));
printf("\t<TD align=right>%s\n", pricetohtml($compradors[$key]["pagat"]
- ($compradors[$key]["toca_pagar"] + $modificador)));
/*
echo "\t<TD>" . $compradors[$key]["pagat"] . "\n";
echo "\t<TD>" . $compradors[$key]["toca_pagar"] . "\n";
echo "\t<TD>" . ($compradors[$key]["toca_pagar"] * 100 / $preu_per_compradors) . "\n";
echo "\t<TD>" . ($compradors[$key]["toca_pagar"] + $modificador) . "\n";
echo "\t<TD>" . ($compradors[$key]["pagat"] - ($compradors[$key]["toca_pagar"] + $modificador)) . "\n";
*/
$suma_pagat += $compradors[$key]["pagat"];
$suma_toca_pagar += $compradors[$key]["toca_pagar"];
$suma_percentatge += ($compradors[$key]["toca_pagar"] / $preu_per_compradors*100);
$suma_toca_pagar_ex += $compradors[$key]["toca_pagar"] + $modificador;
$suma_balans += $compradors[$key]["pagat"] - ($compradors[$key]["toca_pagar"] + $modificador);
}
}
echo "<TR>\n\t<TH>Total\n";
printf("\t<TD align=right>%s\n", pricetohtml($suma_pagat));
printf("\t<TD align=right>%s\n", pricetohtml($suma_toca_pagar));
printf("\t<TD align=right>%s\n", pricetohtml($suma_percentatge));
printf("\t<TD align=right>%s\n", pricetohtml($suma_toca_pagar_ex));
printf("\t<TD align=right>%s\n", pricetohtml($suma_balans));
?>
</TABLE>
<HR WIDTH="70%">
<H2>Excepcions:</H2>
<TABLE BORDER=1>
<TR>
<TH>Id
<TH>Article
<TH>Preu
<TH COLSPAN=<?php echo $max_compradors_ex ?>>Toca Pagar
<?php
if ($excepcions != 0)
foreach($excepcions as $key => $value)
{
$compradors_excepcions[$key] = obtenir_compradors_excepcions($key, $connexio);
// Poso els noms dels compradors
echo "<TR>\n\t<TD>\n\t<TD>\n\t<TD>\n";
foreach($compradors_excepcions[$key] as $key_c => $value_c)
{
echo "\t<TH>" . $gent[$key_c]["nom"] . "\n";
}
// Poso l'excepcio en si
echo "<TR>\n\t<TH>" . $key . "\n";
echo "\t<TD>" . strtohtml($excepcions[$key]["article"]) . "\n";
printf("\t<TD align=right>%s\n", pricetohtml($excepcions[$key]["preu"]));
foreach($compradors_excepcions[$key] as $key_c => $value_c)
{
printf("\t<TD align=right>%.2f\n", pricetohtml($value_c["toca_pagar"]));
}
}
?>
</TABLE>
<HR WIDTH="70%">
<H2>Llegenda</H2>
<ul>
<li>El percentatge es calcula segons el que <em>toca pagar</em> respecte al
<em>total a pagar</em>.
<li>La suma del <em>percentatge</em> ha de ser <strong>100</strong>.
<li>El <em>total pagat</em> ha de ser igual al
<em>total a pagar amb excepcions</em>.
<li>El <em>total a pagar</em> ha de ser igual al <em>preu (a repartir)</em>.
<li>El <em>balanç positiu</em> indica diners que s'han de cobrar en un futur,
i el <em>negatiu</em> diners que s'han de pagar.
<li>El camp <em>"Id"</em> de les <em>excepcions</em> és l'identificador que té
l'excepció dins la base de dades.
</ul>
<HR WIDTH="70%">
<BR>
<A HREF="index">Tornar al menú d'inici</A>
</body>
</html>