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})
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)
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)
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)
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'
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 '数据填写不正确!'
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)
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)
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('/')
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) )
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 })
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)
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 )
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)
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)