示例#1
0
def player(request, player_id):
    player_id = int(player_id)
    p = Player.objects.get(id=player_id)

    if request.method == 'POST' and request.POST['form_name'] == 'transfer':
        tf = TransferForm(request.POST)
        tf.fields['to'].choices = get_transfer_choices(player_id)
        if tf.is_valid():
            to_name = do_transfer(player_id, tf.cleaned_data['to'], Decimal(tf.cleaned_data['amount']))
            messages.success(request, "${} transferred to {}.".format(tf.cleaned_data['amount'], to_name))
            return redirect('bank.views.player', player_id)
        iform = IncomeForm()
    elif request.method == 'POST' and request.POST['form_name'] == 'income':
        iform = IncomeForm(request.POST)
        if iform.is_valid():
            p.balance += Decimal(iform.cleaned_data['amount'])
            p.save()
            messages.success(request, "Added ${} income..".format(iform.cleaned_data['amount']))
            return redirect('bank.views.player', player_id)
        tf = TransferForm()
    else:
        tf = TransferForm()
        iform = IncomeForm()
        tf.fields['to'].choices = get_transfer_choices(player_id)

    return render(request, "player.html", {'player': p, 'transfer_form': tf, 'players': Player.objects.all(),
                                           'income_form': iform})
示例#2
0
def trans(user_id, node_id):

    URL = baseURL + '/users'
    response = requests.get(URL, headers=headers).json()
    users = response['users']

    form = TransferForm()
    legal_names = [(user['_id'], user['legal_names'][0]) for user in users]

    form.to.choices = legal_names
    # form.sender.choices = [(node_id,node_id)]

    if form.validate_on_submit():
        POSTURL = baseURL + '/users/' + user_id + '/nodes/' + node_id + '/trans'
        to = {'type': form.network.data, 'id': str(form.to.data)}
        amount = {'amount': form.amount.data, 'currency': form.currency.data}
        extra = {'ip': ip_address}
        headers["Content-Type"] = "application/json"
        resp = requests.post(POSTURL,
                             headers=headers,
                             json={
                                 'to': to,
                                 'amount': amount,
                                 'extra': extra
                             }).json()

        return redirect(url_for('users'))

    URL = baseURL + '/users/' + user_id + '/nodes/' + node_id + '/trans'
    resp = requests.get(URL, headers=headers).json()
    trans = resp['trans']

    return render_template('trans.html', form=form, trans=trans)
示例#3
0
def edit_transfer(transfer_id):
    transfer = Transfer.query.get(transfer_id)
    edit_form = TransferForm(paidfrom=transfer.paidfrom,
                             paidto=transfer.paidto,
                             amount=transfer.amount,
                             frequency=transfer.frequency,
                             nextduedate=transfer.nextduedate)
    if edit_form.validate_on_submit():
        transfer.paidfrom = edit_form.paidfrom.data,
        transfer.paidto = edit_form.paidto.data,
        transfer.amount = edit_form.amount.data,
        transfer.frequency = edit_form.frequency.data,
        transfer.nextduedate = edit_form.nextduedate.data
        db.session.commit()
        return redirect(url_for("view_transfers"))
    return render_template("add-transfer.html", form=edit_form)
示例#4
0
def transfer():
    if 'email' in session:
        return redirect(url_for('index'))

    form = TransferForm()

    if request.method == 'POST':
        from_usr = mongo.find_one({'user_id': session['user_id']})
        to_usr = mongo.find_one({'username': request.form['to_username']})
        amount = float(request.form['amount'])

        from_usr['amount'] = float(from_usr['amount']) - amount
        to_usr['amount'] = float(to_usr['amount']) + amount

        # Update database
        mongo.update({'user_id': session['user_id']}, from_usr)
        mongo.update({'username': request.form['to_username']}, to_usr)

        # Add to blockchain
        new_transaction = [{
            'from': from_usr['username'],
            'to': to_usr['username'],
            'amount': amount
        }]
        revoc_blockchain.add_block(new_transaction)

        db.session.commit()

        return redirect(url_for('index'))

    else:
        usr = mongo.find_one({'user_id': session['user_id']})
        return render_template('transfer.html',
                               title='New Transfer',
                               form=form)
