Пример #1
0
 def test_functions_defaults(self):
     self.assertEqual(get_last_value(), None)
     self.assertEqual(get_next_value(), 1)
     self.assertEqual(get_last_value(), 1)
     self.assertEqual(get_next_value(), 2)
     self.assertEqual(get_last_value(), 2)
     self.assertEqual(get_next_value(), 3)
Пример #2
0
 def test_functions_sequence_name(self):
     self.assertEqual(get_last_value("cases"), None)
     self.assertEqual(get_next_value("cases"), 1)
     self.assertEqual(get_last_value("cases"), 1)
     self.assertEqual(get_next_value("cases"), 2)
     self.assertEqual(get_last_value("invoices"), None)
     self.assertEqual(get_next_value("invoices"), 1)
     self.assertEqual(get_last_value("invoices"), 1)
     self.assertEqual(get_next_value("invoices"), 2)
Пример #3
0
 def retorna_numero_do_protocolo(cls):
     id_sequecial = get_last_value('protocolo_analise_sensorial')
     serial = ''
     if id_sequecial is None:
         id_sequecial = '1'
     else:
         id_sequecial = str(get_last_value('protocolo_analise_sensorial') + 1)
     for _ in range(MAX_NUMERO_PROTOCOLO - len(id_sequecial)):
         serial = serial + '0'
     serial = serial + str(id_sequecial)
     return f'AS{serial}'
Пример #4
0
def outbound(request, id=0):
    if 'is_login' not in request.session or request.session['limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form': OutboundForm(),
                        'title': 'Add Outbound | Outbound',
                        'customer': Customer.objects.filter(deleted=0, userGroup=request.session['usergroup']),
                        'date': datetime.datetime.now().strftime("%Y-%m-%d"),
                        'id_outbound_date': datetime.datetime.now().strftime("%d%m%Y"),
                        'id_outbound': get_last_value('outbound_seq'),
                        'role': request.session['role'],
                        'username': request.session['username'],
                        'group_id': request.session['usergroup'],
                        'con_cre': request.session['id'],
                    }
                    return render(request, 'inside/wmsOutbound/outbound.html', context)
                return render(request, 'inside/wmsOutbound/update_outbound.html', context)
            else:
                if id == 0:
                    form = OutboundForm(request.POST)
                if form.is_valid():
                    form.save()
                    if id == 0:
                        get_next_value('outbound_seq')
                    return redirect('outbound')
            return render(request, 'inside/wmsOutbound/outbound.html')
Пример #5
0
def subcategory(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form':
                        SubcategoryForm(),
                        'category':
                        Category.objects.get(pk=request.session['category']),
                        'subcategory_id':
                        get_last_value('subcategory_seq'),
                        'group_id':
                        request.session['usergroup'],
                        'role':
                        request.session['role'],
                        'username':
                        request.session['username'],
                        'title':
                        'Add Subcategory | Inbound'
                    }
                    return render(request,
                                  'inside/wmsInbound/subcategoryCreate.html',
                                  context)
                else:
                    subcategory = Subcategory.objects.get(pk=id)
                    context = {
                        'form': SubcategoryForm(instance=subcategory),
                        'subcategory': subcategory,
                        'role': request.session['role'],
                        'group_id': request.session['usergroup'],
                        'username': request.session['username'],
                        'title': 'Update Subcategory | Inbound'
                    }
                    return render(request,
                                  'inside/wmsInbound/subcategoryUpdate.html',
                                  context)
            else:
                if id == 0:
                    form = SubcategoryForm(request.POST)
                else:
                    subcategory = Subcategory.objects.get(pk=id)
                    form = SubcategoryForm(request.POST, instance=subcategory)
                if form.is_valid():
                    form.save()
                    if id == 0:
                        get_next_value('subcategory_seq')
                    return redirect('subcategoryIndex',
                                    id=request.session['category'])
