(3 replies, posted in Setup)

Would customer branches be sufficient? Try it out on your training copy first.

Use this version and you can write what you want on what document you want


(21 replies, posted in Wish List)

This users post has a different take on the tax system in Pakistan?

@boxygen - this doesn't answer your question; could you just rename the module, keeping the existing security settings?

Retested - with item set to 'Editable Description' all now working - @joe thank you for your time and patience in explaining this.

I 'expected' as did the OP, that just adding the Supplier Purchasing Data would be all that's necessary; would it be possible to make this less prone to user error or lack of user knowledge?
Remove the requirement for 'Editable Description' when using Supplier Purchasing Data description.
When supplier purchasing data for an item is added, check if item is 'Editable Description' if not change it?

If not possible for 2.4; perhaps something for 2.5?


joe wrote:

When receiving items for the Purchase Order, the Suppliers item description is shown.

But that's not what is happening, in the GRN the original item description is being shown

I have tried PHP 5.6.x

The actual issue is:-

When you receive the goods, in the GRN the original item description is displayed, not the edited description that was entered in the PO.

So to keep the edited description you have to change the GRN item description - is this the intended functionality?
And if you do not change the item description in the GRN the original item description is written to the Supplier purchase data.

Please follow the steps all the way through to the GRN in post#2 above and you will see the issue.

@apmuthu, track what I did in post #2 above

As stated logged in and out.

2.4.7  on both linux and wampserver, MySQL version 10.2.26-MariaDB, PHP version 7.2.21, MySQL version 5.7.21, PHP version 7.0.29 respectively; Latest versions of chrome and firefox

@Joe, @apmuthu. I was using editable description - checkbox checked


(15 replies, posted in Reporting)

Glad you got it sorted, not sure if this is bug or as designed; it does seem a little incomplete that rtl just defaults all Textwrap alignments to right align though, I'll add it to mantis


(15 replies, posted in Reporting)

@rafat, your not touching tcpdf core, your editing \reporting\includes\class.pdf.inc


(15 replies, posted in Reporting)

1. Are you sure you only have one copy of header2.php(Check in the company folder)

2. Tracing the Textwrap function back to getCellCode:-

File: \reporting\includes\tcpdf.php