示例#5
0
 def post(self):
     form = TransferForm(flask.request.form)
     if form.validate():
         email = form.email.data
         money = form.money.data
         user = User.query.filter_by(email=email).first()
         uid = flask.session.get(constants.USER_SESSION_ID)
         myself = User.query.get(uid)
         if myself.deposit > money:
             user.deposit += money
             myself.deposit -= money
             db.session.commit()
             return u'转账成功!'
         else:
             return u'余额不足!'
     else:
         print(form.errors)
         return 'fail'
示例#6
0
文件: views.py 项目: tmars/DS_CW
def transfer(request):
    # проверяем параметры
    if 'transaction' not in request.GET:
        return HttpResponse("Недостаточно параметров." + str(request.GET.keys()))
    try:
        trans = Transaction.objects.get(code=request.GET['transaction'])
    except:
        return HttpResponse("Транзакция не найдена.")

    # проверяем форму
    form = TransferForm()
    if request.method == 'POST':
        form = TransferForm(request.POST)
        
        # форма валидная
        if form.is_valid():
            
            # проверяем счет отправителя
            try:
                sender = Bill.objects.get(number=form.cleaned_data['sender'])
            except Exception, exc:
                form._errors.setdefault("sender", ErrorList()).append("Счет не найден." + str(exc))
                
            if form.cleaned_data['csv'] != sender.csv:
                form._errors.setdefault("csv", ErrorList()).append("Номер csv не верный.")
            
            # счет верный пытаемся осущесвить перевод
            else:
                # спрашиваем нужна ли еще оплата
                try:
                    rpc_srv = conn.TimeoutServerProxy(trans.client.xmlrpc_page, timeout=2)
                    res = rpc_srv.is_active_transaction(trans.code)
                except Exception, exc:
                    return HttpResponse("Ошибка получателя перевода." + str(exc))
                
                if res == False:
                    return HttpResponse("Время перечисления средств истекло.")
                  
                # переводим если достаточно средств  
                if trans.to_pass(sender):
                    return HttpResponseRedirect("%s?transaction=%s" % (trans.client.success_page, trans.code) )
                else:
                    form._errors.setdefault("__all__", ErrorList()).append("Недостаточно средств.")                    
 def post(self):
     form = TransferForm(request.form)
     if form.validate():
         email = form.email.data
         money = form.money.data
         user = User.query.filter_by(email=email).first()
         if user:
             user_id = session.get('user_id')
             myself = User.query.get(user_id)
             if myself.deposit >= money:
                 user.deposit += money
                 myself.deposit -= money
                 db.session.commit()
                 return '转账成功!'
             else:
                 return '余额不足!'
         else:
             return '该用户不存在!'
     else:
         return '数据填写不正确!'
示例#8
0
def transfer(puppy_id):
    if 'username' not in login_session:
        flash ("Please login for more complete access to our puppies.")
        return redirect ('/puppies')
    puppy = session.query(Puppy).filter(Puppy.id==puppy_id).one()
    if login_session['admin'] < 2 and puppy.user_id != login_session['user_id']:
        flash ("You do not have the authority to access that page.")
        return redirect ('/puppies')
    form = TransferForm()
    shelters = session.query(Shelter).filter(Shelter.occupancy<Shelter.capacity\
        , Shelter.id != puppy.shelter_id).all()
    if form.validate_on_submit():
        session.query(Puppy).filter(Puppy.id==puppy_id).update({'shelter_id' :\
            form.newShelter.data})
        session.commit()
        flash("You successfully transferred your puppy.")
        return redirect(url_for('shelters'))
    else:
        return render_template ('transfer.html', form=form, puppy=puppy,\
            shelters=shelters)
示例#9
0
def add_transfer():
    form = TransferForm()
    banks = Bank.query.filter_by(bmID=current_user.bmID)
    form.accountfrom.choices = [(bank.bankID,
                                 bank.bankname + " - " + bank.accounttype)
                                for bank in banks]
    form.accountto.choices = [(bank.bankID,
                               bank.bankname + " - " + bank.accounttype)
                              for bank in banks]
    if form.validate_on_submit():
        new_transfer = Transfer(bmID=current_user.bmID,
                                accountfrom=form.accountfrom.data,
                                accountto=form.accountto.data,
                                amount=form.amount.data,
                                frequency=form.frequency.data,
                                nextduedate=form.nextduedate.data)
        db.session.add(new_transfer)
        db.session.commit()
        return redirect(url_for('view_transfers'))
    return render_template("add-transfer.html", form=form)
