Commit 9cc103d5 authored by mbriand's avatar mbriand
Browse files

Cotisations assidu/amicale

parent f1d66304
......@@ -48,6 +48,7 @@ if ( $_REQUEST["action"] == "pdf" )
"`utilisateurs`.`prenom_utl`, " .
"`utl_etu_utbm`.`surnom_utbm`, " .
"`ae_cotisations`.`date_fin_cotis`, " .
"`ae_cotisations`.`type_cotis`, " .
"`ae_carte`.`id_carte_ae` " .
"FROM `ae_carte` " .
"INNER JOIN `ae_cotisations` ON `ae_cotisations`.`id_cotisation`=`ae_carte`.`id_cotisation` " .
......
......@@ -115,7 +115,7 @@ function add_new_form($id = null)
$frm->add_info(" ");
$sub_frm_cotiz = new form("cotisation",null,null,null,"Cotisation");
$sub_frm_cotiz->add_select_field("cotiz","Cotisation",array( 0=>"1 Semestre, 15 Euros, jusqu'au $date1", 1=>"2 Semestres, 28 Euros, jusqu'au $date2", 2 => "Cursus Tronc Commun, 45 €, jusqu'au $date3", 3 => "Cursus Branche, 45 €, jusqu'au $date4", 4 => "Membre honoraire ou occasionnel, 0 €, jusqu'au $date2"),1);
$sub_frm_cotiz->add_select_field("cotiz","Cotisation",array( 0=>"1 Semestre, 15 Euros, jusqu'au $date1", 1=>"2 Semestres, 28 Euros, jusqu'au $date2", 2 => "Cursus Tronc Commun, 45 €, jusqu'au $date3", 3 => "Cursus Branche, 45 €, jusqu'au $date4", 4 => "Membre honoraire ou occasionnel, 0 €, jusqu'au $date2", 5 => "Cotisation par Assidu, 4€, jusqu'au $date2", 6 => "Cotisation Amicale, 4€, jusqu'au $date2"),1);
$sub_frm_cotiz->add_select_field("paiement","Mode de paiement",array(1 => "Chèque", 3 => "Liquide", 4 => "Administration"));
$sub_frm_cotiz->add_info(" ");
......@@ -217,7 +217,7 @@ elseif ( $_REQUEST["action"] == "savecotiz" )
}
else
{
if ( $user->ae )
if ( $user->ae || $user->assidu || $user->amicale )
{
global $site;
$req = new requete($site->db,
......@@ -256,22 +256,35 @@ elseif ( $_REQUEST["action"] == "savecotiz" )
if ( $_REQUEST["cotiz"] == 0 ) {
$date_fin = strtotime($date1);
$prix_paye = 1500;
$type_cotis = 1;
} elseif ( $_REQUEST["cotiz"] == 1 ) {
$date_fin = strtotime($date2);
$prix_paye = 2800;
$type_cotis = 1;
} elseif ( $_REQUEST["cotiz"] == 2 ) {
$date_fin = strtotime($date3);
$prix_paye = 4500;
$type_cotis = 1;
} elseif ( $_REQUEST["cotiz"] == 3 ) {
$date_fin = strtotime($date4);
$prix_paye = 4500;
} else {
$type_cotis = 1;
} elseif ( $_REQUEST["cotiz"] == 4 ) {
$date_fin = strtotime($date2);
$prix_paye = 0;
$type_cotis = 1;
} elseif ( $_REQUEST["cotiz"] == 5 ) {
$date_fin = strtotime($date2);
$prix_paye = 4;
$type_cotis = 2;
} else {
$date_fin = strtotime($date2);
$prix_paye = 4;
$type_cotis = 3;
}
$cotisation->load_lastest_by_user ( $user->id );
$cotisation->add ( $user->id, $date_fin, $_REQUEST["paiement"], $prix_paye );
$cotisation->add ( $user->id, $date_fin, $_REQUEST["paiement"], $prix_paye, $type_cotis );
$a_pris_cadeau = $_REQUEST["cadeau"] == true;
......
......@@ -58,7 +58,7 @@ if ( $_REQUEST["action"] == "logclient" && count($site->comptoir->operateurs))
}
elseif ( !$client->is_valid() )
$Erreur = "Client inconnu";
elseif ( !$client->ae )
elseif ( ! ($client->ae || $client->assidu || $client -> amicale) )
$Erreur = "Cotisation AE non renouvelée";
elseif ( $client->is_in_group("cpt_bloque") )
$Erreur = "Compte bloqué : prendre contact avec un responsable. Ceci est probablement du à une dette au BDF.";
......@@ -204,7 +204,7 @@ else if ( $_REQUEST["action"] == "recharge" && count($site->comptoir->operateurs
$RechargementErreur = "Etudiant inconnu";
elseif ( !$GLOBALS["svalid_call"] )
$RechargementErreur = "Ignoré";
elseif ( !$client->ae )
elseif ( ! ($client->ae || $client->assidu || $client -> amicale) )
$RechargementErreur = "Cotisation AE non renouvelée";
elseif ( $client->is_in_group("cpt_bloque") )
$RechargementErreur = "Compte bloqué : prendre contact avec un responsable. Ceci est probablement du à une dette au BDF.";
......@@ -258,7 +258,7 @@ else if ( $_REQUEST["page"] == "confirmrech" && count($site->comptoir->operateur
}
elseif ( !$client->is_valid() )
$RechargementErreur = "Etudiant inconnu";
else if ( !$client->ae )
elseif ( ! ($client->ae || $client->assidu || $client -> amicale) )
$RechargementErreur = "Cotisation AE non renouvelée";
else if ( $client->is_in_group("cpt_bloque") )
$RechargementErreur = "Compte bloqué : prendre contact avec un responsable. Ceci est probablement du à une dette au BDF.";
......
......@@ -84,7 +84,7 @@ class cotisationae
function vendu($user,$prix_unit)
{
$cotisation = new cotisation($this->db,$this->dbrw);
$cotisation->add ( $user->id, $this->enddate, 5, $prix_unit );
$cotisation->add ( $user->id, $this->enddate, 5, $prix_unit, 1 );
}
function get_info()
......
......@@ -450,7 +450,7 @@ class comptoir extends stdentity
if ( !$client->is_valid() )
return false;
if ( !$client->ae )
if ( ! ($client->ae || $client->assidu || $client -> amicale) )
return false;
if ( $client->is_in_group("cpt_bloque") )
......@@ -642,7 +642,7 @@ class comptoir extends stdentity
$association)
{
if ( !$client->ae )
if ( ! ($client->ae || $client->assidu || $client -> amicale) )
return false;
if ( $client->is_in_group("cpt_bloque") )
......
......@@ -15,151 +15,160 @@ require_once("carteae.inc.php");
- 4 : administration
- 5 : eboutic */
/** Type de cotisation :
- 1 : normale
- 2 : assidu
- 3 : amicale */
class cotisation extends stdentity
{
var $id_utilisateur;
var $date_cotis;
var $date_fin_cotis;
var $a_pris_cadeau;
var $a_pris_carte;
var $mode_paiement_cotis;
var $prix_paye_cotis;
/** Charge une carte en fonction de son id
* $this->id est égal à -1 en cas d'erreur
* @param $id id de la fonction
*/
function load_by_id ( $id )
{
$req = new requete($this->db, "SELECT * FROM `ae_cotisations`
WHERE `id_cotisation` = '" . mysql_real_escape_string($id) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return true;
}
$this->id = null;
return false;
}
function load_lastest_by_user ( $id_utilisateur )
{
$req = new requete($this->db, "SELECT * FROM `ae_cotisations`
WHERE `id_utilisateur` = '" . mysql_real_escape_string($id_utilisateur) . "'
ORDER BY `date_fin_cotis` DESC LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return true;
}
$this->id = null;
return false;
}
function _load ( $row )
{
$this->id = $row['id_cotisation'];
$this->id_utilisateur = $row['id_utilisateur'];
$this->date_cotis = strtotime($row['date_cotis']);
$this->date_fin_cotis = strtotime($row['date_fin_cotis']);
$this->a_pris_cadeau = $row['a_pris_cadeau'];
$this->a_pris_carte = $row['a_pris_carte'];
$this->mode_paiement_cotis = $row['mode_paiement_cotis'];
$this->prix_paye_cotis = $row['prix_paye_cotis'];
}
function add ( $id_utilisateur, $date_fin, $mode_paiement, $prix_paye )
{
$this->id_utilisateur = $id_utilisateur;
$this->date_cotis = time();
$this->date_fin_cotis = $date_fin;
$this->a_pris_cadeau = false;
$this->a_pris_carte = false;
$this->mode_paiement_cotis = $mode_paiement;
$this->prix_paye_cotis = $prix_paye;
$sql = new insert ($this->dbrw,
"ae_cotisations",
array(
"id_utilisateur" => $this->id_utilisateur,
"date_cotis" => date("Y-m-d H:i:s",$this->date_cotis),
"date_fin_cotis" => date("Y-m-d",$this->date_fin_cotis),
"a_pris_cadeau" => $this->a_pris_cadeau,
"a_pris_carte" => $this->a_pris_carte,
"mode_paiement_cotis" => $this->mode_paiement_cotis,
"prix_paye_cotis" => $this->prix_paye_cotis
)
);
if ( $sql )
$this->id = $sql->get_id();
else
{
$this->id = null;
return false;
}
$carte = new carteae($this->db,$this->dbrw);
$carte->load_by_utilisateur($this->id_utilisateur);
if ( $carte->id > 0 ) // On ré-utilise l'ancienne carte, s'il y a en une utilisable
$carte->prolongate($this->id,$this->date_fin_cotis);
else
$carte->add($this->id,$this->date_fin_cotis);
$req = new update($this->dbrw,"utilisateurs",array("ae_utl"=>true),array("id_utilisateur"=>$this->id_utilisateur));
return true;
}
function mark_cadeau($cadeau=true)
{
$this->a_pris_cadeau = $cadeau;
$sql = new update ($this->dbrw,
"ae_cotisations",
array(
"a_pris_cadeau" => $this->a_pris_cadeau
),
array(
"id_cotisation"=>$this->id
)
);
}
function mark_carte($carte=true)
{
$this->a_pris_carte = $carte;
$sql = new update ($this->dbrw,
"ae_cotisations",
array(
"a_pris_carte" => $this->a_pris_carte
),
array(
"id_cotisation"=>$this->id
)
);
}
var $id_utilisateur;
var $date_cotis;
var $date_fin_cotis;
var $a_pris_cadeau;
var $a_pris_carte;
var $mode_paiement_cotis;
var $prix_paye_cotis;
/** Charge une carte en fonction de son id
* $this->id est égal à -1 en cas d'erreur
* @param $id id de la fonction
*/
function load_by_id ( $id )
{
$req = new requete($this->db, "SELECT * FROM `ae_cotisations`
WHERE `id_cotisation` = '" . mysql_real_escape_string($id) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return true;
}
$this->id = null;
return false;
}
function load_lastest_by_user ( $id_utilisateur )
{
$req = new requete($this->db, "SELECT * FROM `ae_cotisations`
WHERE `id_utilisateur` = '" . mysql_real_escape_string($id_utilisateur) . "'
ORDER BY `date_fin_cotis` DESC LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return true;
}
$this->id = null;
return false;
}
function _load ( $row )
{
$this->id = $row['id_cotisation'];
$this->id_utilisateur = $row['id_utilisateur'];
$this->date_cotis = strtotime($row['date_cotis']);
$this->date_fin_cotis = strtotime($row['date_fin_cotis']);
$this->a_pris_cadeau = $row['a_pris_cadeau'];
$this->a_pris_carte = $row['a_pris_carte'];
$this->mode_paiement_cotis = $row['mode_paiement_cotis'];
$this->prix_paye_cotis = $row['prix_paye_cotis'];
}
function add ( $id_utilisateur, $date_fin, $mode_paiement, $prix_paye, $type_cotis )
{
$this->id_utilisateur = $id_utilisateur;
$this->date_cotis = time();
$this->date_fin_cotis = $date_fin;
$this->a_pris_cadeau = ($type_cotis != 1);
$this->a_pris_carte = false;
$this->mode_paiement_cotis = $mode_paiement;
$this->prix_paye_cotis = $prix_paye;
$this->type_cotis = $type_cotis;
$sql = new insert ($this->dbrw,
"ae_cotisations",
array(
"id_utilisateur" => $this->id_utilisateur,
"date_cotis" => date("Y-m-d H:i:s",$this->date_cotis),
"date_fin_cotis" => date("Y-m-d",$this->date_fin_cotis),
"a_pris_cadeau" => $this->a_pris_cadeau,
"a_pris_carte" => $this->a_pris_carte,
"mode_paiement_cotis" => $this->mode_paiement_cotis,
"prix_paye_cotis" => $this->prix_paye_cotis,
"type_cotis" => $this->type_cotis,
)
);
if ( $sql )
$this->id = $sql->get_id();
else
{
$this->id = null;
return false;
}
$carte = new carteae($this->db,$this->dbrw);
$carte->load_by_utilisateur($this->id_utilisateur);
if ( $carte->id > 0 ) // On ré-utilise l'ancienne carte, s'il y a en une utilisable
$carte->prolongate($this->id,$this->date_fin_cotis);
else
$carte->add($this->id,$this->date_fin_cotis);
$types = array(1 => "ae_utl", 2 => "assidu_utl", 3 => "amicale_utl");
$req = new update($this->dbrw,"utilisateurs",array($types[$type_cotisation]=>true),array("id_utilisateur"=>$this->id_utilisateur));
return true;
}
function mark_cadeau($cadeau=true)
{
$this->a_pris_cadeau = $cadeau;
$sql = new update ($this->dbrw,
"ae_cotisations",
array(
"a_pris_cadeau" => $this->a_pris_cadeau
),
array(
"id_cotisation"=>$this->id
)
);
}
function mark_carte($carte=true)
{
$this->a_pris_carte = $carte;
$sql = new update ($this->dbrw,
"ae_cotisations",
array(
"a_pris_carte" => $this->a_pris_carte
),
array(
"id_cotisation"=>$this->id
)
);
}
function generate_card()
{
$carte = new carteae($this->db,$this->dbrw);
$carte->load_by_utilisateur($this->id_utilisateur);
if ( $carte->id > 0 ) // On ré-utilise l'ancienne carte, s'il y a en une utilisable
$carte->prolongate($this->id,$this->date_fin_cotis);
else
$carte->add($this->id,$this->date_fin_cotis);
$carte->load_by_utilisateur($this->id_utilisateur);
if ( $carte->id > 0 ) // On ré-utilise l'ancienne carte, s'il y a en une utilisable
$carte->prolongate($this->id,$this->date_fin_cotis);
else
$carte->add($this->id,$this->date_fin_cotis);
}
}
......
......@@ -43,128 +43,128 @@
class group extends stdentity
{
/** Nom unix du groupe */
var $nom;
/** Description du groupe */
var $description;
/** Accés à la base de donnés en lecture seule.*/
var $db;
/** Accés à la base de donnés en lecture et ecriture.*/
var $dbrw;
/** Charge un groupe par son ID
* @param $id ID du groupe
*/
function load_by_id ( $id )
{
if ( $id >= 10000 )
{
$all = $this->enumerate();
if ( !isset($all[$id]) )
return false;
$this->id = $id;
$this->nom = $all[$id];
$this->description = "";
return true;
}
$req = new requete($this->db, "SELECT * FROM `groupe`
WHERE `id_groupe` = '" . mysql_real_escape_string($id) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return true;
}
$this->id = null;
/** Nom unix du groupe */
var $nom;
/** Description du groupe */
var $description;
/** Accés à la base de donnés en lecture seule.*/
var $db;
/** Accés à la base de donnés en lecture et ecriture.*/
var $dbrw;
/** Charge un groupe par son ID
* @param $id ID du groupe
*/
function load_by_id ( $id )
{
if ( $id >= 10000 )
{
$all = $this->enumerate();
if ( !isset($all[$id]) )
return false;
$this->id = $id;
$this->nom = $all[$id];
$this->description = "";
return true;
}
$req = new requete($this->db, "SELECT * FROM `groupe`
WHERE `id_groupe` = '" . mysql_real_escape_string($id) . "'
LIMIT 1");
if ( $req->lines == 1 )
{
$this->_load($req->get_row());
return true;
}
$this->id = null;
return false;
}
/**
* Charge un groupe depuis une ligne SQL.
* @param $row Ligne SQL
*/
function _load ( $row )
{
$this->id = $row['id_groupe'];
$this->nom = $row['nom_groupe'];
$this->description = $row['description_groupe'];
}
/**
* Crée un groupe
* @param $nom Nom du groupe (unix)
* @param $description Description du groupe
*/
function add_group ( $nom, $description )
{
$this->nom = $nom;
$this->description = $description;
$sql = new insert ($this->dbrw,
"groupe",
array(
"nom_groupe" => $this->nom,
"description_groupe" => $this->description
)
);
if ( $sql )
$this->id = $sql->get_id();
else
$this->id = null;
}
/**
* Supprime un groupe
*/
function delete_group ( )
{
$req = new delete($this->dbrw,"utl_groupe",
array(
"id_groupe"=>$this->id
));
$req = new delete($this->dbrw,"groupe",
array(
"id_groupe"=>$this->id
));
}
/**
* Ajoute un utilisateur au groupe
* @param $id_utilisateur Id de l'utilisateur
*/
function add_user_to_group ( $id_utilisateur )
{
$req = new insert($this->dbrw,"utl_groupe",
array(
"id_groupe"=>$this->id,
"id_utilisateur"=>$id_utilisateur
));
}
/**
* Enlève un utilisateur
* @param $id_utilisateur Id de l'utilisateur
*/
function remove_user_from_group ( $id_utilisateur )
{
$req = new delete($this->dbrw,"utl_groupe",
array(
"id_groupe"=>$this->id,
"id_utilisateur"=>$id_utilisateur
));
}
function can_enumerate()
{
}
/**
* Charge un groupe depuis une ligne SQL.
* @param $row Ligne SQL
*/
function _load ( $row )
{
$this->id = $row['id_groupe'];
$this->nom = $row['nom_groupe'];
$this->description = $row['description_groupe'];
}
/**
* Crée un groupe
* @param $nom Nom du groupe (unix)
* @param $description Description du groupe
*/
function add_group ( $nom, $description )
{
$this->nom = $nom;