Пример #6
0
def register(request):
    if request.method == "GET":
        context = {
            'title': 'Register Akun',
            'id': get_last_value('usergroup_seq'),
            'provinsi': Province.objects.all(),
        }
        return render(request, "inside/wmsGroup/register.html", context)
    elif request.method == "POST":
        if UserGroup.objects.filter(email=request.POST['email']).exists():
            messages.error(request, 'Email already exists')
            return redirect('groupRegister')
        else:
            form = UserGroupForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
                man_user = User.objects.create(
                    name='MAN_'+request.POST['name'],
                    username=request.POST['email'],
                    password=request.POST['password'],
                    userGroup=UserGroup.objects.get(pk=request.POST['id']),
                    role=Role.objects.get(pk='MAN')
                )
                man_user.save()
                get_next_value('usergroup_seq')
                email = urlsafe_base64_encode(force_bytes(request.POST['email']))
                domain = get_current_site(request).domain
                token = token_generator.make_token(request.POST['phoneNumber'])
                link = reverse('activate', kwargs={'email': email, 'token': token})
                usergroup = UserGroup.objects.filter(email=request.POST['email'])
                usergroup.update(token=token)
                activate_url = 'http://'+domain+link

                email_subject = 'Activate WMS Polpos account'
                email_body = 'Hello '+request.POST['name']+' link activate is '+activate_url
                email = EmailMessage(
                    email_subject,
                    email_body,
                    settings.EMAIL_HOST_USER,
                    [request.POST['email']],
                )
                email.send(fail_silently=False)
                return redirect('login')
            else:
                messages.error(request, 'Terjadi Error')
                return redirect('groupRegister')
    else:
        context = {
            'title': 'Register Akun',
            'ug': UserGroup.objects.get(pk=request.session['usergroup'])
        }
        return render(request, "inside/wmsGroup/register.html", context)
Пример #7
0
def rack(request):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if request.method == "GET":
                context = {
                    'form': RackForm(),
                    'role': request.session['role'],
                    'group_id': request.session['usergroup'],
                    'username': request.session['username'],
                    'id': get_last_value('rack_seq'),
                    'title': 'Add Rack',
                }
                return render(request, 'inside/wmsStorage/rackCreate.html',
                              context)
            else:
                if Rack.objects.filter(rack=request.POST['rack'],
                                       userGroup=request.session['usergroup'],
                                       deleted=0).exists():
                    messages.error(request, 'Rack ID has been used')
                    return redirect('rackCreate')
                else:
                    form = RackForm(request.POST)
                    if form.is_valid():
                        form.save()
                        numberbin = int(request.POST['row']) * int(
                            request.POST['col'])
                        data_bin = []
                        for i in range(int(numberbin)):
                            binlocation = request.POST['rack'] + (str(i + 1))
                            data_bin.append(
                                Binlocation(
                                    binlocation=binlocation,
                                    rack=Rack.objects.get(
                                        pk=request.POST['id']),
                                    capacity=request.POST['capacity'],
                                    userGroup=UserGroup.objects.get(
                                        pk=request.session['usergroup'])))
                        Binlocation.objects.bulk_create(data_bin)
                        get_next_value('rack_seq')
                        return redirect('rackIndex')

            return render(request, 'inside/wmsStorage/rackIndex.html')
Пример #8
0
def supplier(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form': SupplierForm(),
                        'id_supplier': get_last_value('supplier_seq'),
                        'group_id': request.session['usergroup'],
                        'username': request.session['username'],
                        'role': request.session['role'],
                        'title': 'Add Supplier | Inbound'
                    }
                    return render(request, 'inside/wmsInbound/supplier.html',
                                  context)
                else:
                    supplier = Supplier.objects.get(pk=id)
                    context = {
                        'form': SupplierForm(instance=supplier),
                        'supplier': supplier,
                        'group_id': request.session['usergroup'],
                        'username': request.session['username'],
                        'role': request.session['role'],
                        'title': 'Update Supplier | Inbound'
                    }
                return render(request,
                              'inside/wmsInbound/update_supplier.html',
                              context)
            else:
                if id == 0:
                    form = SupplierForm(request.POST)
                else:
                    supplier = Supplier.objects.get(pk=id)
                    form = SupplierForm(request.POST, instance=supplier)
                if form.is_valid():
                    form.save()
                    if id == 0:
                        get_next_value('supplier_seq')
                    return redirect('list_supplier')
            return render(request, 'inside/wmsInbound/supplier.html')
