Although the Error is still showing but Email is sent perfectly. So I assume the problem is solved.

Thanks for your support.

The error says that included files on Lines 22, 23, 24 and 25 in rep107 couldn't be find.

rep107 is working fine from core FA. So I can't make any changes in this report.

As far as module is concerned I have not made any changes to it. Just copied, installed and activated.

So @cambell if this module is working fine with you then please suggest the solution for me. The only problem is in Auto Sending of Email to Customer when Recurring Invoice is Created.


Also can you please elaborate the functionality behind Auto Create: check in Sales Order Definition.

I create a Sales Order and then Generated the Invoice against it from the Top Button. The invoice was generated but the rep107 gives following error

include_once(../includes/session.inc): failed to open stream: No such file or directory in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 22
C:\xampp\htdocs\bx242\reporting\rep107.php:22:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(): Failed opening '../includes/session.inc' for inclusion (include_path='C:\xampp\php\PEAR') in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 22
C:\xampp\htdocs\bx242\reporting\rep107.php:22:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(../includes/date_functions.inc): failed to open stream: No such file or directory in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 23
C:\xampp\htdocs\bx242\reporting\rep107.php:23:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(): Failed opening '../includes/date_functions.inc' for inclusion (include_path='C:\xampp\php\PEAR') in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 23
C:\xampp\htdocs\bx242\reporting\rep107.php:23:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(../includes/data_checks.inc): failed to open stream: No such file or directory in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 24
C:\xampp\htdocs\bx242\reporting\rep107.php:24:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(): Failed opening '../includes/data_checks.inc' for inclusion (include_path='C:\xampp\php\PEAR') in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 24
C:\xampp\htdocs\bx242\reporting\rep107.php:24:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(../sales/includes/sales_db.inc): failed to open stream: No such file or directory in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 25
C:\xampp\htdocs\bx242\reporting\rep107.php:25:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()
include_once(): Failed opening '../sales/includes/sales_db.inc' for inclusion (include_path='C:\xampp\php\PEAR') in file: C:\xampp\htdocs\bx242\reporting\rep107.php at line 25
C:\xampp\htdocs\bx242\reporting\rep107.php:25:    include_once()
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:81:    require_once('C:\xampp\htdocs\bx242\reporting\rep107.php')
C:\xampp\htdocs\bx242\modules\sgw_sales\includes\controller\GenerateRecurring.php:42:    (SGW_Sales\controller\GenerateRecurring Object)->emailInvoice('23')
C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php:144:    (SGW_Sales\controller\GenerateRecurring Object)->run()

The Recurring Order has an option Auto Create:

Is this controlled through Cron Job? When and how it is executed.

530

