Ètxelon
Afegir nova compra
Utilització
- Per evitar que una compra s'inserti dues vegades, és important que aquesta
tingui la data i la hora del rebut de compra.
- El comentari és totalment opcional. És normal no escriure-hi res.
- El preu ha de ser la suma del que s'ha pagat.
- Els percentatges han de sumar 100.
- En cas de no utilitzar percentatges, cal sel·leccionar la opció
"Cal pagar". El contingut d'aquests camps (per raons lògiques) ha
de ser el preu que toca pagar a cadascú finalment. Això significa que s'han
de tenir en compte les excepcions (i els que les paguen) a l'hora d'utilitzar
la opció "Cal pagar". La suma dels camps "Cal pagar" ha
de sumar igualment el preu de la compra.
- S'ha d'anar en compte en no deixar un preu buit en un article (s'assumirà
0), o en no sel·leccionar cap comprador. Això és típic quan
sense voler s'emplena el camp "article" d'una excepció que no volem
que es tingui en compte.
- És important saber el número d'excepcions i de gent no-habitant del pis que
intervindrà en la compra abans de teclejar-la, ja que alterar qualsevol de
les variables que alteren el formulari suposa perdre totes les dades
dels camps ja emplenats.
";
// Comprovem el resultat de l'inserció a "compres"
if (!$resultat)
{
?>
ERROR: Error al actualitzar les dades a
compres!
";
}
else
{
$preu_per_compradors = $_POST["preu"];
// Afegim les excepcions
for ($i = 1; $i <= $_POST["num_excepcions"]; $i++)
{
if($_POST["earticle"][$i] != "")
{
settype($_POST["epreu"][$i], "double"); // Preu=0 ERROR TO HANDLE ***
$preu_per_compradors -= $_POST["epreu"][$i];
// ** El preu de l'article ha de ser inferior al preu de la compra!
// Inserto la fila a 'excepcions'
$query = "INSERT INTO excepcions (data,article,preu) VALUES(FROM_UNIXTIME($data),'" . strtosql($_POST["earticle"][$i]) .
"',". $_POST["epreu"][$i] . ");";
$resultat = 1; // Per si no es fa la query, assumim que no hi ha errors
if ($touchdb)
$resultat = mysql_query($query, $connexio);
else
echo $query . "
";
// Obtenim l'ID de la excepció
$query = "SELECT id FROM excepcions WHERE data = FROM_UNIXTIME($data) AND article = '" . strtosql($_POST["earticle"][$i]) .
"' AND preu = ". $_POST["epreu"][$i] . ";";
$resultat = 1; // Per si no es fa la query, assumim que no hi ha errors
if ($touchdb)
{
$resultat = mysql_query($query, $connexio);
$ex_id = mysql_result($resultat, 0, "id");
}
else
{
echo $query . "
";
$ex_id = 255;
}
// Comptem quants participen
$participants = 0;
foreach($habitants as $j)
if (isset($_POST["eparticipat"][$i][$j["id"]]))
$participants++;
for ($j=0;$j<$_POST["num_altres_excepcions"];$j++)
if (isset($_POST["eparticipat_altres"][$i][$j]))
$participants++;
$preu_per_cap = $_POST["epreu"][$i] / $participants;
// Els habitants que compren l'article
foreach($habitants as $j)
{
if (isset($_POST["eparticipat"][$i][$j["id"]]))
{
$query = "INSERT INTO compradors_excepcions (ex_id,persona,toca_pagar) VALUES($ex_id," . $j["id"] . ",". $preu_per_cap.");";
if ($touchdb)
$resultat = mysql_query($query, $connexio);
else
echo $query . "
";
}
}
for ($j=0;$j<$_POST["num_altres_excepcions"];$j++)
{
if (isset($_POST["eparticipat_altres"][$i][$j]))
{
$persona = $_POST["ealtres"][$i][$j];
$query = "INSERT INTO compradors_excepcions (ex_id,persona,toca_pagar) VALUES($ex_id," . $persona . ",". $preu_per_cap.");";
if ($touchdb)
$resultat = mysql_query($query, $connexio);
else
echo $query . "
";
}
}
}
} // Fi del for
// Afegim el que han pagat i el que els toca pagar a cada habitant
// Participen els habitants + $num_altres
// Comptem quans participen si hi ha checkboxes
if ($_POST["percentatges"] == "checkboxes")
{
$participants = 0;
foreach($habitants as $j)
if (isset($_POST["checkbox"][$j["id"]]))
$participants++;
for ($j=0;$j<$_POST["num_altres"];$j++)
if (isset($_POST["checkbox_altres"][$j]))
$participants++;
}
// Els habitants que compren
foreach($habitants as $i)
{
$total_a_pagar = 0;
settype($_POST["pagat"][$i["id"]], "double");
if ($_POST["percentatges"] == "checkboxes")
{
if(isset($_POST["checkbox"][$i["id"]]))
$total_a_pagar = $preu_per_compradors / $participants;
}
elseif ($_POST["percentatges"] == "si")
{
settype($_POST["percent"][$i["id"]], "double");
$total_a_pagar = $preu_per_compradors * $_POST["percent"][$i["id"]] / 100;
}
else
{
settype($_POST["tocapagar"][$i["id"]], "double");
$total_a_pagar = $_POST["tocapagar"][$i["id"]];
}
if ($_POST["pagat"][$i["id"]] != 0 || $total_a_pagar != 0)
{
$query = "INSERT INTO compradors (data,persona,pagat,toca_pagar) VALUES(FROM_UNIXTIME($data)," . $i["id"] . ",".
$_POST["pagat"][$i["id"]] . ", $total_a_pagar);";
if ($touchdb)
$resultat = mysql_query($query, $connexio);
else
echo $query . "
\n";
}
}
// Els altres que compren
for($i=0; $i < $_POST["num_altres"]; $i++)
{
$total_a_pagar = 0;
settype($_POST["pagat_altres"][$i], "double");
if ($_POST["percentatges"] == "checkboxes")
{
if(isset($_POST["checkbox_altres"][$i]))
$total_a_pagar = $preu_per_compradors / $participants;
}
elseif ($_POST["percentatges"] == "si")
{
settype($_POST["percent_altres"][$i], "double");
$total_a_pagar = $preu_per_compradors * $_POST["percent_altres"][$i] / 100;
}
else
{
settype($_POST["tocapagar_altres"][$i], "double");
$total_a_pagar = $_POST["tocapagar_altres"][$i];
}
if ($_POST["pagat_altres"][$i] != 0 || $total_a_pagar != 0)
{
$persona = $_POST["altres"][$i];
$query = "INSERT INTO compradors (data,persona,pagat,toca_pagar) VALUES(FROM_UNIXTIME($data)," . $persona . ",".
$_POST["pagat_altres"][$i] . ", $total_a_pagar);";
if ($touchdb)
$resultat = mysql_query($query, $connexio);
else
echo $query . "
";
}
}
// *** No s'hauria de deixar continuar si peta la compra!!!! (de fet és el que fa. O NO?)
} // Fi de si la inserció de compres va bé.
// Què cutre que és això. **
echo "Si no hi ha cap missatge d'error, tot ha anat bé! La compra ha estat afegida.
";
}
else
{
?>
ERROR: No s'ha pogut connectar a la base de dades!
Segurament degut a una contrassenya incorrecta.
";
}
}
?>
Tornar al menú d'inici