Post it here for a good discussion. Mantis participation is sparse but technical. Github is for accepted code after peer review.

77

(8 replies, posted in Installation)

Are you on Linux or Windows?
Check the includes/session.inc file and make the first constant NULL.

The various cheque extensions have this constant:
https://github.com/apmuthu/FA24extensions/blob/master/Extensions/rep_batch_check_print/reporting/rep_batch_check_print.php
https://github.com/apmuthu/FA24extensions/blob/master/Extensions/rep_check_print/reporting/rep_check_print.php
https://github.com/apmuthu/FA24extensions/blob/master/Extensions/rep_cheque_print/reporting/rep_cheque_print.php

79

(36 replies, posted in Reporting)

@irronics, @joe: The said patch for reporting/includes/class.mail.inc will break for all versions of PHP < 5.4.
Refer the line:

var $headers = [];

It should be changed to:

var $headers = Array();

We need to take care of legacy users so as not to break their installs.

The PHP short array syntax does not work for older versions of PHP.

As of PHP 5.4 you can also use the short array syntax, which replaces array() with [].
https://stackoverflow.com/questions/40086788/short-array-syntax-in-php-5-6-doesnt-work

In fact there is a short array sniffer to check if needed but that is too bothersome.

80

(8 replies, posted in Installation)

What is the PHP version you are using?

81

(4 replies, posted in Announcements)

Post Release Fixes attached.

CHANGELOG

Github Master (Bleeding Edge) Download Link

These fixes can be applied to (overwrite) the release version to be fully functional.

At the end of the file sales/includes/db/sales_order_db.inc we have:

function last_sales_order_detail($order, $field)
{
        $sql = "SELECT $field
            FROM ".TB_PREF."sales_order_details d
            WHERE order_no =
            (SELECT order_no FROM ".TB_PREF."sales_orders o
            WHERE debtor_no=" . db_escape($order->customer_id) . "
            ORDER BY order_no DESC LIMIT 1)
            ORDER BY d.id DESC LIMIT 1";        

        $last_query=db_query($sql, "Could not retrieve last order detail");
        $row = db_fetch_row($last_query);
        return $row == false ? false : $row[0];
}

Kindly change it to:

function last_sales_order_detail($order, $field)
{
        $sql = "SELECT $field
            FROM ".TB_PREF."sales_order_details d
            LEFT JOIN " .TB_PREF."sales_orders o on d.order_no=o.order_no
            WHERE debtor_no=" . db_escape($order->customer_id) . "
            ORDER BY d.id DESC LIMIT 1";

        $last_query=db_query($sql, "Could not retrieve last order detail");
        $row = db_fetch_row($last_query);
        return $row == false ? false : $row[0];
}

It uses a left join instead of a secondary select.

The on d.order_no=o.order_no can become USING (order_no) to further optimise it.

83

(4 replies, posted in Announcements)

Those with issues regarding MIME type in emailrefer this post. - Resolved

84

(8 replies, posted in Installation)

GST/HST - ok
Multi Currency - ok
Payroll - contact @notrinos for his Open Source extension and @kvvaradha's commercial extension (do not know if it needs ioncube or other coded licencing)
Reconciliation - rudimentary but sufficient for simple tasks - check the extensions.
For QB features vs FA - there may be other users whose migration experiences may be useful.

Welcome to the project!

Clear cache in FA and in the browser and then try.

86

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

Can create a separate php application using the FA Tables data and extend the existing rudimentary CRM in FA. Can also use the document upload attachment facility in FA to integrate with manual systems too.

87

(4 replies, posted in Announcements)

Release date 2023-10-09 as of GitHub commit https://github.com/FrontAccountingERP/FA/commit/4e6c60dfc8ab630d72010941b00f65b9659fe0b3

SF Download Link
MD5: ae2e009a6d89f6118d4c45fd5954ec1d
Filesize: 1,884,638 bytes

First 3 day download stats in SourceForge

CHANGELOG

88

(4 replies, posted in Announcements)

Two new translation strings introduced in lang/new_language_template/LC_MESSAGES/empty.po

Could not retrieve %s bank account number
Could not retrieve exchange rate for %s - %s

89

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

Can try to link with vTigerCRM

90

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

Also consider what would happen if someone tried a negative value as payment!

This is a well known race condition. The corresponding INSERT statement should be modified to make the primary key as NULL so that it is generated at runtime and then last_insert_id() should be used to populate the dependant foreign keys.

92

(4 replies, posted in Installation)

Check the config file for any relative / absolute urls and for directory separator issues.
State your PHP / MySQL versions.

Add a negative discount of 6 cents

94

(1 replies, posted in Accounts Receivable)

Zip the 2 files and upload as single file.

@joe: is this _false to false dependency on PHP version going to affect FA in general? I cannot find _false anywhere in the latest codebase.

Summary entries in other tables are affected too.

The difference between the v2.4.14 and 2.4.16 for the file reporting/rep108.php in diff format is as follows:

 core/reporting/rep108.php | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/core/reporting/rep108.php b/core/reporting/rep108.php
index abb11e7..f2d6d42 100644
--- a/core/reporting/rep108.php
+++ b/core/reporting/rep108.php
@@ -175,12 +175,16 @@ function print_statements()
         for ($i = 0; $i < 5; $i++)
             $rep->TextWrap($col[$i], $rep->row, $col[$i + 1] - $col[$i], $str2[$i], 'right');
         if ($email == 1)
-            $rep->End($email, _("Statement") . " " . _("as of") . " " . sql2date($date));
-
+        {
+            if (($CustomerRecord["Balance"]) != ($CustomerRecord["Balance"] - $CustomerRecord["Due"]))
+                $rep->End($email, _("Statement") . " " . _("as of") . " " . sql2date($date) . " " . _("from") . " " . get_company_pref('coy_name'));
+            else
+                display_notification(sprintf(_("Customer %s has no overdue debits. No e-mail is sent."), $myrow["DebtorName"]));       
+        }
     }
 
     if (!isset($rep))
-        display_notification("No customers with outstanding balances found");
+        display_notification(_("No customers with outstanding balances found"));
     else if ($email == 0)
         $rep->End();
 }

The last change is that the notification text is now translated.
The "End(email..." statement is now in an "if" construct that you may revert as needed.

Attempting to access your domain cexpert.com results in:

Sorry, you have been blocked
You are unable to access cexpert.com

Please explain what the accounting operations entail so that the forum users can recommend or take it up.

Tnx @joe

In this commit, in the file sales/includes/cart_class.inc, why was the variable $deliver_to changed to $delivery_to ?
Wonder if this is going to affect some module or other FA files.

Please note that the following files still use $cart->deliver_to, $order->deliver_to and $_SESSION['View']->deliver_to:

sales/sales_order_entry.php

sales/includes/db/sales_order_db.inc
sales/includes/ui/sales_credit_ui.inc
sales/includes/ui/sales_order_ui.inc

sales/view/view_sales_order.php