예제 #1
0
 def editMoneyIO(self,
                 id,
                 account,
                 happentime,
                 moneyiotype,
                 money,
                 currency,
                 isshare,
                 description,
                 user,
                 alarm=None):
     moneyio = self.getMoneyIO(id, user)
     if moneyio:
         initaccount = moneyio.account
         initmoney = moneyio.money
         initmoneyiotype = moneyio.moneyiotype
         moneyio.account = account
         moneyio.happentime = happentime
         moneyio.moneyiotype = moneyiotype
         moneyio.money = money
         moneyio.currency = currency
         moneyio.isshare = isshare
         moneyio.description = description
         if user:
             moneyio.user = user
         if alarm:
             moneyio.alarm = alarm
         moneyio.put()
         AccountService().updateAccountMoney(initaccount, initmoney,
                                             initmoneyiotype.isio * -1)
         AccountService().updateAccountMoney(
             AccountService().getAccount(account.id, user), money,
             moneyiotype.isio)
예제 #2
0
def moneybl_add(request):
    if not check_user_login(request):
        return login(request)

    user = request.session.get('user')
    if request.method == 'POST':
        form = MoneyBLForm(data=request.POST, user=user)
        if form.is_valid():
            account = AccountService().getAccount(form.cleaned_data['account'],
                                                  user)
            isio = int(form.cleaned_data['isio'])
            happentime = form.cleaned_data['happentime']
            money = form.cleaned_data['money']
            currency = AccountService().getCurrency(
                form.cleaned_data['currency'])
            description = form.cleaned_data['description']
            MoneyService().addMoneyBL(account, isio, happentime, money,
                                      currency, description, user)
            return HttpResponseRedirect('/moneybl/')
    else:
        form = MoneyBLForm(user=user)
    pageinfo = PageInfo(page_menu_name='Money',
                        user=user,
                        page_title=ugettext('Add Money Borrow and Lend'))
    helptext_list = AdminService().getCategoryHelpTextList(
        'Money Income and Expense')
    form_action_url = '/moneybl/add'
    return render_to_response(
        'common_add_edit.html', {
            'pageinfo': pageinfo,
            'helptext_list': helptext_list,
            'form_action_url': form_action_url,
            'form': form,
            'user': user
        })
예제 #3
0
def moneytransfer_edit(request, id):
    if not check_user_login(request):
        return login(request)

    user = request.session.get('user')
    if request.method == 'POST':
        form = MoneyTransferForm(data=request.POST, user=user)
        if form.is_valid():
            fromaccount = AccountService().getAccount(
                form.cleaned_data['fromaccount'], user)
            toaccount = AccountService().getAccount(
                form.cleaned_data['toaccount'], user)
            happentime = form.cleaned_data['happentime']
            money = form.cleaned_data['money']
            currency = AccountService().getCurrency(
                form.cleaned_data['currency'])
            description = form.cleaned_data['description']
            MoneyService().editMoneyTransfer(id, fromaccount, toaccount,
                                             happentime, money, currency,
                                             description, user)
            return HttpResponseRedirect('/moneytransfer/')
    else:
        moneytransfer = MoneyService().getMoneyTransfer(id, user)
        if moneytransfer:
            moneytransfer_currency_id = None
            if moneytransfer.currency:
                moneytransfer_currency_id = moneytransfer.currency.id
            moneytransfer_fromaccount_id = None
            if moneytransfer.fromaccount:
                moneytransfer_fromaccount_id = moneytransfer.fromaccount.id
            moneytransfer_toaccount_id = None
            if moneytransfer.toaccount:
                moneytransfer_toaccount_id = moneytransfer.toaccount.id
            form = MoneyTransferForm(initial={
                'fromaccount': moneytransfer_fromaccount_id,
                'toaccount': moneytransfer_toaccount_id,
                'happentime': moneytransfer.happentime,
                'money': moneytransfer.money,
                'currency': moneytransfer_currency_id,
                'description': moneytransfer.description
            },
                                     user=user)
        else:
            return HttpResponseRedirect('/moneytransfer/')

    pageinfo = PageInfo(page_menu_name='Money',
                        user=user,
                        page_title=ugettext('Edit Money Transfer'))
    helptext_list = AdminService().getCategoryHelpTextList(
        'Money Income and Expense')
    form_action_url = '/moneytransfer/edit/' + id
    return render_to_response(
        'common_add_edit.html', {
            'pageinfo': pageinfo,
            'helptext_list': helptext_list,
            'form_action_url': form_action_url,
            'form': form,
            'user': user
        })
