Thanks @joe for the commit.

@joe?

2,903

(4 replies, posted in FA Modifications)

Copy Quote to new one - nice feature indeed.
Copy Quote to another customer - one more nice feature.

@joe?

In the file sales/sales_order_entry, line 762 to 765:

        if ($_SESSION['Items']->trans_type==ST_SALESORDER)
            submit_js_confirm('CancelOrder', _('You are about to cancel undelivered part of this order.\nDo you want to continue?'));
        else
            submit_js_confirm('CancelOrder', _('You are about to void this Document.\nDo you want to continue?'));

the "\n" in the translatable strings are listed as "\\n" in the lang/new_language_template/LC_MESSAGES/empty.po file and in the translation .po files.

Is this intentional?

The code however mitigates this using functions that replace them in files in the includes/ui/ folder:

Line 677 in ui_controls.inc: $msg ? '\''.strtr($msg, array("\n"=>'\\n')) . '\';' : 'null;');
Line 484 in gettext.inc: $this->_current_value = str_replace('\\n', "\n", $this->_current_value);
Line 276 in ui_input.inc: . strtr($msg, array("\n"=>'\\n')) . "');};"

In FA 2.3.x it would be like:

SELECT MID(t.tran_date,1,7) AS Period, 
    t.debtor_no, 
    SUM(IF(t.type = 10 OR (t.type = 0 AND t.ov_amount>0),
         ABS(t.ov_amount + t.ov_gst + t.ov_freight + t.ov_freight_tax + t.ov_discount), 0)) AS charges,
         SUM(IF(t.type != 10 AND NOT(t.type = 0 AND t.ov_amount>0),
         ABS(t.ov_amount + t.ov_gst + t.ov_freight + t.ov_freight_tax + t.ov_discount) * -1, 0)) AS credits,
         SUM(IF(t.type != 10 AND NOT(t.type = 0 AND t.ov_amount>0), t.alloc * -1, t.alloc)) AS Allocated,
         SUM(IF(t.type = 10, 1, -1) *
             (ABS(t.ov_amount + t.ov_gst + t.ov_freight + t.ov_freight_tax + t.ov_discount) - ABS(t.alloc))) AS OutStanding
FROM 0_debtor_trans t
WHERE  t.type <> 13
GROUP BY t.debtor_no, MID(t.tran_date,1,7);

The t.type values alluded to above are taken from includes/types.inc file.

FA follows the principle of allocation of payments received towards invoices/charges. There may be other payments from the customer that will not find a place in the payments towards invoices.

reporting/rep101.php is the report you should modify to suit your needs - pivot the reporting across multiple periods

All these fixes are now in my FA24extensions repo.

Screenshots of available versions of extensions.

In  sql/alter2.4rc1.sql, the last line:

ALTER TABLE `0_sys_prefs` CHANGE `value` `value` text NOT NULL default '';

should have the default removed. In the standard Chart sqls corresponding changes must be effected.

MySQL does not allow any defaults for TINYTEXT, MEDIUMTEXT, LONGTEXT and TEXT fields.
Windows MySQL v5 throws an error but Linux and other versions only raise a warning.

Such TEXT fields do not support default values of anything but NULL. As such, it's implicitly DEFAULT NULL.

Use TRIGGERS to UPDATE such TEXT fields to any desired default value.

create table my_text

(
   abc text
);

delimiter //
create trigger mytext_trigger before insert on my_text
for each row
begin
   if (NEW.abc is null ) then
      set NEW.abc = 'default text';
   end if;
end
//
delimiter ;

No explanation is given by the MySQL documentation.

TEXT columns are for things which can become more than 255 bytes long.

On MS Windows the "no DEFAULT" rule is an error, while on other platforms it is often a warning. While not a bug, it's possible to get trapped by this if you write code on a lenient platform, and later run it on a strict platform.

