Exemplo n.º 1
0
def change_request(request):
    """
    This view enables the user to add a change request or view a change request put by him
    Argument: Http Request
    Return: Render change_form.html
    """
    if request.method == 'POST':
        sessiondata = ChangeRequestForm(request.POST)
        purchase_order_of_session = sessiondata.data['purchase_order']
        session = sessiondata.data['session']
        object = VoucherId.objects.filter(session_id = session).\
        filter(purchase_order_of_session = purchase_order_of_session).values()
        if object:
            voucherid = VoucherId.objects.\
            filter(purchase_order_of_session=purchase_order_of_session,\
            session_id=session).values('purchase_order_id')
            for value in voucherid:
                purchase_order = value['purchase_order_id']
            bill = Bill.objects.values('grand_total').\
            get(purchase_order=purchase_order)
            surcharge = TaxesApplied.objects.values('surcharge__tax_name',\
                'id','tax').filter(purchase_order_id = purchase_order)
            details = VoucherId.objects.values\
            ('purchase_order__buyer__first_name',\
                'purchase_order__buyer__last_name',
                'purchase_order__buyer__customer__address__street_address',\
                'purchase_order__buyer__customer__title',
                'purchase_order__buyer__customer__address__district',\
                'purchase_order__mode_of_payment__method',
                'purchase_order__cheque_dd_number',\
                'purchase_order__cheque_dd_date').\
                filter(purchase_order_of_session=purchase_order_of_session)[0]
            session_data = FinancialSession.objects.values(\
                'session_start_date','session_end_date').get(id=session)
            messages = "Order" + " : " + purchase_order_of_session +\
            " and Session" + " : " + str(session_data['session_start_date']) +\
            ":" + str(session_data['session_end_date'])
            request_status = request_notify()    
            return render(request,'catalog/change_form.html',\
                {'details': details,'order_id':purchase_order_of_session,\
                'session':session,'surcharge':surcharge,'bill':bill,\
                'messages':messages, 'request':request_status})
        else:
                form = ChangeRequestForm()
                errors = "No such purchase order number in selected session" 
                request_status = request_notify()
                temp = {"form" : form , "errors" : errors,\
                'request':request_status}
                
                return render(request, 'catalog/change_request.html', temp) 
    else:
        form = ChangeRequestForm()
        request_status = request_notify()
        return render(request, 'catalog/change_request.html', \
            {'form':form,'request':request_status})
Exemplo n.º 2
0
 def view_results(self,request):
     """
     Converting data from dict to list form so that it can be render 
     easily.
     Calling template to be rendered.
     """
     generated_data_list = []
     for data in self.details:
         temporary = []
         for field in self.fields_list:
             temporary.append(data[field])
         generated_data_list.append(temporary)
     flag = 0
     suspense_flag = 0
     if 'proforma' in request.GET:
         flag=1
     suspense = SuspenseOrder.objects.filter(purchase_order=self.title)
     if suspense:
         suspense_flag = 1
     request_status = request_notify()    
     temp = {'client':self.selected_fields_client,
         'order':self.selected_fields_order, 'result':generated_data_list,
         'title':self.title,'order_id':self.purchase_order_id,
         'records':self.results,'request':request_status, 'flag':flag,\
         'suspense_flag':suspense_flag}
     return render(request,'reports/search_result.html',temp)
Exemplo n.º 3
0
def voucher_show(request):
    """
    This function shows the number of vouchers generated for a particular 
    order
    Argument:Http Request
    Return:Render Voucher Show
    """
    id = request.GET['order_id']
    purchase_order = PurchaseOrder.objects.get(id=id)
    voucher_no_list = []
    voucher_obj_distinct = []
    temp_voucherid = VoucherId.objects.values('voucher_no').\
    filter(purchase_order=purchase_order)[0]
    message = 'Voucher'
    if temp_voucherid['voucher_no'] == 0:
        message = "No voucher to display"
    voucherid = VoucherId.objects.values('purchase_order','purchased_item',\
        'voucher_no', 'session','purchase_order_of_session').\
    filter(purchase_order = purchase_order)
    for value in voucherid:
        if value['voucher_no'] not in voucher_no_list:
            voucher_no_list.append(value['voucher_no'])
            voucher_obj_distinct.append(value)
    suspense_order = SuspenseOrder.objects.values('voucher', 'session_id_id').\
    filter(purchase_order=id, is_cleared=1)
    request_status = request_notify()
    return render(request, 'voucher/voucher_show.html', {\
        'voucherid' : voucher_obj_distinct, 'suspense_order':suspense_order,\
        'request':request_status, 'message':message})
Exemplo n.º 4
0
 def view_results(self,request):
     """
     Converting data from dict to list form so that it can be render 
     easily.
     Calling template to be rendered.
     Argument:Http Request
     Return:Render Search Result
     """
     generated_data_list = []
     for data in self.details:
         temporary = []
         for field in self.fields_list:
             temporary.append(data[field])
         generated_data_list.append(temporary)
     flag = 0
     suspense_flag = 0
     if 'proforma' in request.GET:
         flag=1
     if 'Client' not in request.GET and 'proforma' not in request.GET:
         try:
             voucherid = VoucherId.objects.values('purchase_order').\
             filter(purchase_order_of_session=self.title)[0]
             suspense = SuspenseOrder.objects.filter(
                 purchase_order=voucherid['purchase_order'])
             if suspense:
                 suspense_flag = 1
         except:
             pass
     request_status = request_notify()    
     temp = {'client':self.selected_fields_client,
         'order':self.selected_fields_order, 'result':generated_data_list,
         'title':self.title,'order_id':self.purchase_order_id,
         'records':self.results,'request':request_status, 'flag':flag,\
         'suspense_flag':suspense_flag}
     return render(request,'reports/search_result.html',temp)