2993:                 if ($align == 'L') {
2994:                     if ($this->rtl) {
2995:                         $dx = $w - $width - $this->cMargin;
2996:                     } else {
2997:                         $dx = $this->cMargin;
2998:                     }
2999:                 } elseif ($align == 'R') {
3000:                     if ($this->rtl) {
3001:                         $dx = $this->cMargin;
3002:                     } else {
3003:                         $dx = $w - $width - $this->cMargin;
3004:                     }
3005:                 } elseif ($align == 'C') {
3006:                     $dx = ($w - $width) / 2;
3007:                 } elseif ($align == 'J') {
3008:                     if ($this->rtl) {
3009:                         $dx = $w - $width - $this->cMargin;
3010:                     } else {
3011:                         $dx = $this->cMargin;
3012:                     }

Option 'C' does not have a if ($this->rtl) statement so 'C' should have no difference in RTL or LTR

So 2a. Logout, Delete all cache in company folder, delete browser cache(Pref change browser) log back in.

2.b In function Textwrap  a function addTextWrap is called, part of function below:-

File: \reporting\includes\class.pdf.inc

294:     function addTextWrap($xb, $yb, $w, $h, $txt, $align='left', $border=0, $fill=0, $link = NULL, $stretch = 1, $spacebreak=false)
295:     {
296:         $ret = "";
297:         if (!$this->rtl)
298:         {
299:             if ($align == 'right')
300:                 $align = 'R';
301:             elseif ($align == 'left')
302:                 $align = 'L';
303:             elseif ($align == 'center')
304:                 $align = 'C';
305:             elseif ($align == 'justify')
306:                 $align = 'J';
307:         }
308:         else
309:             $align = 'R';

this seems to be expecting the $align variable to be either 'right', 'left', 'justify', 'center'; not R, L, J, or C.

So in header2.php try this:-

$this->TextWrap($col, $this->row, $width, $info_header, 'center');

Delete cache etc

Post back results please

Edit it also states that if rtl everything will be R so try changing the else part to this:-

297:         if (!$this->rtl)
298:         {
299:             if ($align == 'right')
300:                 $align = 'R';
301:             elseif ($align == 'left')
302:                 $align = 'L';
303:             elseif ($align == 'center')
304:                 $align = 'C';
305:             elseif ($align == 'justify')
306:                 $align = 'J';
307:         }
308:         else
                 if ($align == 'right')
                     $align = 'R';// This may need to be 'L'
                 elseif ($align == 'left')
                     $align = 'R';
                 elseif ($align == 'center')
                     $align = 'C';
                 elseif ($align == 'justify')
                     $align = 'J';

You may need to change
if ($align == 'right')
    $align = 'R';
if ($align == 'right')
    $align = 'L';

Note you will need to use:-

$this->TextWrap($col, $this->row, $width, $info_header, 'center');

in header2.php for this to work

Also this will affect all ten of the print documents please check all of them: Please pay special attention to Report 108 (Print statements) As Textwrap is called an additional two times.


(15 replies, posted in Reporting)

@Rafat, Look at a LTR report in the mirror, take a pic; then compare it with your RTL report, highlight differences and post both pics

Note that the FA version of TCPDF is quite dated, there may well be RTL bugs in previous versions. Maybe try the latest version - TCPDF github tcpdf.php, but this may give you more problems than are resolved. But if it does fix the problem at least you know there is a fix - then compare old and new versions. Remember to rename the original tcpdf.php version.


(15 replies, posted in Reporting)

Documents in LTR are not centered, the Company name, email etc is aligned left, it is a mirror image of  the pdf you have attached.

There does not seem to be one

Looks like you may have to write your own, @apmuthu has written a ERD for manufacturing and other's here, it may be outdated as was written for V2.3, but it's a starting point.

Glad you got it sorted.

Do you really have 2000+ accounts in your COA? Do you really actually use all the 2000+ accounts? Most companies wouldn't need more than 200...ish

I've worked in several large organizations where the system in post #6 was used very successfully for years. Now days they are using systems like SAP; if you can afford SAP then your company is doing very well! FA on the other hand is a lot cheaper

Manufacture's and large organizations use 'Management accounting' along side their regular accounts to help manage and control operations.

Have a google for 'Management accounting in manufacturing'.

What may help you:-
Set up the BOM to reflect the average wastage over say 10 runs - lets say 5% - This is called the 'Standard wastage'. You can fine tune this later as you get more data.

In your management accounts you record the wastage from each production run as a 'variance':-
(each batch is say 100kg)
Week 1 production
Batch 1: 7Kg (+2)
Batch 2: 8kg (+3)
Batch 3: 4kg (-1)
Batch 4: 2kg (-3)

Total Weeks wastage 21kg against a standard wastage of 20kg(4 x 100 x 5%)

Now your accounts already show the 20kg of standard wastage, all you need to do is make an inventory adjustment +/-. (If negative this write off needs to be reflected in your selling price)

You can do this over what time period you want, weekly is normal for collecting the data, and the write off normally occurs on a monthly basis; but whatever works for your business is fine.

In a manufacturing environment have weekly/monthly stock counts of all components and you would hold weekly investigations for any variances outside norm. This helps keep wastage low. (You may initially think that the important batch's to investigate are 1 & 2 above where the actual wastage is above standard wastage; but by investigating batch 4 above you have an opportunity to reduce all batch's to -3kg by copying what happened during that production run)

Production employees can record actual wastage on a form or in a smaller manufacturing environment the actual works order which would then be returned.

I know of no way to use FA for management accounting, a simple spreadsheet should suffice.

@imtiazchuttoo I have edited my reply in post #2

@apmuthu & @joe can you have a look at this please?

The accounts do not need to show that this 8kg was ever used in the 1st place

BOM is set so that 1 kg finished product use up 1.02 kg raw material

input   : raw material used = 102 kg
output : finished product = 100 kg + 2 kg of material X ( usually lost )

I'm confused when you write "This is easily be done in FA by adding a "new supplier" and"... why add a new supplier?

Are you using Purchasing->Supplier Purchasing Data?

I've just tested this:-

Supplier names item as 'beer', we name it water
Add item water
go to Purchasing->Supplier Purchasing Data?
select item water
select the supplier
optional add a price
in this case ignore suppliers UOM - leave blank
Leave Conversion Factor (to our UOM): 1 (this is a 1:1 ratio - yes?)
Supplier's Code or Description: beer

Click 'Add new' button at the bottom, this info is now saved in the DB, (to edit it, select item water and you will see a table with existing Supplier purchase date - click the edit icon)

Now purchase item from said supplier item will appear as water until Purchase order is printed; then it states beer.

In inventory it states that I have water in order

Then edited PO price and quantity, printed and it still states beer.

So it seems to work? hmmmm...

Logged out and in; PO print still states beer
Receive goods: Description is listed as water, receive goods; now print PO states water; In Supplier Purchasing Data the description has now also been changed to water.

Is this the intended functionality?
Do you have to change the grn to the supplier description(beer) to keep Supplier Purchasing data as beer? (@imtiazchuttoo this looks like the current work around)
This doesn't really make sense and is not intuitive

I also believe that the Supplier Purchasing data, should not be changed unless it is by user.

Possibly the grn should read the Supplier Purchasing data description(beer) not the item description(water).

Possibly a bug. I have entered it in mantis

That's strange? Can you post a screenshot? And I'll try to make the necessary changes, will not be able to test though.

Edit I have increased height & width of the button: @apmuthu I have no access to XP, can you please check, post screenshot if not ok.

Hi apmuthu,
Thank you for the feed back:-

In chrome & firefox top menu item - Allocate Supplier Payments or Credit Notes shows ok, screenshot below - what browser are you using please?

In vertical the menu - position: fixed; the idea was that menu would stay in same spot for longer pages. I can make it position: absolute; so user can scroll.
Its really going to depend on user screen size - so have to accommodate all users so will make the change.
In the future these will be icons, smaller so more of them, but will still depend on number selected and user screen size - maybe allow for two - three columns of icons?

So this is different – two versions: (One with horizontal quicklinks and the other with vertical quicklinks) Both still in development.

Both themes feature:-

  • Quicklinks are user defined; click on the ‘six dots’ icon(or double kebab, double menu, menu menu…) Select the user mode you want to change and select/deselect the applications you want in this user mode, save. (Page refresh if you want to see the changes made.)

  • User modes are user defined; hover over the ‘people’ icon and you will see a list of user defined user modes, select the one you want and you will see the quicklinks change instantly.

  • Other applications are presented by module type: Not by main application(Sales, Purchasing, etc.)
    •    So the ‘plus’ icon lists all the other 0 Transactions apps not listed in current usermode quicklinks.
    •    The ‘page’ icon lists all the other 1 Inquiries & Reports apps not listed in current usermode quicklinks.
    •    The ‘spanner’ icon lists all the other 2 +3 Maintenance apps not listed in current usermode quicklinks.
    •    The ‘kebab’ icon lists setup apps in traditional format.

Note: Access roles still apply! I’ve also predefined some usermodes.

Why? Most current themes give the same prominence to all apps, So ‘Direct Invoice’ has the same ‘status’ as say ‘Sales Groups’; the first one you may use ten times a day the other you may use once a year or if at all.
So you need to define the apps you use regularly; whilst still having access to all the other apps in the background for as and when required – which is what I have tried to achieve.


  • I remember that when I first used FA I was little ‘intimidated’ by the sheer number of options available – 133 apps - which one? So may help new users.

  • A small business owner wears many hats, mostly it’s their ‘Sales’ hat, but sometimes they need to wear their ‘Purchasing’ or ‘Accounts’ hats.

  • Any user who wants to improve and speed up their workflow.


  1. As mentioned still very much in development – advice, reviews, comments, etc, very welcome.

  2. Hot keys do not work

  3. I would like to change the vertical theme quicklinks to icons with hover over tooltips –ongoing.

  4. As currently written, this theme would require an extension as well as the actual theme – how the Dashboard was in FA V2.3

  5. Currently using the DB, writing to a file would probably be a better way.

Demo here
username: demo
Password: password


(4 replies, posted in FA Modifications)

Change the tax rates and tax names to suit the example given by @rafat

wiki changed to Pakistan example wrote:

Using Tax on already added Tax (Pakistan)
Certain regions in Pakistan have a Provisional Tax of 19.5% and a Advance Income Tax of 12.5% on already taxed items. Here is how you can handle that.

First create 2 Tax Types:
Provisional Tax 19.5%, rate 19.5 Remember to include the 19.5% in the name.
Advance Income Tax 12.5%, rate 14.9375(12.5 * 1.195). Remember to include the 12.5% in the name. You will need to increase the percent decimals in preferences. The value 1.195 is the value of Provisional Tax + 1. If the Provisional Tax was 6% this value would be 1.06.
Combine these two Tax Types into a Tax Group.
Find the variable, $suppress_tax_rates, in config.php about line 193. Change the value to 1. This will suppress the internal tax rate when printing.
That's it.

The last sentence is no longer valid in current FA version; you now suppress tax rates in Setup->Company setup-> Suppress Tax Rates on Docs: checkbox

Read the wiki on tax groups.

Try it out on your training company first