1

(16 replies, posted in Wish List)

Payroll is such a vast, country- and even state- customised thing, it would be utterly impossible to do a pay module in a G/L or ERP package. Sorry, but it's a simply unrealistic question. Once you look into your payroll functional requirements, you'll see why.

Hi Guys
I noticed a minor issue with the Elegant theme (installed the Theme Installer in menus).

It seems to be missing the file 'page_edit.png' file used as an icon. This gives you broken link pictures in the menu screens.

Until one is made, you can get around this by simply editing:

/themes/elegant/rendered.php

And changing 'page_edit.png' to something like 'folder.gif', or any other icon image you want to use.

Not sure if others are experiencing this, but I noticed it from version 2.3.18, and then again in 2.3.22 when I upgraded.

Cheers
Pete

3

(3 replies, posted in Announcements)

dadress wrote:

Does anyone use this in a corporate setting? Is it up to the challenge?

I'm using FA for a few clients with pretty large revenue bases so I guess they would count as corporates. I also use it myself.
The things I love about FA are:

  • strikes the right balance between ease-of-use and proper accounting/bookkeeping practices ie. it's easy enough for a novice to use, but allows people familiar with traditional accounting to access to hardcore GL transactions eg. depreciation, write-offs and banking. Direct GL access, if you want it, is available and follows good accounting practices.

  • code is pretty logical, and making enhancements straightforward

  • Handles European/Australian tax arrangements well (VAT/GST etc.)

  • Nice reports, especially (for me anyway) the Invoice report, where by using a compressed font (like Tuffy - I have put instructions in the wiki) you can get a lot of information on the one page.

  • The forums haven't been overrun with clueless people or spammers asking stupid questions they haven't researched first.

  • Joe and iTronics who run it all are fantastically responsive. Bugs are ironed out extremely quickly (usually a day or two). I'm yet to see any other package do this mod work and upgrading as well.

I also like the fact that FA is used in many non-English speaking countries, and supports other languages/formats like Arabic, giving people access to good software in a world that emphasises English speaking/US software. Lastly the user community is great: there are few 'dumb' questions on the forums - even if English is not their first language, people usually know their accounting stuff and ask constructive, useful questions.

4

(2 replies, posted in Wish List)

Given no research went into this list and there are no details, I guess it can just be ignored.
It's kind of like those third-worlder requests for support on websites that say things like:
- I have trouble with xyz. Plz fix for me. Plz.

5

(9 replies, posted in Wish List)

Hi Elax

I've made a couple of comments on your changes.

1. Report Naming
It would be nice if the reports were named according to a system you set eg.
COMPANY_DOCUMENT_NAME_DATE or something eg.
ABC_Enterprises_Invoice_10DEC2013.pdf
This would be my favourite change.

2. Stock Weights
Sounds useful to different sorts of companies.

3. filter invoice report per customer
Good idea, not a huge issue for me, but I can see the use of this.

The others I didn't really see as improvements, more just customisation for a site.

I agree with the others on the Trial Balance. I don't think it's correct accounting with the approach you took. I would definitely not support changing the current trial balance process.

