5,601

(8 replies, posted in Installation)

Stolen cookies in a financial package wouldn't augur well.

Besides, the session holds a lot of form, state and authentication data that the server needs control and knowledge of and a broken browser session will put in an unknown state confusing and confounding FA. Best to break the session and start afresh.

Yes, tough when a lot of data is held in the session and the IP goes fishing!

5,602

(12 replies, posted in Translations)

Thanks for the info @Berctain.

Others in this genre are:

Multi Po-edit A Java swing .po file editor that displays comments, ids, and translations in a JTable. Multiple files can be compared and IDs can be looked up to see what files will be affected by the change.

and

Massively Parallel PO Editor for editing multiple language files in parallel. Corresponding translations are automatically highlighted in order to aid reviewing against multiple sources.

Wiki-ed it.

5,603

(8 replies, posted in Installation)

If the client PC is connected to one IP at the ISP and when that IP changes, chances are that the ISP knows where to send the DNS requests and the client PC may have the external DNS cached to the extent of it's current use (WinXP - ipconfig /flushdns). But the FA Server expects the current session to be mapped to the original IP and construes a change in client IP as an intrusion of sorts and terminates the session.

5,604

(7 replies, posted in Accounts Receivable)

HG Changeset 3200 fixes this. Thanks Joe.

5,605

(8 replies, posted in Installation)

The session will be lost if IP changes in the client and / or host.

Make all files in /var/www/frontaccounting owned by www-data (user and group) 644.
Make all the folders in /var/www/frontaccounting owned by www-data (user and group) 755.
Install FA from browser.
Make the config.php owned and writeable by root user (644) only.
Remove the install folder.

Your version is too old and may have issues with Ubuntu's PHP 5.3.x

Use the latest v2.3.15 + fixes. Get it from SourceForge and the post release updates from the release forum post

Probably what he means is that when ordering, we may not know which supplier has the cheapest price (or whatever criterion).

A page where an item can be selected and a list of suppliers with their prices can popup and one can be chosen. Many such line item pairs with respective quantities can be entered and then all the purchase orders can be generated in one stroke!

Item1   Supplier1(with Price)   Qty1
Item2   Supplier1(with Price)   Qty2
Item3   Supplier3(with Price)   Qty3
Item4   Suppier1(With Price)   Qty4
etc.,
Generate All PO.

5,608

(12 replies, posted in Translations)

CLI - Command Line Interface (DOS Prompt in Windows, Terminal in Linux)

Yu can have as many characters as you want in a line and compile ith .po file to .mo using the msgfmt command in the PoEdit install folder. I trust you are using Windows (possibly XP):
   C:\Program Files\Poedit\bin\msgfmt.exe

Place your mylang.po file in the folder: C:\Program Files\Poedit\bin
Start -> Run -> cmd
cd C:\Program Files\Poedit\bin\
msgfmt mylang.po
Take the mylang.mo file from the same folder.

5,609

(12 replies, posted in Translations)

Manual Edit using Notepad++ and compile using msgfmt in CLI.

Quote from Mercurial Mercurial Formatting Translations:

short description, starting with lowercase

    Larger description of the command. Each paragraph should be word-wrapped
    at 70 characters and indented with 4 spaces.

    Paragraphs are separated by a single empty line. Use a single space
    between sentences.

5,610

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

Since the FA Extension Repo gets updated once in a way, it is useful to have some announcements about such releases and updates.

Attached is the list of updates monitored for just over a month.

5,611

(3 replies, posted in Announcements)

The 32 files fixed upto HG 3218 since the release of FA v2.3.15 is zipped and attached to this post. No DB changes. Just overwrite existing files in webroot down.

The patch set is necessary to partake of the latest dashboard module and theme.

5,612

(8 replies, posted in Report Bugs here)

Thanks Joe. HG 3196 fixes it. Your cast fix is elegant:

$sql = "UPDATE ".TB_PREF.$table." SET inactive = "
        . ((int)$status)." WHERE $key=".db_escape($id);

The list of tables and fields that have a non integer primary key or multiple keys and having field name "inactive" are:

Table Name      Primary Key      Field Type
chart_class      cid                     varchar(3)
chart_master   account_code    varchar(15)
chart_types     id                      varchar(10)
currencies        curr_abbrev      char(3)
item_units       abbr                     varchar(20)
locations          loc_code           varchar(5)
stock_master   stock_id            varchar(20)

cust_branch     branch_code, debtor_no       int(11), int(11)

It is the last one above that is worrisome as the function used assumes a single primary key only. Kindly test what happens when same debtor is in multiple branches (or multiple debtors for same branch) and it is sought to make inactive a certain branch_code/debtor_no combination only.

5,613

(8 replies, posted in Report Bugs here)

Roles and Permissions issue?
Should the statement be to set inactive=0 instead of inactive=''?

Offending code is at lines 56-61 in includes/db/sql_functions.inc:

