Example #1
0
def loan_add(request, item_id):
    item = get_object_or_404(Item, pk=item_id)
    peoples = People.objects.all().order_by('-last_name')
    loan = Loan()
    loan.start_date = date.today()
    end_date_widget = SelectDateWidget()
    end_date_render = end_date_widget.render('end_date',
                                             loan.start_date)
    context = {
        'item': item,
        'loan': loan,
        'peoples': peoples,
        'end_date_widget': end_date_render,
    }
    return render(request, 'loan_add.html', context)
Example #2
0
def loan_save(request, item_id):
    error = False
    error_message = []

    try:
        loan = Loan()
        loan.item = get_object_or_404(Item, pk=item_id)
        loan.start_date = date.today()
        loan.end_date = None
        loan.estimated_end_date = date(int(request.POST['end_date_year']),
                                       int(request.POST['end_date_month']),
                                       int(request.POST['end_date_day']))
        loan.state = STATE_IN_LOAN
        loan.observations_loan = request.POST['observations']
        loan.people = People.objects.get(pk=request.POST['people'])

    except(KeyError, People.DoesNotExist):
        error = True
        error_message.append("La persona es requerida")

    if error:
        peoples = People.objects.all().order_by('-last_name')
        end_date_widget = SelectDateWidget()
        end_date_render = end_date_widget.render('end_date',
                                                 loan.estimated_end_date)
        context = {
            'item': loan.item,
            'loan': loan,
            'peoples': peoples,
            'end_date_widget': end_date_render,
            'error_message': error_message,
        }
        return render(request, 'loan_add.html', context)
    else:
        loan.condition_loan = loan.item.condition
        loan.condition_return = None
        loan.start_date = datetime.today()
        loan.item.state = STATE_LENT
        loan.people.active_loans = loan.people.active_loans + 1
        loan.save()
        loan.item.save()
        loan.people.save()
        context = {
            'loan': loan,
            'success_message': 'El prestamo se ha relizado exitosamente.',
        }
        return render(request, 'loan.html', context)