How to disable strict mode in MySQL 5 (Windows):

    Edit /my.ini and look for line

    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    Replace it with

    sql_mode='MYSQL40'

    Restart the MySQL service (assuming that it is mysql5)

    net stop mysql5
    net start mysql5

If you have root/admin access you might be able to execute

mysql_query("SET @@global.sql_mode='MYSQL40'");

2,909

(1 replies, posted in Dimensions)

The number of dimensions are set in the Company Setup page.
Any transaction data entry form with then have the ability to choose the dimensions that had been set in the Dimensions tab. These data entry forms when submitted will save the dimension infor as well.

2,910

(24 replies, posted in Installation)

FA 2.4.x Commit links
https://sourceforge.net/p/frontaccounting/git/commit_browser
https://github.com/FrontAccountingERP/FA/commits/master
https://github.com/apmuthu/FA24extensions/commits/master
https://github.com/apmuthu/frontac24/commits/master

Read the wiki.

The standard chart of accounts have the field cust_branch.notes as NOT NULL. It should be NULLable.

The same for debtors_master.notes field as well.

27-Aug-2009 Joe Hunt
  # bank_trans_type_id removed from bank_trans in en_US-demo.sql and en_US-new.sql.

The official pkg distribution for en_GB-general.sql has the field bank_trans.bank_trans_type_id which needs to be removed.

The field budget_trans.memo_ is missing in the official distribution. It should be:

