3,126

(4 replies, posted in Installation)

PHP 5.3 is recommended.
PHP 5.4/5.5 have met with success...
MySQL 5.0, 5.1, etc are okay but v5.6 should have strict date setting off.
Apache 2.2/2.4 are okay.

Advance payment to supplier should be a "loan" till the invoice is booked.

Debit Card, direct debit, standing order etc are "cheques" in FA where the Transaction number can be the Cheque Number. Make it part of the name of the Bank Account.

3,128

(1 replies, posted in Banking and General Ledger)

Once the Profit/Loss has been calculated, it comes in as a single entry of Balance Sheet class that should match the rest of those there, with the difference matching cash on hand (debit).

The person_id field is either an int or a tinyblob field in FA's tables (Charts of Accounts).

The tables bank_trans, budget_trans, gl_trans have it as a tinyblob (the only ones to have tinyblob fields in FA) field type whilst the tables crm_contacts, stock_moves have it as an int type. In some instances like customers (debtors), branches, suppliers, etc., the respective id portion of the primary key references the person_id field of int type.

The tinyblob field stores the textual string as a hex number. Removing the leading 0x from it, is the hex_number which can be converted using UNHEX(hex_number) function in MySQL to it's original string value.

In includes/types.inc, the function payment_person_name() (and other payment functions therein) routes the person_id field according to the incoming context type it refers to. The usage of the tinyblob field is visible in line 213 of gl/includes/db/gl_db_banking.inc in the function add_bank_transfer():

$person_id = _("From")." ".$fromact['bank_account_name']." "._("To")." ".$toact['bank_account_name'];

Also in lines 221 and 224 and others, the functions add_bank_trans() and add_gl_trans() use the variable $person_id assigned above.

Hence the tinyblob field can be changed to varchar or tinytext field without disturbing the code and obtaining clarity in the sql backups. We may need to deal with collations and character sets used in the database if such a change is made.

3,130

(2 replies, posted in Report Bugs here)

array_combine() now returns array() instead of FALSE when two empty arrays are provided as parameters.

in later versions of PHP.