function update_record_status($id, $status, $table, $key) {
    $sql = "UPDATE ".TB_PREF.$table." SET inactive = "
        . db_escape($status)." WHERE $key=".db_escape($id);
        
      db_query($sql, "Can't update record status");
}

Beware of legacy issues of if and when the column changed to be integer and whether all such tables have the same field type for field name inactive.

There are a total of 31 tables having inactive tinyint(1) and none having a field name of inactive with any other field type. Extensions are another matter though and whether they use this function here is also to be checked especially if they are not tinyint(1) or any int() for that matter.

Therefore it can be safely be changed to:

function update_record_status($id, $status, $table, $key) {
    $sql = "UPDATE ".TB_PREF.$table." SET inactive = " . $status+0
                . " WHERE $key=".db_escape($id);
        
      db_query($sql, "Can't update record status");
}

5,614

(5 replies, posted in Reporting)

Mockup of desired report would be useful along with name of report that nearly fits the bill.

Extensions cannot have their variables in the config.php.
It should be a flag in the extension itself that probably gets into the sysprefs table or extension's table.

Make sure that there is enough space in the reports (forced / default landscape?) and what fields can be dispensed with and list the mockup screenshot.

Lines 100 - 117 in sales/includes/db/sales_order_db.inc

    if ($loc_notification == 1 && count($st_ids) > 0)
    {
        require_once($path_to_root . "/reporting/includes/class.mail.inc");
        $company = get_company_prefs();
        $mail = new email($company['coy_name'], $company['email']);
        $from = $company['coy_name'] . " <" . $company['email'] . ">";
        $to = $loc['location_name'] . " <" . $loc['email'] . ">";
        $subject = _("Stocks below Re-Order Level at " . $loc['location_name']);
        $msg = "\n";
        for ($i = 0; $i < count($st_ids); $i++)
            $msg .= $st_ids[$i] . " " . $st_names[$i] . ", " . _("Re-Order Level") . ": " . $st_reorder[$i] . ", " . _("Below") . ": " . $st_num[$i] . "\n";
        $msg .= "\n" . _("Please reorder") . "\n\n";
        $msg .= $company['coy_name'];
        $mail->to($to);
        $mail->subject($subject);
        $mail->text($msg);
        $ret = $mail->send();
    }

The file class.mail.inc is included in only 2 files, one above and the other is reporting/includes/pdf_report.inc where mail sending code is present.

Implementation of the phpmailer class would require the patching of the said class.mail.inc file.

You can create the modules/_cache/extn-extver-extbuild/_init/config file along with a list of files in the extension and their sha1sums in modules/_cache/extn-extver-extbuild/_init/files and see if it shows up.

Alternatively create your own repo and place your packages in it and change the repo access details in version.php. It hasn't been made easy to get all the files from the repo as the scripts were not deemed ready for distribution yet.

Contact me offline if you want it.

Possibly a GitHub repo may be the answer for manual extension installs. The Linux ar command is used to create the pkg and possibly sign them and hence the ~data file is not extractable in Windows using 7-Zip.

Thanks Joe. HG Changeset 3195 does the job.

5,620

(6 replies, posted in FA Modifications)

Updated the Wiki with a HOWTO for manual install and language extension creation. An offline PDF version is also available.

Attached the en_IN package for inclusion in the FA Repo.

Edit the lang/installed_languages.inc file and include the following array element into the $installed_languages array (take care of the array index assumed 1 here):

  1 => 
  array (
    'code' => 'en_IN',
    'name' => 'English (IN)',
    'package' => 'en_IN',
    'encoding' => 'iso-8859-1',
    'version' => '2.3.15-1',
    'path' => 'lang/en_IN',
  ),

5,621

(2 replies, posted in Report Bugs here)

Which version of FA are you using?

Lines 881 to 896 in ui_input.inc are:

function inactive_control_cell($id, $value, $table, $key)
{
    global    $Ajax;

    $name = "Inactive". $id;
    $value = $value ? 1:0;

    if (check_value('show_inactive')) {
        if (isset($_POST['LInact'][$id]) && (get_post('_Inactive'.$id.'_update') || 
            get_post('Update')) && (check_value('Inactive'.$id) != $value)) {
            update_record_status($id, !$value, $table, $key);
        }
        echo '<td align="center">'. checkbox(null, $name, $value, true, '', "align='center'")
             . hidden("LInact[$id]", $value, false) . '</td>';    
    }
}

Your inverted ternery code - $value = $value ? 0:1; - will toggle the status.

5,622

(6 replies, posted in FA Modifications)

Hi Joe,

Encapsulate the attached en_IN file for use with FA as a pkg.

5,623

(2 replies, posted in Setup)

Put in too much into the wiki over time - too much to copy over.....- too familiar with the wiki - please take care of it!

It would be nicer to view all prices in same units of qty and currency for comparison and listed sorted in ascending prices!

where is the reminder function?