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

Cotisations assidu/amicale

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