Exemplo n.º 5
0
def index(request):
    """
    It lists all the products and the user can select any product
    and can add them to the cart.
    Argument: Http Request
    Return: Render index.html
    """
    """error = {}
    categorylist = Category.objects.all()

    if categorylist.count() == 0:
        nocategory = True
        return render(request, 'catalog.html', {'nocategory': nocategory})
    productlist = Product.objects.all();

    if productlist.count() == 0:
        noproduct = True
        return render(request, 'catalog.html', {'noproduct': noproduct})

    return render(request,'catalog.html', {'productlist': productlist,
               'categorylist': categorylist})

    pass"""
    request_status = request_notify()
    return render(request,'index.html',{'request':request_status})
Exemplo n.º 6
0
def search_form(request):
    """
    View to display "search.html" i.e. the search interface or form.
    
    First it'll check which type of request is i.e; 'search' request or 
    'generate register' request. On the basis of that, it'll assign code
    to search_type_code which will be used in template.

    It'll raise an exception if anyone give invalid value in 'type'.
    Argument:Http Request
    Return:Render Search
    """
    try:
        if request.GET["type"] == "search":
            submit_url = "/search_result/"
            search_type_code = "1"
            client_form = ClientForm()
            order_form = OrderForm()
            request_status = request_notify()
            temp = {
                "client_form": client_form,
                "order_form": order_form,
                "code": search_type_code,
                "url": submit_url,
                "request": request_status,
            }
        elif request.GET["type"] == "register":
            submit_url = "/generate_register/"
            search_type_code = "2"
            client_form = ClientForm()
            order_form = OrderForm()
            add_constraints = AddConstraints()
            request_status = request_notify()
            temp = {
                "client_form": client_form,
                "order_form": order_form,
                "add_constraints": add_constraints,
                "code": search_type_code,
                "url": submit_url,
                "request": request_status,
            }
        else:
            return HttpResponse("<h1>Page not found</h1>")
    except:
        return HttpResponse("<h1>Invalid URL</h1>")
    return render(request, "reports/search.html", temp)
Exemplo n.º 7
0
def details(request):
    """
    displays the details of the purchase of the client
    """
    
    order_id = request.GET['order_id']
    purchases = PurchasedItem.objects.filter(purchase_order__id=order_id)
    request_status = request_notify()
    return render(request,'reports/history_details.html',\
        {'purchases':purchases,'order_id':order_id,'request':request_status})
Exemplo n.º 8
0
def list_saved_registers(request):
    """
    List saved registers
    """
    local_url = settings.LOCAL_URL
    list_of_registers = SavedRegisters.objects.\
    values('title','selected_fields')
    request_status = request_notify()
    return render(request,'reports/list_of_registers.html', \
        {'list_of_registers':list_of_registers,'local_url': local_url,\
        'request':request_status})
Exemplo n.º 9
0
def select_note(request):
    """
    View to handle selection of extra notes while adding quoted order.
    argument: Http Request.
    returns: Render form for selection of note form.
    """
    quoted_order_id = request.session.get('quoted_order_id')
    form = SelectNoteForm(initial={'quoted_order':quoted_order_id})
    request_status = request_notify()
    return render(request, 'bills/select_note.html', \
        {'form':form, 'request':request_status})
Exemplo n.º 10
0
def proforma_details(request):
    """
    displays the details of the proforma order of the client
    Argument:Http Request
    Return:Render Proforma Details
    """
    
    order_id = request.GET['order_id']
    quotes = QuotedItem.objects.filter(quoted_order__id=order_id)
    request_status = request_notify()
    return render(request,'reports/proforma_details.html',\
        {'quotes':quotes,'order_id':order_id,'request':request_status})
Exemplo n.º 11
0
def clearance_search(request):
    if request.method == 'POST':
        sessiondata = SessionSelectForm(request.POST)
        if sessiondata.is_valid():
            voucher = sessiondata.data['voucher']
            session = sessiondata.data['session']
            object = SuspenseOrder.objects.filter(session_id=session).\
            filter(voucher=voucher).values()
            if object:
                form = Clearance_form(initial={'voucher_no':voucher,\
                'session':session, 'labour_charge':0, 'car_taxi_charge':0,\
                'boring_charge_external':0, 'boring_charge_internal':0})
                clearance = 'enable'
                session_data = FinancialSession.objects.values(\
                    'session_start_date','session_end_date').get(id=session)
                messages = " Voucher" + " : " + voucher + " and Session" + " : " +\
                    str(session_data['session_start_date']) + ":" +\
                    str(session_data['session_end_date'])
                request_status = request_notify()
                return render(request, 'suspense/suspense_first.html', \
                    {'form':form, 'clearance':clearance,\
                    'messages':messages, 'request':request_status}) 
            else:
                form = SessionSelectForm()
                errors = "No such voucher number in selected session"
                request_status = request_notify()
                temp = {"form":form , "message":errors,\
                'request':request_status}
                return render(request, 'suspense/suspense_first.html', temp)
        else:
            form = SessionSelectForm(request.POST)
            request_status = request_notify()
            return render(request, 'suspense/suspense_first.html',\
                {'form':form, 'request':request_status})
    else:
        form = SessionSelectForm()
        request_status = request_notify()
        return render(request, 'suspense/suspense_first.html',\
            {'form':form, 'request':request_status})
Exemplo n.º 12
0
def search_form(request):
    """
    View to display "search.html" i.e. the search interface or form.
    
    First it'll check which type of request is i.e; 'search' request or 
    'generate register' request. On the basis of that, it'll assign code
    to search_type_code which will be used in template.

    It'll raise an exception if anyone give invalid value in 'type'.
    Argument:Http Request
    Return:Render Search
    """
    try:
        if request.GET['type'] == 'search':
            submit_url = reverse('search_result')
            search_type_code = '1'
            client_form = ClientForm()
            order_form = OrderForm()
            request_status = request_notify()
            temp = {'client_form':client_form,'order_form':order_form, 
            'code':search_type_code,
            'url':submit_url,
            'request':request_status    }
        elif request.GET['type'] == 'register':
            submit_url = reverse('view_register')
            search_type_code = '2'
            client_form = ClientForm()
            order_form = OrderForm()
            add_constraints=  AddConstraints()
            request_status = request_notify()
            temp = {'client_form':client_form,'order_form':order_form, 
            'add_constraints':add_constraints,'code':search_type_code,
            'url':submit_url,
            'request':request_status    }
        else:
            return HttpResponse('<h1>Page not found</h1>')
    except:
        return HttpResponse('<h1>Invalid URL</h1>')
    return render(request, 'reports/search.html',temp)
