Ejemplo n.º 1
0
def add_registration(request):
    check_events_happened()
    user = User.objects.get(pk=request.data['user'])
    event = Event.objects.get(pk=request.data['event'])
    p = Payment()
    p.event = event
    try:
        p.method = request.data['method'][0]
        if p.method == 'CashOnSpot':
            r_a = Decimal(0.0)
        else:
            r_a = Decimal(request.data['total_amount'])
    except KeyError:
        p.method = "FREE"
        r_a = Decimal(0.0)
    p.total_amount = Decimal(request.data['total_amount'])
    p.received_amount = r_a
    p.save()
    r = Registration()
    r.event_title = event.title
    r.user = user
    r.event = event
    r.payment = p
    r.number_of_tickets = request.data['number_of_tickets']
    r.price = request.data['price']
    r.voucher_code = ""
    r.total_price = Decimal(request.data['total_amount'])
    r.save()
    if p.method == 'CashOnSpot':
        r.voucher_code = "E" + str(event.id) + "R" + str(r.pk) + "P" + str(
            p.pk) + 'COS'
    else:
        r.voucher_code = "E" + str(event.id) + "R" + str(r.pk) + "P" + str(
            p.pk) + p.method[0]
    r.save()
    event.sold_tickets = event.sold_tickets + r.number_of_tickets
    event.remaining_tickets = event.total_tickets - event.sold_tickets
    event.save()
    return Response({'status': 'OK'})