I've got my own list of mods that I'd be happy for people to comment on (I've posted a few things on the forum about these: search p2409)

Comment field increased size.
Converted all database comment fields into MEDIUM_TEXT (larger). A few screens were also changed to view the large comments field, as was the invoice report.

Transaction Days Setting
Created a new setting 'Transaction Days'. This lets your set the default 'date from' to something like -365 (for last year). At the moment, it's hardcoded to -30 days. I've posted a topic to the forum on how to do this: see
Transaction Days Setting mod

Default Report Font
Changed default font to one called 'tuffy' which is narrower, and more modern.

Customer Transactions Selection Filter
Made new selection filter option for customer transactions (Invoices AND Delivery Notes)

KA I'm afraid the task is going to be way beyond your skills. Adding the column in phpMyAdmin is the easy part: now you will have to go through many PHP files and change all the queries that access the table you're using. From memory, it's inadvisable to just change the query/SQL for only the screen you want, you need to modify it everywhere the table is accessed. This may be 10-20 places - modifying the database structure in FA, like most systems is a fairly hefty piece of work. You will need to understand the basic structure of FA with it's logical access to tables, and almost 'message-like' approach to processing work tasks.

I tried doing this exact same thing a while back: from memory, you're really playing with the guts of FA, and the changes were required across many, many files, with lots of opportunities to break the system. I gave up in the end, it was just way too risky and time-consuming.

I would go with apmuthu's suggestion of a linked table, at least that way you're not providing yourself with such a headache at upgrade time.

Only one attachment at a time, hence this post
I didn't include tuffy.afm because I don't think it's needed. If it is let me know and I'll post it too.
Pete

Attached tuffy.php

Hi Guys

I wanted a narrower, modern font to my FA documents, in particular the invoices where I was running out of room.
I found a free font called 'Tuffy' which met the bill, and converted it to the required .php and .z formats using TCPDF. If you want to use it, to save you doing the converting, I've attached the 3 font files you need (although I think the .afm is optional).

If you do a search in this foum

To use this new font:

1) Put the 3 font files in ./reporting/fonts
tuffy.php, tuffy.z and tuffy.afm

2) Update the ./reporting/includes/class.pdf.inc file as follows:
Around line 119, change helvetica to tuffy so you end up with:

        // p2409 was helvetica, now tuffy.
        $this->FontFamily = 'tuffy';
        $this->FontStyle = '';
        $this->FontSizePt = 12;

Hi Guys
I made a quick mod to the 'Customer Transactions' screen to give you a new document filter.
I wanted to quickly see just Sales Invoices and Delivery Notes documents in the list, so made the following mod instructions if you want to do the same thing (or add your own custom document filter).

I'm not suggesting this go into the main version, I just posted the instructions here in case anyone wants to do the same thing, or add their own filters. Use at your own risk!

Pete

New 'Sales Invoice & Delivery Notes' selector for customer_inquiry.php by Pete p2409.
------------------------------------------------------------------------------------

Currently, FA lets you filter document types in the customer inquiry (transactions)
screen eg. Sales Invoices, Overdue Invoices etc.

This mod adds a new filter: Sales Invoices & Delivery Notes, letting you match them
more easily. Two files are modified (3 minor mods).
The logic can easily be adapted for any other document filters you want in this screen.

CHANGES TO CODE/TABLE
---------------------

1) ./includes/ui/ui_lists.inc

Add 'Sales Invoices & Delivery Notes' option to the cust_allocations_list_cells
function.
Around line 1935, find:

    $allocs = array(
        $all_items=>_("All Types"),
        '1'=> _("Sales Invoices"),
        '2'=> _("Overdue Invoices"),
        '3' => _("Payments"),
        '4' => _("Credit Notes"),
        '5' => _("Delivery Notes")
    );

CHANGE TO:

    $allocs = array(
        $all_items=>_("All Types"),
        '1'=> _("Sales Invoices"),
        '2'=> _("Overdue Invoices"),
        '3' => _("Payments"),
        '4' => _("Credit Notes"),
        '5' => _("Delivery Notes"),
        '6' => _("Sales Invoices") . " & " . _("Delivery Notes")
    );

2) ./sales/includes/db/cust_trans_db.inc

We need to update SQL the in customer transaction query function (get_sql_for_customer_inquiry)

Around line 356, ADD:

        // Add delivery and invoices option
        elseif ($_POST['filterType'] == '6')
        {
            $sql .= " AND (trans.type = ".ST_SALESINVOICE ." OR
            trans.type = ". ST_CUSTDELIVERY . ") ";
        }
        // eof delivery and invoice filter option

The transaction sort key has been changed to order number, just for this option.
Around line 370, after the group by clause, add a test for this new option, and
a single ORDER BY line below:

AFTER:

    $sql .= " GROUP BY trans.trans_no, trans.type";

ADD:

    // Order by trans.order_, but only for 'Sales Invoice & Delivery Note' filter.
    if ($_POST['filterType'] == '6') {
        $sql .= " ORDER BY trans.order_ DESC, trans.trans_no DESC ";
    }
    // eof p2409

12

(2 replies, posted in Setup)

