X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Fpaiements.inc.php;h=2343ac3a8ae43d249136117d21ad4d6357cafb7c;hb=91ebb7ff6485f03fcccfdf2142e997e44ee399b2;hp=0a3a9e4cb6c95515fc3404406a23df201c948a75;hpb=08cce2ff528b38bde27cdec6d6bc28d6af4a42d4;p=platal.git diff --git a/include/validations/paiements.inc.php b/include/validations/paiements.inc.php index 0a3a9e4..2343ac3 100644 --- a/include/validations/paiements.inc.php +++ b/include/validations/paiements.inc.php @@ -1,6 +1,6 @@ Validate($_uid, false, 'paiements', $_stamp); - + parent::__construct($_uid, false, 'paiements', $_stamp); + $this->titre = $_intitule; $this->site = $_site; $this->msg_reponse = $_msg; - $this->asso_id = $_asso_id; - $this->evt = $_evt; + $this->asso_id = (string)$_asso_id; + $this->evt = (string)$_evt; $this->montant = $_montant; $this->montant_min = $_montantmin; $this->montant_max = $_montantmax; @@ -67,56 +68,100 @@ class PayReq extends Validate } // }}} - // {{{ function same_event() - function same_event($evt, $asso_id) + // {{{ function same_event() + + static public function same_event($evt, $asso_id) { $wevt = 's:3:"evt";s:'.strlen($evt+"").':"'.$evt.'"'; $wassoid = 's:7:"asso_id";s:'.strlen($asso_id + "").':"'.$asso_id.'"'; $where = "%".$wassoid."%".$wevt."%"; return $where; } - // }}} - // {{{ function submit() - // supprime les demandes de paiments pour le meme evenement - function submit() + + // }}} + // {{{ function accept() + + // check the message + public function accept() + { + // no text [AI JMIAJM IJA MIJ] + if (preg_match('/\[[-\'"A-Z ]+\]/', $this->msg_reponse)) { + $this->trigError("La demande de paiement n'est pas valide. Merci de compléter le texte avant de la soumettre"); + return false; + } + if (!preg_match('//', $this->msg_reponse)) { + $this->trigError("Le demande de paiement ne contient pas la balise obligatoire <montant>"); + return false; + } + return true; + } + + // }}} + // {{{ function submit() + + // supprime les demandes de paiments pour le meme evenement + public function submit() { - global $globals; if ($this->evt) { XDB::execute('DELETE FROM requests WHERE type={?} AND data LIKE {?}', 'paiements', PayReq::same_event($this->evt, $this->asso_id)); } - Validate::submit(); + parent::submit(); } // }}} // {{{ function formu() - function formu() - { return 'include/form.valid.paiements.tpl'; } + public function formu() + { + return 'include/form.valid.paiements.tpl'; + } + + // }}} + // {{{ function editor() + + public function editor() + { + return 'include/form.valid.edit-paiements.tpl'; + } + + // }}} + // {{{ function handle_editor() + + protected function handle_editor() + { + $this->titre = Env::v('pay_titre'); + $this->site = Env::v('pay_site'); + $this->montant = Env::i('pay_montant'); + $this->montant_min = Env::i('pay_montant_min'); + $this->montant_max = Env::i('pay_montant_max'); + $this->msg_reponse = Env::v('pay_msg_reponse'); + return true; + } // }}} // {{{ function _mail_subj - function _mail_subj() + protected function _mail_subj() { - return "[Polytechnique.org/Paiments] Demande de création de paiement {$this->titre}"; + return "[Polytechnique.org/Paiments] Demande de création de paiement {$this->titre}"; } // }}} // {{{ function _mail_body - function _mail_body($isok) + protected function _mail_body($isok) { if ($isok) { - return " Le paiement que tu avais demandé pour {$this->titre} vient d'être créé.".($this->evt?" Il a bien été associé à la gestion de l'événement du groupe":""); + return " Le paiement que tu avais demandé pour {$this->titre} vient d'être créé.".($this->evt?" Il a bien été associé à la gestion de l'événement du groupe":""); } else { - return " La demande que tu avais faite pour le paiement de {$this->intitule} a été refusée."; + return " La demande que tu avais faite pour le paiement de {$this->intitule} a été refusée."; } } // }}} // {{{ function commit() - - function commit() + + public function commit() { global $globals; $res = XDB::query("SELECT MAX(id) FROM paiement.paiements"); @@ -129,9 +174,37 @@ class PayReq extends Validate $id, $this->titre, $this->site, $this->montant, $this->montant_min, $this->montant_max, $this->bestalias."@".$globals->mail->domain, $this->msg_reponse, $this->asso_id); - if ($this->asso_id && $this->evt) - $ret = XDB::execute("UPDATE groupex.evenements SET paiement_id = {?} WHERE asso_id = {?} AND eid = {?}", $id, $this->asso_id, $this->evt); - + if ($this->asso_id && $this->evt) { + XDB::execute("UPDATE groupex.evenements + SET paiement_id = {?} + WHERE asso_id = {?} AND eid = {?}", + $id, $this->asso_id, $this->evt); + $res = XDB::query("SELECT a.nom, a.diminutif, e.intitule + FROM groupex.asso AS a + INNER JOIN groupex.evenements AS e ON (a.id = e.asso_id) + WHERE e.eid = {?}", + $this->evt); + list($nom, $diminutif, $evt) = $res->fetchOneRow(); + require_once dirname(__FILE__) . '/../../modules/xnetevents/xnetevents.inc.php'; + $participants = get_event_participants(get_event_detail($this->evt, false, $this->asso_id), null, 'nom'); + foreach ($participants as &$u) { + if (!$u['notify_payment']) { + continue; + } + $topay = $u['montant'] - $u['paid']; + if ($topay > 0) { + $mailer = new PlMailer('xnetevents/newpayment.mail.tpl'); + $mailer->assign('asso', $nom); + $mailer->assign('diminutif', $diminutif); + $mailer->assign('evt', $evt); + $mailer->assign('payment', $id); + $mailer->assign('prenom', $u['prenom']); + $mailer->assign('topay', $topay); + $mailer->assign('to', $u['email']); + $mailer->send(); + } + } + } return $ret; } @@ -140,5 +213,5 @@ class PayReq extends Validate // }}} -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>