コード例 #1
0
ファイル: views.py プロジェクト: raju39/banking_system
def adduser(request):
    email = request.session.get('email', None)
    user_type = request.session.get('user_type', None)
    if email and user_type == 1:
        if request.method == "POST":
            first_name = request.POST.get('first_name', None)
            last_name = request.POST.get('last_name', None)
            email = request.POST.get('email', None)
            address = request.POST.get('address', None)
            password = request.POST.get('password', None)
            amount = request.POST.get('amount', None)
            context_dict = dict()
            if (first_name == '') or (last_name == '') or (email == '') or (address == '') or (password == '' )or (amount == '' ):
                context_dict['messages'] = "First name, Last name, email, password, Amount, address can't be empty. all fields required."
                context_dict['status'] = 0
            else:
                check_email = email__exist(email)
                if check_email:
                    context_dict['messages'] = "This email is already registered please enter another one."
                    context_dict['status'] = 0
                else:
                    gmt = time.gmtime()
                    userData = AuthUser()
                    dataDeposit = Deposit()
                    accuntData = CustomerAccountdetail()
                    tran = Transaction()
                    userData.first_name = first_name.capitalize()
                    userData.last_name = last_name
                    userData.email = email.capitalize()
                    userData.password = make_password(password,salt=None,hasher='default')
                    userData.username = email
                    userData.is_superuser = 2
                    userData.is_staff = 1
                    userData.is_active = 1
                    userData.date_joined = datetime.now()
                    userData.save()
                    # print(userData.id)
                    accuntData.address = address
                    accuntData.account_no = calendar.timegm(gmt)
                    accuntData.acc_user_id = userData.id
                    accuntData.created = datetime.now()
                    accuntData.save()
                    dataDeposit.amount += int(amount)
                    dataDeposit.date = datetime.now()
                    dataDeposit.dep_user_id = userData.id
                    dataDeposit.save()
                    tran.amount = amount
                    tran.account_no = accuntData.account_no
                    tran.tran_type = 'Deposit'
                    tran.date = datetime.now()
                    tran.tran_user_id = userData.id
                    tran.save()
                    context_dict['messages'] = "Successfully Created Account."
                    context_dict['status'] = 1
            return JsonResponse(context_dict)
    elif email:
        return HttpResponseRedirect('/account/summary')
    else:
        return HttpResponseRedirect('/')
コード例 #2
0
ファイル: utils.py プロジェクト: sremya218/easyAccounts
def create_transaction(debit_ledger_entry, credit_ledger_entry):
    transaction = Transaction()
    if debit_ledger_entry:
        transaction.debit_ledger = debit_ledger_entry
        transaction.debit_amount = debit_ledger_entry.debit_amount
        transaction.transaction_ref = debit_ledger_entry.transaction_reference_number
    if credit_ledger_entry:
        transaction.credit_ledger = credit_ledger_entry
        transaction.credit_amount = credit_ledger_entry.credit_amount
        transaction.transaction_ref = credit_ledger_entry.transaction_reference_number
    transaction.save()
    return transaction
コード例 #3
0
ファイル: views.py プロジェクト: ElvinEga/timeappdjango
def send_money(request):
    request_details = request.data
    try:
        amount = decimal.Decimal(request_details['amount'])
        sender = User.objects.get(email=request_details['sender'])
        receiver = User.objects.get(email=request_details['receiver'])
    except ObjectDoesNotExist:
        return Response({'error': 'Account Does Not Exist'},
                        status=status.HTTP_404_NOT_FOUND)

    if request_details['sender'] == request_details['receiver']:
        return Response({'error': 'You cannot send to same account'},
                        status=status.HTTP_422_UNPROCESSABLE_ENTITY)
    if amount < 10.0:
        return Response(
            {'error': "Transaction Failed, Amount is less than 10"},
            status=status.HTTP_400_BAD_REQUEST)

    # sender Account deducted
    sender_acc = Account.objects.get(user=sender)
    if sender_acc.balance > amount and sender_acc.balance > 1:

        sender_balance = sender_acc.balance - amount
        sender_acc.balance = sender_balance
        sender_acc.save()

        # receiver Account added
        receiver_acc = Account.objects.get(user=receiver)
        receiver_balance = receiver_acc.balance + amount
        receiver_acc.balance = receiver_balance
        receiver_acc.save()

        # Add transaction
        tran = Transaction(transact_account=sender_acc,
                           sender=sender.email,
                           receiver=receiver.email,
                           amount=amount,
                           transaction_type="send")
        tran.save()

        push_notify(
            "Wallet Transaction successful",
            str("Transfer cash of Ksh " + str(amount) + " From " +
                str(sender.email) + " To " + str(receiver.email)))
        return Response({'success': "Transaction successful"})
    else:
        return Response(
            {
                'error':
                "You have insufficient Amount in account to complete the transaction"
            },
            status=status.HTTP_400_BAD_REQUEST)