Hi Arun
Your questions are very vague. Can you do a bit more pre-work and describe what you're trying to do?

13

(2 replies, posted in Setup)

If you're experience an error in the running of the code, you'll need to try to get some more information on what's going wrong by editing ./config.php
and setting:
$debug=1;
$show_sql=1;
$go_debug=1;

If you can access your php settings, you might also try looking at the error_log to see if there's a PHP or database access problem.

If there's nothing wrong with the code, please note the checks FA runs before it will allow the deletion of a FY. Here are some of the messages in the code ./admin/fiscalyears.php:

- Cannot delete this fiscal year because thera are fiscal years before.
- Cannot delete this fiscal year because the fiscal year is not closed.
- The marked fiscal year is the current fiscal year which cannot be deleted.

There is also a comment in the code that may be relevant:
"only delete if used in neither customer or supplier, comp prefs, bank trans accounts"

Hello Miles
I have a PHP script that removes all transaction data from FA. It's only for use by those technically minded. I think I posted it on this site somewhere ages ago, but let me know if you want me to re-post it. Not sure if the administrators want me to post it as a forum response though, as it's more a developer tool (and will destroy all transaction data).

The script simply runs through ALL transaction tables (and only those tables) in FA, clears them and resets the autonumber fields.

One other thing: to see what went wrong, you could set debugging of SQL on in your config file, then check the SQL's to see why your account was not visible.

Pete

Hi Guys
I have a date formatter piece of javascript that turns a date eg 011211 into 01/12/2011.
I'm just wondering where I would add this to the code to activate it for things like OrderDate in Direct Invoice.?
Thanks
Pete

function addSlashes(input) {
    var v = input.value;
    var startYear = '';
    // If it's only 2 digits and 2 digits long, add one slash
    if (v.match(/^\d{2}$/) !== null) {
        input.value = v + '/';
        // If up to year, add slash again.
    } else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
        input.value = v + '/';
    }
    // If six chars, add year
    
    if (v.match(/^\d{2}\/\d{2}\/\d{2}$/)) {
        
        // 24/12/08 
// substring from - to (to is char position so always > from)

        if (v.substring(6,8)>30) {
            startYear = '19';
        }
        else {
            startYear = '20';
        }
        input.value = input.value.substring(0,6)  + startYear + input.value.substring(6,8);
    }
}

16

(1 replies, posted in Setup)

stock_master and
stock_category

You may also want to update stock_moves if there's changes to quantities.

THe current journal entries report (rep702.php), and possible a few other reports, don't cope with multiline comments in your transactions.
As a quick fix, you can do this kind of modification which will split out the comment lines on the report so you can see them all:

Around line 99 of rep702.php, modifiy the code so it looks like the following:

            $memo = get_comments_string($myrow['type'], $myrow['type_no']);
            // Pete: multline journal display.
            $replines = array();
            if ($memo != '')
            {
                if ($coms == "")
                    $coms = $memo;
                else
                    $coms .= " / ".$memo;
                // turn memo text into multiline array for printing
                $replines = explode("\n",$coms);
            }
            // Print each line of comment separately, rather than a single line
            foreach ($replines as $repline) {
                $rep->TextCol(3,6,$repline);
                $rep->NewLine();
            }

This is a very quick fix, I can't vouch for the quality of it as PDF report modification can be hard, but it should get you going if you desperately need it.

Pete

Adding quick entries for payments (expensed) in Australia with GST:

Use this kind of quick entry for bank payments (for items) that you expense like Office Supplies etc, when the retail price on your docket/invoice includes GST.

In Quick Entries Edit screen
1) Add quick entry eg. 'Stationery', type 'Bank Payment'
2) Click 'Add New'
3) Edit the new 'Stationery' Quick Entry
4) Under 'Quick Entry Lines' change 'Posted' combo box to Taxes Included - Reduce Base and 'Tax Type' GST. Click Add New
5) Add the next Quick Entry Line: Posted set to Remainder (the default)
6) Under Account, select the G/L account you want the item expensed to eg. 'Office Supplies' and click 'Add New' to add this second line.