Exemplo n.º 13
0
def history(request):
    """
    displays the purchase history of the client
    """
    
    user_id = request.GET['user_id']
    purchases = VoucherId.objects.values('purchase_order',\
        'purchase_order_of_session','purchase_order__mode_of_payment__method',\
        'purchase_order__date_time').\
        filter(purchase_order__buyer__id=user_id)
    request_status = request_notify()
    return render(request,'reports/purchase_history.html',\
        {'purchases':purchases,'request':request_status})
Exemplo n.º 14
0
def sessionselect(request):
    if request.method == 'POST':
        form = SessionSelectForm(request.POST)
        if form.is_valid():
            session = request.POST['session'][0]
            voucher = request.POST['voucher']
            Session = FinancialSession.objects.filter(id = session).\
            values('session_start_date','session_end_date')
            for date in Session:
                session_start_date = date['session_start_date']
                session_end_date =  date['session_end_date']
            object = SuspenseOrder.objects.filter(session_id=session).\
            filter(voucher=voucher).values()
            if object:
                Transport = TransportForm1()
                messages = " Voucher "+" "+ voucher +" and Session"+" "+\
                str(session_start_date)+":"+str(session_end_date)
                request_status = request_notify()
                temp = {"TransportForm":Transport, "session":session,\
                "voucher":voucher,"messages":messages,'request':request_status}
                return render(request, 'suspense/transportform.html', temp)
            else:
                form = SessionSelectForm()
                request_status = request_notify()
                errors = "No such voucher number in selected session" 
                temp = {"SelectForm":form, "errors":errors,\
                'request':request_status}
                return render(request, 'voucher/sessionselect.html', temp)  
        else:
            form = SessionSelectForm(request.POST)
            request_status = request_notify()
            temp = {"SelectForm":form, 'request':request_status}
            return render(request, 'voucher/sessionselect.html', temp)
    else:
        form = SessionSelectForm()
        request_status = request_notify()
        temp = {"SelectForm":form,'request':request_status}
        return render(request, 'voucher/sessionselect.html', temp)
Exemplo n.º 15
0
def list_saved_registers(request):
    """
    List saved registers
    Argument:Http Request
    Return:Render List of Registers
    """
    local_url = settings.LOCAL_URL
    list_of_registers = SavedRegisters.objects.values("title", "selected_fields")
    request_status = request_notify()
    return render(
        request,
        "reports/list_of_registers.html",
        {"list_of_registers": list_of_registers, "local_url": local_url, "request": request_status},
    )
Exemplo n.º 16
0
def tada_order_session(request):
    if request.method == 'POST':
        form = SessionSelectForm(request.POST)
        if form.is_valid():
            session = request.POST['session']
            voucher = request.POST['voucher']
            object = SuspenseOrder.objects.filter(session_id=session).\
            filter(voucher=voucher).values()
            if object:
                form = TaDaForm(initial={'voucher_no':voucher,\
                    'session': session})
                tada = 'enable'
                session_data = FinancialSession.objects.values(\
                    'session_start_date','session_end_date').get(id=session)
                messages = " Voucher" + " : " + voucher + " and Session" + " : " +\
                str(session_data['session_start_date']) + ":" +\
                str(session_data['session_end_date'])
                request_status = request_notify()
                return render(request, 'suspense/form.html', \
                {'form':form, 'tada':tada, 'messages':messages,\
                'request':request_status})
            else:
                form = SessionSelectForm()
                request_status = request_notify()
                errors = "No such voucher number in selected session"
                temp = {"form":form , "errors":errors,'request':request_status}
                return render(request, 'suspense/form.html', temp)
        else:
            form = SessionSelectForm(request.POST)
            request_status = request_notify()
            return render(request, 'suspense/form.html', {
                'form':form, 'request':request_status})
    else:
        form = SessionSelectForm()
        request_status = request_notify()
        return render(request, 'suspense/form.html', {
            'form':form,'request':request_status})
Exemplo n.º 17
0
def order_added_success(request):
    order_id = request.session.get('purchase_order_id')
    details = PurchaseOrder.objects.values('buyer__first_name',\
        'buyer__last_name','buyer__customer__address__street_address',\
        'buyer__customer__title','buyer__customer__address__city',\
        'mode_of_payment__method','cheque_dd_number',\
        'cheque_dd_date').filter(id=order_id)[0]
    suspense_flag = 0
    suspense = SuspenseOrder.objects.filter(purchase_order=order_id)
    if suspense:
        suspense_flag = 1
    request_status = request_notify()
    return render(request,'catalog/order_added_success.html',\
        {'details': details,'order_id':order_id,'request':request_status,\
        'suspense_flag':suspense_flag})
