示例#1
0
def convert_all_interests_till(loan,
                               posting_date=today(),
                               disable_make_interest=False,
                               cancel=0,
                               recalculate=0):
    from frappe.utils import cint, get_first_day, get_last_day, add_months
    from frappe.permissions import get_roles

    if 'Loan Manager' not in get_roles(frappe.session.user):
        frappe.throw('Insufficient permission')

    if cint(cancel):
        return delete_gl_entries(voucher_type='Loan', voucher_no=loan)

    if cint(recalculate):
        delete_gl_entries(voucher_type='Loan', voucher_no=loan)

    loan = frappe.get_doc('Loan', loan)

    def get_dates(start_date, end_date):
        from_date = getdate(start_date)
        to_date = getdate(end_date)
        while from_date <= to_date:
            yield from_date
            from_date = add_months(from_date, 1)

    effective_date = getdate('2017-08-01')
    start_date = get_first_day(
        add_months(
            loan.posting_date \
                if loan.posting_date > effective_date else effective_date,
            1
        )
    )

    def generate(d):
        amount = loan.convert_interest_to_principal(d)
        loan.make_interest(d, amount)
        return d

    return map(generate, get_dates(start_date, posting_date))
示例#2
0
 def get_roles(self):
     """get list of roles"""
     if not self.roles:
         self.roles = get_roles(self.name)
     return self.roles
示例#3
0
文件: user.py 项目: kalisetti/frappe
	def get_roles(self):
		"""get list of roles"""
		if not self.roles:
			self.roles = get_roles(self.name)
		return self.roles