def record_customer_payment(request): payment_amount = int(request.POST['payment_amount']) payments_for = {} for s in Subscriptions.objects.filter( member_id=request.POST['customer_id']): k = 'payment_for_' + str(s.id) if k in request.POST and request.POST[k]: payments_for[s.id] = int(request.POST[k]) if sum(payments_for.values()) != payment_amount: return HttpResponse('Sum of amounts is not adding up') j = Journal() j.entry_date = request.POST['payment_date'] j.comments = 'No Comments' j.entry_type = j.PAYMENT j.member_id = request.POST['customer_id'] j.save() # Create due amounts after subtracting dividends for s_id, p_amount in iter(payments_for.items()): print(s_id, p_amount) j1 = JournalItem() j1.txn = j j1.debit = 0 j1.credit = p_amount j1.subscription_id = s_id j1.save() # Redirect back to the page return HttpResponseRedirect('/customers/grouplist?id=' + request.POST['customer_id'])
def record_customer_payment(request): payment_amount = int(request.POST['payment_amount']) payments_for = {} for s in Subscriptions.objects.filter(member_id=request.POST['customer_id']): k = 'payment_for_'+str(s.id) if k in request.POST and request.POST[k]: payments_for[s.id] = int(request.POST[k]) if sum(payments_for.values()) != payment_amount: return HttpResponse('Sum of amounts is not adding up') j = Journal() j.entry_date = request.POST['payment_date'] j.comments = 'No Comments' j.entry_type = j.PAYMENT j.member_id = request.POST['customer_id'] j.save() # Create due amounts after subtracting dividends for s_id, p_amount in payments_for.iteritems(): print s_id, p_amount j1 = JournalItem() j1.txn = j j1.debit = 0 j1.credit = p_amount j1.subscription_id = s_id j1.save() # Redirect back to the page return HttpResponseRedirect('/customers/grouplist?id='+request.POST['customer_id'])
def new_auction(request): if request.method == 'GET': group = Group.objects.get(id=request.GET['id']) subscriptions_list = Subscriptions.objects.filter( group_id=request.GET['id']) subscription_count = Subscriptions.objects.filter( group_id=request.GET['id']).count() if subscription_count > group.total_months: return HttpResponse("Group Over subscribed") elif subscription_count < group.total_months: under_subscribed = True else: under_subscribed = False auction_month = sum(0 if s.auction_amount is None else 1 for s in subscriptions_list) + 1 subscriptions_list = filter(lambda s: s.auction_amount is None, subscriptions_list) template = loader.get_template('groups/auction.html') context = { 'subscriptions_list': subscriptions_list, 'group': group, 'auction_month': auction_month, 'under_subscribed': under_subscribed } return HttpResponse(template.render(context)) elif request.method == 'POST': # Mark the subscription for the auction s = Subscriptions.objects.get(id=request.POST['auctionmember']) s.auction_amount = float(request.POST['amount']) s.auction_date = request.POST['date'] s.auction_number = request.POST['month'] s.save() g = s.group if not g.started: g.started = True g.save() # Add missing subscriptions subscription_count = Subscriptions.objects.filter( group_id=g.id).count() missing_subscriptions = g.total_months - subscription_count if missing_subscriptions > 0: for i in range(missing_subscriptions): s1 = Subscriptions() s1.member_id = 1 s1.group_id = g.id s1.comments = 'Automatically subscribed' s1.save() monthly_due = g.amount / g.total_months dividend = (s.auction_amount - (g.amount * g.commision) / 100) / g.total_months due_amount = monthly_due - dividend # Create main journal Entries j = Journal() j.entry_date = s.auction_date j.comments = 'No Comments' j.entry_type = j.AUCTION j.save() # Create due amounts after subtracting dividends for s1 in Subscriptions.objects.filter(group_id=s.group_id): j1 = JournalItem() j1.txn = j j1.debit = due_amount j1.credit = 0 j1.subscription_id = s1.id j1.save() return HttpResponseRedirect('/groups/members?id=' + request.POST['group_id'])
def new_auction(request): if request.method == 'GET': group = Group.objects.get(id=request.GET['id']) subscriptions_list = Subscriptions.objects.filter(group_id=request.GET['id']) subscription_count = Subscriptions.objects.filter(group_id=request.GET['id']).count() if subscription_count > group.total_months: return HttpResponse("Group Over subscribed") elif subscription_count < group.total_months: under_subscribed = True else: under_subscribed = False auction_month = sum(0 if s.auction_amount is None else 1 for s in subscriptions_list)+1 subscriptions_list = filter(lambda s:s.auction_amount is None, subscriptions_list) template = loader.get_template('groups/auction.html') context = { 'subscriptions_list':subscriptions_list, 'group':group, 'auction_month':auction_month, 'under_subscribed': under_subscribed } return HttpResponse(template.render(context)) elif request.method == 'POST': # Mark the subscription for the auction s = Subscriptions.objects.get(id=request.POST['auctionmember']) s.auction_amount = float(request.POST['amount']) s.auction_date = request.POST['date'] s.auction_number = request.POST['month'] s.save() g = s.group if not g.started: g.started = True g.save() # Add missing subscriptions subscription_count = Subscriptions.objects.filter(group_id=g.id).count() missing_subscriptions = g.total_months - subscription_count if missing_subscriptions > 0: for i in range(missing_subscriptions): s1 = Subscriptions() s1.member_id = 1 s1.group_id = g.id s1.comments = 'Automatically subscribed' s1.save() monthly_due = g.amount / g.total_months dividend = (s.auction_amount - (g.amount * g.commision)/100) / g.total_months due_amount = monthly_due - dividend # Create main journal Entries j = Journal() j.entry_date = s.auction_date j.comments = 'No Comments' j.entry_type = j.AUCTION j.save() # Create due amounts after subtracting dividends for s1 in Subscriptions.objects.filter(group_id=s.group_id): j1 = JournalItem() j1.txn = j j1.debit = due_amount j1.credit = 0 j1.subscription_id = s1.id j1.save() return HttpResponseRedirect('/groups/members?id='+ request.POST['group_id'])