Пример #9
0
def supplierReturn(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'inbound':
                        Inbound.objects.filter(
                            deleted=0,
                            status=2,
                            userGroup=request.session['usergroup']),
                        'form':
                        SupplierReturnForm(),
                        'id':
                        request.session['id'],
                        'role':
                        request.session['role'],
                        'group_id':
                        request.session['usergroup'],
                        'username':
                        request.session['username'],
                        'id_supplierreturn':
                        get_last_value('supplierreturn_seq'),
                        'date':
                        datetime.datetime.today().strftime('%Y-%m-%d'),
                        'title':
                        'Add Supplier Return',
                    }
                    return render(
                        request, 'inside/wmsReturn/supplierReturnCreate.html',
                        context)
            else:
                if id == 0:
                    form = SupplierReturnForm(request.POST)
                if form.is_valid():
                    form.save()
                    if id == 0:
                        get_next_value('supplierreturn_seq')
                    return redirect('supplierReturnIndex')
Пример #10
0
def customer(request, id=0):
    if 'is_login' not in request.session or request.session['limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form': CustomerForm(),
                        'id_customer': get_last_value('customer_seq'),
                        'title': 'Add Customer | Customer',
                        'role': request.session['role'],
                        'username': request.session['username'],
                        'group_id': request.session['usergroup'],
                        'con_cre': request.session['id'],
                    }
                    return render(request, 'inside/wmsOutbound/customer.html', context)
                else:
                    customer = Customer.objects.get(pk=id)
                    context = {
                        'form': CustomerForm(instance=customer),
                        'customer': customer,
                        'group_id': request.session['usergroup'],
                        'title': 'Update customer | customer'
                    }
                return render(request, 'inside/wmsOutbound/update_customer.html', context)
            else:
                if id == 0:
                    form = CustomerForm(request.POST)
                else:
                    customer = Customer.objects.get(pk=id)
                    form = CustomerForm(request.POST, instance=customer)
                if form.is_valid():
                    form.save()
                    print(form.save())
                    if id == 0:
                        get_next_value('customer_seq')
                    return redirect('customer')
            return render(request, 'inside/wmsOutbound/customer.html')        
Пример #11
0
def costumerReturn(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form': CostumerReturnForm(),
                        'id': request.session['id'],
                        'role': request.session['role'],
                        'group_id': request.session['usergroup'],
                        'username': request.session['username'],
                        'id_costumerreturn':
                        get_last_value('costumerreturn_seq'),
                        'date': datetime.datetime.today().strftime('%Y-%m-%d'),
                        'title': 'Add Costumer Return',
                    }
                    return render(
                        request, 'inside/wmsReturn/costumerReturnCreate.html',
                        context)
            else:
                if id == 0:
                    form = CostumerReturnForm(request.POST)
                if form.is_valid():
                    outbound = Outbound.objects.get(
                        pk=request.POST['outbound'])
                    if request.POST['userGroup'] != outbound.userGroup.id:
                        messages.error(request, 'Outbound ID Not exist')
                        return redirect('costumerReturnCreate')
                    form.save()
                    if id == 0:
                        get_next_value('costumerreturn_seq')
                    return redirect('costumerReturnIndex')
                else:
                    messages.error(request, 'Outbound ID Not exist')
                    return redirect('costumerReturnCreate')
Пример #12
0
def borrow(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form': BorrowForm(),
                        'id': request.session['id'],
                        'role': request.session['role'],
                        'group_id': request.session['usergroup'],
                        'username': request.session['username'],
                        'id_borrow': get_last_value('borrow_seq'),
                        'date': datetime.datetime.today().strftime('%Y-%m-%d'),
                        'title': 'Add Borrow Data',
                    }
                    return render(request,
                                  'inside/wmsBorrow/borrowCreate.html',
                                  context)
                else:
                    borrow = Borrow.objects.get(pk=id)
                    context = {
                        'form':
                        BorrowForm(instance=borrow),
                        'item':
                        Item.objects.filter(
                            deleted=0, userGroup=request.session['usergroup']),
                        'borrow':
                        borrow,
                        'borrow_date':
                        datetime.datetime.today().strftime('%Y-%m-%d'),
                        'borrow_id':
                        request.session['borrow'],
                        'id':
                        request.session['id'],
                        'role':
                        request.session['role'],
                        'group_id':
                        request.session['usergroup'],
                        'username':
                        request.session['username'],
                        'title':
                        'Update List Borrow Data',
                    }
                    return render(request,
                                  'inside/wmsBorrow/borrowUpdate.html',
                                  context)
            else:
                if id == 0:
                    form = BorrowForm(request.POST)
                else:
                    borrow = Borrow.objects.get(pk=id)
                    form = BorrowForm(request.POST, instance=borrow)
                if form.is_valid():
                    form.save()
                    if id == 0:
                        get_next_value('borrow_seq')
                    return redirect('borrowIndex')
