Example #1
0
def edit_po(request, pk, item_id=None):
    if pk is not None:
        po = get_object_or_404(PurchaseOrder, pk=pk)
    else:
        po = PurchaseOrder(created_by=request.user)

    PurchaseOrderForm = modelform_factory(PurchaseOrder, exclude=[])
    form = PurchaseOrderForm(instance=po)

    ItemFormset = inlineformset_factory(
        PurchaseOrder,
        PurchaseOrderItem,
        extra=0,
        form=PurchaseOrderItemEditForm,
        exclude=[]
    )

    formset = ItemFormset(instance=po)

    if request.method == "POST":

        form = PurchaseOrderForm(request.POST, instance=po)

        if form.is_valid():

            po = form.save()
            formset = ItemFormset(request.POST, instance=po)

            if formset.is_valid():

                formset.save()
                msg = _("Purchase Order %d saved" % po.pk)

                if "confirm" in request.POST.keys():
                    po.submit(request.user)
                    msg = _("Purchase Order %d submitted") % po.pk

                messages.success(request, msg)
                return redirect(list_pos)

    request.session['current_po'] = po.pk

    data = {'order': po, 'form': form}
    data['formset'] = formset
    data['title'] = _('Purchase Order #%d' % po.pk)

    return render(request, "purchases/edit_po.html", data)
Example #2
0
def edit_po(request, pk, item_id=None):
    if pk is not None:
        po = get_object_or_404(PurchaseOrder, pk=pk)
    else:
        po = PurchaseOrder(created_by=request.user)

    PurchaseOrderForm = modelform_factory(PurchaseOrder, exclude=[])
    form = PurchaseOrderForm(instance=po)

    ItemFormset = inlineformset_factory(PurchaseOrder,
                                        PurchaseOrderItem,
                                        extra=0,
                                        form=PurchaseOrderItemEditForm,
                                        exclude=[])

    formset = ItemFormset(instance=po)

    if request.method == "POST":

        form = PurchaseOrderForm(request.POST, instance=po)

        if form.is_valid():

            po = form.save()
            formset = ItemFormset(request.POST, instance=po)

            if formset.is_valid():

                formset.save()
                msg = _("Purchase Order %d saved" % po.pk)

                if "confirm" in request.POST.keys():
                    po.submit(request.user)
                    msg = _("Purchase Order %d submitted") % po.pk

                messages.success(request, msg)
                return redirect(list_pos)

    request.session['current_po'] = po.pk

    data = {'order': po, 'form': form}
    data['formset'] = formset
    data['title'] = _('Purchase Order #%d' % po.pk)

    return render(request, "purchases/edit_po.html", data)
Example #3
0
def create_po(request, product_id=None, order_id=None):
    po = PurchaseOrder(created_by=request.user)
    location = request.user.get_location()
    po.location = location
    po.save()

    if order_id is not None:
        po.sales_order_id = order_id
        for i in ServiceOrderItem.objects.filter(order_id=order_id):
            po.add_product(i, amount=1, user=request.user)

    if product_id is not None:
        product = Product.objects.get(pk=product_id)
        po.add_product(product, amount=1, user=request.user)

    messages.success(request, _("Purchase Order %d created" % po.pk))

    return redirect(edit_po, po.pk)
Example #4
0
def create_po(request, product_id=None, order_id=None):
    """
    Creates a new Purchase Order
    """
    po = PurchaseOrder(created_by=request.user)
    po.location = request.user.get_location()
    po.save()

    if order_id is not None:
        po.sales_order = get_object_or_404(Order, pk=order_id)
        po.save()
        for i in ServiceOrderItem.objects.filter(order_id=order_id):
            po.add_product(i, amount=1, user=request.user)

    if product_id is not None:
        product = get_object_or_404(Product, pk=product_id)
        po.add_product(product, amount=1, user=request.user)

    messages.success(request, _("Purchase Order %d created" % po.pk))

    return redirect(edit_po, po.pk)