예제 #4
0
 def deleteMoneyTransfer(self, id, user):
     moneytransfer = self.getMoneyTransfer(id, user)
     if moneytransfer:
         AccountService().updateAccountMoney(moneytransfer.fromaccount,
                                             moneytransfer.money, 1)
         AccountService().updateAccountMoney(moneytransfer.toaccount,
                                             moneytransfer.money, -1)
         moneytransfer.delete()
예제 #5
0
 def __init__(self, id, user, *args, **kwargs ):  
     super(ObjectForm, self).__init__(*args, **kwargs)
     self.id = id
     self.user = user        
     self.fields['accountlist'].choices=AccountService().getAccountChoices(self.user) 
     self.fields['currency'].choices=AccountService().getCurrencyChoices()
     if 'data' in kwargs:
         self.data = kwargs['data']
예제 #6
0
 def __init__(self, user, *args, **kwargs):
     super(MoneyTransferForm, self).__init__(*args, **kwargs)
     self.user = user
     self.fields['fromaccount'].choices = AccountService(
     ).getAccountChoices(self.user)
     self.fields['toaccount'].choices = AccountService().getAccountChoices(
         self.user)
     self.fields['currency'].choices = AccountService().getCurrencyChoices()
     if 'data' in kwargs:
         self.data = kwargs['data']
예제 #7
0
 def __init__(self, user, *args, **kwargs):
     super(MoneyIOForm, self).__init__(*args, **kwargs)
     self.user = user
     self.fields['account'].choices = AccountService().getAccountChoices(
         self.user)
     self.fields['moneyiotype'].choices = MoneyService(
     ).getMoneyIOUserTypeChoices(self.user)
     self.fields['currency'].choices = AccountService().getCurrencyChoices()
     if 'data' in kwargs:
         self.data = kwargs['data']
예제 #8
0
 def __init__(self, user, *args, **kwargs):
     super(MoneyIOStatSearchForm, self).__init__(*args, **kwargs)
     self.user = user
     self.fields['account'].choices = [
         (-1, 'All')
     ] + AccountService().getAccountChoices(self.user)
     self.fields['currency'].choices = [
         (-1, 'All')
     ] + AccountService().getCurrencyChoices()
     if 'data' in kwargs:
         self.data = kwargs['data']
예제 #9
0
    def addMoneyTransfer(self, fromaccount, toaccount, happentime, money,
                         currency, description, user):
        moneytransfer = MoneyTransfer(fromaccount=fromaccount,
                                      toaccount=toaccount,
                                      happentime=happentime,
                                      money=money,
                                      currency=currency,
                                      description=description,
                                      user=user)

        moneytransfer.put()
        AccountService().updateAccountMoney(fromaccount, money, -1)
        AccountService().updateAccountMoney(toaccount, money, 1)