Exemplo n.º 18
0
def list_products(request):
    """
    This view lists products for viewing purpose
    Argument: Http Request
    Return: Render catalog page
    """ 
    if request.method == 'POST':
        form = ProductListForm(request.POST)
        if form.is_valid():
            select_lab = request.POST['select_lab']
            root_name = Category.objects.get(id=select_lab)
            all_products = Product.objects.filter(category__parent__parent=select_lab)
            work_type = Category.objects.filter(parent=select_lab)
            category = Category.objects.filter(parent__parent=select_lab)
            result = []
            for work in work_type:
                temp = []
                temp.append(work.name)
                work_type_category = Category.objects.filter(parent=work.id)
                temp.append(work_type_category)
                products = Product.objects.filter(category__parent__parent=select_lab)
                temp.append(products)
                result.append(temp)
            return render(request,'catalog/list_products.html',{'result':result,
                'root_name':root_name})


            # all_products = Product.objects.filter(category__parent__parent=select_lab)
            # all_categories=Category.objects.filter().order_by('name')
            # products_dict = { }
            # for one_category in all_categories:
            #     if one_category.is_leaf_node():
            #         one_category_dict = {}
            #         products_list = Product.objects.filter(category=one_category)
            #         attributes_dict = { }
            #         for one_product in products_list:
            #             attributes_list = Catalog.objects.filter(product = one_product)
            #             attributes_dict[one_product] = attributes_list
            #         one_category_dict[one_category.name] = attributes_dict
            #         products_dict[one_category.id] = one_category_dict
            # return render(request,'catalog/list_products.html',{'nodes':all_categories, \
            #     'products_dict':products_dict})
    else:
        form = ProductListForm()
        request_status = request_notify()
        return render(request,'catalog/product_list_form.html', \
        {'form':form,'request':request_status})
Exemplo n.º 19
0
def history(request):
    """
    displays the purchase history of the client
    Argument:Http Request
    Return:Render Purchase History
    """
    
    user_id = request.GET['user_id']
    purchases = VoucherId.objects.values('purchase_order',\
        'purchase_order_of_session','purchase_order__mode_of_payment__method',\
        'purchase_order__date_time').\
        filter(purchase_order__buyer__id=user_id)
    proformas = QuotedOrderofSession.objects.values('quoted_order',\
        'quoted_order_session', 'quoted_order__date_time').\
        filter(quoted_order__buyer__id=user_id)
    request_status = request_notify()
    return render(request,'reports/purchase_history.html',\
        {'purchases':purchases,'proformas':proformas,'request':request_status})
Exemplo n.º 20
0
def voucher_show(request):
    id = request.GET["order_id"]
    purchase_order = PurchaseOrder.objects.get(id=id)
    voucher_no_list = []
    voucher_obj_distinct = []
    voucherid = VoucherId.objects.values(
        "purchase_order", "purchased_item", "voucher_no", "session", "purchase_order_of_session"
    ).filter(purchase_order=purchase_order)
    for value in voucherid:
        if value["voucher_no"] not in voucher_no_list:
            voucher_no_list.append(value["voucher_no"])
            voucher_obj_distinct.append(value)
    suspense_order = SuspenseOrder.objects.values("voucher", "session_id_id").filter(purchase_order=id, is_cleared=1)
    request_status = request_notify()
    return render(
        request,
        "voucher/voucher_show.html",
        {"voucherid": voucher_obj_distinct, "suspense_order": suspense_order, "request": request_status},
    )
Exemplo n.º 21
0
def clearance_options(request):
    voucher_no = request.GET.get('voucher_no')
    session_id = request.GET.get('session')
    financialsession = FinancialSession.objects.values('session_start_date',\
        'session_end_date').get(id=session_id)
    voucherid = VoucherId.objects.values('purchase_order_of_session',\
        'purchase_order').filter(voucher_no=voucher_no, session_id=session_id)[0]
    with_transport = 0
    try:
        Transport.objects.get(voucher_no=voucher_no, session_id=session_id)
    except:
        with_transport = 1
    details = PurchaseOrder.objects.values('buyer__first_name',\
        'buyer__last_name','buyer__customer__address__street_address',\
        'buyer__customer__title','buyer__customer__address__city',\
        'mode_of_payment__method','cheque_dd_number',\
        'cheque_dd_date').filter(id=voucherid['purchase_order'])[0]
    request_status = request_notify()
    return render(request,'suspense/clearance_options.html',\
        {'details': details,'order_id':voucherid['purchase_order_of_session'],
        'request':request_status, 'voucher_no':voucher_no,\
        'session_id':session_id, 'financialsession':financialsession,\
        'request':request_status, 'with_transport':with_transport})
Exemplo n.º 22
0
def order_added_success(request):
    """
    This view displays Success message after order is successfully added
    Argument: Http Request
    Return: Render order_added_success.html
    """
    order_id = request.session.get('purchase_order_id')
    details = VoucherId.objects.values('purchase_order__buyer__first_name',\
        'purchase_order__buyer__last_name',
        'purchase_order__buyer__customer__address__street_address',\
        'purchase_order__buyer__customer__title',
        'purchase_order__buyer__customer__address__district',\
        'purchase_order__mode_of_payment__method',
        'purchase_order__cheque_dd_number',\
        'purchase_order__cheque_dd_date',
        'receipt_no_of_session').filter(purchase_order=order_id)[0]
    suspense_flag = 0
    suspense = SuspenseOrder.objects.filter(purchase_order=order_id)
    if suspense:
        suspense_flag = 1
    request_status = request_notify()
    return render(request,'catalog/order_added_success.html',\
        {'details': details,'order_id':order_id,'request':request_status,\
        'suspense_flag':suspense_flag})
