1,276

(14 replies, posted in Report Bugs here)

@anoopmb: kindly submit your tested code changes for peer review and inclusion in the core for both {Y} and {YYY}.

Check from your browser if the following can be downloaded:

http://anonymous:password@repo.frontaccounting.eu/2.4/Release.sig
http://anonymous:password@repo.frontaccounting.eu/2.4/Release.gz

Although the folders in the path above are available for v2.4.1, 2.4.2, ... 2.4.6, they may contain outdated files and in the latest 2.4.6 folder path, the Languages are packed wrongly though some updated versions exist.

It is possible your local IP may be blocked by virtue of the server subscribing to some blacklist in your IP resides.

Which extension do you wish to install manually? Just extract the contents and place them in a folder (folder name listed in _init/config file) inside the modules/ folder. It should then appear in your list of extensions available for installation without the need to download from the official extensions repo. This is only for the "extensions" and not for the charts, themes or languages.

@joe: Which path is the latest that needs to be set in version.php ?

1,278

(14 replies, posted in Report Bugs here)

This Wiki page points to this thread.

@joe: Along with {Y}, try to include {YYY} to indicate both years if they lie in different calendar years like /2018-19.

1,279

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

@joe: It might be worthwhile to synch the function get_gl_transactions() with that of @braathwaate. The said function is defined in gl/includes/db/gl_db_trans.inc and is used in the core in:

gl/inquiry/gl_account_inquiry.php
gl/view/accrual_trans.php
reporting/rep702.php
reporting/rep704.php