예제 #10
0
def currency_edit(request, id): 
    if not check_user_is_admin(request):
        return HttpResponseRedirect('/notadmin/')
    
    user = request.session.get('user')
    if request.method == 'POST':
        form = CurrencyForm(data=request.POST)
        if form.is_valid(): 
            name = form.cleaned_data['name']
            symbol = form.cleaned_data['symbol']
            AdminService().editCurrency(id, name, symbol)
            return HttpResponseRedirect('/admin/')
    else:                
        currency = AccountService().getCurrency(id)
        if currency:
            form = CurrencyForm(initial=
                               {'name': currency.name, 
                                'symbol':currency.symbol
                                })
        else:
            form = CurrencyForm()

    page_title=ugettext('Edit Currency')
    form_action_url='/admin/currency/edit/' + id
    page_module='Admin'
    return render_to_response('common_add_edit.html', {'page_title':page_title, 
                                                       'form_action_url': form_action_url, 
                                                       'form': form, 
                                                       'user':user,
                                                       'page_module' : page_module
                                                       })
예제 #11
0
def add(request):  
    if not check_user_login(request):
        return login(request)
    
    user = request.session.get('user')
    if request.method == 'POST':
        form = ObjectForm(data=request.POST, user=user, id = None)
        if form.is_valid(): 
            name = form.cleaned_data['name']
            finishdate = form.cleaned_data['finishdate']
            money = float(form.cleaned_data['money'])
            currency = AccountService().getCurrency(form.cleaned_data['currency'])
            accountlist = form.cleaned_data['accountlist']
            description = form.cleaned_data['description']
            ObjectService().addObject(name, finishdate, money, currency, accountlist, description, user)
            return HttpResponseRedirect('/object/')
    else:
        form = ObjectForm(user=user, id = None)

    page_title=ugettext('Add Object')
    pageinfo = PageInfo(page_menu_name='Object', user=user, page_title=page_title)
    helptext_list = AdminService().getCategoryHelpTextList('Object')
    form_action_url='/object/add/'
    return render_to_response('common_add_edit.html', {'pageinfo':pageinfo, 
                                                       'helptext_list': helptext_list,
                                                       'form_action_url': form_action_url, 
                                                       'form': form, 
                                                       'user':user
                                                       })
예제 #12
0
def accounttype_edit(request, id): 
    if not check_user_is_admin(request):
        return HttpResponseRedirect('/notadmin/')
    
    user = request.session.get('user')
    if request.method == 'POST':
        form = AccountTypeForm(data=request.POST)
        if form.is_valid(): 
            name = form.cleaned_data['name']
            canadvance = form.cleaned_data['canadvance']
            AdminService().editAccountType(id, name, canadvance)
            return HttpResponseRedirect('/admin/')
    else:                
        accounttype = AccountService().getAccountType(id)
        if accounttype:
            form = AccountTypeForm(initial=
                               {'name': accounttype.name,
                                'canadvance':accounttype.canadvance
                                })
        else:
            form = AccountTypeForm()

    page_title=ugettext('Edit Account Type')
    form_action_url='/admin/accounttype/edit/' + id
    page_module='Admin'
    return render_to_response('common_add_edit.html', {'page_title':page_title, 
                                                       'form_action_url': form_action_url, 
                                                       'form': form, 
                                                       'user':user,
                                                       'page_module' : page_module
                                                       })
예제 #13
0
    def addMoneyIO(self,
                   account,
                   happentime,
                   moneyiotype,
                   money,
                   currency,
                   isshare,
                   description,
                   user,
                   alarm=None):
        moneyio = MoneyIO()

        moneyio.account = account
        moneyio.happentime = happentime
        moneyio.moneyiotype = moneyiotype
        moneyio.money = money
        moneyio.currency = currency
        moneyio.isshare = isshare
        moneyio.description = description
        if user:
            moneyio.user = user
        if alarm:
            moneyio.alarm = alarm

        moneyio.put()

        AccountService().updateAccountMoney(account, money, moneyiotype.isio)
