Credit days validation fixes

This commit is contained in:
Nabin Hait 2014-11-10 11:11:38 +05:30
parent bc41ce95fc
commit 10d1806d81

View File

@ -310,22 +310,19 @@ class JournalVoucher(AccountsController):
self.total_amount_in_words = money_in_words(amt, company_currency) self.total_amount_in_words = money_in_words(amt, company_currency)
def check_credit_days(self): def check_credit_days(self):
date_diff = 0
if self.cheque_date: if self.cheque_date:
date_diff = (getdate(self.cheque_date)-getdate(self.posting_date)).days for d in self.get("entries"):
if flt(d.credit) > 0 and d.against_invoice \
if date_diff <= 0: return and frappe.db.get_value("Account", d.account, "master_type")=='Customer':
posting_date = frappe.db.get_value("Sales Invoice", d.against_invoice, "posting_date")
# Get List of Customer Account credit_days = self.get_credit_days_for(d.account)
acc_list = filter(lambda d: frappe.db.get_value("Account", d.account, if credit_days:
"master_type")=='Customer', self.get('entries')) date_diff = (getdate(self.cheque_date) - getdate(posting_date)).days
if date_diff > flt(credit_days):
for d in acc_list: msgprint(_("Note: Reference Date exceeds allowed credit days by {0} days for {1}")
credit_days = self.get_credit_days_for(d.account) .format(date_diff - flt(credit_days), d.account))
# Check credit days if not self.get_authorized_user():
if credit_days > 0 and not self.get_authorized_user() and cint(date_diff) > credit_days: raise frappe.ValidationError
msgprint(_("Maximum allowed credit is {0} days after posting date").format(credit_days),
raise_exception=1)
def get_credit_days_for(self, ac): def get_credit_days_for(self, ac):
if not self.credit_days_for.has_key(ac): if not self.credit_days_for.has_key(ac):
@ -333,8 +330,7 @@ class JournalVoucher(AccountsController):
if not self.credit_days_for[ac]: if not self.credit_days_for[ac]:
if self.credit_days_global==-1: if self.credit_days_global==-1:
self.credit_days_global = cint(frappe.db.get_value("Company", self.credit_days_global = cint(frappe.db.get_value("Company", self.company, "credit_days"))
self.company, "credit_days"))
return self.credit_days_global return self.credit_days_global
else: else:
@ -343,10 +339,7 @@ class JournalVoucher(AccountsController):
def get_authorized_user(self): def get_authorized_user(self):
if self.is_approving_authority==-1: if self.is_approving_authority==-1:
self.is_approving_authority = 0 self.is_approving_authority = 0
approving_authority = frappe.db.get_value("Accounts Settings", None, "credit_controller")
# Fetch credit controller role
approving_authority = frappe.db.get_value("Accounts Settings", None,
"credit_controller")
# Check logged-in user is authorized # Check logged-in user is authorized
if approving_authority in frappe.user.get_roles(): if approving_authority in frappe.user.get_roles():