Exemplo n.º 23
0
def mark_clear(request):
        suspense_obj = SuspenseOrder.objects.filter().\
        values('voucher','session_id')
        suspense_cleared = SuspenseOrder.objects.filter().values(\
            'voucher','session_id','is_cleared')
        list_clearance = []
        list_user = []
        list_details = []
        for suspense_var in suspense_obj:
            SuspenseClearance_object = SuspenseClearance.objects.\
            filter(session = suspense_var['session_id']).\
            filter(voucher_no=suspense_var['voucher']).values('session',\
                'voucher_no', 'lab_testing_staff','field_testing_staff',\
                'test_date','clear_date')
            if SuspenseClearance_object:
                list_clearance.append(SuspenseClearance_object)
        for temp_var in list_clearance:
            for voucher_var in temp_var:
                voucher_object = VoucherId.objects.\
                filter(voucher_no=voucher_var['voucher_no']).\
                filter(session_id=voucher_var['session']).\
                values('purchase_order__buyer__first_name',\
                    'purchase_order__buyer__last_name',\
                    'purchase_order__buyer__customer__address__street_address',\
                    'purchase_order__buyer__customer__address__city',\
                    'purchase_order__buyer__customer__address__province')
                if voucher_object:
                    list_user.append(voucher_object)
        list_user_clr = zip (list_user,list_clearance)
        for suspense_var,voucher_var in list_user_clr:
            final_list = zip(suspense_var,voucher_var)
            list_details.append(final_list)    
        request_status = request_notify()
        return render(request, 'suspense/mark_suspense_clear.html', {
            'listed':list_details, 'suspense_cleared':suspense_cleared,\
            'request':request_status})
Exemplo n.º 24
0
def list_products(request):
    """
    This view lists products for viewing purpose
    Argument: Http Request
    Return: Render catalog page
    """
    if request.method == "POST":
        form = ProductListForm(request.POST)
        if form.is_valid():
            select_lab = request.POST["select_lab"]
            root_name = Category.objects.get(id=select_lab)
            work_type = Category.objects.filter(parent=select_lab)
            result = []
            for work in work_type:
                temp = []
                temp.append(work.name)
                work_type_category = Category.objects.filter(parent=work.id)
                temp.append(work_type_category)
                products = Product.objects.filter(
                    category__parent__parent=select_lab)
                temp.append(products)
                result.append(temp)
            return render(
                request,
                "catalog/list_products.html",
                {
                    "result": result,
                    "root_name": root_name
                },
            )

            # all_products = Product.objects.filter(
            # category__parent__parent=select_lab)
            # all_categories=Category.objects.filter().order_by('name')
            # products_dict = { }
            # for one_category in all_categories:
            #     if one_category.is_leaf_node():
            #         one_category_dict = {}
            #         products_list = Product.objects.filter(
            #         category=one_category)
            #         attributes_dict = { }
            #         for one_product in products_list:
            #             attributes_list = Catalog.objects.filter(
            #             product = one_product)
            #             attributes_dict[one_product] = attributes_list
            #         one_category_dict[one_category.name] = attributes_dict
            #         products_dict[one_category.id] = one_category_dict
            # return render(request,'catalog/list_products.html',{'nodes
            # ':all_categories, \
            #     'products_dict':products_dict})
    else:
        form = ProductListForm()
        request_status = request_notify()
        return render(
            request,
            "catalog/product_list_form.html",
            {
                "form": form,
                "request": request_status
            },
        )
Exemplo n.º 25
0
def clearance_result(request):
    if request.method == 'POST':
        form = Clearance_form(request.POST)
        if form.is_valid():
            formdata = form.cleaned_data
            voucher_no = formdata['voucher_no']
            session = formdata['session']
            labour_charge = formdata['labour_charge']
            car_taxi_charge = formdata['car_taxi_charge']
            boring_charge_external = formdata['boring_charge_external']
            boring_charge_internal = formdata['boring_charge_internal']
            lab_testing_staff = formdata['lab_testing_staff']
            field_testing_staff = formdata['field_testing_staff']
            test_date = formdata['test_date']
            clear_date = formdata['clear_date']
            session_id = str(session)
            split = session_id.split(' : ')
            start_date = datetime.strptime(split[0], '%Y-%m-%d').date()
            end_date = datetime.strptime(split[1], '%Y-%m-%d').date()
            financialsession = FinancialSession.objects.values('id').\
            get(session_start_date=start_date, session_end_date=end_date)
            suspense_object = SuspenseOrder.objects.filter(voucher=voucher_no,\
                session_id=session).update(is_cleared=0)
            try:
                SuspenseClearance.objects.get(voucher_no=voucher_no,\
                    session=financialsession['id'])
                SuspenseClearance.objects.\
                filter(voucher_no=voucher_no, session=financialsession['id']).\
                update(session=session, voucher_no=voucher_no,\
                    work_charge=0, labour_charge=labour_charge,\
                    car_taxi_charge=car_taxi_charge,\
                    boring_charge_external=boring_charge_external,\
                    boring_charge_internal=boring_charge_internal,\
                    lab_testing_staff=lab_testing_staff,\
                    field_testing_staff=field_testing_staff,\
                    test_date=test_date)
            except:
                obj= SuspenseClearance(session=session, voucher_no=voucher_no,
                     work_charge=0, labour_charge=labour_charge,
                     car_taxi_charge=car_taxi_charge, 
                     boring_charge_external=boring_charge_external,
                     boring_charge_internal=boring_charge_internal,
                     lab_testing_staff=lab_testing_staff,
                     field_testing_staff=field_testing_staff,
                     test_date=test_date)
                obj.save()
            request_status = request_notify()    
            temp = {'session':session,'voucher_no': voucher_no,\
                    'labour_charge':labour_charge,\
                    'car_taxi_charge':car_taxi_charge,
                    'boring_charge_external':boring_charge_external,
                    'boring_charge_internal':boring_charge_internal,
                    'lab_testing_staff':lab_testing_staff,
                    'field_testing_staff':field_testing_staff,\
                    'test_date':test_date, 'clear_date':clear_date,\
                    'request':request_status}
            return render(request, 'suspense/clearance_result.html', temp)
        else:
            voucher = request.POST['voucher_no']
            session = request.POST['session']
            transport = Transport.objects.values('total').\
            get(voucher_no=voucher, session=session)
            form = Clearance_form(request.POST,initial={'voucher_no': voucher,\
            'session': session, 'car_taxi_charge':transport['total']})
            clearance = 'enable'
            message = "Fields are mandatory"
            request_status = request_notify()
            return render(request, 'suspense/suspense_first.html', \
                {'form':form, 'clearance':clearance, 'message':message,
                'request':request_status})
    else:
        return HttpResponseRedirect(\
            reverse('librehatti.suspense.views.clearance_search'))