示例#10
0
def CreateOrEditTransfer_view(request, transfer_id=None):
    response_data = {}  # словарь для JSON-ответа
    if (transfer_id == None or transfer_id == '999999'):
        _transfer = Transfer()
        _message = 'Заявка добавлена успешно'
    else:
        _transfer = get_object_or_404(Transfer, id=transfer_id)
        _message = 'Заявка отредактирована успешно'
    if request.method == "GET" and request.is_ajax():
        # сериализуем только queryset поэтому заворчаиваем объект в [obj,]
        data = serializers.serialize(
            'json', [
                _transfer,
            ],
            fields=('date_departure', 'time_departure', 'place_departure',
                    'place_arrival', 'quantity_total', 'quantity_adult',
                    'quantity_member', 'status', 'status_comment'))
        return _json_response(data)
    if request.POST:
        formTransfer = TransferForm(request.POST, instance=_transfer)
        if formTransfer.is_valid():
            res = formTransfer.save(commit=False)
            res.user_id = auth.get_user(
                request
            ).id  #передаем  ID директора , к которому привязан участник

            # Если участник использует чекбокс "Свое название", то сохраняем его в базу
            if ('transDepartureSelf' in request.POST) and \
                request.POST['transDepartureSelf'] not in \
                list(Place_departure_choices.objects.filter(user_id = auth.get_user(request)).values_list('place_name',\
                    flat=True)):
                new_dep_place = Place_departure_choices(
                    user=auth.get_user(request),
                    place_name=request.POST['transDepartureSelf'])
                new_dep_place.save()
                res.place_departure = new_dep_place

            if ('transArrivalSelf' in request.POST) and \
                request.POST['transArrivalSelf'] not in \
                list(Place_departure_choices.objects.filter(user_id = auth.get_user(request)).values_list('place_name',\
                    flat=True)):
                new_arriv_place = Place_departure_choices(
                    user=auth.get_user(request),
                    place_name=request.POST['transArrivalSelf'])
                new_arriv_place.save()
                res.place_arrival = new_arriv_place

            # Рассчитываем сумму заявки и сохраняем ;
            res.payment = fee_transfer

            formTransfer.save()
            messages.add_message(request, messages.SUCCESS, _message)
            return HttpResponse('ok')
        else:
            response_data['errors'] = u'Неправильно заполнена форма.'
            response_data['formErrors'] = simplejson.dumps(formTransfer.errors)
            return _json_response(response_data)
    return redirect('/')
示例#11
0
def TransferFrame_view(request):
    # для iframe
    if request.method == "GET":
        print "--simply GET----"
        args = {}
        #_user = auth.get_user(request)
        _id = auth.get_user(request).id  # ИД авторизированного юзера
        try:
            args['transfers'] = (Transfer.objects.filter(user_id=_id))
        except ObjectDoesNotExist:
            args['transfers'] = " "
        args['formTransfer'] = TransferForm(
            _user=_id)  # передаем параметр для фильтрации место прибытия
        return render(request, 'tables/TableTransfersChild.html', args
                      #context_instance = RequestContext(request, args)
                      )
示例#12
0
def player(request, player_id):
    player_id = int(player_id)
    p = Player.objects.get(id=player_id)

    if request.method == 'POST' and request.POST['form_name'] == 'transfer':
        tf = TransferForm(request.POST)
        tf.fields['to'].choices = get_transfer_choices(player_id)
        if tf.is_valid():
            to_name = do_transfer(player_id, tf.cleaned_data['to'],
                                  Decimal(tf.cleaned_data['amount']))
            messages.success(
                request,
                "${} transferred to {}.".format(tf.cleaned_data['amount'],
                                                to_name))
            return redirect('bank.views.player', player_id)
        iform = IncomeForm()
    elif request.method == 'POST' and request.POST['form_name'] == 'income':
        iform = IncomeForm(request.POST)
        if iform.is_valid():
            p.balance += Decimal(iform.cleaned_data['amount'])
            p.save()
            messages.success(
                request,
                "Added ${} income..".format(iform.cleaned_data['amount']))
            return redirect('bank.views.player', player_id)
        tf = TransferForm()
    else:
        tf = TransferForm()
        iform = IncomeForm()
        tf.fields['to'].choices = get_transfer_choices(player_id)

    return render(
        request, "player.html", {
            'player': p,
            'transfer_form': tf,
            'players': Player.objects.all(),
            'income_form': iform
        })