(11 replies, posted in Modules Add-on's)

I need more help on this.

I create a module with hooks.php having the above function _construct()

I have one more file in module cron.php that contains the code to automatically fetch the exchange rate and update the database of the logged in Company if accessed directly.

Now when this cron.php is called through cron job then how this function in hooks.php creates a session with the defined user login and password. Credentials are hardcoded in hooks.php

Please give some guidelines

531

(16 replies, posted in Accounts Receivable)

@Apmuthu I have checked it. It is not giving error but Once merged it shall give some message that customers are now merged etc.

Still I would request to have GL Accounts Merge routine

@Apmuthu your suggestion is optimal to incorporate both situations. While defining Recurring Invoice use can select whether to pick Item price from Prices or From Template Sales Order.

@cambell I got following error when accessing your module after activation

Warning: include_once(C:\xampp\htdocs\bx242\modules\sgw_sales/vendor/autoload.php): failed to open stream: No such file or directory in C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php on line 18

Warning: include_once(): Failed opening 'C:\xampp\htdocs\bx242\modules\sgw_sales/vendor/autoload.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php on line 18
Class 'SGW_Sales\controller\GenerateRecurring' not found in C:\xampp\htdocs\bx242\modules\sgw_sales\generate_recurring_invoices.php on line 132

533

(10 replies, posted in Report Bugs here)

Thanks @Joe I have tested and I think its fixed now.

534

(16 replies, posted in Accounts Receivable)

While Merging Customers I got following error

DATABASE ERROR : An error occured
error code : 1054
error message : Unknown column 'type' in 'where clause'
sql that failed was : DELETE FROM 0_crm_persons WHERE type = 'customer' AND id = (SELECT person_id from 0_crm_contacts WHERE type = 'customer' AND entity_id = 4 LIMIT 1)

535

(16 replies, posted in Accounts Receivable)

Can we have something similar to this like Merge GL Accounts?

I have a hosting business. My standard hosting price is say Rs. 3500 for 2 GB Hosting Package. I have created this Item and set the Item Price in the Prices section to 3500.

While negotiating with a customer I had to offer him the same package for Rs. 3000.

So I created a sales order with the revised price Rs. 3000 and selected that as a template

Then I created Recurring Invoice definition.

When I executed the recurring invoice the Price defined in the Sales Order was ignored and the price defined in the Prices i.e. Rs. 3500 was picked by the system.

@Joe, @apmuthu don't you think that the Prices defined in the price section is a general reference price for the product but the Price defined in the Sales Order Template is specific for this Particular Customer or Group. So System shall pick the specifically defined price OR discount instead of general price definition.

How are you different from Online Frontaccounting offered by frontaccounting.com itself?

538

(10 replies, posted in Report Bugs here)

Hello @Joe, were you able to check it further the problem in rep108 as mentioned above.

539

(10 replies, posted in Report Bugs here)

Thanks @Joe. But I think your solution has worked for rep101 but not for rep108.

I recorded one AR and AP for a customer through JE. Compare images below

rep101

rep108

There is some problem in Aged Customer Analysis also have a look

Aged Customer Analysis

Similarly we need to screen out the affects in Supplier Balances and Supplier Aged Analysis and If any other area, inquiry or report being affected by JE Transactions for Customers and Suppliers.

Regards

540

(10 replies, posted in Report Bugs here)

@Joe

Please check some screen shots below

Customer Balances Before JE Transaction

JE Transaction

Customer Balances after JE

You will find that the JE Transaction is appearing on the Credit Side Not on Debit Side because in Code no proper condition defined to handle Customer Debit Or Credit Transactions through JE.

This Problem is also in rep108.

I guess not yet checked that Suppliers Balances must be affecting due to same logical bug.

Hope this helps to understand.

You can login here to check further

fa.boxygen.biz/fa24

id: demo
pass: password

Thanks

541

(3 replies, posted in Reporting)

Great @Joe, wonderful
Thanks

542

(3 replies, posted in Reporting)

While creating customer if the user has defined Customer Name very different from debtor_ref for e.g

name: AAMIR
debtor_ref: LASANI

and if there are 1000 customers and their naming pattern is similar.

It is very very difficult to search this customer. Because all reports, all inquiries are showing AAMIR while Combo Box is showing LASANI.

Solution:

If the Combo Return from the

function customer_list($name, $selected_id=null, $spec_option=false, $submit_on_change=false,
    $show_inactive=false, $editkey = false)

can have two fields in the namefield parameter i.e debtor_ref and name then it will be very helpful for all FA Users.

I request the admin to think over it and commit some changes in the core to incorporate this for both Customers and Suppliers.

Thanks

543

(10 replies, posted in Report Bugs here)

Now since Transactions to customers can be recorded through Journal Entry also and It can be either Debit Or Credit to customer.

The following code is not sufficient to handle the transactions through Journal Entry

if ($myrow2['type'] == ST_SALESINVOICE || $myrow2['type'] == ST_BANKPAYMENT)
                $rep->TextCol(4, 5,    $DisplayTotal, -2);
            else
                $rep->TextCol(5, 6,    $DisplayTotal, -2);

Secondly one more thing is that If we Debit the Customer through JE then it appears in the ov_amount column in debtor_trans table as -ve value while if we credit the customer through JE the value appears as +ve value.

Except from the JE all values from any other transaction whether charges or credits appear as +ve value.

rep101 is also affected through JE Transactions. Debit is appearing on Credit Side and Credit is appearing on Debit Side.

544

(13 replies, posted in FA Modifications)

You can simply copy and paste it in Excel and take Print out.

From mobile the Line Item is not being added.

Its a good attempt to make whole theme Responsive. However since data feeding is usually done through desktop the desktop view shall be more Accountant Friendly.

There shall be table lines in different views. The columns shall be aligned properly i.e the data and heading shall either both be right aligned or left aligned.

If the space between rows in UI is reduced then it will be much better because instead of scrolling its good to see whole data entry form in visual area of window (desktop )

The login screen, dashboard is awesome. Menu style is good

The dashboard sections shall also be linked with security roles so that not all users can see all sections

546

(13 replies, posted in FA Modifications)

I think without an option the Group Total shall be available. For Quick Account Overview we need Group Total as well.

What is the solution to it? Temporarily I just commented following line before Continue;

if (check_value('Active'.$i) && !check_src_ext_version($ext['version']))
            {
                display_warning(sprintf(_("Package '%s' is incompatible with current application version and cannot be activated.\n")
                    . _("Check Install/Activate page for newer package version."), $ext['name']));
                //continue;
            }

But that should not be the solution. Kindly help.

After I commented this the extension is installed and working also.

548

(13 replies, posted in FA Modifications)

With Few modification we can have Group Total in Trial Balance. This is very needful in analyzing groups. Below is the code

<?php
/**********************************************************************
    Copyright (C) FrontAccounting, LLC.
    Released under the terms of the GNU General Public License, GPL,
    as published by the Free Software Foundation, either version 3
    of the License, or (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
$page_security = 'SA_GLANALYTIC';
$path_to_root="../..";

include_once($path_to_root . "/includes/session.inc");

include_once($path_to_root . "/includes/ui.inc");
include_once($path_to_root . "/includes/date_functions.inc");
include_once($path_to_root . "/admin/db/fiscalyears_db.inc");
include_once($path_to_root . "/includes/data_checks.inc");

include_once($path_to_root . "/gl/includes/gl_db.inc");

$js = "";
if (user_use_date_picker())
    $js = get_js_date_picker();

page(_($help_context = "Trial Balance"), false, false, "", $js);

$k = 0;
$pdeb = $pcre = $cdeb = $ccre = $tdeb = $tcre = $pbal = $cbal = $tbal = 0;

//----------------------------------------------------------------------------------------------------
// Ajax updates
//
if (get_post('Show'))
{
    $Ajax->activate('balance_tbl');
}


function gl_inquiry_controls()
{
    $dim = get_company_pref('use_dimension');
    start_form();

    start_table(TABLESTYLE_NOBORDER);

    $date = today();
    if (!isset($_POST['TransToDate']))
        $_POST['TransToDate'] = end_month($date);
    if (!isset($_POST['TransFromDate']))
        $_POST['TransFromDate'] = add_days(end_month($date), -user_transaction_days());
    date_cells(_("From:"), 'TransFromDate');
    date_cells(_("To:"), 'TransToDate');
    if ($dim >= 1)
        dimensions_list_cells(_("Dimension")." 1:", 'Dimension', null, true, " ", false, 1);
    if ($dim > 1)
        dimensions_list_cells(_("Dimension")." 2:", 'Dimension2', null, true, " ", false, 2);
    check_cells(_("No zero values"), 'NoZero', null);
    check_cells(_("Only balances"), 'Balance', null);

    submit_cells('Show',_("Show"),'','', 'default');
    end_table();
    end_form();
}

//----------------------------------------------------------------------------------------------------

function display_trial_balance($type, $typename)
{
    global $path_to_root, $SysPrefs,
         $k, $pdeb, $pcre, $cdeb, $ccre, $tdeb, $tcre, $pbal, $cbal, $tbal;

    $printtitle = 0; //Flag for printing type name

    $k = 0;

    //Get Accounts directly under this group/type
    $accounts = get_gl_accounts(null, null, $type);

    $begin = get_fiscalyear_begin_for_date($_POST['TransFromDate']);
    if (date1_greater_date2($begin, $_POST['TransFromDate']))
        $begin = $_POST['TransFromDate'];
    $begin = add_days($begin, -1);

    $Apdeb=$pdeb;
        $Apcre=$pcre;
        $Acdeb=$cdeb;
        $Accre=$ccre;
        $Atdeb=$tdeb;
        $Atcre=$tcre;
        $Apbal=$pbal;
        $Acbal=$cbal;
        $Atbal=$tbal;


    while ($account = db_fetch($accounts))
    {
        //Print Type Title if it has atleast one non-zero account
        if (!$printtitle)
        {
            start_row("class='inquirybg' style='font-weight:bold'");
            label_cell(_("Group")." - ".$type ." - ".$typename, "colspan=8");
            end_row();
            $printtitle = 1;
        }

        // FA doesn't really clear the closed year, therefore the brought forward balance includes all the transactions from the past, even though the balance is null.
        // If we want to remove the balanced part for the past years, this option removes the common part from from the prev and tot figures.
        if (@$SysPrefs->clear_trial_balance_opening)
        {
            $open = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin,  $begin, false, true);
            $offset = min($open['debit'], $open['credit']);
        } else
            $offset = 0;

        $prev = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin, $_POST['TransFromDate'], false, false);
        $curr = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $_POST['TransFromDate'], $_POST['TransToDate'], true, true);
        $tot = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin, $_POST['TransToDate'], false, true);
        if (check_value("NoZero") && !$prev['balance'] && !$curr['balance'] && !$tot['balance'])
            continue;
        alt_table_row_color($k);

        $url = "<a href='$path_to_root/gl/inquiry/gl_account_inquiry.php?TransFromDate=" . $_POST["TransFromDate"] . "&TransToDate=" . $_POST["TransToDate"] . "&account=" . $account["account_code"] . "&Dimension=" . $_POST["Dimension"] . "&Dimension2=" . $_POST["Dimension2"] . "'>" . $account["account_code"] . "</a>";

        label_cell($url);
        label_cell($account["account_name"]);
        if (check_value('Balance'))
        {
            display_debit_or_credit_cells($prev['balance']);
            display_debit_or_credit_cells($curr['balance']);
            display_debit_or_credit_cells($tot['balance']);

        }
        else
        {
            amount_cell($prev['debit']-$offset);
            amount_cell($prev['credit']-$offset);
            amount_cell($curr['debit']);
            amount_cell($curr['credit']);
            amount_cell($tot['debit']-$offset);
            amount_cell($tot['credit']-$offset);
            $pdeb += $prev['debit'];
            $pcre += $prev['credit'];
            $cdeb += $curr['debit'];
            $ccre += $curr['credit'];
            $tdeb += $tot['debit'];
            $tcre += $tot['credit'];
        }
        $pbal += $prev['balance'];
        $cbal += $curr['balance'];
        $tbal += $tot['balance'];
        end_row();
    }

    //Get Account groups/types under this group/type
    $result = get_account_types(false, false, $type);
    while ($accounttype=db_fetch($result))
    {
        //Print Type Title if has sub types and not previously printed
        if (!$printtitle)
        {
            start_row("class='inquirybg' style='font-weight:bold'");
            label_cell(_("Group")." - ".$type ." - ".$typename, "colspan=8");
            end_row();
            $printtitle = 1;

        }
        display_trial_balance($accounttype["id"], $accounttype["name"].' ('.$typename.')');
    }

    //added by faisal for group total

    if (!check_value('Balance'))
    {
        start_row("class='inquirybg' style='font-weight:bold'");
        label_cell(_("Total") ." - ".$typename, "colspan=2");

        amount_cell($pdeb-$Apdeb );
        amount_cell($pcre-$Apcre);
        amount_cell($cdeb-$Acdeb );
        amount_cell($ccre-$Accre );
        amount_cell($tdeb-$Atdeb );
        amount_cell($tcre-$Atcre);
        end_row();
    }
    else
    {
    start_row("class='inquirybg' style='font-weight:bold'");
    label_cell(_("Total") ." - ".$typename , "colspan=2");
    display_debit_or_credit_cells($pbal-$Apbal);
    display_debit_or_credit_cells($cbal-$Acbal );
    display_debit_or_credit_cells($tbal-$Atbal);
    end_row();
    }
     //end by faisal for group total
}

//----------------------------------------------------------------------------------------------------

gl_inquiry_controls();

if (isset($_POST['TransFromDate']))
{
    $row = get_current_fiscalyear();
    if (date1_greater_date2($_POST['TransFromDate'], sql2date($row['end'])))
    {
        display_error(_("The from date cannot be bigger than the fiscal year end."));
        set_focus('TransFromDate');
        return;
    }
}
div_start('balance_tbl');
if (!isset($_POST['Dimension']))
    $_POST['Dimension'] = 0;
if (!isset($_POST['Dimension2']))
    $_POST['Dimension2'] = 0;
start_table(TABLESTYLE);
$tableheader =  "<tr>
    <td rowspan=2 class='tableheader'>" . _("Account") . "</td>
    <td rowspan=2 class='tableheader'>" . _("Account Name") . "</td>
    <td colspan=2 class='tableheader'>" . _("Brought Forward") . "</td>
    <td colspan=2 class='tableheader'>" . _("This Period") . "</td>
    <td colspan=2 class='tableheader'>" . _("Balance") . "</td>
    </tr><tr>
    <td class='tableheader'>" . _("Debit") . "</td>
    <td class='tableheader'>" . _("Credit") . "</td>
    <td class='tableheader'>" . _("Debit") . "</td>
    <td class='tableheader'>" . _("Credit") . "</td>
    <td class='tableheader'>" . _("Debit") . "</td>
    <td class='tableheader'>" . _("Credit") . "</td>
    </tr>";

echo $tableheader;

//display_trial_balance();

$classresult = get_account_classes(false);
while ($class = db_fetch($classresult))
{
    start_row("class='inquirybg' style='font-weight:bold'");
    label_cell(_("Class")." - ".$class['cid'] ." - ".$class['class_name'], "colspan=8");
    end_row();

    //Get Account groups/types under this group/type with no parents
    $typeresult = get_account_types(false, $class['cid'], -1);
    while ($accounttype=db_fetch($typeresult))
    {
        display_trial_balance($accounttype["id"], $accounttype["name"]);
    }
}

    if (!check_value('Balance'))
    {
        start_row("class='inquirybg' style='font-weight:bold'");
        label_cell(_("Total") ." - ".$_POST['TransToDate'], "colspan=2");
        amount_cell($pdeb);
        amount_cell($pcre);
        amount_cell($cdeb);
        amount_cell($ccre);
        amount_cell($tdeb);
        amount_cell($tcre);
        end_row();
    }
    start_row("class='inquirybg' style='font-weight:bold'");
    label_cell(_("Ending Balance") ." - ".$_POST['TransToDate'], "colspan=2");
    display_debit_or_credit_cells($pbal);
    display_debit_or_credit_cells($cbal);
    display_debit_or_credit_cells($tbal);
    end_row();

    end_table(1);
    if (($pbal = round2($pbal, user_price_dec())) != 0 && $_POST['Dimension'] == 0 && $_POST['Dimension2'] == 0)
        display_warning(_("The Opening Balance is not in balance, probably due to a non closed Previous Fiscalyear."));
    div_end();

//----------------------------------------------------------------------------------------------------

end_page();

May be changing following line create correct result.

//if (($no_zeros && floatcmp($trans['TotalAmount'], $trans['Allocated']) == 0)) continue;
if ($no_zeros && $show_balance && $trans['TotalAmount']== 0) continue;
if (($no_zeros && !$show_balance && floatcmp($trans['TotalAmount'], $trans['Allocated']) == 0)) continue;

If a customer transaction is not fully allocated (partially allocated), Selecting
Suppress Zeros to Yes And
Show Balances to Yes

in Customer Balances Report is giving a misleading Customer Net Balance.

Ideally Suppress Zero shall Suppress only Voided Transactions from the Report But Since it is also removing Fully Settled Transactions, the running balance is not revealing correct final balance if Show Balance is Set to Yes

For Better Understanding you may check Customer Balance of 4 Dimension in the following system

fa.boxygen.biz/fa2325

id: admin
pass: Pakistan1947
company: gp