To ensure compatibility with later versions of PHP whilst retaining backward compatibility, most instances of array_combine(... have been replaced with (object)(array_combine(... except in includes/ui/ui_lists.inc which may be set right now in both branches.

Line 2370 in FA 2.3.25+ and line 2538 in FA 2.4RC1+:

    $services = array_combine(array_keys($payment_services), array_keys($payment_services));

should now become:

    $services = (object)array_combine(array_keys($payment_services), array_keys($payment_services));

Fixed in my FA 2.3.x repo.

3,131

(2 replies, posted in FA Modifications)

Before safely using strings in SQL statements, cleaning them up has traditionally been done using the likes of mysql_real_escape_string and add_slashes. Whilst the latter can be used for insertion/updation of records in MS Access, the following function will be suited for many instances where offending/unsafe/exploitable characters need to be stripped:

function msaccess_escape_string($str) {
    $lf = "\n";
    $str = str_replace(Array("'", '"', "\t", "\r", $lf, "\\"),"", $str);
    if ($str == NULL) $str = ' '; // Access does not allow null fields to be blank in insert using this method
    return $str;
}

3,132

(2 replies, posted in Accounts Receivable)

Create a separate recurring invoice for the specific client as a 1 time off and remove the said client from the recurrent list for that period and then include it back again after the normal recurrence date.

3,133

(3 replies, posted in Installation)

PM me the access details.

Check your PM mailbox.
Your host has switched to PHP 7 - ask them to revert back to PHP 5.3 to 5.6 as it originally was.

You may be able to make the change from your hosting control panel itself like this and if using SuPHP, like this and if using Plesk, like this.

PHP 7 incompatibilities are here.

MySQL functions have been removed in PHP 7 and only PDO_MySQL and MySQLi are available in it now.

3,134

(20 replies, posted in Announcements)

@itronics: need to update the sql/alter2.1.php at line 73 (line 71 in v2.3.25+) replacing 0_ hardcoding to ".TB_PREF.".

Done in my FAMods - commit and removed all CRs (crlf => lf) as well later.

3,135

(15 replies, posted in Installation)

Use the links from my earlier post. The official SF link / release download has some bugs fixed later in the repos.

3,136

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

@notrinos: Thanks. Fork my GitHub repo and include your extension and update it there and send in a pull request.

Replaced the said lines with:

    $emp_id     = $_POST['person_id'];
    $from_date  = DateTime::createFromFormat("m-d-Y H:i:s", $_POST['from_date']);
    $to_date  = DateTime::createFromFormat("m-d-Y H:i:s", $_POST['to_date']);

Updated your extension and removed whitespaces and attached herein.

3,137

(2 replies, posted in FA Modifications)

Migrating data from any string format especially the MySQL ANSI date format yyyy-mm-dd into MS Access Short Date format irrespective of the locale setting (m/d/Y or d/m/Y) is done using the DateValue(str DateAsString) function.

3,138

(2 replies, posted in FA Modifications)

FA uses MySQL whilst many applications use MS Access. PHP on Windows allows for interfacing with both MySQL and MS Access. Attached herewith is the possible choice of PHP data connection strings for both MDB and ACCDB versions (2000 and 2007) of MS Access databases and sample usage PHP code to interface with it.

Those who run POS applications based on MS Access can use this means to interface with FA.

Further interfacing sample code is available in my GitHub repo.

Check Wiki.

Although the customer currency is set in the Customer management page (attached), when payment is made, it is generally into the company's main / default bank account and is available as a choice in the Customer Payment page. A possibly related post.

FA does not have the possibility to set the default bank account into which a customer's payment is credited. You can however check past payment bank account creditings of the said customer and use that as a default by customising the code.

From PHP 5.4 onwards, a new type of array syntax has been introduced amongst other changes.

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// as of PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

If these libraries like PHPMailer(as fixed in phpList) or other code snippets are going to be ported to FA for use in earlier versions of PHP than v5.4, then we will need to code them back to the earlier simple array() syntax.

3,141

(3 replies, posted in Installation)

The function user_company() is defined in includes/current_user.inc. Check if the said file exists. It may have been inadvertently been deleted or got corrupted (hard disk error). Take a dump of the html folder (web root) and compare with the original version you installed from and see if there are any files that are missing. Check with a filesize and date compare and beware of some false positives where some files may have been overwritten by extensions (rare) or customised.

It is also possible that on date change (next day), the session may ahve expired - cleare browser cache and try to login again or restart the webserver and try. What do the server logs show?

3,142

(15 replies, posted in Installation)

MySQL I expect has been restarted.
Which version of FA are you using?
Where did you take it from?

The latest versions are at:
FA 2.3.25+
FA 2.4RC1+

3,143

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

@notrinos: good work.
Attached the same zip file without the MAC OS temp files. Updated file attached in a later post.

3,144

(1 replies, posted in Jobs wanted/offered, non-free offers)

How? What assistance do you need? Any Irish users?

3,145

(15 replies, posted in Installation)

Disable the MySQL strict setting and restart MySQL. Later versions of MySQL do not like zero dates: 0000-00-00 and 0000-00-00 00:00:00.

Search your web server folder for error log files. In Windows XAMPP 1.7.3 / Apache it will generally be in WEBSERVER_FOLDER\apache\logs\error.log

3,146

(1 replies, posted in Wish List)

You will need to build a custom extension for it in FA.

What version of Excel are you using? Does the OS have the necessary language installed? It works correctly in Excel 2007 atleast for English.

3,148

(18 replies, posted in Items and Inventory)

Please read @joe's post above (4th post). @randr and @seahawk have not provided their sql dumps for analysis.

Rebuilding indexes in FA is quite simple - drop the index and recreate it from the schema in the Chart of Accounts used.

3,149

(15 replies, posted in Installation)

Windows or Linux Server?
PHP/MySQL versions?

3,150

(7 replies, posted in Reporting)

The discount % is stored as an integer in the database table. Attempting to put in a string with % in it will break FA. Make a module for it.