def calc_profit(request): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': form = CalcProfitForm(request.POST) if form.is_valid(): start_date = form.cleaned_data.get('start_date') end_date = form.cleaned_data.get('end_date') startup_unfinished = form.cleaned_data.get('startup_unfinished') last_unfinished = form.cleaned_data.get('last_unfinished') startup_finished = form.cleaned_data.get('startup_finished') last_finished = form.cleaned_data.get('last_finished') desc = form.cleaned_data.get('desc') remarks = form.cleaned_data.get('remarks') calculate_profit(start_date, end_date, startup_unfinished, last_unfinished, startup_finished, last_finished, desc, remarks) return redirect('/finance-manager/profit/') else: form = CalcProfitForm() context = {'formname': 'Calculate Profit', 'form': form} return render(request, 'finance_manager/profit/form_template.html', context)
def withdrawals(request): user = get_user(request) if not user.is_staff: return redirect('/fobiddn/') if request.method == 'POST': start_date = request.POST['start_date'] end_date = request.POST['end_date'] recodes = None if start_date == '' or end_date == '': recodes = Withdraw.objects.all().order_by('-id') else: recodes = Withdraw.objects.filter( date__range=[start_date, end_date]).order_by('-id') total = calc_total(recodes) context = {'recodes': recodes, 'total': total} return render(request, 'finance_manager/bank/withdrawals.html', context) else: recodes = Withdraw.objects.all().order_by('-id') total = calc_total(recodes) context = {'recodes': recodes, 'total': total} return render(request, 'finance_manager/bank/withdrawals.html', context)
def checks(request): user = get_user(request) if not user.is_staff: return redirect('/fobiddn/') recodes = Check.objects.all().order_by('-id') context = {'recodes': recodes} return render(request, 'finance_manager/bank/checks.html', context)
def delete_payment(request, id=0): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': delete_accepted = False payment = BuyPayment.objects.get(pk=id) receive = payment.buy if payment.payment_method.name.lower() == 'credit': delete_accepted = True elif payment.payment_method.name.lower() == 'cash': delete_accepted = True desc = f'Receive Payment Revert: {payment.buy.supplire}' cash_in = CashIn(desc=desc, date=payment.date, amount=payment.amount) cashflow.make_cash_in(cash_in) elif payment.payment_method.name.lower() == 'check': #add deposti if payment.account == None: delete_accepted = False else: delete_accepted = True desc = f'Receive Check Returnd: {payment.ref_num}' deposit = Deposit(account=payment.account, desc=desc, date=payment.date, amount=payment.amount, payment_method=payment.payment_method, ref_num=payment.ref_num) bank.make_deposit(deposit) else: #add deposti if payment.account == None: delete_accepted = False else: delete_accepted = True desc = f'Receive Payment Revert: {payment.ref_num}' deposit = Deposit(account=payment.account, desc=desc, date=payment.date, amount=payment.amount, payment_method=payment.payment_method, ref_num=payment.ref_num) bank.make_deposit(deposit) if delete_accepted: receive.paid = False receive.save() payment.delete() else: messages.add_message(request, messages.WARNING, 'Somthing went wrong!') url = f'/inventory-manager/receives/' return redirect(url)
def delete_payment(request,id=0): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': delete_accepted = False payment = SellPayment.objects.get(pk=id) sale = payment.sale if payment.payment_method.name.lower() == 'credit': delete_accepted = True elif payment.payment_method.name.lower() == 'cash': delete_accepted = True #add cash out desc = f'Sale Payment Revert: {payment.sale.customer}' cash_out = CashOut(desc=desc,date=payment.date,amount=payment.amount) cashflow.make_cash_out(cash_out) elif payment.payment_method.name.lower() == 'check': if payment.account == None: delete_accepted = False else: delete_accepted = True #add withdraw desc = f'Sale Check Returnd: {payment.ref_num}' withdraw = Withdraw(account=payment.account, desc=desc, date=payment.date, amount=payment.amount, payment_method=payment.payment_method, ref_num=payment.ref_num) bank.make_withdraw(withdraw) else: #add withdraw if payment.account == None: delete_accepted = False else: delete_accepted = True desc = f'Sale Payment Revert: {payment.sale.customer}' withdraw = Withdraw(account=payment.account, desc=desc, date=payment.date, amount=payment.amount, payment_method=payment.payment_method, ref_num=payment.ref_num) bank.make_withdraw(withdraw) if delete_accepted: sale.paid = False sale.save() payment.delete() else: messages.add_message(request,messages.WARNING, 'Somthing went wrong!') url = f'/inventory-manager/sales/' return redirect(url)
def add_receive(request, id=0): if request.method == 'POST': currentuser = get_user(request) updated = False if id == 0: form = AddReceiveForm(request.POST) else: updated = True instance = Buy.objects.get(pk=id) form = AddReceiveForm(request.POST, instance=instance) if form.is_valid(): receive = form.save(commit=False) total_amount = 0 dispatch_note_num = receive.dispatch_note_num dispatchs = BuyDispatch.objects.filter( dispatch_note_num=dispatch_note_num) #get all dipatch notes for dispatch in dispatchs: total_amount += dispatch.amount stock = MaterialStock(material=dispatch.material, batch_num=dispatch.batch_num, unit_price=dispatch.unit_price, qty=dispatch.qty) stock.save() if not updated: receive.created_user = currentuser else: update_note = BuyUpdate(buy=receive, user=currentuser) update_note.save() receive.amount = total_amount receive.save() else: print('form not valid') return redirect('/inventory-manager/receives/') else: if id == 0: form = AddReceiveForm() else: instance = Buy.objects.get(pk=id) form = AddReceiveForm(instance=instance) context = {'formname': 'Add receive', 'form': form} return render(request, 'inventory_manager/material/form_template.html', context)
def delete_expense(request, id=0): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': expense = Expense.objects.get(pk=id) delete_accepted = False if expense.payment_method.name.lower() == 'credit': delete_accepted = True elif expense.payment_method.name.lower() == 'cash': delete_accepted = True # add cash out desc = f'Expense Revert: {expense.name}' cash_in = CashIn(desc=desc, date=expense.date, amount=expense.amount) cashflow.make_cash_in(cash_in) elif expense.payment_method.name.lower() == 'check': if expense.account == None: delete_accepted = False else: delete_accepted = True # add deposit desc = f'Returned Check: {expense.ref_num}' deposit = Deposit(account=expense.account, desc=desc, date=expense.date, amount=expense.amount, payment_method=expense.payment_method, ref_num=expense.ref_num) bank.make_withdraw(deposit) else: if expense.account == None: delete_accepted = False else: delete_accepted = True # add deposit desc = f'Expense Revert: {expense.ref_num}' deposit = Deposit(account=expense.account, desc=desc, date=expense.date, amount=expense.amount, payment_method=expense.payment_method, ref_num=expense.ref_num) bank.make_withdraw(deposit) if delete_accepted: expense.delete() else: messages.add_message(request, messages.WARNING, 'Somthing went wrong!') return redirect('/inventory-manager/expenses/')
def delete_otherincome(request, id=0): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': other_income = OtherIncome.objects.get(pk=id) delete_accepted = False if other_income.payment_method.name.lower() == 'credit': delete_accepted = True elif other_income.payment_method.name.lower() == 'credit': delete_accepted = True elif other_income.payment_method.name.lower() == 'cash': delete_accepted = True # add cash out desc = f'Other Income Revert: {other_income.name}' cash_out = CashOut(desc=desc, date=other_income.date, amount=other_income.amount) cashflow.make_cash_out(cash_out) elif other_income.payment_method.name.lower() == 'check': if other_income.account == None: delete_accepted = False else: delete_accepted = True # add withdraw desc = f'Returned Check: {other_income.ref_num}' withdraw = Withdraw(account=other_income.account, desc=desc, date=other_income.date, amount=other_income.amount, payment_method=other_income.payment_method, ref_num=other_income.ref_num) bank.make_withdraw(withdraw) else: if other_income.account == None: delete_accepted = False else: delete_accepted = True # add withdraw desc = f'Other Income Revert: {other_income.ref_num}' withdraw = Withdraw(account=other_income.account, desc=desc, date=other_income.date, amount=other_income.amount, payment_method=other_income.payment_method, ref_num=other_income.ref_num) bank.make_withdraw(withdraw) if delete_accepted: other_income.delete() messages.add_message(request, messages.WARNING, 'Somthing went wrong!') return redirect('/inventory-manager/other-incomes/')
def delete_salery(request, id=0): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': salery = Salery.objects.get(pk=id) delete_accepted = False if salery.payment_method.name.lower() == 'credit': delete_accepted = True elif salery.payment_method.name.lower() == 'cash': delete_accepted = True # add cash out desc = f'Salery Revert: emp_code - {salery.employee.code}' cash_in = CashIn(desc=desc, date=salery.date, amount=salery.amount) cashflow.make_cash_in(cash_in) elif salery.payment_method.name.lower() == 'check': if salery.account == None: delete_accepted = False else: delete_accepted = True # add deposit desc = f'Salery Returnd Check: emp_code - {salery.employee.code}' deposit = Deposit(account=salery.account, desc=desc, date=salery.date, amount=salery.amount, payment_method=salery.payment_method, ref_num=salery.ref_num) bank.make_withdraw(deposit) else: if salery.account == None: delete_accepted = False else: delete_accepted = True # add deposit desc = f'Salery Revert: emp_code - {salery.employee.code}' deposit = Deposit(account=salery.account, desc=desc, date=salery.date, amount=salery.amount, payment_method=salery.payment_method, ref_num=salery.ref_num) bank.make_withdraw(deposit) if delete_accepted: salery.delete() else: messages.add_message(request, messages.WARNING, 'Somthing went wrong!') return redirect('/inventory-manager/salery/')
def add_sale(request, id=0): if request.method == 'POST': currentuser = get_user(request) updated = False if id == 0: form = AddSaleForm(request.POST) else: updated = True instance = Sell.objects.get(pk=id) form = AddSaleForm(request.POST, instance=instance) if form.is_valid(): sale = form.save(commit=False) total_amount = 0 dispatch_note_num = sale.dispatch_note_num dispatchs = SellDispatch.objects.filter( dispatch_note_num=dispatch_note_num) #get all dipatch notes for dispatch in dispatchs: total_amount += dispatch.amount stock = dispatch.stock stock.qty -= dispatch.qty stock.save() if not updated: sale.created_user = currentuser else: update_note = SellUpdate(sale=sale, user=currentuser) update_note.save() sale.amount = total_amount sale.save() else: messages.add_message(request, messages.WARNING, 'Somthing Went Wrong') return redirect('/inventory-manager/sales/') else: if id == 0: form = AddSaleForm() else: instance = Sell.objects.get(pk=id) form = AddSaleForm(instance=instance) context = {'formname': 'Add Sale', 'form': form} return render(request, 'inventory_manager/product/form_template.html', context)
def add_account(request): user = get_user(request) if not user.is_staff: return redirect('/fobiddn/') if request.method == 'POST': form = AddAccountForm(request.POST) if form.is_valid(): form.save() return redirect('/finance-manager/bank-accounts/') else: form = AddAccountForm() context = {'formname': 'Add Account', 'form': form} return render(request, 'finance_manager/bank/form_template.html', context)
def withdraw(request): user = get_user(request) if not user.is_staff: return redirect('/fobiddn/') if request.method == 'POST': form = AddWithdrawForm(request.POST) if form.is_valid(): withdraw = form.save(commit=False) result = make_withdraw(withdraw) if not result: messages.add_message(request, messages.WARNING, 'Withdraw unsuccessfull!') return redirect('/finance-manager/bank-withdrawals/') else: form = AddWithdrawForm() context = {'formname': 'Withdraw', 'form': form} return render(request, 'finance_manager/bank/form_template.html', context)
def profit(request): user = get_user(request) if not user.is_superuser: return redirect('/fobiddn/') if request.method == 'POST': start_date = request.POST['start_date'] end_date = request.POST['end_date'] recodes = None if start_date == '' or end_date == '': recodes = Profit.objects.all().order_by('-id') else: recodes = Profit.objects.filter( date__range=[start_date, end_date]).order_by('-id') return render(request, 'finance_manager/profit/profit.html', {'recodes': recodes}) else: recodes = Profit.objects.all().order_by('-id') return render(request, 'finance_manager/profit/profit.html', {'recodes': recodes})
def deposit(request): user = get_user(request) if not user.is_staff: return redirect('/fobiddn/') if request.method == 'POST': form = AddDepositForm(request.POST) if form.is_valid(): deposit = form.save(commit=False) result = make_deposit(deposit) if not result: messages.add_message(request, messages.WARNING, 'Deposit unsuccessfull!') return redirect('/finance-manager/bank-deposits/') else: form = AddDepositForm() context = {'formname': 'Deposit', 'form': form} return render(request, 'finance_manager/bank/form_template.html', context)
def add_other_sale(request, id=0): if request.method == 'POST': currentuser = get_user(request) payment_accepted = False if id == 0: form = AddOtherSaleForm(request.POST) else: instance = OtherSell.objects.get(pk=id) form = AddOtherSaleForm(request.POST, instance=instance) other_sale = None if form.is_valid(): other_sale = form.save(commit=False) total_amount = 0 dispatch_note_num = other_sale.dispatch_note_num dispatchs = SellDispatch.objects.filter(dispatch_note_num=dispatch_note_num) #get all dipatch notes for dispatch in dispatchs: total_amount += dispatch.amount other_sale.created_user = currentuser other_sale.amount = total_amount payment_method = other_sale.payment_method ref_num = other_sale.ref_num eff_date = other_sale.eff_date if payment_method.name.lower() == 'credit': payment_accepted = True other_sale.paid = False elif payment_method.name.lower() == 'cash': payment_accepted = True #add cash in desc = f'Other Sale Payment: {other_sale.customer}' cash_in = CashIn(desc=desc,date=other_sale.date,amount=other_sale.amount) cashflow.make_cash_in(cash_in) other_sale.paid = True elif payment_method.name.lower() == 'check': if ref_num == None or eff_date == None: payment_accepted = False else: payment_accepted = True #add check to check table check = Check(date=other_sale.date,ref_num=ref_num,eff_date=eff_date,amount=other_sale.amount) check.save() other_sale.paid = True else: payment_accepted = True #add deposit desc = f'Other Sale Payment: {other_sale.customer}' deposit = Deposit(account=other_sale.account, desc=desc, date=other_sale.date, amount=other_sale.amount, payment_method=other_sale.payment_method) bank.make_deposit(deposit) other_sale.paid = True if payment_accepted: for dispatch in dispatchs: stock = dispatch.stock stock.qty -= dispatch.qty stock.save() other_sale.save() else: messages.add_message(request,messages.WARNING, 'Invalid Payment Details') else: messages.add_message(request,messages.WARNING, 'Form is Invalid') return redirect('/inventory-manager/other-sales/') else: if id == 0: form = AddOtherSaleForm() else: instance = OtherSell.objects.get(pk=id) form = AddOtherSaleForm(instance=instance) context = {'formname':'Add Other Sale', 'form':form} return render(request, 'inventory_manager/product/form_template.html', context)
def bank(request): user = get_user(request) if not user.is_staff: return redirect('/fobiddn/') return render(request, 'finance_manager/bank/bank.html')