Now when you use the quick entry, the amount will be allocated to GST (10%) and the remainder, with the correct account postings eg. $50.00 goes to $4.55 GST and $55.45 to Office Supplies.
I think the same set up is relevant for VAT in the UK, and maybe other European VATS too.

Pete

I too added space to the comments field by altering the tables to make them 'mediumtext' instead of 'tinytext'. The tables I updated were:

0_comments
0_purch_orders
0_sales_orders
0_budget_trans
0_gl_trans
0_supp_invoice_items
0_trans_tax_details
0_voided

I also enlarged a few other comment type fields too:
description in 0_debtor_trans_details
description in 0_grn_items

Basically, you can do a search of company SQL that comes with the package and look for tinytext, comments, memo and description.

To enlarge the comments section of things like invoice entry, you might need more room on the screen too:
To do this, update eg. ./sales/includes/ui/sales_order_ui.inc
and change the line that refers to the comments which has

textarea_row(_("Comments:"), "Comments", $order->Comments, 31,5);

to:

textarea_row(_("Comments:"), "Comments", $order->Comments, 61, 20);

You might want to do this for other entry screens eg. for po_ui.inc etc. A global search on the text  '->Comments' should get you started on which files you could modify.

As tclim said, you can also modify your report files eg. Invoice rep107.php. You need to be pretty careful doing this that you don't muck up alignments etc.

Lastly, don't forget you can get more text on your reports if you change the report fonts. I use a font called 'tuffy' (http://www.fontspace.com/thatcher-ulrich/tuffy) which fits alot on the page (it's narrow) and is quite modern looking. It's a technical job to add this font or any other  to FA, but I have documented it in the FA wiki for those with enough technical know-how to use command line utilities and code PHP. You use an external utility ttf2pt1 which converts ttf files into font file the TCPDF framework can use. TCPDF is the framework FA uses for handling PDF files.

Pete

Are you sure that the transaction you are applying would not take the bank account into negative balance at the date of the transaction?

The message you saw is based on a check for 0/negative balances on the transaction date - there's no limits set anywhere. If the transaction would take the account into negative balance, the error appears. As a suggestion: If you have multiple transactions on a given day to keep the account in credit, apply the credits first (as a suggestion). That way, the account won't try to go momentarily negative.

The code to look at the logic is in ./gl/bank_transfer.php

FA currently uses a default hard-coded '30' days in the past setting for all inquiry screens.I have created some instructions for changing this to a user setting (transaction_days) so you can set this up for each user. This is useful if your company transactions are low-volume and you want to see more than 30 days in the past in your inquiry screens.

Note to Joe/Itronics: I put this as a suggested update on the Wiki for you to consider in the next version. Let me know if I've got the design of this wrong (I've tried to keep the design of the mod consistent with the architecture of FA), but it's a fairly simple change to make.

New User Configurable Transaction days setting by Pete p2409.
-------------------------------------------------------------

Currently, FA uses a hard-coded default 30 days in the past setting for transaction display screens
eg. ifyou do a GL inquiry, the default is to display dates from today to 30 days ago.
With a new user-configurable 'transaction_days' setting, you can now set this to a default number 
you choose eg. 365 to always display the last year's instead of month's transactions.
With this change, the default 'From' date on inquiry screens will be the setting you made
eg. -365 days from now.

To achieve this, we add a new global setting 'transaction_days' and look up this setting in
all inquiry screens that previously had a hardcoded 30 days.

(Note the setting is a positive number, made negative to go back in the past in the inquiry screens
with a minus sign).

CHANGES TO CODE/TABLE
---------------------

1) Create new 'Transaction days' setting in preferences screen:

In ./admin/display_prefs.php

Around line 37

FROM:
        set_user_prefs(get_post( 
            array('prices_dec', 'qty_dec', 'rates_dec', 'percent_dec',
            'date_format', 'date_sep', 'tho_sep', 'dec_sep', 'print_profile', 
            'theme', 'page_size', 'language', 'startup_tab',
            'show_gl' => 0, 'show_codes'=> 0, 'show_hints' => 0,
            'rep_popup' => 0, 'graphic_links' => 0, 'sticky_doc_date' => 0,
            'query_size' => 10.0)));

