Пример #1
0
def new_count(request):
    recent_counts = InventoryCount.objects.all().order_by('-count_timestamp')[:10]
    if request.method == 'POST':
        inventoryform = InventoryForm(request.POST)
        if inventoryform.is_valid():
            part_number = inventoryform.cleaned_data['part'].strip().upper()
            location = inventoryform.cleaned_data['location'].strip().upper()
            count = inventoryform.cleaned_data['inventory_count']
            complete = inventoryform.cleaned_data['location_complete']
            part = get_object_or_404(Part, part_number=part_number)
            location = get_object_or_404(InventoryLocation, location_code=location)
            inv_count, _created = InventoryCount.objects.get_or_create(part=part, location=location)
            if _created:
                inv_count.inventory_count = count
                inv_count.scans = 1
            else:
                inv_count.inventory_count += count
                inv_count.scans += 1
            inv_count.counter = request.user
            inv_count.count_complete=complete
            inv_count.save()
            messages.success(request, 'Inventory Count Added')
            return HttpResponseRedirect(reverse('inventory.views.new_count'))
    else:
        inventoryform = InventoryForm()
    return render_to_response('inventory/new_count.html',
                              {
                                'inventoryform': inventoryform,
                                'recent_counts': recent_counts,
                              },
                              context_instance=RequestContext(request))
Пример #2
0
def update(request,id):
    inventory=Inventory.objects.get(id=id)
    form=InventoryForm(request.POST,instance=inventory)
    if form.is_valid():
        form.save()
        return redirect("/show")
    return render(request,'edit.html',{'inventory':inventory})
Пример #3
0
def item_detail(request, inventory_id):
    inventoryentry = get_object_or_404(Inventory, pk=inventory_id)
    form = InventoryForm(request.POST or None, instance=inventoryentry)
    if form.is_valid():
        form.save()

    context = {
        'inventoryentry': inventoryentry,
        'form': form,
    }
    return render(request, 'inventory/item_detail.html', context)
Пример #4
0
def addNewProduct(request):  #(add new product)
    print(request.method)
    form = InventoryForm()

    if request.method == 'POST':
        form = InventoryForm(request.POST, request.FILES)

        if form.is_valid():
            print("form")
            information = form.save(commit=False)

            information.save()

            render(request, 'inventory/create.html')
        else:
            form = InventoryForm()

            context = {
                'form': form,
            }
            return render(request,
                          'inventory/add_new_product.html.html',
                          context=context)

    else:
        return render(request, 'inventory/add_new_product.html',
                      {'form': form})
Пример #5
0
def invReq(request):
    if request.method=="POST":
        form=InventoryForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/show')
    else:
        form=InventoryForm()
    return render(request,'index.html',{'form':form})
Пример #6
0
def edit_item(request, item_id):
    """
    Function used to edit item in the inventory
    :param request: request received from web server
    :param item_id: current item id
    :return: renders home if success
    """
    try:
        instance = Inventory.objects.get(id=item_id)
        is_store_manager = request.user.groups.filter(
            name='Store Manager').exists()
        approval_form = ApprovalReasonForm(request.POST or None)
        form = InventoryForm(request.POST or None, instance=instance)
        if request.method == 'POST':
            if form.is_valid():
                inventory = form.save(commit=False)
                inventory.created_by = request.user
                if not is_store_manager and approval_form.is_valid():
                    approval = ApprovalRequests(
                        requested_user=request.user,
                        inventory=instance,
                        reason=approval_form.cleaned_data.get('reason', ''))
                    approval.save()
                    inventory.status = Inventory.PENDING
                else:
                    inventory.status = Inventory.APPROVED
                inventory.save()
                return HttpResponseRedirect(reverse('home'))
        return render(
            request, 'inventory.html', {
                'form': form,
                'approval_form': approval_form,
                'item': instance,
                'is_store_manager': is_store_manager
            })
    except Exception as e:
        return HttpResponse("Something went wrong")
Пример #7
0
    def run_form(self, *, new_color=None, new_qty=None, removed=None,
                 initial_color=None, initial_qty=None):

        form_data = {}
        if new_color:
            form_data['color'] = new_color.pk
        if new_qty is not None:
            form_data['qty'] = new_qty

        form = InventoryForm(userpart=self.user_part, data=form_data)

        if initial_color:
            if initial_qty is None:
                initial_qty = self.default_qty
            form.initial_data = {'color': initial_color, 'qty': initial_qty}

        form.full_clean()

        if removed:
            form.cleaned_data['DELETE'] = True

        return form
Пример #8
0
def add_inventory(request):
    """ Adds a piece of inventory. """
    LocationFormSet = modelformset_factory(LocationAmount,
        fields = ('location', 'amount'),
        extra=3,
        formset=RequiredFormSet)
    KeywordFormSet = modelformset_factory(KeywordValue,
        fields = ('keyword', 'value'),
        extra = Keyword.objects.count())

    if request.method == 'POST':
        inventory_form = InventoryForm(request.POST, prefix="inv")
        location_formset = LocationFormSet(request.POST, prefix = "loc")
        kw_formset = KeywordFormSet(request.POST, prefix="kw")
        if inventory_form.is_valid() and location_formset.is_valid() \
                and kw_formset.is_valid():
            # Is there an easier way to do this with an Inventory ModelForm?
            part_str = inventory_form.cleaned_data['part']
            color = inventory_form.cleaned_data['color']
            part = Part.objects.get(part_id__iexact=part_str)
            try:
                partinstance = PartInstance.objects.get(part=part, color=color)
            except PartInstance.DoesNotExist:
                print "PartInstance not exist, creating"
                partinstance = PartInstance(color=color, part=part, user_override=True)
                partinstance.save()
            inventory = Inventory(partinstance = partinstance)
            inventory.save()

            def add_inventory_to_formset(i):
                i.inventory = inventory
                i.save()

            instances = location_formset.save(commit = False)
            map(add_inventory_to_formset, instances)

            previous_keywords = []
            def process_kw_formset(i):
                # Add the inventory to each item and save it
                i.inventory = inventory
                i.save()
                # Save the keyword and value for populating next time
                d = {'keyword': i.keyword.pk, 'value': i.value}
                previous_keywords.append(d)

            instances = kw_formset.save(commit = False)
            map(process_kw_formset, instances)
            request.session['previous_keywords'] = previous_keywords

            if 'add_another' in request.POST:
                return redirect(add_inventory)
            else:
                return redirect(index)
    else:
        inventory_form = InventoryForm(prefix="inv")
        location_formset = LocationFormSet(prefix = "loc",
            queryset = LocationAmount.objects.none())

        if 'previous_keywords' in request.session:
            # Use keywords from previous form, if they exist
            previous_keywords = request.session['previous_keywords']
            del request.session['previous_keywords']
            kw_formset = KeywordFormSet(prefix="kw",
                queryset=Keyword.objects.none(),
                initial=previous_keywords)
        else:
            kw_formset = KeywordFormSet(prefix="kw",
                queryset=Keyword.objects.none())

    return render(request, 'add_inventory.html',
        {'inventory_form': inventory_form,
         'location_formset': location_formset,
         'kw_formset': kw_formset,
        })