예제 #14
0
    def clean(self):
        cleaned_data = self.cleaned_data

        begindate = cleaned_data.get('begindate')
        enddate = cleaned_data.get('enddate')

        if begindate and enddate and begindate >= enddate:
            raise forms.ValidationError(
                ugettext('The begin data should be earlier than end date'))

        isautogenmoneyio = cleaned_data.get('isautogenmoneyio')
        money = cleaned_data.get('money')
        if isautogenmoneyio and money <= 0:
            raise forms.ValidationError(
                ugettext('The amount should be more than zero'))

        account_id = cleaned_data.get('account')
        account = AccountService().getAccount(account_id, self.user)
        moneyiousertype_id = cleaned_data.get('moneyiousertype')
        moneyiousertype = MoneyService().getMoneyIOUserType(
            moneyiousertype_id, self.user)

        if (isautogenmoneyio and account and moneyiousertype
                and moneyiousertype.isio == -1 and money > 0
                and account.totalmoney < money):
            totalmoney = account.totalmoney
            raise forms.ValidationError(
                ugettext(
                    'The account total amount (%(totalmoney)10.2f) is not enough to expense'
                ) % {'totalmoney': totalmoney})
        return cleaned_data
예제 #15
0
def add(request):
    if not check_user_login(request):
        return login(request)

    user = request.session.get('user')

    moneyiousertype_list = MoneyService().getMoneyIOUserTypeList(user)
    moneyiousertype_count = MoneyService().getMoneyIOUserTypeCount(user)
    BudgetDetailFormSet = formset_factory(BudgetDetailForm,
                                          max_num=moneyiousertype_count)
    if request.method == 'POST':
        budgetform = BudgetForm(request.POST)
        budgetdetailformset = BudgetDetailFormSet(request.POST)
        if budgetform.is_valid() and budgetdetailformset.is_valid():
            name = budgetform.cleaned_data['name']
            begindate = budgetform.cleaned_data['begindate']
            enddate = budgetform.cleaned_data['enddate']
            currency = AccountService().getCurrency(
                budgetform.cleaned_data['currency'])
            description = budgetform.cleaned_data['description']
            budget = BudgetService().addBudget(name, begindate, enddate,
                                               currency, description, user)

            for budgetdetailform in budgetdetailformset.forms:
                moneyiousertypeid = budgetdetailform.cleaned_data[
                    'moneyiousertypeid']
                moneyiousertype = MoneyService().getMoneyIOUserType(
                    moneyiousertypeid, user)
                money = budgetdetailform.cleaned_data['money']
                if money > 0.0:
                    BudgetService().addBudgetDetail(budget, moneyiousertype,
                                                    money)
            return HttpResponseRedirect('/budget/')

    else:
        budgetform = BudgetForm()

        formsetinitdata = [{
            'moneyiousertypeid': moneyiousertype.id,
            'moneyiousertypename': moneyiousertype.name,
            'money': 0.0
        } for moneyiousertype in moneyiousertype_list]
        budgetdetailformset = BudgetDetailFormSet(initial=formsetinitdata)

    page_title = ugettext('Add Budget')
    pageinfo = PageInfo(page_menu_name='Budget',
                        user=user,
                        page_title=page_title)
    helptext_list = AdminService().getCategoryHelpTextList('Budget')
    form_action_url = '/budget/add/'
    return render_to_response(
        'budget_add_edit.html', {
            'helptext_list': helptext_list,
            'form_action_url': form_action_url,
            'budgetform': budgetform,
            'budgetdetailformset': budgetdetailformset,
            'user': user,
            'pageinfo': pageinfo
        })
예제 #16
0
    def getMoneyStatList(self, filter_dict, user):
        currency_list = AccountService().getCurrencyList()
        moneystat_list = []
        for currency in currency_list:
            moneystat = self.getMoneyStat(filter_dict, currency, user)
            if moneystat:
                moneystat_list.append(moneystat)

        return moneystat_list
