def savePayment(self, member_id, items): """ Save a new or edited payment """ verified = False if self.is_finance_admin() and ParamChecker.checkInt( 'verified', param=True, optional=True): verified = True if items['idPayment'] > 0: try: np = self.db.query(Payment).filter( Payment.id == items['idPayment']).one() np.verified = verified except: self.session['flash'] = _('Invalid record') self.session.save() raise HTTPRedirect( '/payments/listPayments/?member_id={0}'.format(member_id)) else: np = Payment() np.verified = verified np.status = 0 for key, value in items.iteritems(): setattr(np, key, value) try: np.uid = member_id except: self.session['flash'] = _('Invalid member') self.session.save() raise HTTPRedirect( '/payments/listPayments/?member_id={0}'.format(member_id)) # Cleanup session if 'reqparams' in self.session: del (self.session['reqparams']) self.session.save() ########## self.db.add(np) self.db.commit() self.session['flash'] = _('Payment saved successfully.') self.session['flash_class'] = 'success' self.session.save() raise HTTPRedirect( '/payments/listPayments/?member_id={0}'.format(member_id))
def editPayment(self, member_id, year=None, month=None, idPayment='0'): """ Add or edit a payment to/of a specific user """ if not self.is_admin() and not member_id == self.session.get( 'username'): raise HTTPError(403, 'Forbidden') c = TemplateContext() c.member_id = member_id c.status_0 = False c.status_1 = False c.status_2 = False # vary form depending on mode (do that over ajax) if idPayment == '0': c.payment = Payment() action = 'Adding' try: ParamChecker.checkYear('year', param=True) ParamChecker.checkMonth('month', param=True) c.date = str(datetime.date(int(year), int(month), 1)) except: '''Don't care ... just let the user enter a new date''' pass elif not idPayment == '' and IsInt(idPayment) and int(idPayment) > 0: # @fixme convert IsInt to new class action = 'Editing' payment_q = self.db.query(Payment).filter( Payment.id == int(idPayment)) try: payment = payment_q.one() # @TODO allow member editing if not verified??? if payment.verified and not self.is_admin(): raise HTTPError(403, 'Forbidden') c.payment = payment setattr(c, 'status_' + str(payment.status), True) except NoResultFound: print "oops" raise HTTPRedirect('/members/index') else: raise HTTPRedirect('/members/index') c.heading = _('%s payment for user %s') % (action, c.member_id) self.sidebar.append({ 'name': _('List payments'), 'args': { 'controller': 'payments', 'action': 'listPayments', 'params': { 'member_id': member_id } } }) return self.render('/payments/editPayment.mako', template_context=c)
def savePayment(self, member_id, items): """ Save a new or edited payment """ verified = False if self.is_finance_admin() and ParamChecker.checkInt('verified', param=True, optional=True): verified = True if items['idPayment'] > 0: try: np = self.db.query(Payment).filter(Payment.id == items['idPayment']).one() np.verified = verified except: self.session['flash'] = _('Invalid record') self.session.save() raise HTTPRedirect('/payments/listPayments/?member_id={0}'.format(member_id)) else: np = Payment() np.verified = verified np.status = 0 for key, value in items.iteritems(): setattr(np, key, value) try: np.uid = member_id except: self.session['flash'] = _('Invalid member') self.session.save() raise HTTPRedirect('/payments/listPayments/?member_id={0}'.format(member_id)) # Cleanup session if 'reqparams' in self.session: del(self.session['reqparams']) self.session.save() ########## self.db.add(np) self.db.commit() self.session['flash'] = _('Payment saved successfully.') self.session['flash_class'] = 'success' self.session.save() raise HTTPRedirect('/payments/listPayments/?member_id={0}'.format(member_id))
def doBulkAdd(self, member_id, months, verified=None): try: ParamChecker.checkUsername('member_id', param=True) ParamChecker.checkInt('months', param=True, max_len=2) except: raise HTTPRedirect('/payments/index') lastDate = self._getLastPayment(member_id) months = int(months) if self.is_finance_admin(): try: ParamChecker.checkInt('verified', param=True, max_len=1) verified = True except: verified = False try: for i in range(months): p = Payment() p.uid = member_id p.date = lastDate + relativedelta(months=i) p.status = 0 p.verified = verified self.db.add(p) self.db.commit() self.session['flash'] = _('Payments added') self.session['flash_class'] = 'success' except Exception as e: self.session['flash'] = _('Operation failed') self.session['flash_class'] = 'error' self.session.save() raise HTTPRedirect('/payments/listPayments/?member_id={0}'.format(member_id))
def doBulkAdd(self, member_id, months, verified=None): try: ParamChecker.checkUsername('member_id', param=True) ParamChecker.checkInt('months', param=True, max_len=2) except: raise HTTPRedirect('/payments/index') lastDate = self._getLastPayment(member_id) months = int(months) if self.is_finance_admin(): try: ParamChecker.checkInt('verified', param=True, max_len=1) verified = True except: verified = False try: for i in range(months): p = Payment() p.uid = member_id p.date = lastDate + relativedelta(months=i) p.status = 0 p.verified = verified self.db.add(p) self.db.commit() self.session['flash'] = _('Payments added') self.session['flash_class'] = 'success' except Exception as e: self.session['flash'] = _('Operation failed') self.session['flash_class'] = 'error' self.session.save() raise HTTPRedirect( '/payments/listPayments/?member_id={0}'.format(member_id))