コード例 #4
0
def transaction_for_account(request):
    if request.user.is_authenticated():
        json_obj = json.loads(request.body)
        data = json_obj['data']
        Acc_list = data.get("Acc_list")
        transaction_date = data.get("transaction_date")
        transactiontype = data.get("transactiontype")
        transactiontype_obj = TransactionType(optionType=transactiontype)
        transactiontype_obj.save()
        user_obj = User.objects.get(id=request.user.id)
        transaction_date = datetime.datetime.fromtimestamp(transaction_date/1000)
        description = data.get("description")
        try:
            accountingyear_obj = AccountingYear.objects.get(start_date__lte=transaction_date,end_date__gte=transaction_date,user__id=request.user.id)
        except AccountingYear.DoesNotExist:
            if transaction_date <= datetime.datetime(transaction_date.year, 03, 31, 23, 59, 59):
                start_date = datetime.datetime(transaction_date.year-1, 04, 01, 00, 00, 00)
                end_date = datetime.datetime(transaction_date.year, 03, 31, 23, 59, 59)
                user_obj = User.objects.get(id=request.user.id)
                accountingyear_obj = AccountingYear(start_date=start_date,end_date=end_date,duration=1,user=user_obj)
                accountingyear_obj.save()
            else:
                year = int(transaction_date.year)
                start_date = datetime.datetime(transaction_date.year, 04, 01, 00, 00, 00)
                end_date = datetime.datetime(transaction_date.year+1, 03, 31, 23, 59, 59)
                user_obj = User.objects.get(id=request.user.id)
                accountingyear_obj = AccountingYear(start_date=start_date,end_date=end_date,duration=1,user=user_obj)
                accountingyear_obj.save()
        transaction_obj = Transaction(transaction_date=transaction_date,description=description,transactiontype=transactiontype_obj,user=user_obj)
        transaction_obj.save()
        accountingyear_obj.transaction.add(transaction_obj)
        accountingyear_obj.save()
        for i in Acc_list:
            amount = i['amount']
            account = i['account']
            account_id = account.get("id")
            is_debit = i['is_debit']
            print is_debit.capitalize()
            if is_debit == "D":
                is_debit = True
            else:
                is_debit = False
            account_obj = Account.objects.get(id=account_id)
            print account_obj
            transactionrecord_queries = TransactionRecord(amount=amount,is_debit=is_debit,account=account_obj)
            transactionrecord_queries.save()
            transaction_obj.transaction_record.add(transactionrecord_queries)
            transaction_obj.save()
        print "Transaction saved Successfully..."
        return HttpResponse(json.dumps({"validation":"Transaction Saved Successfully","status":True}), content_type="application/json")
コード例 #5
0
ファイル: views.py プロジェクト: prcek/VitalMenuTracker
def transaction_create(request, account_id):
    account = Account.get_by_id(int(account_id))
    if account is None:
        raise Http404
 
    if request.method == 'POST':
        t = Transaction(parent=account)
        form = TransactionForm(request.POST, instance=t)
        if form.is_valid():
            form.save(commit=False)
            t.setDate()
            t.save()
            logging.info('new transaction created - id: %s key: %s data: %s' % (t.key().id() , t.key(), t))
            return redirect('/accounts/'+account_id+'/transactions/')
    else:
        form = TransactionForm() 

    return render_to_response('accounts/transaction_create.html', RequestContext(request, { 'form':form }))