예제 #17
0
def add(request):
    if not check_user_login(request):
        return login(request)

    user = request.session.get('user')
    if request.method == 'POST':
        form = AlarmForm(data=request.POST, user=user, id=None)
        if form.is_valid():
            name = form.cleaned_data['name']
            account = AccountService().getAccount(form.cleaned_data['account'],
                                                  user)
            begindate = form.cleaned_data['begindate']
            enddate = form.cleaned_data['enddate']
            cycletype = form.cleaned_data['cycletype']
            cyclevalue = form.cleaned_data['cyclevalue']
            isautogenmoneyio = form.cleaned_data['isautogenmoneyio']
            moneyiousertype = MoneyService().getMoneyIOUserType(
                form.cleaned_data['moneyiousertype'], user)
            money = form.cleaned_data['money']
            currency = AccountService().getCurrency(
                form.cleaned_data['currency'])
            description = form.cleaned_data['description']
            AlarmService().addAlarm(name, account, begindate, enddate,
                                    cycletype, cyclevalue, isautogenmoneyio,
                                    moneyiousertype, money, currency,
                                    description, user)
            return HttpResponseRedirect('/alarm/')
    else:
        form = AlarmForm(user=user, id=None)

    pageinfo = PageInfo(page_menu_name='Alarm',
                        user=user,
                        page_title=ugettext('Add Alarm'))
    helptext_list = AdminService().getCategoryHelpTextList('Alarm')
    form_action_url = '/alarm/add/'
    return render_to_response(
        'common_add_edit.html', {
            'pageinfo': pageinfo,
            'helptext_list': helptext_list,
            'form_action_url': form_action_url,
            'form': form,
            'user': user
        })
예제 #18
0
 def editMoneyBL(self, id, account, isio, happentime, money, currency,
                 description, user):
     moneybl = self.getMoneyBL(id, user)
     if moneybl:
         initmoney = moneybl.money
         initaccount = moneybl.account
         initisio = moneybl.isio
         moneybl.account = account
         moneybl.isio = isio
         moneybl.happentime = happentime
         moneybl.money = money
         moneybl.currency = currency
         moneybl.description = description
         if user:
             moneybl.user = user
         moneybl.put()
         AccountService().updateAccountMoney(initaccount, initmoney,
                                             initisio * -1)
         AccountService().updateAccountMoney(
             AccountService().getAccount(account.id, user), money, isio)
예제 #19
0
    def addMoneyBL(self, account, isio, happentime, money, currency,
                   description, user):
        moneybl = MoneyBL(account=account,
                          isio=isio,
                          happentime=happentime,
                          money=money,
                          currency=currency,
                          description=description,
                          user=user)

        moneybl.put()
        AccountService().updateAccountMoney(account, money, isio)
예제 #20
0
def moneytransfer_account_to_data(request, account_id):
    if not check_user_login(request):
        return ''

    user = request.session.get('user')

    account = AccountService().getAccount(account_id, user)
    if account == None:
        return ''

    filter_dict = {'toaccount': account}
    return get_json_data(request, filter_dict)
예제 #21
0
    def clean(self):
        cleaned_data = self.cleaned_data

        money = cleaned_data.get('money')
        isio = int(cleaned_data.get('isio'))
        account_id = cleaned_data.get('account')
        account = AccountService().getAccount(account_id, self.user)
        if account and account.type.canadvance == False and money > 0 and isio == -1 and account.totalmoney < money:
            totalmoney = account.totalmoney
            raise forms.ValidationError(
                ugettext(
                    'The account total amount (%(totalmoney)10.2f) is not enough to borrow'
                ) % {'totalmoney': totalmoney})
        return cleaned_data
예제 #22
0
 def getModelList(self, model_name, filter_dict, orderby, pagesize, pagecount, user):
     if model_name == 'account':
         return AccountService().getAccountList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'budget':
         return BudgetService().getBudgetList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'alarm':
         return AlarmService().getAlarmList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'object':
         return ObjectService().getObjectList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'moneyio':
         return MoneyService().getMoneyIOList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'moneybl':
         return MoneyService().getMoneyBLList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'moneytransfer':
         return MoneyService().getMoneyTransferList(filter_dict, orderby, pagesize, pagecount, user)
     elif model_name == 'usermessage':
         return UserService().getMessageList(filter_dict, orderby, pagesize, pagecount, user)
