4,676

(8 replies, posted in Reporting)

Yes, I see that it is now committed to the v2.4 unstable branch in the Hg repo.

4,677

(8 replies, posted in Reporting)

Thanks Joe. I've placed the code in my FAMods for now in the said file at reporting/includes/reporting.inc.

Excellent work of FA with the smartphone optimised fa-boot theme. Did you use Cambell's theme or KVCode's Metro theme?

You might want to update the code from FA v2.3.19 to v2.3.22+ till date - no real db changes and many fixes.

WordPress site is coming out well too.

In today's inclusion of Branch Number in the Import transactions v2.3.22-5 extension , please change the several instances of:

($trial == true)

to

$trial

There is also duplication of display notification at the end when $trial is true in import_transactions.php.

The full patch is attached.

The commit is in my GitHub Repo.

Additional formatting of the single lined README.md file and the hashes update are also done.

In fact, the initialisation at line 103 may not be needed ($trial=false;).

4,680

(9 replies, posted in Installation)

Great!
A nice new year reprieve!

4,681

(8 replies, posted in Reporting)

It is actually important for v2.3 to avoid users needlessly extending tables in non-standardised manner making migration to v2.4 that much more cumbersome - yes enough work for consultants if that is what you wish to "support".

1. We create a Direct Invoice for a multi branch customer's non-default branch.
2. Printout of the Invoice is fine.
3. When we try to "Entry customer payment for this invoice" then the Customer Branch field comes up as the default branch instead of the branch that was invoiced.

4,683

(9 replies, posted in Installation)

Your htaccess or some magento dependancy (apache conf) seems to be preventing FA from functioning as file includes path gets rewritten.

Contact GoDaddy for support.

4,684

(9 replies, posted in Installation)

What is your webroot. That will determine the path of the tmp folder which should be just below it. You will need to run some tests on your hosting environment with a phpinfo() report as well.

Please go through the Manufacturing ERD in the wiki and attached here for any modifications or errors.

4,686

(15 replies, posted in Setup)

A signature file name can be set in the notes field and coded accordingly.....

4,687

(6 replies, posted in Reporting)

@joe: This extension naming change is not yet done and the Item Sales Summary report name too needs to be labelled in correctly.

4,688

(2 replies, posted in Items and Inventory)

Should there be a Direct Service Invoice option FA to address this so that we need not have to make any "deliveries" for such things? Such a menu option can also have the list of items available for invoicing limited to service items and free form entries only.

4,689

(9 replies, posted in Installation)

It appears that your webserver process does not have the right to create files/folders in the webroot. This will affect your ability to create PDFs as well.

Create a file faillog.php in your FA webroot's tmp folder and let the webserver user have write access to it (may not be applicable to some Microsoft pre Win7 and non server OSes).

Wonder why "../company//js_cache" is coming up instead of "../company/0/js_cache" or some such company number in it.

Please check your config_db.php file to see if the subscripts of the db credentials array match. It is possible that your new company 1 did not get it's credentials written inside it.

@joe: please include
  faillog.php
  error.log
  cookie.txt
files as placeholders with dummy content in the repo to avoid such missives.

4,690

(8 replies, posted in Reporting)

This way when we do actually include some specific fields like Person's Country Identity Number / SSN / NRIC etc / Tax Exemption Number (US) / Gender / Titular Addressing. etc., we can auto migrate them from the notes. The method stated suffers from not being able to accommodate spaces in the parameters whence some other separator values like "|" (vertical bar) can be used.

It will also help standardise every FA user's CoA to the same schema so that migration to v2.4 can be predictably smooth.

When we need extra parameters to be included into reports we generally extend the tables with extra fields that will break db schema compatibilities for upgrades. Instead, we add them as space separated key#value pairs into the relevant tables' notes field and partake of them within reports using the function listed herein.

@joe: please include it in any file that gets universally included into all reports.

Extra Parameters in Reports taken from formatted notes field

Include the following function into any report or it's includes:

/*
// Purpose: Function to parse a string into parameters
// Release Date: 2014-12-26
// Author: ApMuthu <apmuthu@usa.net>
// Usage:
$str = "PPFrt#2000 CID#6378465 TaxEx#2345-038 abcde ertrgdert COD#4253 jdegtd PIN#6473654";
$p = parse_notes_params($str);
echo print_r($p, true);
*/

function parse_notes_params($str, $sep=" ", $delim="#") {
    $str_params = explode($sep, $str);
    $param_array=Array('notes' => '');
    foreach ($str_params AS $str_param) {
        $param_set=explode($delim, trim($str_param));
        $key = (array_key_exists(0, $param_set) ? trim($param_set[0]) : '');
        $val = (array_key_exists(1, $param_set) ? trim($param_set[1]) : '');
        if (strlen($key) > 0 && strlen($val) > 0) {
            $param_array[$key]=$val;
        } else {
            // stop at first missing parameter set
            // break;
            // Collect the rest into notes
            $param_array['notes'] .= (" " .  $str_param);
        }
    }
    $param_array['notes'] = trim($param_array['notes']);
    return $param_array;
}

An example of usage will be in the reporting/rep110.php file at near the end just before the last $rep-Font(); statement:

    $notes_params = parse_notes_params($branch['notes']);
    if ($packing_slip == 0 && array_key_exists('CID', $notes_params)) {
        $rep->NewLine(1);
        $rep->TextCol(1, 7, "Old Customer# : " . $notes_params['CID'], - 2);
    }