DROP TABLE IF EXISTS `0_budget_trans`;
CREATE TABLE IF NOT EXISTS `0_budget_trans` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tran_date` date NOT NULL DEFAULT '0000-00-00',
  `account` varchar(15) NOT NULL DEFAULT '',
  `memo_` tinytext NOT NULL,
  `amount` double NOT NULL DEFAULT '0',
  `dimension_id` int(11) DEFAULT '0',
  `dimension2_id` int(11) DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `Account` (`account`,`tran_date`,`dimension_id`,`dimension2_id`)
) ENGINE=InnoDB;

The order of the fields auto_update and inactive are switched in the currencies table.

The order of the fields cust_branch.branch_ref, debtors_master.debtor_ref, stock_category.inactive and suppliers.supp_ref needs to be corrected.

The tables dashboard_reminders and dashboard_widgets should not be in this CoA.
The deprecated table sys_types is present and needs to be removed.

The table tax_types has

UNIQUE KEY `name` (`name`,`rate`)

in the GB CoA that is not present in the standard CoA sqls - it should be there to avoid ambiguities in select boxes.

$SysPrefs->base_sales cannot be "-1". It can be either 0, 1 or 2. Hence change the field value to be so where the field sys_prefs.name='base_sales' AND category='setup.company'.

There is no grn_clearing_act account defined in the official GB CoA.

2,913

(24 replies, posted in Installation)

Upto FA 2.3.26+ is supported and tested on XAMPP 1.7.3 and 1.7.7 on WinXP SP3 onwards.
FA has been known to run upto PHP 5.3.x and MySQL upto v5.5.x and Apache 2.2 and 2.4 flawlessly.
FA 2.3.x series uses the MySQL driver instead of your MySQLi driver natively.

The IP hijack detection false positive is in action since some wifi have changing MacID or frequent reconnects.

Ref:
https://frontaccounting.com/fawiki/index.php?n=Devel.FrequentlyChangingClientIPFix
https://frontaccounting.com/punbb/viewtopic.php?id=6414

2,915

(24 replies, posted in Installation)

This error has been sorted out in FA 2.4.1+ in this commit.

Replace your includes/errors.inc with this file.

Using MySQLi with FA 2.3.x has been experimented with in some post in the forum and will not work out of the box.

2,916

(24 replies, posted in Installation)

In the function cache_invalidate in file install/isession.inc, replace:

include_once($path_to_root . "/includes/errors.inc");
// collect all error msgs
set_error_handler('error_handler' /*, errtypes */);

include_once($path_to_root . "/includes/current_user.inc");
include_once($path_to_root . "/includes/lang/language.inc");
include_once($path_to_root . "/includes/ajax.inc");
include_once($path_to_root . "/includes/ui/ui_msgs.inc");
include_once($path_to_root . "/includes/prefs/sysprefs.inc");

with

include_once($path_to_root . "/includes/current_user.inc");
include_once($path_to_root . "/includes/lang/language.inc");
include_once($path_to_root . "/includes/ajax.inc");
include_once($path_to_root . "/includes/ui/ui_msgs.inc");
include_once($path_to_root . "/includes/prefs/sysprefs.inc");

include_once($path_to_root . "/includes/errors.inc");
// collect all error msgs
set_error_handler('error_handler' /*, errtypes */);

2,917

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

The pre tag is a security measure to avoid malicious / unintended html constructs and possible php escapes.

Somewhere the nowrap has been set and needs to be removed out of the css classes "reminder_overdue, reminder_due, reminder" that is in $extra or some inheritance.

Hope you have installed the dashboard theme and edited the default.css there by removing the erroneous last "*/" as per this commit.

There are several instances of white-space: nowrap; in the dashboard theme's default css file (as in all other themes) that may have got inherited suffers defaults.

https://www.w3schools.com/cssref/css3_pr_word-wrap.asp
https://www.w3schools.com/cssref/css3_pr_flex-wrap.asp
https://www.w3schools.com/cssref/css3_pr_text-wrap.asp
https://stackoverflow.com/questions/3949762/how-to-wrap-text-using-css
http://www.xanthir.com/b4U10

The better option if you cannot control user input, it is to establish the css property, overflow:hidden, so if the string is superior to the width, it will not deform the design.

The following should work everywhere:

<div style="word-wrap: break-word; width: 100px"> gdfggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg</div>

2,918

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

Check the contents of version.php and see if the signed repo flag ($SysPrefs->repo_auth) is causing a problem.

Troubleshooting FA

The FA 2.4 extensions repo was last updated in Aug 2016 / Feb 2017.

The version.php has the nearly last code lines as:

     'host' => 'repo.frontaccounting.eu', // repo server address
     'branch' => '2.4'    // Repository branch for current sources version

which translates to the repo:

http://anonymous:password@repo.frontaccounting.eu/2.4/

Other branches are 2.4.1 and 2.4.2 which bear lower version numbers of extensions.

Use these extensions with care and report what works and what needs fixing.

A separate repo on GitHub has been created for extensions:
https://github.com/apmuthu/FA24extensions

2,920

(25 replies, posted in Report Bugs here)

@joe: any way forward?

2,921

(5 replies, posted in Items and Inventory)

Service if bought from a supplier and then sold is not a native service of the company. See if a "charges" item type suffices.

The standard Chart of Accounts (en_US-demo.sql) has the following account heads. Check for transactions in their equivalents in your CoA.

11 Payroll Expenses
== ============
5410 Wages & Salaries
5420 Wages - Overtime
5430 Benefits - Comp Time
5440 Benefits - Payroll Taxes
5450 Benefits - Workers Comp
5460 Benefits - Pension
5470 Benefits - General Benefits
5510 Inc Tax Exp - Federal
5520 Inc Tax Exp - State
5530 Taxes - Real Estate
5540 Taxes - Personal Property
5550 Taxes - Franchise
5560 Taxes - Foreign Withholding

2,923

(25 replies, posted in Report Bugs here)

If a dissociation is attempted when the final payment is made, can it then be re-allocated and satisfy the issue?

2,924

(13 replies, posted in Report Bugs here)

Whilst the file attached to the 12th post here pertains to the commit in both branches (v2.3 and v2.4), it has been enhanced in the current master (v2.4.1+) in this commit.

2,925

(16 replies, posted in Reporting)

@joe: Thanks for the commit in the 2.4.x branch. Those who want it for the v2.3.x branch can take it from the 9th post in this thread.