def list(request): req = request.REQUEST q = Debits.objects.filter() if param_exist("sort", req): q = q.order_by(sortMethod(req)) if param_exist("limit", req): start = req["start"] limit = req["limit"] list = q[start : start + limit] else: list = q res = [] for exp in list: res.append( { "id": exp.id, "amount": exp.amount, "since": exp.since, "text": exp.text, "paymentType_name": exp.paymentType.name, "subCategory_name": exp.subCategory.name, "paymentTypeId": exp.paymentType.id, "subCategoryId": exp.subCategory.id, "day": exp.day, "last": exp.last, } ) data = '{"total": %s, "rows": %s}' % (q.count(), JsonParser.parse(res)) return data
def list(request): req = request.REQUEST q = Expense.objects.filter() if param_exist("amountStart",req): q = q.filter(amount__gte=req['amountStart']) if param_exist("amountEnd",req): q = q.filter(amount__lte=req['amountEnd']) if param_exist("dateStart",req): q = q.filter(date__gte=DateService.invert(req['dateStart'])) if param_exist("dateEnd",req): q = q.filter(date__lte=DateService.invert(req['dateEnd'])) if param_exist("subC",req): q = q.filter(subCategory=req['subC']) elif param_exist("cat",req): c = SubCategory.objects.filter(category=req['cat']) q = q.filter(subCategory__in=c) if param_exist("payT",req): q = q.filter(paymentType=req['payT']) if param_exist("sort",req): q = q.order_by(sortMethod(req)) if param_exist("limit",req): list = q[req['start']:req['start']+req['limit']] else: list = q res = [] for exp in list: res.append({'id': exp.id, 'amount': exp.amount, 'date': exp.date, 'text': exp.text, 'paymentType_name': exp.paymentType.name, 'subCategory_name': exp.subCategory.name, 'paymentTypeId': exp.paymentType.id, 'subCategoryId': exp.subCategory.id}) data = '{"total": %s, "rows": %s}' % (q.count(), JsonParser.parse(res)) return data
def list(request): req = request.REQUEST q = PaymentType.objects.filter() if param_exist("sort", req): q = q.order_by(sortMethod(req)) if param_exist("limit", req): start = req["start"] limit = req["limit"] list = q[start : start + limit] else: list = q data = '{"total": %s, "rows": %s}' % (PaymentType.objects.count(), JsonParser.parse(list)) return data
def list(request): req = request.REQUEST q = Category.objects.filter() if param_exist("sort",req): q = q.order_by(sortMethod(req)) if param_exist("limit",request.REQUEST): start = request.REQUEST['start'] limit = request.REQUEST['limit'] lst = q[start:start+limit] else: lst = q data = '{"total": %s, "rows": %s}' % (Category.objects.count(), JsonParser.parse(lst)) return data
def list(request): req = request.REQUEST q = Person.objects.filter() if param_exist("sort",req): q = q.order_by(sortMethod(req)) if param_exist("limit",req): start = req['start'] limit = req['limit'] list = q[start:start+limit] else: list = q res = [] for p in list: res.append({'id': p.id, 'name': p.name, 'count': p.loans.active().count()}) data = '{"total": %s, "rows": %s}' % (Person.objects.count(), JsonParser.parse(res)) return data
def list(request): if request.method != 'POST': raise Http403 res = [] try: tk = AuthToken.objects.get(user=request.user) q = TokenUsage.objects.filter(token=tk) for utk in q: res.append({'date': utk.access, 'ip': utk.ip}) except AuthToken.DoesNotExist: pass data = '{"total": %s, "rows": %s}' % (len(res), JsonParser.parse(res)) return data
def list(request): req = request.REQUEST q = CardDates.objects.filter() if param_exist("sort",req): q = q.order_by(sortMethod(req)) if param_exist("limit",req): start = req['start'] limit = req['limit'] list = q[start:limit] else: list = q res = [] for exp in list: res.append({'id': exp.id, 'closeDate': exp.closeDate, 'expireDate': exp.expireDate, 'card': exp.card.name, 'card_id': exp.card.id}) data = '{"total": %s, "rows": %s}' % (CardDates.objects.count(), JsonParser.parse(res)) return data
def list(request): req = request.REQUEST q = SubCategory.objects.filter() if param_exist("filter[0][field]",req): q = q.filter(category=req['filter[0][data][value]']) if param_exist("sort",req): if req['sort'] == "category": q = q.order_by(sortMethod(req,"category__name"), "name") else: q = q.order_by(sortMethod(req)) if param_exist("limit",request.REQUEST): start = request.REQUEST['start'] limit = request.REQUEST['limit'] list = q[start:start+limit] else: list = q res = [] for elem in list: res.append({'id': elem.id, 'name': elem.name, 'category': elem.category.name, 'categoryId': elem.category.id}) data = '{"total": %s, "rows": %s}' % (SubCategory.objects.count(), JsonParser.parse(res)) return data
def sixMonthCalc(request): req = request.REQUEST if param_exist("date",req): date = DateService.parse(req['date']) else: date = DateService.today() fromDate = DateService.addMonth(DateService.firstDateOfMonth(date),-6) toDate = DateService.lastDateOfMonth(date) query = "SELECT sum(amount), date FROM expense "\ "WHERE date between '%s' and '%s'" % (str(fromDate), str(toDate)) if param_exist("subC",req): query += " AND sub_category_id = '%s'" % req['subC'] elif param_exist("cat",req): c = SubCategory.objects.filter(category=req['cat']) query += " AND sub_category_id in (%s)" % ",".join(["'"+str(s.id)+"'" for s in c]) if param_exist("payT",req): query += " AND payment_type_id = '%s'" % req['payT'] query += " group by month(date)" cursor = connection.cursor() cursor.execute(query) list = [] for exp in cursor.fetchall(): sum, date = exp i = Income.objects.extra(select={'sum': 'sum(amount)'}).values('sum') i = i.filter(period = DateService.firstDateOfMonth(date.timetuple())) val = i[0]['sum'] if val is None: val = 0 list.append({'date': date, 'expense': sum, 'income': val}) data = '{"rows": %s}' % (JsonParser.parse(list)) return data
def list(request): req = request.REQUEST # find close date dateQuery = CardDates.objects.filter(closeDate__gt=DateService.todayDate()) dateQuery = dateQuery.order_by('closeDate') if dateQuery.count()>0: dt = dateQuery[:1][0] else: dt = CardDates(closeDate=DateService.todayDate(), expireDate=DateService.todayDate()) q = CardData.objects.extra(where=["ADDDATE(date, INTERVAL ((instalments+1) * 30) DAY) > '%s'" % DateService.invert(dt.closeDate)]) if param_exist("sort",req): q = q.order_by(sortMethod(req)) if param_exist("limit",req): start = req['start'] limit = req['limit'] list = q[start:start+limit] else: list = q res = [] for exp in list: rem = FinancialService.remainInstalments(exp.date, dt.closeDate, exp.instalments) if rem >= 0: res.append({'id': exp.id, 'date': exp.date, 'shop': exp.shop, 'instalments': exp.instalments, 'card_id': exp.card.id, 'card_name': exp.card.name, 'total': exp.total, 'own': exp.own, 'partial': exp.total / exp.instalments, 'remain': rem }) data = '{"total": %s,"close": "%s", "expire": "%s", "rows": %s}' % (CardData.objects.count(), DateService.format(dt.closeDate),DateService.format(dt.expireDate), JsonParser.parse(res)) return data
def calcPayment(request): req = request.REQUEST q = Loan.objects.filter() q = q.filter(person=req['person.id']) exclude = [] if param_exist('exclude',req): exc = string.split(req['exclude'],";") for e in exc: exclude.append(long(e)) modf = dict() if param_exist('modf',req): moda = json.loads(req['modf']) for md in moda: modf[md['id']] = md['value'] total = Decimal(req['amount']) remain = total res = [] for exp in q: cursor = connection.cursor() cursor.execute("SELECT sum(amount) as sum FROM payment WHERE loan_id = %s", [exp.id]) row = cursor.fetchone() sum = exp.amount if row[0]!=None: sum = exp.amount - row[0] partial = exp.amount / exp.instalments pay = 0 dr = False if exp.id in modf.keys(): remain -= modf[exp.id] pay = modf[exp.id] sum -= pay dr = True if sum > 0: res.append({'id': exp.id, 'amount': exp.amount, 'date': exp.date, 'reason': exp.reason, 'balance': sum, 'partial': partial, 'pay': pay, 'remain': sum, 'dirty': dr}) while remain > 0: resto = 0 for l in res: if not l['id'] in exclude: if not l['id'] in modf.keys(): if l['remain'] < l['partial']: if l['remain'] > remain: l['pay'] += remain l['remain'] = l['balance'] - l['pay'] remain = 0 else: l['pay'] += l['remain'] remain -= l['remain'] l['remain'] = l['balance'] - l['pay'] else: if l['partial'] > remain: l['pay'] += remain l['remain'] = l['balance'] - l['pay'] remain = 0 else: l['pay'] += l['partial'] l['remain'] = l['balance'] - l['pay'] remain -= l['partial'] resto += l['remain'] if remain <= 0: break if resto == 0: break data = '{"total": "0", "rows": %s}' % (JsonParser.parse(res)) return data