Screenshot

4,692

(3 replies, posted in Manufactoring)

Please refer the wiki page on manufacturing.
I refers to 2 forum posts:

BOM Creation

Manufacturing Process (Raw material to Finished Goods)

Submit your findings on using it.

This tutorial is also wiki-ed.

Navigating 0_crm_contacts table

The 0_crm_contacts table performs a many to many relationship between the 0_persons table and the a few entity_id tables such as 0_debtors_master, 0_cust_branch, 0_suppliers. Furthermore, this implementation in FA leverages several non standard constructs in php/mysql code that roughly translates into the following SQL statements:

-- Select a CustomerCode (for example) from '''debtor_no''' field in the '''0_debtor_master''' table
SET @debtor_entity_id:=600;

-- Get the HQ Person ID
SET @branch_person_id:=(SELECT person_id FROM `0_crm_contacts` 
    WHERE `type`='customer' AND `action`='general' AND person_id=@debtor_entity_id);

-- Get the BranchCodes 
SET @branch_codes:=(SELECT GROUP_CONCAT(branch_code) FROM `0_cust_branch` WHERE debtor_no=@debtor_entity_id);

-- Show the Input Parameters and Extracted Parameters
SELECT @debtor_entity_id AS CustomerCode, @branch_person_id AS HQPerson, @branch_codes AS BranchCodes;


-- HQ Branch Person details
SELECT * FROM `0_crm_persons` WHERE `id` IN (
SELECT person_id FROM `0_crm_contacts` WHERE `type`='cust_branch' AND `action`='general' AND entity_id IN (
        SELECT branch_code FROM `0_cust_branch` WHERE debtor_no=@debtor_entity_id
    ) AND person_id = @branch_person_id
);

-- Non HQ Branch Person Details
SELECT * FROM `0_crm_persons` WHERE `id` IN (
SELECT person_id FROM `0_crm_contacts` WHERE `type`='cust_branch' AND `action`='general' AND entity_id IN (
        SELECT branch_code FROM `0_cust_branch` WHERE debtor_no=@debtor_entity_id
    ) AND person_id <> @branch_person_id
);

To effectively leverage this mechanism, a few indices are in order to speedup the process by over a many times (9000ms down to 3.5ms when queried from among 2500 records):

ALTER TABLE `0_crm_contacts` ADD INDEX `entity_id` (`entity_id`);
ALTER TABLE `0_crm_contacts` ADD INDEX `person_id` (`person_id`);

4,694

(1 replies, posted in Reporting)

These files do not belong to frontaccounting. They are probably having some sort of base64_decode / gzinflate / eval code encrypted virus. Tere will be some image files as well that contain malicious code.

Check your files/folders ownerships/permissions (you appear to be using Windows because of backslash separators so it may not apply) and htaccess / apache conf directives for vulnerabilities.
Such malicious code can be placed even beyond your webroot as well.

Do you have data in your FA (is it in production use)? - if so, take professional help.
Also check if you have additional CoAs, extensions, themes and languages installed apart from item images.

Take a backup of the following files after taking sql dumps from say phpMyAdmin:

.htaccess
config.php
config_db.php
installed_extensions.php
lang/installed_languages.inc
company/0/installed_extensions.php
company/0/images/*.jpg
company/0/images/*.png
company/1/installed_extensions.php
company/1/images/*.jpg
company/1/images/*.png
....
....

Wipe out all files from your webroot and do a fresh install and then restore your sql and above files.
Change all your SFTP/SSH/FTP/FA passwords.

4,695

(9 replies, posted in Installation)

check for errors in your webserver's error logs and in FA's tmp/error.log

From your other post, it appears your install has infected php files - clear that first and all will be well.

Further changes in standardisation of char => varchar for loc_stock and stock_id fields are available in a commit in my GitHub repo.

Due to db schema policy change restrictions in effect for minor revisions, these will not make it to the official stable repo.

@joe: can include it in v2.4 atleast!

Those who wish to be at the bleeding edge of CoA db schema can selectively use the sql statements in my sql/alter_to_latest2.3.sql file.

4,697

(0 replies, posted in Report Bugs here)

At the moment, the Hg Repo is probably being worked on so when we choose "Browse Commits, the first one that comes up is the Unstable v2.4 Repo. A set of screenshots is attached to this mail to show that the stable v2.3 branch is not lost but listed way down....

4,698

(3 replies, posted in Manufactoring)

Use warehouse locations to indicate
1. Storage of Paddy when bought from market
2. Storage of manufactured Plain Rice, Broken Rice and Bran

Issue Paddy to Manufacturing from location 1
Receive manufactured goods into location 2 and sell from there.

You can restrict by IP if you want. Your firewall is the best place for such controls.

PHP 5.3.x is recommended for FA v2.3.x.

Shared hosting has many php.ini restrictions that you may check with their support.
Alternatively, you can actually execute the sql/en_US-New.sql file on your FA database inside the control panel's phpMyAdmin and have it working immediately. The user password is a MD5 hashed by default in the database.

4,700

(5 replies, posted in Setup)

Additional mods are now available to execute system shell commands.
View the commit.