tree bd9b7450c234f7bc62e237386f68bb621aa3fd84
parent 15636a3b98d705838ef27ed9a7a07848074425dc
author Bassam Ramadan <elba7r@gmail.com> 1534768108 +0200
committer Nabin Hait <nabinhait@gmail.com> 1534768108 +0530

Trial balance and payable accounts reports and sales return fixes (#15000)

* adding supplier type filter to payable accounts and payable accounts summary reports

adding supplier type filter to payable accounts and payable accounts
summary reports as customer group at receivable accounts and summary
reports as its important and easier to put this filter

* fix trial balance opening and closing values

the removed mathematical operations was causing showing incorrect values
at opening and closing columns where the total row was correct so the
operation deleted to view the correct values to be equal to the total
row and to stop confusing the user due to different values between the
total row and the the values in front of each account

* fix for supplier type filter field on payable accounts reports

rename the supplier type filter field to supplier group in payable
accounts and summary reports

* fix for paid amount in returned sales invoice

the current paid amount not change from source value if you deleted any
item if the invoice contain for example 3 items and you only need to
return on item the current steps is to open the original invoice and
press on make return then you delete the unwanted items but in this case
the paid amount will not change and you will get an alert from the
system until you change it manually but with this modification it works
very well.

* fixing trial balance values and totals

fixing trial balance opening and closing ( DR - CR ) values and totals