Пример #13
0
def outbounddata(request, id=0):
    if 'is_login' not in request.session or request.session['limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            print(it.avaibleItem(1, 0, request.session['usergroup']))
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form': OutboundDataForm(),
                        'title': 'Add Outbounddata | Outbound',
                        'id_outbounddata': get_last_value('outbounddata_seq'),
                        'role': request.session['role'],
                        'group_id': request.session['usergroup'],
                        'username': request.session['username'],
                        'item': it.avaibleItem(1, 0, request.session['usergroup']),
                        'outboundid': request.session['outbound_id'],
                    }
                    return render(request, 'inside/wmsOutbound/outbounddata.html', context)
                else:
                    outbounddata = OutboundData.objects.get(pk=id)
                    context = {
                        'title': 'Update Outbounddata | Outbound',
                        'form': OutboundDataForm(instance=outbounddata),
                        'item': it.avaibleItem(1, 0, request.session['usergroup']),
                        'outbounddata': outbounddata,
                        'outboundid': request.session['outbound_id'],
                        'group_id': request.session['usergroup'],
                        'role': request.session['role'],
                        'username': request.session['username'],
                    }
                    return render(request, 'inside/wmsOutbound/update_outbounddata.html', context)
            else:
                if id == 0:
                    form = OutboundDataForm(request.POST)
                else:
                    outbounddata = OutboundData.objects.get(pk=id)
                    form = OutboundDataForm(
                        request.POST, instance=outbounddata)
                if form.is_valid():
                    formqty = request.POST['quantity']
                    formitem = request.POST['item']
                    item = it.avaibleItem(
                        1, 0, request.session['usergroup'])
                    for i in item:
                        if i['item'] == formitem:
                            if i['qty'] < int(formqty):
                                messages.error(
                                    request, 'Item quantity exceeded the limit !')
                                return redirect('add_outbounddata')
                            else:
                                qtyOut = list(OutboundData.objects.filter(
                                    outbound=request.session['outbound_id'], deleted=0, userGroup=request.session['usergroup']).values_list('item__id'))
                                j = 0
                                while j < len(qtyOut):
                                    if qtyOut[j][0] == formitem:
                                        out = OutboundData.objects.filter(
                                            item=i['item'], outbound=request.session['outbound_id'], userGroup=request.session['usergroup'])
                                        outqty = out.first().quantity
                                        if id == 0:
                                            out.update(
                                                quantity=outqty + int(formqty))
                                            return redirect('view_outbound', id=request.session['outbound_id'])
                                        else:
                                            out.update(
                                                quantity=int(formqty))
                                            return redirect('view_outbound', id=request.session['outbound_id'])
                                    j += 1
                                form.save()
                                if id == 0:
                                    get_next_value('outbounddata_seq')
                                return redirect('view_outbound', id=request.session['outbound_id'])
Пример #14
0
def item(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form':
                        ItemForm(),
                        'subcategory':
                        Subcategory.objects.filter(
                            deleted=0, userGroup=request.session['usergroup']),
                        'item_id':
                        get_last_value('item_seq'),
                        'group_id':
                        request.session['usergroup'],
                        'role':
                        request.session['role'],
                        'username':
                        request.session['username'],
                        'title':
                        'Add Item | Inbound'
                    }
                    return render(request, 'inside/wmsInbound/itemCreate.html',
                                  context)
                else:
                    item = Item.objects.get(pk=id)
                    context = {
                        'form':
                        ItemForm(instance=item),
                        'item':
                        item,
                        'subcategory':
                        Subcategory.objects.filter(
                            deleted=0, userGroup=request.session['usergroup']),
                        'role':
                        request.session['role'],
                        'group_id':
                        request.session['usergroup'],
                        'username':
                        request.session['username'],
                        'title':
                        'Update Item | Inbound'
                    }
                    return render(request, 'inside/wmsInbound/itemUpdate.html',
                                  context)
            else:
                if id == 0:
                    form = ItemForm(request.POST)
                else:
                    item = Item.objects.get(pk=id)
                    form = ItemForm(request.POST, instance=item)
                if form.is_valid():
                    form.save()
                    if id == 0:
                        get_next_value('item_seq')
                    return redirect('itemIndex')