コード例 #6
0
ファイル: views.py プロジェクト: prcek/VitalMenuTracker
def task_do_clearance(request, clearance_id):
    logging.info('task do clearance - clearance_id=%s'%clearance_id)
    clearance = Clearance.get_by_id(int(clearance_id))
    if clearance is None:
        raise Http404

    logging.info('clearance = %s'%clearance)


         
    items = ClearanceItem.objects.all().ancestor(clearance)
    for i in items:
        logging.info('i=%s'%i) 
        if not (i.transaction_item is None):
            logging.info('has transaction...')
            if not i.clear:
                logging.info('but,not clear...')
                i.clear = True
                i.save()
                logging.info('cleared')
        else:
            tr = Transaction.objects.all().filter('clearance_item_key =', i.key()).get()
            if not (tr is None):
                logging.info('corresponding transaction found (%s)'%tr)
                i.transaction_item=tr
                logging.info('linked')
            else:
                logging.info('no corresponding transaction found')
                tr = Transaction(parent=i.account)
                tr.setDate()
                tr.clearance_item_key = i.key()
                if i.purpose == 'pick':
                    logging.info('pick item')
                    tr.purpose = 'payment'
                    tr.order_item_key = i.order_item.key()
                    tr.amount = -i.cost
                    tr.desc = i.desc
                elif i.purpose == 'give':
                    logging.info('give item')
                    tr.purpose = 'payment'
                    tr.amount = -i.cost
                    tr.desc = i.desc
                elif i.purpose == 'deposit':  
                    logging.info('deposit item')
                    tr.purpose = 'deposit'
                    tr.amount = i.cost
                    tr.desc = i.desc
                elif i.purpose == 'load':
                    logging.info('load item')
                    tr.purpose = 'deposit'
                    tr.amount = i.cost
                    tr.desc = i.desc
                else:
                    logging.info('unexpected purpose (%s)'%i.purpose)
                    tr = None

                logging.info('new tr=%s'%tr)
                if not (tr is None):
                    tr.save()
                    logging.info('tr save ok %s'%tr) 
                    i.transaction_item = tr
                    i.clear = True
                
            i.save()    
            logging.info('new tr=%s'%tr)
                


    logging.info('unlock clearance') 
    clearance.status = 'closed'
    clearance.lock = False
    clearance.clear = True
    clearance.save()

    return HttpResponse('ok')
コード例 #7
0
def transaction_for_account(request):
    if request.user.is_authenticated():
        json_obj = json.loads(request.body)
        data = json_obj['data']
        Acc_list = data.get("Acc_list")
        transaction_date = data.get("transaction_date")
        transactiontype = data.get("transactiontype")
        transactiontype_obj = TransactionType(optionType=transactiontype)
        transactiontype_obj.save()
        user_obj = User.objects.get(id=request.user.id)
        transaction_date = datetime.datetime.fromtimestamp(transaction_date /
                                                           1000)
        description = data.get("description")
        try:
            accountingyear_obj = AccountingYear.objects.get(
                start_date__lte=transaction_date,
                end_date__gte=transaction_date,
                user__id=request.user.id)
        except AccountingYear.DoesNotExist:
            if transaction_date <= datetime.datetime(transaction_date.year, 03,
                                                     31, 23, 59, 59):
                start_date = datetime.datetime(transaction_date.year - 1, 04,
                                               01, 00, 00, 00)
                end_date = datetime.datetime(transaction_date.year, 03, 31, 23,
                                             59, 59)
                user_obj = User.objects.get(id=request.user.id)
                accountingyear_obj = AccountingYear(start_date=start_date,
                                                    end_date=end_date,
                                                    duration=1,
                                                    user=user_obj)
                accountingyear_obj.save()
            else:
                year = int(transaction_date.year)
                start_date = datetime.datetime(transaction_date.year, 04, 01,
                                               00, 00, 00)
                end_date = datetime.datetime(transaction_date.year + 1, 03, 31,
                                             23, 59, 59)
                user_obj = User.objects.get(id=request.user.id)
                accountingyear_obj = AccountingYear(start_date=start_date,
                                                    end_date=end_date,
                                                    duration=1,
                                                    user=user_obj)
                accountingyear_obj.save()
        transaction_obj = Transaction(transaction_date=transaction_date,
                                      description=description,
                                      transactiontype=transactiontype_obj,
                                      user=user_obj)
        transaction_obj.save()
        accountingyear_obj.transaction.add(transaction_obj)
        accountingyear_obj.save()
        for i in Acc_list:
            amount = i['amount']
            account = i['account']
            account_id = account.get("id")
            is_debit = i['is_debit']
            print is_debit.capitalize()
            if is_debit == "D":
                is_debit = True
            else:
                is_debit = False
            account_obj = Account.objects.get(id=account_id)
            print account_obj
            transactionrecord_queries = TransactionRecord(amount=amount,
                                                          is_debit=is_debit,
                                                          account=account_obj)
            transactionrecord_queries.save()
            transaction_obj.transaction_record.add(transactionrecord_queries)
            transaction_obj.save()
        print "Transaction saved Successfully..."
        return HttpResponse(json.dumps({
            "validation": "Transaction Saved Successfully",
            "status": True
        }),
                            content_type="application/json")