The ref number is the # column isn't it?

Hi, although I have no experience of IIs, it is mentioned in the installation page of the wiki found here

On IIS, use PHP Manager for IIS. It is a tool for managing one or many PHP installations on IIS 7 and IIS 7.5 servers. Will need MSVC runtimes.

Can you also change the line 

$go_debug         = 0;  
to 
$go_debug         = 1; 

in config.php in the root directory of FA and post any errors on here.

You could also try running phpinfo - and comparing results with some of the php settings mentioned on the wiki installation page; eg magic_quotes_gpc = 0 and register_globals = 0, etc. Then make the necessary changes to php.ini and restart your server. (Keep a record of what you change with line #)

Basic troubleshooting advice can be found here

Without making any modifications you could use a customer branch for most of the above (In the Payment dropdown do not select cash only - select a credit term eg in 15 days) You also have the comments section

@cambell demo site here with no changes to core or added js, only changes made to default.css and renderer.php
Very much WIP as a test to see what is possible; with very little styling, mainly structure: Works fine down to just over 300px wide for the following pages only:-

Sales:-
Transactions
Sales Quotation Entry
Sales Order Entry
Direct Delivery
Direct Invoice

Maintenance
Add and Manage Customers
Customer Branches

Purchases:-
Transactions
Purchase Order Entry
Direct GRN
Direct Supplier Invoice

Maintenance
Suppliers

Items & Inventory:-
Maintenance
Items

Setup:-
Preferences

Scale down to 300px ish add some item rows in either sales or purchases and see what happens

username: demo
Password: password

Comments and feedback welcome

430

(7 replies, posted in Accounts Payable)

Have you tried ticking the box 'Show Item Codes:' in preferences?

431

(7 replies, posted in Setup)

Also you can have a different tax for each item, but will still show how as apmuthu states above

432

(4 replies, posted in Report Bugs here)

If I make a purchase, I first get this hint in the top right corner:-

Select supplier

This string occurs only once in the code:-

File: includes\ui\ui_lists.inc

542:         'sel_hint' => $mode ? _('Press Space tab to filter by name fragment') :
543:         _('Select supplier'),

But I am unable to get any further hints for the rest of the page

If it helps sel_hint occurs 10 times and all in the above file; so I'm assuming that there are only 10 hints There seems to be only three hints:- Select customer, select customer branch and select supplier
From line 91 in the same file may help too.

There is a box_hint as well that doesn't seem to be used.

Are you thinking of making the hints better or deleting unused code?

Wiki..ed

When would the avg cost be calculated? After the invoice is processed I think?

Also, one of the advantages / functions of quick entries is that you can enter any amount in and the same calculation is completed, so avg cost will fluctuate anyway.

Hi,

When creating a quick entry for the following:-

bank deposits,
payments,
journal entries

You have the opportunity to edit or delete the row or rows created

But in supplier invoice there is only the option to delete the row or rows; there is no option to edit?

Is this correct? If so what is the reasoning behind it?

Edit: Is this because the suppier invoice is for items received but not yet invoiced?

@apmuthu Added to Wiki & here


@campbell Yes you do need js sometimes, the examples you've given could be retained. The point I was making is that, rather than add complexity to the js and therefore the core, surely it is better to get additional UI features etc from css leaving the core untouched.

Currently if you change a report or the report header files you put the modified file in the relevant company/x/reporting folder and this is used instead of the core version; this leaves the core untouched.

Probably not the 1st to have had the idea, but is it possible to use the same method for the ui files?

@campbell

I completely agree that FA needs a html framework.
Does that framework need to be bootstrap? IMHO No, its bloated and relies on js; and from what I've read on here (or not read) has little support from the devs.

Perhaps FA devs would be more willing to change to a purely css framework? No js.

There is so much you can do just in css now, js use is decreasing as css functionality increases. Even css has its own grid system now!

@apmuthu it was just a 'quick and dirty' solution
Good point about SwiftKey, I didn't know that, thank you.

439

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

Hi, I'm not sure about paths,

I'm getting:-

Use of undefined constant VARLOG_PATH - assumed 'VARLOG_PATH' in file: /home/path/path/path/config.default.php at line 32

Use of undefined constant VARLOG_PATH - assumed 'VARLOG_PATH' in file: /home/path/path/path/config.php at line 32

include_once(./vendor/autoload.php): failed to open stream: No such file or directory in file: /home/path/path/path/modules/api/index.php at line 41

include_once(): Failed opening './vendor/autoload.php' for inclusion (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in file: /home/path/path/path/modules/api/index.php at line 41

Class 'Slim\Slim' not found in /home/path/path/path/modules/api/index.php on line 54

Is this defined in File: /home/path/path/path/config_api.php

01: <?php
02: 
03: if (file_exists(__DIR__ . '/_frontaccounting')) {
04:     $rootPath = realpath(__DIR__ . '/_frontaccounting');
05: } else {
06:     $rootPath = realpath(__DIR__ . '/../..');
07: }
08: //Tried this results as above
09: // define('API_ROOT', $rootPath . '/modules/api');
10: // define('FA_ROOT', $rootPath);
11: //tried this same results
12: define('API_ROOT', '.');
13: define('FA_ROOT', './../..');
14: 

Or somewhere else?

What should the path be?

Apmuthu, yes I'm doing that, but they do not work in Firefox: Chrome works perfectly.

441

(2 replies, posted in Setup)

Hi, have you read the Wiki?

This is not strictly a FA problem, but if anyone can help it would be appreciated

Quick keys not working [alt]+p etc in firefox; but work perfectly in chrome?

Latest version, cleared caches X 10

In say 'Sales' pressing [alt]+p and repeatedly pressing p, you can see the on the screen the active menu item and in the bottom lefthand corner the URL changes correspondingly; which is as expected: When you release the [alt] key it hangs the software, clicking anywhere does not work, press [ctrl]+F5 clears the 'hang' but quick keys do not function.

Can anyone replicate this?

Add the following line in:-

File: access\login.php

62:   echo "<meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0'> \n";

And also in:-

File: includes\page\header.inc

145:  echo "<meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0'> \n";

@joe @itronics @apmuhu
As you probably know this will not make any changes to viewing FrontAccounting on a PC or laptop so you may want to include it in the core? It is also good practice to have a ‘viewport’ defined.

It only works if you hold you phone horizontally

Additional setup and changes to increase usability for mobiles

Create an additional user & user role, restrict access to menu items that you will need when travelling such as:-

Sales Invoices
Purchase Invoices
Add customer
Add supplier
Items
Reports

Hide unused menu items in config.php

Copy and paste a theme – rename for example mobileonly:- Some small changes to the css can make a big difference such as:-

Increasing font size and line height for menu items
Decreasing widths of dropdown menus, input boxes, date boxes, text boxes, etc.

Use a ‘split keyboard' such as ‘SwiftKey Keyboard’ available here https://play.google.com/store/apps/deta … e.swiftkey you can make the keyboard smaller and a split keyboard makes it easier to type with your thumbs in horizontal mode.
You could also try a semi-transparent keyboard

Please note: Its not perfect, but you can now create invoices etc. on the move - hope it helps someone.

444

(3 replies, posted in Reporting)

Have a look at this line in config.php:-

$hide_inaccessible_menu_items = 0;

    Hide if true, else greyed out

445

(13 replies, posted in Setup)

I've been concentrating on the reference # number, I should be working on the trans_no and id number in debtor_trans and voided respectively.

In File: includes\references.inc

193:     function _get($type, $trans_no=0, $ref=null)
194:     


203:         $sql = "SELECT `$ref_fld` 
204:                 FROM `$trans_table` tbl
205:                     LEFT JOIN ".TB_PREF."voided v ON 
206:                 tbl.`$tno_fld`=v.id AND v.type=$type"
207:             ." WHERE ISNULL(v.id)"
208:             .($type_fld ? " AND tbl.`$type_fld`=$type" : '');
209:         if ($ref)
210:         {
211:             $sql .= " AND tbl.`$ref_fld`=".db_escape(trim($ref));
212:             if ($trans_no)
213:                 $sql .= " AND tbl.`$tno_fld` != ".db_escape($trans_no);
214:         } else {
215:             $sql .= " AND tbl.`$tno_fld`=".db_escape($trans_no);
216:         }

It checks that the reference number has not been used, so do I need to add the compare statement before this?

446

(13 replies, posted in Setup)

Can I use:-

SELECT GREATEST MAX(CAST(SUBSTR($ref_fld, ".(strlen($prefix)+1).",LENGTH($ref_fld)-".(strlen($postfix)+strlen($prefix)).") AS UNSIGNED)), MAX(Sql to voided table)

or would it be better to use a CASE statement?

447

(13 replies, posted in Setup)

ah...

so I should be looking at:-

File:  includes\references.inc

83:     function _parse_next($type, $template, $context=null)
84:     {

this section:-

File: includes\references.inc

169:         // retrieve last ref number in the refline from original transaction table
170:         $sql = "SELECT MAX(CAST(SUBSTR($ref_fld, ".(strlen($prefix)+1).",LENGTH($ref_fld)-".(strlen($postfix)+strlen($prefix)).") AS UNSIGNED))"
171:                 ." FROM `$trans_table` tbl
172:                     LEFT JOIN ".TB_PREF."voided v ON tbl.`$tno_fld`=v.id AND v.type=$type"
173:                 ." WHERE ISNULL(v.id)"
174:                 .($type_fld ? " AND tbl.`$type_fld`=$type" : '')
175:                 ." AND `$ref_fld` REGEXP ".db_escape('^'.preg_quote($prefix).'[0-9]*'.preg_quote($postfix).'$');
176:         $result = db_query($sql, 'cannot retrieve last reference');
177:         $result = db_fetch_row($result);

?
My understanding of this (and my knowledge of sql is worse than php!) and ignoring the Regex..
Select the largest reference from debitor_trans
Join table with voided where id and type match

so this function returns the result which is then increased or decresed in function _increment($reference, $back=false)
    {

so the changes need to be made in function _parse_next.....???

448

(13 replies, posted in Setup)

Is the current function this one:-

File: includes/db/class.reflines_db.inc

168:     function save_next($type, $reference, $line=null)
169:     {

?

449

(13 replies, posted in Setup)

You may have to give me some better clues...please

So...
search refs, find highest value for that type
if id equals id in voided
increment ref by 2
else
increment ref by 1

Not that I know of.

An other option which may work is to create a new location in Items & Inventory (A location does not have to be tangible), then you can use the reports in Items & Inventory ie. if Dim 1 is a location, why not create a real location. Use a dimension as well to get the financials, and sales etc from the inventory