Exemplo n.º 26
0
def select_note(request):
    quoted_order_id = request.session.get('quoted_order_id')
    form = SelectNoteForm(initial={'quoted_order': quoted_order_id})
    request_status = request_notify()
    return render(request, 'bills/select_note.html', \
        {'form':form, 'request':request_status})
Exemplo n.º 27
0
def transportbill(request):
    if request.method == 'POST':
        form = TransportForm1(request.POST)
        if form.is_valid():
            if not 'session' in request.POST:
                HttpResponseRedirect(\
                    reverse("librehatti.suspense.views.sessionselect"))
            session = FinancialSession.objects.\
            get(id=request.POST['session'])
            voucher = request.POST['voucher']
            date_of_generation = request.POST['Date_of_generation']
            vehicle = Vehicle.objects.get(id=request.POST['Vehicle'])
            kilometers_list = simplejson.dumps(\
                request.POST.getlist("kilometer"))
            kilometers = json.loads(kilometers_list)
            dated = simplejson.dumps(request.POST.getlist("date"))
            date = json.loads(dated)
            rate_object = Surcharge.objects.filter(\
                tax_name='transportation').values('value')[0]
            rate = int(rate_object['value'])
            distance = 0
            for temp_var in kilometers:
                distance = distance + int(temp_var)
            total = rate * distance
            suspense_object = SuspenseOrder.objects.filter(voucher=voucher,\
            session_id=session).update(is_cleared=0)
            try:
                if Transport.objects.filter(voucher_no=voucher).exists():
                    Transport.objects.filter(voucher_no = voucher).\
                    update(vehicle=vehicle,kilometer=kilometers ,\
                    date_of_generation=date_of_generation, total = total,\
                    date=date, rate=rate, voucher_no=voucher,\
                    session=session)
                else:
                    obj = Transport(vehicle=vehicle, kilometer=kilometers,\
                    date_of_generation=date_of_generation, total=total,\
                    date=date, rate=rate, voucher_no=voucher,\
                    session=session)
                    obj.save()
            except:
                pass 
            temp = Transport.objects.filter(voucher_no=voucher).values()
            total_amount = Transport.objects.filter(voucher_no=voucher).\
            aggregate(Sum('total')).get('total__sum', 0.00)
            zipped_data = zip(date, kilometers)
            transport_total = [] 
            for date_var,kilometers_var in zipped_data:
                cal_total = rate * int(kilometers_var)
                transport_total.append(cal_total)
            zip_data = zip(date, kilometers, transport_total)
            header = HeaderFooter.objects.values('header').\
            get(is_active=True)
            footer = HeaderFooter.objects.values('footer').\
            get(is_active=True)
            request_status = request_notify()
            session_id = session.id
            return render(request, 'suspense/transport_summary.html',
                   {'words':num2eng(total_amount), 'total':total,
                   'header':header, 'kilometers':kilometers, 'rate':rate,\
                   'date':date, "voucherid":voucher, "temp":temp,\
                   'zip_data':zip_data, 'total_amount':total_amount,\
                   'date_of_generation':date_of_generation,\
                   'vehicle':vehicle,'request':request_status,\
                   'session':session_id})
        else:
            message = " Fields are mandatory"
            session = request.POST['session']
            voucher = request.POST['voucher']
            object = SuspenseOrder.objects.filter(session_id=session).\
            filter(voucher=voucher).values()
            if object:
                TransportForm = TransportForm1(request.POST)
                message = " Fields are mandatory"
                request_status = request_notify()
                temp = {"TransportForm":TransportForm, "session":session,\
                "voucher":voucher, "message":message, 'request':request_status}
                return render(request, 'suspense/transportform.html', temp)
    else:
        form = SessionSelectForm()
        request_status = request_notify()
        temp = {"SelectForm":form,'request':request_status}
        return render(request, 'voucher/sessionselect.html', temp)
