Example #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})
Example #2
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('/')
Example #3
0
File: views.py Project: 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("Недостаточно средств.")                    
Example #4
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
        })