Commit 73b3e461 authored by mbriand's avatar mbriand
Browse files

Limite pas utilisateur pour les produits

parent 40f545b9
......@@ -132,6 +132,7 @@ else if ( $_REQUEST["action"] == "addasso" && $site->user->is_in_group("gestion_
else if ( $_REQUEST["action"] == "addproduit" && ($typeprod->id > 0) && ($assocpt->id > 0) )
{
$stock_global = -1;
$limite_utilisateur = -1;
$file->load_by_id($_REQUEST["id_file"]);
$produit_parent->load_by_id($_REQUEST["id_produit_parent"]);
......@@ -139,6 +140,9 @@ else if ( $_REQUEST["action"] == "addproduit" && ($typeprod->id > 0) && ($assocp
if ( $_REQUEST["stock"] == "lim" )
$stock_global = $_REQUEST["stock_value"];
if ( $_REQUEST["limite_util"] == "lim" )
$limite_utilisateur = $_REQUEST["limite_util_value"];
if ( $produit->ajout ($typeprod->id,
$assocpt->id,
$_REQUEST['nom'],
......@@ -161,7 +165,8 @@ else if ( $_REQUEST["action"] == "addproduit" && ($typeprod->id > 0) && ($assocp
$_REQUEST["date_fin"],
$produit_parent->id,
$_REQUEST["mineur"]
$_REQUEST["mineur"],
$limite_utilisateur
) )
{
$asso = new asso($site->db);
......@@ -234,6 +239,7 @@ else if ( $_REQUEST["action"] == "addnvcpt" && $produit->id > 0 )
else if ( $_REQUEST["action"] == "upproduit" && ($produit->id > 0) && ($typeprod->id > 0) )
{
$stock_global = -1;
$limite_utilisateur = -1;
$file->load_by_id($_REQUEST["id_file"]);
......@@ -241,6 +247,8 @@ else if ( $_REQUEST["action"] == "upproduit" && ($produit->id > 0) && ($typeprod
if ( $_REQUEST["stock"] == "lim" )
$stock_global = $_REQUEST["stock_value"];
if ( $_REQUEST["limite_util"] == "lim" )
$limite_utilisateur = $_REQUEST["limite_util_value"];
$produit->modifier ($typeprod->id,
$_REQUEST['nom'],
......@@ -261,7 +269,8 @@ else if ( $_REQUEST["action"] == "upproduit" && ($produit->id > 0) && ($typeprod
$_REQUEST["id_groupe"],
$_REQUEST["date_fin"],
$produit_parent->id,
$_REQUEST["mineur"]
$_REQUEST["mineur"],
$limite_utilisateur
);
}
else if ( $_REQUEST["action"] == "uptype" && ($typeprod->id > 0) && ($assocpt->id > 0) )
......@@ -442,6 +451,7 @@ elseif ( $_REQUEST["page"] == "addproduit" )
$frm->add(generate_subform_stock("Stock global","global","stock","stock_value",-1),false, false, false,false, true);
$frm->add(generate_subform_stock("Limite par personnes","limite","limite_util","limite_util_value",-1),false, false, false,false, true);
foreach ( $site->admin_comptoirs as $id => $nom )
{
......@@ -611,6 +621,7 @@ elseif ( $produit->id > 0 )
$frm->add_datetime_field("date_fin","Date de fin de mise en vente",$produit->date_fin);
$frm->add(generate_subform_stock("Stock global","global","stock","stock_value",$produit->stock_global),false, false, false,false, true);
$frm->add(generate_subform_stock("Limite par personnes","limite","limite_util","limite_util_value",$produit->limite_utilisateur),false, false, false,false, true);
$frm->add_submit("valid","Enregistrer");
$cts->add($frm,true);
......
......@@ -551,8 +551,14 @@ class comptoir extends stdentity
return true;
}
if ( !$prod->can_be_sold($this->client) )
return;
$max = $prod->can_be_sold($this->client);
if ($max >= 0){
foreach($_SESSION["Comptoirs"][$this->id]["panier"] as $id)
if ($id == $prod->id)
$max --;
if ( $max <= 0 )
return;
}
if (!$this->client->credit_suffisant($this->calcule_somme () + $prod->obtenir_prix ($this->prix_barman,$this->client)))
return false;
......
......@@ -81,6 +81,8 @@ class produit extends stdentity
var $frais_port;
/** etat d'un produit hors commerce, gardé pour archive */
var $archive;
/** limite du nombre d'achats par personne */
var $limite_utilisateur;
/** le produit peut il être vendu à un mineur */
/* 0 => tout le monde
......@@ -170,7 +172,8 @@ class produit extends stdentity
$id_groupe=null,
$date_fin=null,
$id_produit_parent=null,
$mineur=0 )
$mineur=0,
$limite_utilisateur=-1 )
{
$this->id_type = $id_typeprod;
......@@ -196,6 +199,7 @@ class produit extends stdentity
$this->date_fin = $date_fin?$date_fin:null;
$this->id_produit_parent = $id_produit_parent;
$this->mineur=$mineur;
$this->limite_utilisateur = $limite_utilisateur;
$req = new insert ($this->dbrw,
"cpt_produits",
......@@ -221,7 +225,8 @@ class produit extends stdentity
'id_groupe'=>$this->id_groupe,
'date_fin_produit'=>is_null($this->date_fin)?null:date("Y-m-d H:i:s",$this->date_fin),
'id_produit_parent'=> $this->id_produit_parent,
'mineur'=>$this->mineur
'mineur'=>$this->mineur,
'limite_utilisateur'=>$this->limite_utilisateur
));
......@@ -261,7 +266,8 @@ class produit extends stdentity
$id_groupe=null,
$date_fin=null,
$id_produit_parent=null,
$mineur=0
$mineur=0,
$limite_utilisateur=-1
)
{
......@@ -287,6 +293,7 @@ class produit extends stdentity
$this->date_fin = $date_fin?$date_fin:null;
$this->id_produit_parent = $id_produit_parent;
$this->mineur = $mineur;
$this->limite_utilisateur = $limite_utilisateur;
$req = new update ($this->dbrw,
"cpt_produits",
......@@ -311,7 +318,8 @@ class produit extends stdentity
'id_groupe'=>$this->id_groupe,
'date_fin_produit'=>is_null($this->date_fin)?null:date("Y-m-d H:i:s",$this->date_fin),
'id_produit_parent'=> $this->id_produit_parent,
'mineur'=>$this->mineur
'mineur'=>$this->mineur,
'limite_utilisateur'=>$this->limite_utilisateur
),
array("id_produit" => $this->id));
......@@ -445,6 +453,7 @@ class produit extends stdentity
$this->date_fin = is_null($row['date_fin_produit'])?null:strtotime($row['date_fin_produit']);
$this->id_produit_parent = $row['id_produit_parent'];
$this->mineur = $row['mineur'];
$this->limite_utilisateur = $row['limite_utilisateur'];
}
/**
......@@ -489,7 +498,19 @@ class produit extends stdentity
return false;
}
return true;
if ($this->limite_utilisateur >= 0)
{
$req = new requete($site->db,
"SELECT SUM(quantite) nb FROM `cpt_debitfacture`
INNER JOIN `cpt_vendu` USING(`id_facture`)
WHERE `id_utilisateur_client`='".intval($user->id)."'
AND `id_produit`='".intval($produit->id)."'");
$row = $req->get_row();
return $this->limite_utilisateur - $row["nb_achetes"];
}
return -1;
}
/**
......@@ -519,7 +540,8 @@ class produit extends stdentity
* - get_info() renvoie les informations complémentaires sur le produit
* - get_once_sold_cts($user) renvoie un stdcontents lorsque le produit a été
* vendu à $user
* - can_be_sold($user) determine si le produit peut être vendu à $user
* - can_be_sold($user) determine le nombre d'occurences du produit qui
* peuvent être vendues à $user
* - is_compatible($cl) determine si le produit peut être vendu en même temps
* qu'un produit dont $cl est une instance de la classe associée
* Exemple: cotisationae (comptoir/include/class/cotisationae.inc.php)
......
......@@ -193,8 +193,7 @@ class eboutic extends site
if ($ret == false)
return false;
if ( !$vp->produit->can_be_sold($this->user) )
return;
$max = $vp->produit->can_be_sold($this->user);
if ( $cl = $vp->produit->get_prodclass($this->user) )
{
......@@ -212,6 +211,9 @@ class eboutic extends site
}
}
if (($max >= 0) && ($_SESSION['eboutic_cart'][$item] >= $max))
return false;
$_SESSION['eboutic_locked'] = $site->user->id;
$ret = $vp->bloquer($this->user);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment