You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
2.2 KiB

package controller;
import sugoi.form.elements.IntSelect;
using Std;
/**
* Membership management
*
* @author fbarbut<francois.barbut@gmail.com>
*/
class Membership extends controller.Controller
{
@tpl("membership/default.mtt")
function doDefault(member:db.User) {
var userAmap = db.UserAmap.get(member, app.user.amap,true);
if (userAmap == null) throw Error("/member", t._("This person is not a member of your group"));
//formulaire
var f = new sugoi.form.Form("membership");
var year = Date.now().getFullYear();
var data = [];
var now = Date.now();
for ( x in 0...5) {
var y = now.getFullYear() - x;
var yy = DateTools.delta(now, DateTools.days(365) * -x);
data.push({label:app.user.amap.getPeriodName(yy),value:app.user.amap.getMembershipYear(yy)});
}
f.addElement(new IntSelect("year", t._("Period"), data,app.user.amap.getMembershipYear(),true));
f.addElement(new sugoi.form.elements.DateDropdowns("date", t._("Date of payment of subscription"), null, true));
if (f.isValid()) {
var y : Int = f.getValueOf("year");
if (db.Membership.get(member, app.user.amap, y) != null) throw Error("/membership/"+member.id, t._("This subscription has been already keyed-in"));
var cotis = new db.Membership();
cotis.amap = app.user.amap;
cotis.user = member;
cotis.year = y;
cotis.date = f.getElement("date").value;
cotis.insert();
throw Ok("/membership/"+member.id, t._("Subscription saved"));
}
//années de cotisation
var memberships = db.Membership.manager.search($user == member && $amap == app.user.amap,{orderBy:-year}, false);
//for ( m in memberships) {
//Reflect.setField(m, 'yearDate', new Date(m.year, 1, 1, 1, 1, 1));
//}
view.memberships = memberships;
//view
view.form = f;
view.member = member;
checkToken();
}
public function doDelete(member:db.User, year:Int,?args:{token:String}) {
if (checkToken()) {
var cotis = db.Membership.get(member, app.user.amap, year, true);
if (cotis == null) throw Error("/", t._("This subscription does not exist"));
cotis.delete();
throw Ok("/membership/" + member.id, t._("Subscription deleted"));
}else {
throw Error("/", "Bad Token");
}
}
}