Example #1
0
def update(request, sale_type, sale_id):
    if sale_type == 'cash':
        instance = CashSale
    else:
        instance = CreditSale

    sale = get_object_or_404(instance, pk=sale_id)

    if request.method == 'POST':
        contacts = sale.contact_list.post_dict(request.POST)
        form = sale_form(sale_type, request.POST, instance=sale)
        stock_item_code = request.POST.get('stock-item-code', '')

        if stock_item_code:
            msg = sale.cart.add_item(stock_item_code)
            if msg.get('success', ''):
                messages.success(request, msg.get('success', ''))
            else:
                messages.warning(request, msg.get('warning', ''))
        else:
            if form.is_valid():
                form.save()
                sale.cart.update_items(request.POST)
                messages.success(request, 'Sale updated')

        msg = sale.contact_list.update_contacts(contacts)
        if msg:
            messages.warning(request, msg)
    else:
        try:
            contacts = sale.contact_list.get_dict()
        except AttributeError:
            sale.save()
            contacts = {}
        form = sale_form(sale_type, instance=sale)

    stock_items = sale.cart.stockcartitem_set.all()

    data = {
        'cart': sale.cart,
        'contacts': contacts,
        'form': form,
        'price_type': sale.customer.price_type,
        'sale': sale,
        'sale_type': sale_type,
        'stock_items': stock_items,
    }

    return render_to_response(
        'sales/update.html',
        data,
        context_instance=RequestContext(request),
    )
Example #2
0
def create(request, sale_type, customer_id):
    customer = get_object_or_404(Customer, pk=customer_id)

    if request.method == 'POST':
        form = sale_form(sale_type, request.POST)
        if form.is_valid():
            sale = form.save()
            History.created_history(sale, request.user)
            messages.success(request, 'Sale created')
            return redirect('sales:update', sale_type, sale.pk)
    else:
        form = sale_form(sale_type, initial={'customer': customer.pk})

    data = {
        'form': form,
        'sale_type': sale_type,
    }

    return render_to_response(
        'sales/create.html',
        data,
        context_instance=RequestContext(request),
    )