Exemplo n.º 28
0
def tada_result(request):
    if request.method == 'POST':
        form = TaDaForm(request.POST)
        if form.is_valid():
            session = request.POST['session']
            voucher = request.POST['voucher_no']
            departure_time_from_tcc = request.POST['departure_time_from_tcc']
            arrival_time_at_site = request.POST['arrival_time_at_site']
            departure_time_from_site = request.POST['departure_time_from_site']
            arrival_time_at_tcc = request.POST['arrival_time_at_tcc']
            start_test_date = request.POST['start_test_date']
            end_test_date = request.POST['end_test_date']
            source_site = request.POST['source_site']
            testing_site = request.POST['testing_site']
            testing_staff = request.POST['testing_staff']
            testing_staff_list = testing_staff.split(',')
            list_staff = []
            if start_test_date == end_test_date:
                days = 1
            else:
                no_of_days = datetime.strptime(end_test_date, '%Y-%m-%d') -\
                datetime.strptime(start_test_date, '%Y-%m-%d')
                days = no_of_days.days + 1
            for testing_staff_var in testing_staff_list:
                testing_staff_details = Staff.objects.filter(\
                    code=testing_staff_var).values('name','daily_ta_da')
                for tada_val in testing_staff_details:
                    tada_val['daily_ta_da'] = tada_val['daily_ta_da'] * days
                list_staff.append(testing_staff_details)
            header = HeaderFooter.objects.values('header').get(is_active=True)
            footer = HeaderFooter.objects.values('footer').get(is_active=True)
            voucher_obj = VoucherId.objects.filter(session=session).\
            filter(voucher_no=voucher).\
            values_list('purchase_order_id', flat=True)
            purchase_order_var = 0
            for temp_var in voucher_obj:
                purchase_order_var = temp_var
            purchase_order_object = PurchaseOrder.objects.filter(\
                id = purchase_order_var).values('id', 'buyer_id__username',\
                'buyer_id__first_name', 'buyer_id__last_name')
            tada_total = 0
            for temp_var in list_staff:
                for tada_value in temp_var:
                    tada_total = tada_value['daily_ta_da'] + tada_total
            suspense_object = SuspenseOrder.objects.filter(voucher=voucher,\
                session_id=session).update(is_cleared=0)
            if TaDa.objects.filter(voucher_no=voucher).\
            filter(session=session).exists():
                TaDa.objects.filter(voucher_no=voucher).\
                update(voucher_no=voucher, session=session,\
                departure_time_from_tcc=departure_time_from_tcc,\
                arrival_time_at_site=arrival_time_at_site,\
                departure_time_from_site=departure_time_from_site,\
                arrival_time_at_tcc=arrival_time_at_tcc,\
                tada_amount=tada_total, start_test_date=start_test_date,\
                end_test_date=end_test_date, source_site=source_site,\
                testing_site=testing_site , testing_staff=testing_staff,)

            else:
                obj = TaDa(voucher_no=voucher, session=session,\
                departure_time_from_tcc=departure_time_from_tcc,\
                arrival_time_at_site=arrival_time_at_site,\
                departure_time_from_site=departure_time_from_site,\
                arrival_time_at_tcc=arrival_time_at_tcc,\
                tada_amount=tada_total, start_test_date=start_test_date,\
                end_test_date=end_test_date, source_site=source_site,\
                testing_site=testing_site , testing_staff=testing_staff )
                obj.save()
            tada_obj = TaDa.objects.values('departure_time_from_tcc',\
                'arrival_time_at_site', 'departure_time_from_site',\
                'arrival_time_at_tcc', 'tada_amount', 'start_test_date',\
                'end_test_date', 'source_site', 'testing_site',\
                'date_of_generation').get(voucher_no=voucher)
            tada_amount_in_words = tada_total
            header = HeaderFooter.objects.values('header').get(is_active=True)
            footer = HeaderFooter.objects.values('footer').get(is_active=True)
            request_status = request_notify()
            return render(request, 'suspense/tada_summary.html',{\
                'purchase_order_object':purchase_order_object,
                'tada':tada_obj, 'purchase_order_id':voucher,\
                'list_staff':list_staff, 'words':num2eng(int(tada_total)),\
                'total':tada_total, 'request':request_status})
        else:    
            session = request.POST['session']
            voucher = request.POST['voucher_no']
            form = TaDaForm(request.POST,initial={'voucher_no':voucher,\
                'session': session})
            message = 'Fields are mandatory'
            tada = 'enable'
            request_status = request_notify()
            return render(request, 'suspense/form.html',{
                'form':form,'message':message,'request':request_status})
    else:
        return HttpResponseRedirect(\
            reverse('librehatti.suspense.views.tada_order_session'))
Exemplo n.º 29
0
def select_note(request):
    quoted_order_id = request.session.get('quoted_order_id')
    form = SelectNoteForm(initial={'quoted_order':quoted_order_id})
    request_status = request_notify()
    return render(request, 'bills/select_note.html', \
        {'form':form, 'request':request_status})
Exemplo n.º 30
0
 def view_register(self, request):
     """
     Converting data from dict to list form so that it can be
     render easily.
     Calling template to be rendered.
     """
     generated_data_list = []
     try:
         details = self.details
     except BaseException:
         details = self.client_details
     for data in details:
         temporary = []
         if self.surcharge:
             try:
                 data["bill__grand_total"]
             except BaseException:
                 error_type = "Insufficient fields"
                 error = "Total must be included in field list"
                 temp = {"type": error_type, "message": error}
                 return render(request, "error_page.html", temp)
         for field in self.fields_list:
             temporary.append(data[field])
         tax_pos = 0
         for val in request.GET.getlist("surcharges"):
             tax = (
                 TaxesApplied.objects.values_list("tax", flat=True)
                 .filter(purchase_order=data["id"])
                 .filter(surcharge=val)
             )
             try:
                 self.total_taxes[tax_pos] = (
                     self.total_taxes[tax_pos] + tax[0]
                 )
             except BaseException:
                 pass
             if tax:
                 temporary[-1:-1] = tax
             else:
                 temporary[-1:-1] = ["None"]
             tax_pos = tax_pos + 1
         generated_data_list.append(temporary)
     number_of_fields = len(self.selected_fields_order) + len(
         self.selected_fields_client
     )
     if (
         "Total With Taxes" in self.selected_fields_order
         and "Total Without Taxes" in self.selected_fields_order
     ):
         number_of_fields -= 1
         number_of_fields = number_of_fields - self.decrement_field
     request_status = request_notify()
     temp = {
         "client": self.selected_fields_client,
         "order": self.selected_fields_order,
         "result": generated_data_list,
         "title": self.title,
         "number_of_fields": number_of_fields,
         "get_data": self.get_data,
         "save_option": self.save_option,
         "request": request_status,
     }
     try:
         temp["grand_total"] = self.grand_total_list
     except BaseException:
         pass
     try:
         self.selected_fields_order[-1:-1] = self.surcharge
         temp["surcharge"] = self.surcharge
         self.grand_total_list[-1:-1] = self.total_taxes
     except BaseException:
         pass
     return render(request, "reports/generated_register.html", temp)