示例#13
0
文件: app.py 项目: aryan0078/banking
def my_account():
    withdraw_form = WithdrawForm()
    deposit_form = DepositForm()
    transfer_form = TransferForm()
    if session['username'] is None:
        return render_template('my_account.html')
    user = session['username']
    account = Account.query.filter_by(name=user).first()
    transactions = Transaction.query.filter_by(account_id=account.id).order_by(
        Transaction.date.desc())

    if deposit_form.deposit.data and deposit_form.validate():
        id = account.id
        amount = deposit_form.amount.data
        account = Account.query.get(id)
        if account.deposit_withdraw('deposit', amount):
            new_transaction = Transaction('deposit', 'self deposit',
                                          account.id, amount)
            db.session.add(new_transaction)
            db.session.commit()
            return redirect(url_for('my_account'))
        else:
            return redirect(url_for('my_account'))
    elif withdraw_form.withdraw.data and withdraw_form.validate():
        id = account.id
        amount = withdraw_form.amount.data
        account = Account.query.get(id)
        if account.deposit_withdraw('withdraw', amount):
            new_transaction = Transaction('withdraw', 'self withdraw',
                                          account.id, (amount * (-1)))
            db.session.add(new_transaction)
            db.session.commit()
            return redirect(url_for('my_account'))
        else:
            return redirect(url_for('my_account'))
    elif transfer_form.transfer.data and transfer_form.validate():
        id = account.id
        amount = transfer_form.amount.data
        account_id = transfer_form.account_id.data
        password = transfer_form.password.data
        account = Account.query.get(id)
        if check_password_hash(account.password, password):
            if account.deposit_withdraw('withdraw', amount):
                new_transaction = Transaction(
                    'transfer out', f'transfer to account {account_id}',
                    account.id, (amount * (-1)))
                db.session.add(new_transaction)
                recipient = Account.query.get(account_id)
                if recipient.deposit_withdraw('deposit', amount):
                    new_transaction2 = Transaction(
                        'transfer in', f'transfer from account {account.id}',
                        account_id, amount)
                    db.session.add(new_transaction2)
                    db.session.commit()
                    return redirect(url_for('my_account'))
                else:
                    return redirect(url_for('my_account'))
            else:
                return redirect(url_for('my_account'))
        else:
            return '<h1>Invalid Account Password</h1>'

    return render_template('my_account.html',
                           user=user,
                           account=account,
                           transactions=transactions,
                           withdraw_form=withdraw_form,
                           deposit_form=deposit_form,
                           transfer_form=transfer_form)
