Esempio n. 1
0
    def add(self):
        model = request.environ["sqlalchemy.model"]
        db = request.environ["sqlalchemy.session"]

        try:
            name = request.params['name']
        except:
            return { "failure": Messages.invalidArguments() }

        if name == "":
            return { "failure": Messages.invalidArguments() }

        try:
            user = db.query(model.AuthenticatedUser).filter_by(uid = h.authenticated_user().uid).one()
            balance = model.Balance(name = name,)
            user_balance = model.UserBalance(user_uid=h.authenticated_user().uid, writable=True)
            balance.users.append(user_balance)
            user.balances.append(user_balance)
            db.save(balance)

            # ensure we set writable to true (needed only with sqlite3)
            #ub = db.query(model.UserBalance).filter_by(user_uid=session[BaseController.AUTHENTICATED_USER], balance_uid=balance.uid).one()
            #ub.writable = True
            #db.save(ub)

            db.commit()
        except IntegrityError, e:
            return { "failure": Messages.primaryKeyViolation() }
Esempio n. 2
0
    def add(self, balance_uid):
        model = request.environ['sqlalchemy.model']
        db = request.environ['sqlalchemy.session']

        if not Operations(db, model).can_modify_balance(h.authenticated_user().uid, balance_uid):
            return { "failure": Messages.permissionDenied() }

        try:
            with localcontext() as ctx:
                ctx.prec = 2
            	try:
                	amount = h.parse_decimal(request.params['amount'])
            	except NumberFormatError:
                	return { "failure": Messages.invalidCurrencyFormat() }
            expense_date = parser.parse(request.params['occurred_on']) 
            income_category_uid = None
            expense_category_uid = None

            if (int(request.params['is_income']) >= 0):
                    income_category_uid = int(request.params['income_category_uid'])
                    is_income = True
            else:
                    expense_category_uid = int(request.params['expense_category_uid'])
                    is_income = False
        except:
            return { "failure": Messages.invalidArguments() }

        tags = request.params.get('tags', '')
    
        try:
            description = request.params['description']
        except:
            description = ""

        try:
            bc = model.BalanceChange(
                amount = amount, 
                description = description, 
                balance_uid = balance_uid, 
                user_uid = h.authenticated_user().uid, 
                expense_category_uid = expense_category_uid,
                occurred_on = expense_date,
                is_income = is_income,
                income_category_uid = income_category_uid
            )
            ops = Operations(db, model)
            ops.change_tags_from_string(bc, tags)
            ops.save_balance_change(bc)
        except IntegrityError, e:
            return { "failure": Messages.primaryKeyViolation() }
    def add(self):
        model = request.environ["sqlalchemy.model"]
        db = request.environ["sqlalchemy.session"]

        name = request.params.get('name')
        if not name:
            return { "failure": Messages.invalidArguments() }

        try:
            ec = model.IncomeCategory(name = name,)
            db.save(ec)
            db.commit()
        except IntegrityError, e:
            return { "failure": Messages.primaryKeyViolation() }
    def add(self):
        db = self.get_sa_session()
        model = self.get_sa_model()

        try:
            name = request.params['name']
        except:
            return { "failure": Messages.invalidArguments() }

        if name == "":
            return { "failure": Messages.invalidArguments() }

        try:
            ec = model.ChangeCategory(name = name,)
            db.save(ec)
            db.commit()
        except IntegrityError, e:
            return { "failure": Messages.primaryKeyViolation() }
    def add(self):
        db = request.environ['sqlalchemy.session']
        model = request.environ['sqlalchemy.model']

        try:
            name = request.params['name']
        except:
            return { "failure": Messages.invalidArguments() }

        if name == "":
            return { "failure": Messages.invalidArguments() }

        try:
            ec = model.ExpenseCategory(name = name,)
            db.save(ec)
            db.commit()
        except IntegrityError, e:
            return { "failure": Messages.primaryKeyViolation() }
Esempio n. 6
0
    def add(self):
        model = request.environ["sqlalchemy.model"]
        db = request.environ["sqlalchemy.session"]

        name = request.params.get("name")
        if not name:
            return {"failure": Messages.invalidArguments()}

        try:
            user = db.query(model.AuthenticatedUser).filter_by(uid=h.authenticated_user().uid).one()
            balance = model.Balance(name=name)
            user_balance = model.UserBalance(user_uid=h.authenticated_user().uid, writable=True)
            balance.users.append(user_balance)
            user.balances.append(user_balance)
            db.save(balance)
            db.commit()
        except IntegrityError, e:
            return {"failure": Messages.primaryKeyViolation()}