Exemplo n.º 31
0
 def view_register(self,request):
     """
     Converting data from dict to list form so that it can be 
     render easily.
     Calling template to be rendered.
     """
     generated_data_list = []
     try:
         details = self.details
     except:
         details = self.client_details
     for data in details:
         temporary = []
         if self.surcharge:
             try:
                 data['bill__grand_total']
             except:
                 error_type = "Insufficient fields"
                 error = "Total must be included in field list"
                 temp = {'type': error_type, 'message':error}
                 return render(request,'error_page.html',temp)
         for field in self.fields_list:
             temporary.append(data[field])
         tax_pos = 0
         for val in request.GET.getlist('surcharges'):
             tax = TaxesApplied.objects.values_list('tax', flat = True).\
             filter(purchase_order = data['id']).filter(surcharge = val)
             try:
                 self.total_taxes[tax_pos] = self.total_taxes[tax_pos] + \
                 tax[0]
             except:
                 pass
             if tax:
                 temporary[-1:-1] = tax
             else:
                 temporary[-1:-1] = ['None']
             tax_pos = tax_pos + 1
         generated_data_list.append(temporary)
     number_of_fields = len(self.selected_fields_order) + len(self.\
         selected_fields_client)
     if ('Total With Taxes' in self.selected_fields_order \
         and 'Total Without Taxes' in self.selected_fields_order):
         number_of_fields -= 1
         number_of_fields = number_of_fields - self.decrement_field
     request_status = request_notify()
     temp = {'client':self.selected_fields_client,
         'order':self.selected_fields_order, 'result':generated_data_list,
         'title':self.title, 'number_of_fields':number_of_fields,'get_data':
         self.get_data, 'save_option': self.save_option,\
         'request':request_status}
     try:
         temp['grand_total'] = self.grand_total_list
     except:
         pass 
     try:
         self.selected_fields_order[-1:-1] = self.surcharge
         temp['surcharge'] = self.surcharge
         self.grand_total_list[-1:-1]  = self.total_taxes
     except:
         pass      
     return render(request,'reports/generated_register.html',temp)
Exemplo n.º 32
0
 def view_register(self, request):
     """
     Converting data from dict to list form so that it can be 
     render easily.
     Calling template to be rendered.
     """
     generated_data_list = []
     try:
         details = self.details
     except:
         details = self.client_details
     for data in details:
         temporary = []
         if self.surcharge:
             try:
                 data['bill__grand_total']
             except:
                 error_type = "Insufficient fields"
                 error = "Total must be included in field list"
                 temp = {'type': error_type, 'message': error}
                 return render(request, 'error_page.html', temp)
         for field in self.fields_list:
             temporary.append(data[field])
         tax_pos = 0
         for val in request.GET.getlist('surcharges'):
             tax = TaxesApplied.objects.values_list('tax', flat = True).\
             filter(purchase_order = data['id']).filter(surcharge = val)
             try:
                 self.total_taxes[tax_pos] = self.total_taxes[tax_pos] + \
                 tax[0]
             except:
                 pass
             if tax:
                 temporary[-1:-1] = tax
             else:
                 temporary[-1:-1] = ['None']
             tax_pos = tax_pos + 1
         generated_data_list.append(temporary)
     number_of_fields = len(self.selected_fields_order) + len(self.\
         selected_fields_client)
     if ('Total With Taxes' in self.selected_fields_order \
         and 'Total Without Taxes' in self.selected_fields_order):
         number_of_fields -= 1
         number_of_fields = number_of_fields - self.decrement_field
     request_status = request_notify()
     temp = {'client':self.selected_fields_client,
         'order':self.selected_fields_order, 'result':generated_data_list,
         'title':self.title, 'number_of_fields':number_of_fields,'get_data':
         self.get_data, 'save_option': self.save_option,\
         'request':request_status}
     try:
         temp['grand_total'] = self.grand_total_list
     except:
         pass
     try:
         self.selected_fields_order[-1:-1] = self.surcharge
         temp['surcharge'] = self.surcharge
         self.grand_total_list[-1:-1] = self.total_taxes
     except:
         pass
     return render(request, 'reports/generated_register.html', temp)
Exemplo n.º 33
0
def change_request(request):
    """
    This view enables the user to add a change request or view a change
    request put by him
    Argument: Http Request
    Return: Render change_form.html
    """
    if request.method == "POST":
        sessiondata = ChangeRequestForm(request.POST)
        purchase_order_of_session = sessiondata.data["purchase_order"]
        session = sessiondata.data["session"]
        object = list(
            VoucherId.objects.filter(session_id=session).filter(
                purchase_order_of_session=purchase_order_of_session).values())
        if object:
            voucherid = VoucherId.objects.filter(
                purchase_order_of_session=purchase_order_of_session,
                session_id=session,
            ).values("purchase_order_id")
            for value in voucherid:
                purchase_order = value["purchase_order_id"]
            bill = Bill.objects.values("grand_total").get(
                purchase_order=purchase_order)
            surcharge = TaxesApplied.objects.values(
                "surcharge__tax_name", "id",
                "tax").filter(purchase_order_id=purchase_order)
            details = VoucherId.objects.values(
                "purchase_order__buyer__first_name",
                "purchase_order__buyer__last_name",
                "purchase_order__buyer__customer__address__street_address",
                "purchase_order__buyer__customer__title",
                "purchase_order__buyer__customer__address__district",
                "purchase_order__mode_of_payment__method",
                "purchase_order__cheque_dd_number",
                "purchase_order__cheque_dd_date",
            ).filter(purchase_order_of_session=purchase_order_of_session)[0]
            session_data = FinancialSession.objects.values(
                "session_start_date", "session_end_date").get(id=session)
            messages = ("Order" + " : " + purchase_order_of_session +
                        " and Session" + " : " +
                        str(session_data["session_start_date"]) + ":" +
                        str(session_data["session_end_date"]))
            request_status = request_notify()
            return render(
                request,
                "catalog/change_form.html",
                {
                    "details": details,
                    "order_id": purchase_order_of_session,
                    "session": session,
                    "surcharge": surcharge,
                    "bill": bill,
                    "messages": messages,
                    "request": request_status,
                },
            )
        else:
            form = ChangeRequestForm()
            errors = "No such purchase order number in selected session"
            request_status = request_notify()
            temp = {"form": form, "errors": errors, "request": request_status}

            return render(request, "catalog/change_request.html", temp)
    else:
        form = ChangeRequestForm()
        request_status = request_notify()
        return render(
            request,
            "catalog/change_request.html",
            {
                "form": form,
                "request": request_status
            },
        )