示例#14
0
def home(request):

    _user = auth.get_user(request)

    if _user.is_superuser:
        return redirect('/admin')
    if not _user.is_authenticated():
        #return redirect('/login');
        print '-----redirect'
        return redirect(reverse('login'))
    else:
        _id = auth.get_user(request).id  # ИД авторизированного юзера

        # отменили пока проверку 2016.04.04
        ## проверяем заполено ли в профиле поле с e-mail и имя коллектива, если нет , отправляем заполнять
        #print "---mail is : -------"
        #print Director.objects.get(user_id = _id).email
        #if (Director.objects.get(user_id = _id).email in ['', None]) or \
        #    (Director.objects.get(user_id = _id).groupName in ['', None]):
        #    return redirect(reverse('editDir'))

        args = {}
        args.update(csrf(request))
        args['title'] = u'Главная'

        args['username'] = auth.get_user(request).username
        # profile
        try:
            args['directorOfGroup'] = Director.objects.get(user_id=_id)
        except ObjectDoesNotExist:
            args['directorOfGroup'] = " "
        # --news--
        try:
            args['news'] = News.objects.order_by(
                'id').reverse()[:3]  # берем только 3 последние новости
        except ObjectDoesNotExist:
            args['news'] = " "
        #-- member--
        try:
            args['members'] = (Member.objects.filter(user_id=_id))
        except ObjectDoesNotExist:
            args['members'] = " "
        # передаем экземпляр формы для добавления участника
        args['form'] = MemberForm()

        # передаем форму для загрузки фотки
        args['formFoto'] = DirectorUploadFile()
        # передаем форму для редактирования профиля
        args['formEditDir'] = DirectorEditForm(instance=get_object_or_404(
            Director, user_id=_id))  #Director.objects.get(user_id =_id) )

        #--Particapation--
        try:
            args['participation'] = (Participation.objects.filter(user_id=_id,
                                                                  fest_num=2))
        except ObjectDoesNotExist:
            args['participation'] = " "
        args['formParticipation'] = ParticipationForm(_user=_id)
        #сумма оргвзноса за заявки на участие
        sumParticipation = 0
        for parton in Participation.objects.filter(user_id=_id):
            sumParticipation += parton.payment
        args['sumParticipation'] = sumParticipation
        #print "---print Participation================"
        #print sumParticipation
        #--Residing--
        try:
            args['residing'] = (Residing.objects.filter(user_id=_id,
                                                        fest_num=2))
        except ObjectDoesNotExist:
            args['residing'] = " "
        args['formResiding'] = ResidingForm(_user=_id)

        #--Transfer--
        try:
            args['transfers'] = (Transfer.objects.filter(user_id=_id,
                                                         fest_num=2))
        except ObjectDoesNotExist:
            args['transfers'] = " "
        args['formTransfer'] = TransferForm(
            _user=_id)  # передаем параметр для фильтрации место прибытия
        #--Excursion
        try:
            args['excursions'] = (Excursion.objects.filter(user_id=_id,
                                                           fest_num=2))
        except ObjectDoesNotExist:
            args['excursions'] = " "
        args['formExcursion'] = ExcursionForm(_user=_id)

        #--Food--
        try:
            args['foods'] = (Food.objects.filter(user_id=_id, fest_num=2))
        except ObjectDoesNotExist:
            args['foods'] = " "
        args['formFood'] = FoodForm(_user=_id)

        args['year'] = datetime.now().year

        #return render_to_response('Member_raduga_template.html'  ,  args , context_instance=RequestContext(request))
        return render(
            request,
            'Member_raduga_template.html',  #args )                
            context_instance=RequestContext(
                request, args)  # old version render , prior 1.10 
        )
示例#15
0
def transfer():
    form = TransferForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            src_acc_id = form.src_acc_id.data
            tar_acc_id = form.tar_acc_id.data
            amount = form.amount.data

            src_acc = Account.query.filter_by(ws_acc_id=src_acc_id).first()
            tar_acc = Account.query.filter_by(ws_acc_id=tar_acc_id).first()

            if src_acc and tar_acc:
                x = int(src_acc.ws_acct_balance)
                y = int(tar_acc.ws_acct_balance)
                z = int(amount)
                if x < z:
                    flash("Transfer not allowed, please choose smaller amount",
                          "danger")
                else:
                    src_acc.ws_acct_balance = x - z
                    src_acc.acct_lasttrdate = datetime.now()
                    tar_acc.ws_acct_balance = y + z
                    tar_acc.acct_lasttrdate = datetime.now()
                    db.session.commit()
                    flash("Amount transfer completed successfully", "success")

                    #for sourse account
                    transaction = Transaction(
                        ws_acc_id=src_acc.ws_acc_id,
                        ws_cust_id=src_acc.ws_cust_id,
                        ws_amt=amount,
                        ws_acct_type=src_acc.ws_acct_type,
                        ws_src_typ=src_acc.ws_acct_type,
                        ws_tgt_typ=tar_acc.ws_acct_type,
                        cr_or_db='Debit')
                    transaction.ws_trxn_date = datetime.now()
                    transaction.ws_src_typ = src_acc.ws_acct_type
                    transaction.ws_tgt_typ = tar_acc.ws_acct_type
                    transaction.description = '' + amount + ' transfered from ' + str(
                        src_acc.ws_acc_id) + ' to ' + str(tar_acc.ws_acc_id)
                    db.session.add(transaction)
                    db.session.commit()
                    #for destination
                    transaction = Transaction(
                        ws_acc_id=tar_acc.ws_acc_id,
                        ws_cust_id=tar_acc.ws_cust_id,
                        ws_amt=amount,
                        ws_acct_type=tar_acc.ws_acct_type,
                        ws_src_typ=src_acc.ws_acct_type,
                        ws_tgt_typ=tar_acc.ws_acct_type,
                        cr_or_db='Credit')
                    transaction.ws_trxn_date = datetime.now()
                    transaction.ws_src_typ = src_acc.ws_acct_type
                    transaction.ws_tgt_typ = tar_acc.ws_acct_type
                    transaction.description = '' + amount + ' transfered from ' + str(
                        src_acc.ws_acc_id) + ' to ' + str(tar_acc.ws_acc_id)
                    db.session.add(transaction)
                    db.session.commit()

                    return render_template('transfer.html',
                                           src_acc=src_acc,
                                           tar_acc=tar_acc,
                                           title='Transfer',
                                           x=x,
                                           y=y,
                                           get_accounts=True)
            elif not src_acc:
                flash("Source account not found !", "danger")
            elif not tar_acc:
                flash("Target account not found !", "danger")
            else:
                flash("Something went wrong ....", 'danger')

    return render_template("transfer.html",
                           form=form,
                           title="Transfer",
                           get_accounts=True)