예제 #23
0
    def clean(self):
        cleaned_data = self.cleaned_data

        money = cleaned_data.get('money')
        moneyiotype_id = cleaned_data.get('moneyiotype')
        moneyiotype = MoneyService().getMoneyIOUserType(
            moneyiotype_id, self.user)
        isio = moneyiotype.isio
        account_id = cleaned_data.get('account')
        account = AccountService().getAccount(account_id, self.user)
        if account and account.type.canadvance == False and money > 0 and isio == -1 and account.totalmoney < money:
            totalmoney = account.totalmoney
            raise forms.ValidationError(
                ugettext(
                    'The account total amount (%(totalmoney)10.2f) is not enough to expense'
                ) % {'totalmoney': totalmoney})

        return cleaned_data
예제 #24
0
def edit(request, id): 
    if not check_user_login(request):
        return login(request)
    
    user = request.session.get('user')
    if request.method == 'POST':
        form = ObjectForm(data=request.POST, user=user, id=id)
        if form.is_valid(): 
            name = form.cleaned_data['name']
            finishdate = form.cleaned_data['finishdate']
            money = float(form.cleaned_data['money'])
            currency = AccountService().getCurrency(form.cleaned_data['currency'])
            accountlist = form.cleaned_data['accountlist'] 
            description = form.cleaned_data['description']
            ObjectService().editObject(id, name, finishdate, money, currency, accountlist, description, user)
            return HttpResponseRedirect('/object/')
    else:                
        object = ObjectService().getObject(id, user)
        if object:
            object_currency_id = None
            if object.currency:
                object_currency_id = object.currency.id            
            form = ObjectForm(initial=
                               {'name': object.name, 
                                'finishdate':object.finishdate,
                                'money':object.money, 
                                'currency':object_currency_id, 
                                'accountlist':object.accountlist, 
                                'description':object.description}, user=user, id=id)
        else:
            return HttpResponseRedirect('/object/')

    page_title=ugettext('Edit Object')
    pageinfo = PageInfo(page_menu_name='Object', user=user, page_title=page_title)
    helptext_list = AdminService().getCategoryHelpTextList('Object')
    form_action_url='/object/edit/' + id
    return render_to_response('common_add_edit.html', {'pageinfo':pageinfo, 
                                                       'helptext_list': helptext_list,
                                                       'form_action_url': form_action_url, 
                                                       'form': form, 
                                                       'user':user
                                                       })
예제 #25
0
    def clean(self):
        cleaned_data = self.cleaned_data

        fromaccount_id = cleaned_data.get('fromaccount')
        toaccount_id = cleaned_data.get('toaccount')
        if fromaccount_id == toaccount_id:
            raise forms.ValidationError(
                ugettext('The from account should not be same as to account'))

        cleaned_data = self.cleaned_data
        fromaccount_id = cleaned_data.get('fromaccount')
        money = cleaned_data.get('money')
        fromaccount = AccountService().getAccount(fromaccount_id, self.user)
        if fromaccount and fromaccount.type.canadvance == False and money > 0 and fromaccount.totalmoney < money:
            totalmoney = fromaccount.totalmoney
            raise forms.ValidationError(
                ugettext(
                    'The from account total amount (%(totalmoney)10.2f) is not enough to transfer'
                ) % {'totalmoney': totalmoney})

        return cleaned_data