Пример #15
0
def inbound_data(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == "OPR":
            raise PermissionDenied
        else:
            item = Item.objects.filter(userGroup=request.session['usergroup'],
                                       deleted=0).all()
            if request.method == "GET":
                if id == 0:
                    context = {
                        'form':
                        InboundDataForm(),
                        'item':
                        item,
                        'username':
                        request.session['username'],
                        'role':
                        request.session['role'],
                        'group_id':
                        request.session['usergroup'],
                        'inbound_id':
                        request.session['inbound_id'],
                        'date':
                        datetime.datetime.now().strftime("%Y-%m-%d"),
                        'id_inbounddata_date':
                        datetime.datetime.now().strftime("%d%m%Y"),
                        'inbounddata_id':
                        get_last_value('inbounddata_seq'),
                        'title':
                        'Add InboundData | Inbound',
                    }
                    return render(request,
                                  'inside/wmsInbound/inbounddata.html',
                                  context)
                else:
                    inbounddata = InboundData.objects.get(pk=id)
                    context = {
                        'form': InboundDataForm(instance=inbounddata),
                        'item': item,
                        'title': 'Update ItemData | Inbound',
                        'username': request.session['username'],
                        'role': request.session['role'],
                        'inboundid': request.session['inbound_id'],
                        'inbounddata': inbounddata,
                    }
                    return render(request,
                                  'inside/wmsInbound/update_inbounddata.html',
                                  context)
            else:
                if id == 0:
                    form = InboundDataForm(request.POST)
                else:
                    inbounddata = InboundData.objects.get(pk=id)
                    form = InboundDataForm(request.POST, instance=inbounddata)
                if form.is_valid():
                    formqty = request.POST['quantity']
                    formitem = request.POST['item']
                    formreject = request.POST['reject']
                    Inbounddata = list(
                        InboundData.objects.filter(
                            inbound=request.session['inbound_id'],
                            userGroup=request.session['usergroup'],
                            deleted=0).values_list('item__id', flat=True))
                    if id == 0:
                        for i in Inbounddata:
                            if i == formitem:
                                InData = InboundData.objects.filter(
                                    item=i,
                                    inbound=request.session['inbound_id'],
                                    userGroup=request.session['usergroup'],
                                    deleted=0)
                                InData.update(
                                    quantity=InData.first().quantity +
                                    int(formqty),
                                    rejectCounter=InData.first().rejectCounter
                                    + int(formreject),
                                    reject=InData.first().reject +
                                    int(formreject))
                                return redirect(
                                    'view_inbound',
                                    id=request.session['inbound_id'])
                    form.save()
                    if id == 0:
                        get_next_value('inbounddata_seq')
                    return redirect('view_inbound',
                                    id=request.session['inbound_id'])
            return render(request, 'inside/wmsInbound/view_inbound.html')
Пример #16
0
def costumerReturndata(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if CostumerReturn.objects.get(
                    pk=request.session['costumerReturn']).status == '1':
                if request.method == "GET":
                    if id == 0:
                        context = {
                            'form':
                            CostumerReturndataForm(),
                            'item':
                            it.avaibleItem(1, 0, request.session['usergroup']),
                            'costumerReturnId':
                            request.session['costumerReturn'],
                            'id':
                            request.session['id'],
                            'role':
                            request.session['role'],
                            'group_id':
                            request.session['usergroup'],
                            'username':
                            request.session['username'],
                            'id_costumerreturndata':
                            get_last_value('costumerreturndata_seq'),
                            'date':
                            datetime.datetime.today().strftime('%Y-%m-%d'),
                            'title':
                            'Add Costumer Return Data',
                        }
                        return render(
                            request,
                            'inside/wmsReturn/costumerReturndataCreate.html',
                            context)
                    else:
                        costumerReturn = CostumerReturn.objects.get(pk=id)
                        context = {
                            'form':
                            CostumerReturndataForm(),
                            'item':
                            it.avaibleItem(1, 0, request.session['usergroup']),
                            'costumerReturnId':
                            request.session['costumerReturn'],
                            'id':
                            request.session['id'],
                            'role':
                            request.session['role'],
                            'group_id':
                            request.session['usergroup'],
                            'username':
                            request.session['username'],
                            'date':
                            datetime.datetime.today().strftime('%Y-%m-%d'),
                            'title':
                            'Add Costumer Return Data',
                            'id_costumerreturndata':
                            id
                        }
                        return render(
                            request,
                            'inside/wmsReturn/costumerReturndataUpdate.html',
                            context)
                else:
                    if id == 0:
                        form = CostumerReturndataForm(request.POST)
                    else:
                        costumerReturn = CostumerReturn.objects.get(pk=id)
                        form = CostumerReturndataForm(request.POST,
                                                      instance=costumerReturn)
                    if form.is_valid():
                        formqty = request.POST['quantity']
                        formitem = request.POST['item']
                        item = it.avaibleItem(1, 0,
                                              request.session['usergroup'])
                        for i in item:
                            if i['item'] == formitem:
                                if i['qty'] < int(formqty):
                                    messages.error(
                                        request,
                                        'Item quantity exceeded the limit !')
                                    return redirect('costumerReturndataCreate')
                                else:
                                    qtyCostumer = list(
                                        CostumerReturnData.objects.filter(
                                            costumerReturn=request.
                                            session['costumerReturn'],
                                            deleted=0).values_list('item__id'))
                                    j = 0
                                    while j < len(qtyCostumer):
                                        if qtyCostumer[j][0] == formitem:
                                            cosRet = CostumerReturnData.objects.filter(
                                                item=i['item'],
                                                costumerReturn=request.
                                                session['costumerReturn'],
                                                userGroup=request.
                                                session['usergroup'])
                                            cosRetqty = cosRet.first().quantity
                                            cosRet.update(quantity=cosRetqty)
                                            return redirect(
                                                'costumerReturndataIndex',
                                                id=request.
                                                session['costumerReturn'])
                                        j += 1
                                    form.save()
                                    if id == 0:
                                        get_next_value(
                                            'costumerreturndata_seq')
                                    return redirect(
                                        'costumerReturndataIndex',
                                        id=request.session['costumerReturn'])
            else:
                raise PermissionDenied
Пример #17
0
def supplierReturndata(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if request.method == "GET":
                if id == 0:
                    data = []
                    inbound = list(
                        InboundData.objects.filter(
                            deleted=0,
                            userGroup=request.session['usergroup'],
                            inbound=request.session['id_inbound']).values(
                                'id', 'item', 'rejectCounter', 'item__name'))
                    supplierReturnData = list(
                        SupplierReturnData.objects.filter(
                            deleted=0,
                            userGroup=request.session['usergroup'],
                            supplierReturn=request.session['supplierReturn']).
                        values('id', 'item', 'quantity'))
                    for i in inbound:
                        a = 0
                        for s in supplierReturnData:
                            if i['item'] == s['item']:
                                data.append({
                                    'id':
                                    i['id'],
                                    'rejectCounter':
                                    i['rejectCounter'] - s['quantity'],
                                    'item':
                                    i['item__name'],
                                    'item_id':
                                    i['item']
                                })
                                a = 1
                                break
                        if a == 0:
                            data.append({
                                'id': i['id'],
                                'rejectCounter': i['rejectCounter'],
                                'item': i['item__name'],
                                'item_id': i['item']
                            })
                    context = {
                        'form':
                        SupplierReturndataForm(),
                        'inbounddata':
                        InboundData.objects.filter(
                            inbound=request.session['id_inbound'],
                            deleted=0,
                            userGroup=request.session['usergroup']),
                        'supplierReturnId':
                        request.session['supplierReturn'],
                        'id':
                        request.session['id'],
                        'role':
                        request.session['role'],
                        'data':
                        data,
                        'group_id':
                        request.session['usergroup'],
                        'username':
                        request.session['username'],
                        'date':
                        datetime.datetime.today().strftime('%Y-%m-%d'),
                        'id_supplierreturndata':
                        get_last_value('supplierreturndata_seq'),
                        'title':
                        'Add Supplier Return Data',
                    }
                    return render(
                        request,
                        'inside/wmsReturn/supplierReturnDataCreate.html',
                        context)
                else:
                    supplierReturn = SupplierReturnData.objects.get(pk=id)
                    context = {
                        'form':
                        SupplierReturndataForm(instance=supplierReturn),
                        'inbounddata':
                        InboundData.objects.filter(
                            inbound=request.session['id_inbound'],
                            deleted=0,
                            userGroup=request.session['usergroup']),
                        'item':
                        it.avaibleItem(1, 0, request.session['usergroup']),
                        'supplierReturnId':
                        request.session['supplierReturn'],
                        'id':
                        request.session['id'],
                        'role':
                        request.session['role'],
                        'group_id':
                        request.session['usergroup'],
                        'username':
                        request.session['username'],
                        'date':
                        datetime.datetime.today().strftime('%Y-%m-%d'),
                        'title':
                        'Add Supplier Return Data',
                        'supplierreturn':
                        supplierReturn,
                    }
                    return render(
                        request,
                        'inside/wmsReturn/supplierReturnDataUpdate.html',
                        context)
            else:
                if id == 0:
                    form = SupplierReturndataForm(request.POST)
                else:
                    supplierReturn = SupplierReturnData.objects.get(pk=id)
                    form = SupplierReturndataForm(request.POST,
                                                  instance=supplierReturn)
                if form.is_valid():
                    formqty = request.POST['quantity']
                    formitem = request.POST['item']
                    rejectCounter = list(
                        InboundData.objects.filter(
                            inbound=request.session['id_inbound'],
                            deleted=0,
                            userGroup=request.session['usergroup']).values(
                                'rejectCounter', 'item'))
                    # for s in rejectCounter:
                    #     if formitem == (s['item']):
                    #         if int(formqty) > (s['rejectCounter']):
                    #             messages.error(
                    #                 request, 'Item quantity exceeded the limit !')
                    #             return redirect('supplierReturndataCreate')
                    if id == 0:
                        for i in rejectCounter:
                            # print(i['item'])
                            # print(i['rejectCounter'])
                            if i['item'] == formitem:
                                if int(formqty) > (i['rejectCounter']):
                                    messages.error(
                                        request,
                                        'Item quantity exceeded the limit !')
                                    return redirect('supplierReturndataCreate')
                                else:
                                    qtySupplier = list(
                                        SupplierReturnData.objects.filter(
                                            supplierReturn=request.
                                            session['supplierReturn'],
                                            deleted=0,
                                            userGroup=request.
                                            session['usergroup']).values_list(
                                                'item__id'))
                                    j = 0
                                    while j < len(qtySupplier):
                                        if qtySupplier[j][0] == formitem:
                                            supRet = SupplierReturnData.objects.filter(
                                                item=qtySupplier[j][0],
                                                supplierReturn=request.
                                                session['supplierReturn'],
                                                deleted=0,
                                                userGroup=request.
                                                session['usergroup'])
                                            pprint(supRet)
                                            supRetqty = supRet.first().quantity
                                            supRet.update(quantity=supRetqty +
                                                          int(formqty))
                                            # inbounddata2 = InboundData.objects.filter(
                                            #     item=qtySupplier[j][0], inbound=request.session['id_inbound'], deleted=0, userGroup=request.session['usergroup'])
                                            # inbounddata3 = inbounddata2.first()
                                            # inbounddata2.update(rejectCounter=inbounddata3.rejectCounter - int(
                                            #     formqty), quantity=inbounddata3.quantity + int(formqty))
                                            return redirect(
                                                'supplierReturndataIndex',
                                                id=request.
                                                session['supplierReturn'])
                                        j += 1
                    form.save()
                    # inbounddata2 = InboundData.objects.filter(
                    #     item=formitem, inbound=request.session['id_inbound'], deleted=0, userGroup=request.session['usergroup'])
                    # inbounddata3 = inbounddata2.first()
                    # # pp (inbounddata2)
                    # # pp (inbounddata3.rejectCounter)
                    # inbounddata2.update(
                    #     rejectCounter=inbounddata3.rejectCounter - int(formqty), quantity=inbounddata3.quantity + int(formqty))
                    if id == 0:
                        get_next_value('supplierreturndata_seq')
                    return redirect('supplierReturndataIndex',
                                    id=request.session['supplierReturn'])
                else:
                    return HttpResponse('error')
Пример #18
0
def borrowdata(request, id=0):
    if 'is_login' not in request.session or request.session[
            'limit'] <= datetime.datetime.today().strftime('%Y-%m-%d'):
        return redirect('login')
    else:
        if request.session['role'] == 'OPR':
            raise PermissionDenied
        else:
            if Borrow.objects.get(pk=request.session['borrow']).status != '1':
                raise PermissionDenied
            else:
                if request.method == "GET":
                    if id == 0:
                        context = {
                            'form':
                            BorrowdataForm(),
                            'id_borrowdata':
                            get_last_value('borrowdata_seq'),
                            'item':
                            it.avaibleItem(1, 0, request.session['usergroup']),
                            'borrow_id':
                            request.session['borrow'],
                            'id':
                            request.session['id'],
                            'role':
                            request.session['role'],
                            'group_id':
                            request.session['usergroup'],
                            'username':
                            request.session['username'],
                            'title':
                            'Add List Borrow Data',
                        }
                        return render(
                            request, 'inside/wmsBorrow/borrowdataCreate.html',
                            context)
                    else:
                        borrowdata = BorrowData.objects.get(pk=id)
                        context = {
                            'form':
                            BorrowdataForm(instance=borrowdata),
                            'item':
                            it.avaibleItem(1, 0, request.session['usergroup']),
                            'borrowdata':
                            borrowdata,
                            'borrow_id':
                            request.session['borrow'],
                            'id':
                            request.session['id'],
                            'role':
                            request.session['role'],
                            'group_id':
                            request.session['usergroup'],
                            'username':
                            request.session['username'],
                            'title':
                            'Update List Borrow Data',
                        }
                        return render(
                            request, 'inside/wmsBorrow/borrowdataUpdate.html',
                            context)
                else:
                    if id == 0:
                        form = BorrowdataForm(request.POST)
                    else:
                        borrowdata = BorrowData.objects.get(pk=id)
                        form = BorrowdataForm(request.POST,
                                              instance=borrowdata)
                    if form.is_valid():
                        formqty = request.POST['quantity']
                        formitem = request.POST['item']
                        item = it.avaibleItem(1, 0,
                                              request.session['usergroup'])
                        for i in item:
                            if i['item'] == formitem:
                                if i['qty'] < int(formqty):
                                    messages.error(
                                        request,
                                        'Item quantity exceeded the limit !')
                                    return redirect('borrowdataCreate')
                                else:
                                    qtyBorrow = list(
                                        BorrowData.objects.filter(
                                            borrow=request.session['borrow'],
                                            deleted=0,
                                            userGroup=request.
                                            session['usergroup']).values_list(
                                                'item__id'))
                                    j = 0
                                    while j < len(qtyBorrow):
                                        if qtyBorrow[j][0] == formitem:
                                            bor = BorrowData.objects.filter(
                                                item=i['item'],
                                                borrow=request.
                                                session['borrow'],
                                                userGroup=request.
                                                session['usergroup'],
                                                deleted=0)
                                            borqty = bor.first().quantity
                                            if id == 0:
                                                bor.update(quantity=borqty +
                                                           int(formqty))
                                                return redirect(
                                                    'borrowView',
                                                    id=request.
                                                    session['borrow'])
                                            else:
                                                bor.update(
                                                    quantity=int(formqty))
                                                return redirect(
                                                    'borrowView',
                                                    id=request.
                                                    session['borrow'])
                                        j += 1
                                    form.save()
                                    if id == 0:
                                        get_next_value('borrowdata_seq')
                                    return redirect(
                                        'borrowView',
                                        id=request.session['borrow'])