示例#16
0
def bankTransfer():

    db = get_db()
    user_id = g.user
    balance = round(g.balance, 2)
    form = TransferForm()

    if form.validate_on_submit():
        recipient = form.recipient.data
        amount = form.amount.data
        db = get_db()
        receiving = db.execute(
            ''' SELECT * FROM users
                            WHERE user_id = ?;''', (recipient, )).fetchone()
        sender = db.execute(
            ''' SELECT * FROM users
                            WHERE user_id = ?;''',
            (user_id, )).fetchone()["balance"]

        if receiving is None:
            form.recipient.errors.append("Person does not exist!")

        elif receiving is not None:
            if recipient != user_id:
                receiver = receiving["balance"]
                receiver_name = str(receiving["user_id"])

                if balance >= amount:
                    #Enough in account
                    if amount > 0:
                        currentTransaction = datetime.datetime.now()
                        db.execute(
                            '''UPDATE users
                                    SET balance = ?
                                    WHERE user_id = ?;''',
                            (sender - float(amount), user_id))
                        db.commit()
                        db.execute(
                            '''UPDATE users
                                    SET balance = ?
                                    WHERE user_id = ?;''',
                            (receiver + float(amount), recipient))
                        db.commit()
                        db.execute(
                            '''INSERT INTO transactions(sender, receiver, amount, time_of_transaction)
                                    VALUES(?, ?, ?, ?);''',
                            (user_id, receiver_name, float(amount),
                             currentTransaction))
                        db.commit()
                        form.recipient.errors.append(
                            "Sent Waluigi Dollars successfully.")
                        eventLogger(user_id, "sent Waluigi Dollars to someone")
                        currentBal = db.execute(
                            ''' SELECT * FROM users
                                WHERE user_id = ?;''',
                            (user_id, )).fetchone()["balance"]
                        session["balance"] = currentBal
                    else:
                        form.recipient.errors.append("Nice try...")

                else:
                    form.recipient.errors.append(
                        "Bank said no! Go get a job, loser!")
                    eventLogger(user_id, "failed to send Waluigi Dollars")
            else:
                form.recipient.errors.append("Can't send money to yourself...")
                eventLogger(user_id, "tried to send themselves money")

    if "transactionList" not in session:
        session["transactionList"] = {}

    users = {}
    amount_received = {}
    amount_sent = {}
    time = {}
    db = get_db()
    transactions = db.execute(
        '''SELECT * FROM transactions WHERE sender = ? or receiver = ?;''', (
            user_id,
            user_id,
        )).fetchall()
    session["balance"] = round(session["balance"], 2)
    return render_template("bank.html",
                           form=form,
                           balance=session["balance"],
                           transactions=transactions)