예제 #26
0
def index(request):
    if not check_user_login(request):
        return login(request)

    helptext_list = AdminService().getCategoryHelpTextList('Home')
    user = request.session.get('user', None)
    pageinfo = PageInfo(page_menu_name='Home', user=user)

    begindate = datetime.datetime.strptime(
        common.datetimeutil.get_firstday_month(), '%Y-%m-%d')
    enddate = datetime.date.today()

    moneyio_list = MoneyService().getMoneyIOList(None, '-createtime', 5, 1,
                                                 user)[0]

    account_list = AccountService().getAccountList(None, '-createtime', 5, 1,
                                                   user)[0]

    object_list = ObjectService().getObjectList(None, '-createtime', 5, 1,
                                                user)[0]

    budget_filter_dict = {'begindate >=': begindate, 'begindate <=': enddate}
    budget_list = BudgetService().getBudgetList(budget_filter_dict,
                                                '-begindate', 5, 1, user)[0]

    errormessage = request.session.get('errormessage', None)
    request.session['errormessage'] = None

    return render_to_response(
        'index.html', {
            'user': user,
            'helptext_list': helptext_list,
            'pageinfo': pageinfo,
            'moneyio_list': moneyio_list,
            'account_list': account_list,
            'object_list': object_list,
            'budget_list': budget_list,
            'errormessage': errormessage
        })
예제 #27
0
def detail(request, id):
    if not check_user_login(request):
        return login(request)
    
    user = request.session.get('user')    
    object = ObjectService().getObject(id, user)
    object_list = []    
    if object:
        object_list.append(object)
        page_title = ugettext('Object Detail')
        pageinfo = PageInfo(page_menu_name='Object', user=user, page_title=page_title)
        helptext_list = AdminService().getCategoryHelpTextList('Object')
        
        account_list = AccountService().getAccountListByIDList(object.accountlist, user)
        
        return render_to_response('object_detail.html', {'object': object, 
                                                         'object_list': object_list,
                                                         'user':user,
                                                         'pageinfo': pageinfo,
                                                         'helptext_list':helptext_list, 
                                                         'account_list' : account_list
                                                         })
    else:
        return render_to_response('object_detail.html', {'object': None})
예제 #28
0
    def editMoneyTransfer(self, id, fromaccount, toaccount, happentime, money,
                          currency, description, user):
        moneytransfer = MoneyService().getMoneyTransfer(id, user)
        if moneytransfer:
            initmoney = moneytransfer.money
            initfromaccount = moneytransfer.fromaccount
            inittoaccount = moneytransfer.toaccount
            moneytransfer.fromaccount = fromaccount
            moneytransfer.toaccount = toaccount
            moneytransfer.happentime = happentime
            moneytransfer.money = money
            moneytransfer.currency = currency
            moneytransfer.description = description
            if user:
                moneytransfer.user = user
            moneytransfer.put()
            AccountService().updateAccountMoney(initfromaccount, initmoney, 1)
            AccountService().updateAccountMoney(inittoaccount, initmoney, -1)

            AccountService().updateAccountMoney(
                AccountService().getAccount(fromaccount.id, user), money, -1)
            AccountService().updateAccountMoney(
                AccountService().getAccount(toaccount.id, user), money, 1)
예제 #29
0
 def getModelCount(self, model_name, filter_dict, user):
     if model_name == 'account':
         return AccountService().getAccountCount(filter_dict, user)
예제 #30
0
 def __init__(self, *args, **kwargs):
     super(BudgetForm, self).__init__(*args, **kwargs)
     self.fields['currency'].choices = AccountService().getCurrencyChoices()
     if 'data' in kwargs:
         self.data = kwargs['data']
예제 #31
0
 def deleteAccountType(self, id):
     accounttype = AccountService().getAccountType(id)
     if accounttype:
         accounttype.delete()
예제 #32
0
 def editAccountType(self, id, name, canadvance):
     accounttype = AccountService().getAccountType(id)
     if accounttype:
         accounttype.name = name
         accounttype.canadvance= canadvance
         accounttype.put()
예제 #33
0
 def deleteCurrency(self, id):
     currency = AccountService().getCurrency(id)
     if currency:
         currency.delete()
예제 #34
0
 def editCurrency(self, id, name, symbol):
     currency = AccountService().getCurrency(id)
     if currency:
         currency.name = name
         currency.symbol = symbol
         currency.put()