Trial balance opening issue fixed if there is no prev year
This commit is contained in:
parent
a77cea2b90
commit
3c8a50c257
@ -1,6 +1,6 @@
|
|||||||
# Columns
|
# Columns
|
||||||
#----------
|
#----------
|
||||||
cl = [['Account','Data', '200px'],['Debit/Credit', 'Data', '100px'], ['Group/Ledger', 'Data', '100px'], ['Is PL Account', 'Data', '100px'], ['Opening','Data', '100px'],['Debit', 'Data', '100px'],['Credit', 'Data', '100px'],['Closing', 'Data', '100px']]
|
cl = [['Account','Data', '200px'],['Debit/Credit', 'Data', '100px'], ['Group/Ledger', 'Data', '100px'], ['Is PL Account', 'Data', '100px'], ['Opening (Dr)','Data', '100px'], ['Opening (Cr)','Data', '100px'],['Debit', 'Data', '100px'],['Credit', 'Data', '100px'],['Closing (Dr)', 'Data', '100px'],['Closing (Cr)', 'Data', '100px']]
|
||||||
for c in cl:
|
for c in cl:
|
||||||
colnames.append(c[0])
|
colnames.append(c[0])
|
||||||
coltypes.append(c[1])
|
coltypes.append(c[1])
|
||||||
@ -33,11 +33,17 @@ to_date_year = to_date_year and to_date_year[0][0] or ''
|
|||||||
|
|
||||||
# if output is more than 500 lines then it will ask to export
|
# if output is more than 500 lines then it will ask to export
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
if len(res) > 500 and from_export == 0:
|
if len(res) > 1000 and from_export == 0:
|
||||||
msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet")
|
msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet")
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
total_debit, total_credit = 0,0
|
|
||||||
|
acc_dict = {}
|
||||||
|
for t in sql("select name, debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where docstatus != 2 and company = %s", filter_values['company']):
|
||||||
|
acc_dict[t[0]] = [t[1], t[2], t[3], t[4], t[5]]
|
||||||
|
|
||||||
|
|
||||||
|
total_debit, total_credit, total_opening_dr, total_opening_cr, total_closing_dr, total_closing_cr = 0, 0, 0, 0, 0, 0
|
||||||
glc = get_obj('GL Control')
|
glc = get_obj('GL Control')
|
||||||
|
|
||||||
# Main logic
|
# Main logic
|
||||||
@ -45,47 +51,55 @@ glc = get_obj('GL Control')
|
|||||||
for r in res:
|
for r in res:
|
||||||
# Fetch account details
|
# Fetch account details
|
||||||
acc = r[col_idx['Account']].strip()
|
acc = r[col_idx['Account']].strip()
|
||||||
acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc)
|
r.append(acc_dict[acc][0])
|
||||||
r.append(acc_det[0][0])
|
r.append(acc_dict[acc][4])
|
||||||
r.append(acc_det[0][4])
|
r.append(acc_dict[acc][1])
|
||||||
r.append(acc_det[0][1])
|
|
||||||
|
|
||||||
#if shows group and ledger both but without group balance
|
#if shows group and ledger both but without group balance
|
||||||
if filter_values.get('show_group_ledger') == 'Both But Without Group Balance' and acc_det[0][4] == 'Group':
|
if filter_values.get('show_group_ledger') == 'Both But Without Group Balance' and acc_dict[acc][4] == 'Group':
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
r.append('')
|
r.append('')
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# opening balance
|
# Opening Balance
|
||||||
if from_date_year:
|
#-----------------------------
|
||||||
debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(from_date, -1), acc_det[0][0], acc_det[0][2], acc_det[0][3])
|
if from_date_year == to_date_year:
|
||||||
else: # if there is no previous year in system
|
debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(from_date, -1), acc_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3]) # opening = closing of prev_date
|
||||||
debit_on_fromdate, credit_on_fromdate, opening = 0, 0, 0
|
elif acc_dict[acc][1] == 'No': # if there is no previous year in system and not pl account
|
||||||
|
opening = sql("select opening from `tabAccount Balance` where account = %s and period = %s", (acc, to_date_year))
|
||||||
|
debit_on_fromdate, credit_on_fromdate, opening = 0, 0, flt(opening[0][0])
|
||||||
|
else: # if pl account and there is no previous year in system
|
||||||
|
debit_on_fromdate, credit_on_fromdate, opening = 0,0,0
|
||||||
|
|
||||||
# closing balance
|
# closing balance
|
||||||
debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])
|
#--------------------------------
|
||||||
|
debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, to_date, acc_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3])
|
||||||
|
|
||||||
# transaction betn the period
|
# transaction betn the period
|
||||||
if from_date_year == to_date_year:
|
#----------------------------------------
|
||||||
debit = flt(debit_on_todate) - flt(debit_on_fromdate)
|
|
||||||
credit = flt(credit_on_todate) - flt(credit_on_fromdate)
|
|
||||||
else: # if from date is start date of the year
|
|
||||||
debit = flt(debit_on_todate)
|
|
||||||
credit = flt(credit_on_todate)
|
|
||||||
|
|
||||||
total_debit += debit
|
debit = flt(debit_on_todate) - flt(debit_on_fromdate)
|
||||||
total_credit += credit
|
credit = flt(credit_on_todate) - flt(credit_on_fromdate)
|
||||||
|
|
||||||
if acc_det[0][1] == 'Yes' and from_date_year != to_date_year:
|
# Debit / Credit
|
||||||
opening = 0
|
if acc_dict[acc][0] == 'Credit':
|
||||||
|
|
||||||
if acc_det[0][0] == 'Credit':
|
|
||||||
opening, closing = -1*opening, -1*closing
|
opening, closing = -1*opening, -1*closing
|
||||||
|
|
||||||
r.append(flt(opening))
|
# Totals
|
||||||
|
total_opening_dr += opening>0 and flt(opening) or 0
|
||||||
|
total_opening_cr += opening<0 and -1*flt(opening) or 0
|
||||||
|
total_debit += debit
|
||||||
|
total_credit += credit
|
||||||
|
total_closing_dr += closing>0 and flt(closing) or 0
|
||||||
|
total_closing_cr += closing<0 and -1*flt(closing) or 0
|
||||||
|
|
||||||
|
# Append in rows
|
||||||
|
r.append(flt(opening>0 and opening or 0))
|
||||||
|
r.append(flt(opening<0 and -opening or 0))
|
||||||
r.append(flt(debit))
|
r.append(flt(debit))
|
||||||
r.append(flt(credit))
|
r.append(flt(credit))
|
||||||
r.append(flt(closing))
|
r.append(flt(closing>0 and closing or 0))
|
||||||
|
r.append(flt(closing<0 and -closing or 0))
|
||||||
|
|
||||||
|
|
||||||
out =[]
|
out =[]
|
||||||
@ -94,7 +108,7 @@ for r in res:
|
|||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
if filter_values.get('show_zero_balance') != 'No':
|
if filter_values.get('show_zero_balance') != 'No':
|
||||||
out.append(r)
|
out.append(r)
|
||||||
elif r[col_idx['Opening']] or r[col_idx['Debit']] or r[col_idx['Credit']] or r[col_idx['Closing']] or (r[col_idx['Group/Ledger']] == 'Group' and filter_values.get('show_group_ledger') == 'Both But Without Group Balance'):
|
elif r[col_idx['Opening (Dr)']] or r[col_idx['Opening (Cr)']] or r[col_idx['Debit']] or r[col_idx['Credit']] or r[col_idx['Closing (Dr)']] or r[col_idx['Closing (Cr)']] or (r[col_idx['Group/Ledger']] == 'Group' and filter_values.get('show_group_ledger') == 'Both But Without Group Balance'):
|
||||||
out.append(r)
|
out.append(r)
|
||||||
|
|
||||||
# Total Debit / Credit
|
# Total Debit / Credit
|
||||||
@ -102,6 +116,10 @@ for r in res:
|
|||||||
if filter_values.get('show_group_ledger') in ['Only Ledgers', 'Both But Without Group Balance']:
|
if filter_values.get('show_group_ledger') in ['Only Ledgers', 'Both But Without Group Balance']:
|
||||||
t_row = ['' for i in range(len(colnames))]
|
t_row = ['' for i in range(len(colnames))]
|
||||||
t_row[col_idx['Account']] = 'Total'
|
t_row[col_idx['Account']] = 'Total'
|
||||||
t_row[col_idx['Debit']] = total_debit
|
t_row[col_idx['Opening (Dr)']] = '%.2f' % total_opening_dr
|
||||||
t_row[col_idx['Credit']] = total_credit
|
t_row[col_idx['Opening (Cr)']] = '%.2f' % total_opening_cr
|
||||||
|
t_row[col_idx['Debit']] = '%.2f' % total_debit
|
||||||
|
t_row[col_idx['Credit']] = '%.2f' % total_credit
|
||||||
|
t_row[col_idx['Closing (Dr)']] = '%.2f' % total_closing_dr
|
||||||
|
t_row[col_idx['Closing (Cr)']] = '%.2f' % total_closing_cr
|
||||||
out.append(t_row)
|
out.append(t_row)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user