TO:
// Add transaction days configurable.            
        set_user_prefs(get_post( 
            array('prices_dec', 'qty_dec', 'rates_dec', 'percent_dec',
            'date_format', 'date_sep', 'tho_sep', 'dec_sep', 'print_profile', 
            'theme', 'page_size', 'language', 'startup_tab',
            'show_gl' => 0, 'show_codes'=> 0, 'show_hints' => 0,
            'rep_popup' => 0, 'graphic_links' => 0, 'sticky_doc_date' => 0,
            'query_size' => 10.0, 'transaction_days' => 30)));
            
Around line 142 after:

check_row(_("Remember last document date:"), 'sticky_doc_date', sticky_doc_date(),
    false, _('If set document date is remembered on subsequent documents, otherwise default is current date'));

ADD:

text_row_ex(_("Transaction days:"), 'transaction_days', 5, 5, '', user_transaction_days());


2) Update user preferences to add new transaction_days global variable.

In ./includes/prefs/userprefs.inc

Around line 38:
ADD:
    var $transaction_days;

Around line 54 after:
            $this->theme = 'default';
ADD:
            $this->transaction_days = -30;
Around line 91 (in the else block)
AFTER:
            else
            {
                $this->sticky_date = 0;
                $this->startup_tab = "orders";
            }

ADD:
            $this->transaction_days = $user['transaction_days'];

Around line 127:
ADD:
    function transaction_days() {
        return $this->transaction_days;
    }

3) Update current user settings with new user_transaction_days function:

Around line 312
ADD:
function user_transaction_days()
{
    return $_SESSION["wa_current_user"]->prefs->transaction_days();
}


4) Modify all inquiry screens to use new 'Transaction Days' setting:

In all inquiry screens (do a global search on '30' to find them all):
./gl/inquiry/bank_inquiry.php
./gl/inquiry/gl_account_inquiry.php
./gl/inquiry/gl_trial_balance.php
./gl/inquiry/profit_loss.php
./gl/inquiry/tax_inquiry.php
./gl/view/accrual_trans.php
./inventory/inquiry/stock_movements.php
./purchasing/includes/ui/invoice_ui.inc
./purchasing/inquiry/po_search.php
./purchasing/inquiry/po_search_completed.php
./purchasing/inquiry/supplier_allocation_inquiry.php
./purchasing/inquiry/supplier_inquiry.php
./sales/inquiry/customer_allocation_inquiry.php
./sales/inquiry/customer_inquiry.php
./sales/inquiry/sales_deliveries_view.php
./sales/inquiry/sales_orders_view.php

Example for bank inquiry: ./gl/inquiry/bank_inquiry.php

Around line 50:

CHANGE:
date_cells(_("From:"), 'TransAfterDate', '', null, -30);

TO:
date_cells(_("From:"), 'TransAfterDate', '', null, -$_SESSION["wa_current_user"]->prefs->transaction_days());

Do this for each inquiry screen file


5) SQL update x_users table with new 'transaction_days' column:

ALTER TABLE `0_users` ADD `transaction_days` INT( 6 ) NOT NULL COMMENT 'Transaction days'

(Note: use your company number eg. 0_, 1_ etc to update for each company).

22

(3 replies, posted in Setup)

Same answer: just create a branch for this customer.
To make data entry easier, you might try calling it something like 'AAA' so it appears as the first item in the list, leaving you with one less thing to click!

Oh OK
Are there plans to put dimension id's on the debtor_trans table or does this not make sense for using dimensions properly?

This requires a few things to be done:
- In the invoice report (107), check the stock master table for each line item, getting the tax code
- lookup the tax code to translate back to words eg. 4 = GST
- change the item report line loop to also include the tax code.
It all needs coding, but that's the basic logic I think.

25

(1 replies, posted in FA Modifications)

The easiest way (without coding) and assuming your htaccess puts .html ahead of .php is to simply make an index.html file and copy it into your root directory.
You could also swap in a spare index.php that just echo's that the system is currently not available.
Other than this, you could make a simple mod to index.php that checks a global variable eg. in config.php and displays 'system unavailable'.