Furthermore, it is not used in any other extension as well. Besides, the effective_rate is not used anywhere at all (but used in the list of sql fields in function get_trans_tax_details in it!

In fact, the function get_trans_tax_details() from lines 478 to 493:

function get_trans_tax_details($trans_type, $trans_no)
{
    $sql = "SELECT tax_details.*,
                tax_type.name AS tax_type_name,
                tax_details.rate AS effective_rate,
                tax_type.rate AS rate
        FROM ".TB_PREF."trans_tax_details tax_details,
            ".TB_PREF."tax_types tax_type
        WHERE 
            trans_type = ".db_escape($trans_type)."
        AND trans_no = ".db_escape($trans_no)."
        AND (net_amount != 0 OR amount != 0)
        AND tax_type.id = tax_details.tax_type_id";

    return db_query($sql, "The transaction tax details could not be retrieved");
}

can now be simplified to be:

function get_trans_tax_details($trans_type, $trans_no)
{
    $sql = "SELECT tax_details.*, tax_type.name AS tax_type_name, tax_type.rate AS rate
        FROM ".TB_PREF."trans_tax_details tax_details INNER JOIN 
        ".TB_PREF."tax_types tax_type ON tax_type.id = tax_details.tax_type_id
        WHERE 
                trans_type = ".db_escape($trans_type)."
            AND trans_no = ".db_escape($trans_no)."
            AND (net_amount != 0 OR amount != 0)";

    return db_query($sql, "The transaction tax details could not be retrieved");
}

1,280

(2 replies, posted in Announcements)

Unresolved Issues
* Post- commits being checked out
* Post- Need to revert -this commit - Fixed for now in this Post

Post Release Fixes attached.

1,281

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

@braathwate: Your report uses your custom functions in ui_controls.inc and ui_view.inc files that have been appended to your quickreport_inquiry.php file for testing:

function scroll_down($div)
{
    global $Ajax;

    $js = "
        var objDiv = document.getElementById('" . $div . "');
        objDiv.scrollTop = objDiv.scrollHeight;
    ";
    if (in_ajax()) {
        $Ajax->addScript(true, $js);
    } else
        add_js_source($js);
}

function get_js_history($vars)
{
    $js = ' 
    function changeVar() {
        var stateObj = { foo: "bar" };
        var state = "";
';

    $first = true;
    foreach ( $vars as $var ) {
        $js .= '
        var element = document.getElementsByName("' . $var. '");
        if (element[0])';
        if ($first) {
            $first = false;
            $js .= '
            state += "?';
        } else
            $js .= '
            state += "&';
        $js .= $var .'="' . ' + element[0].value;';
    }

    $js .= '
        history.replaceState(stateObj, "page 2", location.protocol + "//" + location.host + location.pathname + state);
    }';
    return $js;
}

function set_posts($vars)
{
    foreach ( $vars as $var )
        if (isset($_GET[$var]))
            $_POST[$var] = $_GET[$var];
}

@joe: see if you want to include them into the core.

The js history and remembering past form field values will result in a cache use and erroneous Ajax output like when a specific customer is chosen first and then a Supplier is chosen without resetting them selectively.

Also, your use of the function get_gl_transactions() in the said report has 12 arguments whereas the standard one in gl/includes/db/gl_db_trans.inc has only 11. The extra argument used is

get_post('person_type')

.

Get all cookie data and permissions necessary before handing over to the theme.

See attachment - overlap remains - FireFox 52ESR on WinXP SP3.

Hope you have extension openssl .dll/.so enabled in your php.ini.

FA 2.3.22 should have been updated to 2.3.26 and a backup taken of the FA folder (company and installed extensions / languages and the sql dump of the db.

1,284

(14 replies, posted in Report Bugs here)

@joe: This will be desirable to include in the core - {Y}.

1,285

(114 replies, posted in Reporting)

Place the sql file in the sql folder in FA and create a new company using it. Check if all is well first.
Compare the sql dumps of the schema between your existing install and the new sql file and synch them and their data into the new install.

1,286

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

Missing file include at line 15 of quickreport.php:

include_once($path_to_root . "/includes/foo.inc");

-- Fixed

1,287

(14 replies, posted in Report Bugs here)

Your includes/references.inc line number 99 is for FA 2.3.x.
Lines 121, 122 are for FA 2.4.x.

Just take the Year of the fiscal year beginning only!

Besides, this will all go wrong if the template is created with all the date elements for when there are too many transactions each day and a template like {DD}{MM}{YYYY} is used! A separate template like {Y} may be used for this kind of resetting of the year each fiscal beginning.

There is a function get_fiscalyear_begin_for_date($date) that obtains the financial year beginning in the file admin/db/fiscalyears_db.inc. Also available in it is get_current_fiscalyear(). These functions return the MySQL date format whilst taking the user date format as input where needed.

There is another function begin_fiscalyear() that gets the current fiscal year's begin date in user date format in includes/date_functions.inc.

There is a "Back" link on the calendar display that does it but your method may be useful too - hope it will not clash when multiple date fields are on the same form.

@joe: Attached is the code change in includes/ui/ui_view.inc needed to have the date_picker.js recreated on js cache purge.

1,289

(114 replies, posted in Reporting)

Attached herewith is a make CoA link along with the latest Dutch English CoA for FA 2.4.

The default2 theme needs to fix the overlap of the body heading - see attachment.

@kvvaradha's default theme has a fixed position login screen which needs scrolling to view fully and on login, the menus are vertically spaced too much. Also the black icons are too bold and distractive.

@joe: This would be a nice integration if well done as no jquery or other heavy libraries are used.

Standard recommended versions for FA 2.4.x are PHP => 5.3.x to 5.6.x , MySQL 5.0 to 5.6
Although PHP 7.x has been used too, some ini settings may need tweaking. MySQL 5.7+ will need to have zero dates and times made acceptable with strict mode being disabled.

Duplicate references generation is addressed in this post.

@itronics: An example of "separate identifier for every user" would be useful. Otherwise, all would have to wade thru the code for it. This may be explained in the Wiki. The following lists the possibilities.

Lines 55-66 in includes/references.inc:

$refline_placeholders = array(
    'MM' => 'date',
    'YY' => 'date',
    'YYYY' => 'date',
    'UU' => 'user',
     'P' => 'pos',
//     FIXME:  for placeholders below all the code should work, but as the ref length is variable,
//       length specification in placeholder format should be implemented.
//    'C' => 'customer',
//    'B' => 'branch',
//    'S' => 'supplier',
//    'L' => 'location'

Lines 302-332:

        $regex = preg_replace(
            array(
                '/\\\{/',    // unquote placeholders
                '/\\\}/',
                '/\{MM\}/',
                '/\{YY\}/',
                '/\{YYYY\}/',
                '/\{C\}/',
                '/\{B\}/',
                '/\{S\}/',
                '/\{L\}/',
                '/\{UU\}/',
                 '/\{P\}/',
                '/\{\d+}/',
            ),
            array(
                '{',
                '}',
                $month,
                $year2,
                $year4,
                $cust,
                $branch,
                $supp,
                $location,
                $user,
                 $pos,
                '\d+',
            ), $regex);

        $regex = '"^'.$regex.'"i';

1,294

(14 replies, posted in Setup)

When multiple fiscal years remain open or get opened, the Company Setup must have it's current fiscal set to that in which transactions need to be entered / updated.

1,295

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

The said variable is defined in config.php:

$comp_path = $path_to_root.'/company';

Line 11 in repgen_print.php includes session.inc which in turn includes the sysprefs.inc file in line 374 which in turn includes the config.php file above in line 31 which assigns the needed value to $comp_path.

Attached is the fully fixed extension from my repo.

1,296

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

There appears to be nothing wrong with the existing line 19:

$file =  $comp_path.'/'.user_company(). '/pdf_files/'.$id.'.pdf';

There has been a couple of commits (1, 2) to rectify this error after the FA v2.4.5 release. Upgrade to FA 2.4.6 and all should be well.

If the $dim is acquired within the code, must it be declared global?
As $dim is declared global, is it necessary to acquire it again (I have disabled re-acquiring it in my commit).

The official repo has not yet been refreshed.

Retaining the same version and build numbers of the official extensions as of now, my unofficial repo has been updated.

That's probably the final commit in FA related repos for now in this year. Happy New Year ahead to all FA Members and their families.

@anoopmb: The changed files zip is a dead link.

1,300

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

He means to have a location field for each employee for reporting purposes.