6,026

(8 replies, posted in Setup)

Thanks Janusz for the P+L clarification. What about the default "Not Assigned" choice for Setup -> System and General GL Setup form ?

Since the chart of accounts across all countries have the same table schema isn't it advisable to bundle the "DROP TABLE", "CREATE TABLE" and some of the common "INSERT INTO" SQL statements into a single database.sql file with the implementation specific "INSERT INTO" SQL data statements (bearing the COA data / demo data) being separated into another sql file?

As there is no provision on this board to attach COAs, I am unable to provide the SG and IN COA files for v2.3.11+ with the new SQL statement order format.

Caveat - the use of UTF8, Latin1 or other collation may warrant a set of ALTER TABLE statements for certain implementations if the proposed order and file separation is used.

Thankyou Januz for the code integration.

Provision of a dynamically linked snapshot in mercurial is trivial and will save the need for installing and operating Mercurial just to get the code. Anyway, as the code changes are few and far between and your regular release schedule takes care of the security fixes it's okay.

The lack of a comparision between WebERP and FA is a pain to explain to every potential end user that FA is an Accounts focussed fork of WebERP.

A small history page with sister forks would be useful to compare notes between projects.

The Debian OpenVZ template is a boon to install many FA sites in a trice each with it's own root access and linux virtual machine. I had provided the ProxMox VE project with FA Templates till v2.2.11 and as there was no real feedback in that community for FA, I stopped updating it.

6,029

(8 replies, posted in Setup)

What is the purpose of the  chart table's account_code2 field?
Must it be unique?

6,030

(8 replies, posted in Setup)

Must the COA have a separate Profit and Loss Account in the chart master or will it be dynamically generated using the chart class of Income, Expense?

Please place a "Not Assigned" dropdown choice in the Setup -> System and General GL Setup form. The label "Profit/Loss Year:' in the said form is confusing

6,031

(27 replies, posted in Dimensions)

An explanation of what tags are and how they fit in here would be nice.

Please let me know if you are interested in providing the OpenVZ template from www.gnuacademy.org on the FA Site. The template will be 180 MB in size. It will also contain the latest SG and IN COAs. The template requires no installation after starting the container.

Thanks Joe, will await your including it in the main code base.

Please publish the API for providing COA from third party sites.

A nightly snapshot of the Mercurial Repo would make it easier for users to test and provide feedback easily.

Is there any PRO version of FA? Is there any intention to do so if one does not exist currently?

Please provide a link on the FA site for the Payroll plugin for FA hosted at Google:

http://code.google.com/p/fa-payroll-module/

Is there any page to show the differences between WebERP and FA?

A fourth date format like 31-Aug-2012 to be represented in the config.php as DDMMMYYYY or DDMmmYYYY or if only 8 chars are allowed then DDmmYYYY would be nice:

Some errors with form field names like TransToDate and OrdersToDate have been experienced when the following 4 files were looked into for minor changes:

pdf_report.inc
excel_report.inc
ui_view.inc
date_functions.inc

In fact the last file above was attempted to be modified in 3 places in vain with:

1.

return $day.$sep.date('M', $year.$month.$day).$sep.$year;

2.

elseif (strlen($date_) == 9)
    {
        if ($how == 3) {
            $day = substr($date_,0,2);
            $month = date('m', strtotime(substr($date_,3,3)));
            $year = substr($date_,7,4);
        } else return 0;
    }

3.

        elseif ($how == 2) // YYYYMMDD
        list($year, $month, $day) = explode($sep, $date_);
    else // $how == 3, DDMmmYYYY
        list($year, $month, $day) = explode($sep, date('Y-m-d', strtotime($date_)));

This issue has been comprehensively fixed where you can enter the nickname of the company and not the number of the company in the array (anyone can just enter numbers sequentially from 0 onwards...).

Look up:
http://mantis.frontaccounting.com/view.php?id=1768
and get the code from there.

Just provided the following:

Company Creation for externally created blank database fix:
http://mantis.frontaccounting.com/view.php?id=1767

Login Company Select box to Edit Box privacy feature fix
http://mantis.frontaccounting.com/view.php?id=1768

Contact Festus at www.GNUAcademy.org for an OpenVZ template with all the very latest Mercurial build and these fixes.

Use a point of sale like www.phppointofsale.com or it's opensource equivalent at https://sourceforge.net/projects/opensourcepos/

Here is a HOWTO to:
Enabling Repository Snapshots in Mercurial Browser at SF.net

http://galfar.vevb.net/wp/2011/enabling-repository-snapshots-in-mercurial-browser-at-sf-net/

It is very simple and will help get the latest snapshot of even just a single subfolder instead of downloading the whole archive.

6,039

(4 replies, posted in Installation)

Thanks!

Just uploaded to:
Help.CompanySetup
Help.Items
Help.ItemCategories

6,040

(4 replies, posted in Installation)

I registered to edit the FAWiki. I am able to edit text. When I try to upload a screenshot - PNG / JPG file, I am asked for a username and password again which does not seem to accept the password I logged in with. How do we obtain file upload privileges for the FAWiki which is grossly lacking in screenshots and help info at the moment?

else {
                document.forms[0].action='create_coy.php?c=u&id=" . $n . "&fn=' + document.forms[0].uploadfile.value
            }

should actually be

else {
                document.forms[0].action='create_coy.php?c=u&id=" . $n
            }

This feature update has been merged into the FA trunk today. The version number for the admin/create_coy.php is 1.13 now. Thanks Joe.

As the admpassword form field is to be posted in another company's database, the following code needs to be appended around the end of the if statement in line 141 or so in admin/create_coy.php file:

    } else {
        if ($_GET['c'] = 'u') {
            $conn = $db_connections[$id];
            if (($db = db_create_db($conn)) == 0)
            {
                display_error(_("Error connecting to Database: ") . $conn['dbname'] . _(", Please correct it"));
                $error = true;
            } else {
                db_query("UPDATE ".$conn['tbpref']."users set password = '".md5($_POST['admpassword']). "' WHERE user_id = 'admin'");
            }
        }
    }

The function db_create_db() creates a new db only if it does not exist, else merely connects to it.

Attached is the corrected file.

Refer to the lines 303-312 in admin/create_coy.php :-
        <script language='javascript'>
        function updateCompany() {
            if (document.forms[0].uploadfile.value!='' && document.forms[0].dbname.value!='') {
                document.forms[0].action='create_coy.php?c=u&ul=1&id=" . $n . "&fn=' + document.forms[0].uploadfile.value
            }
            else {
                document.forms[0].action='create_coy.php?c=u&id=" . $n . "&fn=' + document.forms[0].uploadfile.value
            }
            document.forms[0].submit()
        }

The else statement alludes to uploadfile.value when it is non-existent.

When we login as admin into the default company and attempt to go to Setup -> Create/Update companies and choose to edit one of the non-default companies and we attempt to change that company's Administrative Password, the new password does not enter that company's database. The status of such a submission however states that the change has been successful even though it is not.

However, when we login to a specific company as admin and attempt to change the admin user's password, we are able to do so.

6,046

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

Hack so far - still insert, edit and delete do not work.

The last part of the repgen_strings.php now stands as:

$k = 0;   // line-number (for row color)
$kk = 0; // For input field name serial
while (list ($key,$val) = each($rec_ar))
{
    $h = explode("|",$val);
    for ($i = 0; $i < 16; $i++)
    {
        if (!isset($h[$i]))
            $h[$i] = "";
    }
    $it_typ=$h[0];
    $it_art = $h[1];
    $it_font = $h[2];
    $it_fontsize = $h[3];
    $it_number = $h[4];
    $it_x1 = $h[5];
    $it_y1 = $h[6];
    if (in_array($it_typ, array("String","DB","Term","Block","Textarea")))
        $it_str = $h[7];
    $it_ord = $h[8];
    $it_from = $h[10];
    $it_to = $h[11];
    $it_total = $h[12];
    $it_o_score = $h[13];
    $it_u_score = $h[14];
    $it_bold = $h[15];

    // <!-- existing items -->
   
    $hiddenattrs  = hidden("id1", $id_new, false);
    $hiddenattrs .= hidden("attrib", $val, false);
    $hiddenattrs .= hidden("id_new", $id_new, false);
    $hiddenattrs .= hidden("sql", $sql, false);
    $hiddenattrs .= hidden("long", $long, false);

    alt_table_row_color($k);
    label_cell($it_typ);
    label_cell($it_art);
    label_cell($it_font);
    label_cell($it_fontsize);
    label_cell($it_ord);
    label_cell($it_number);
    label_cell($it_x1);
    label_cell(($it_y1 != "" ? $it_y1 : "."));
    label_cell(($it_total != "" ? $it_total : "."));
    if (in_array($it_typ, array("Line","Rectangle")))
        label_cell(".");
    else
    {
        if (!(empty($it_from) || empty($it_to)))
            label_cell($it_str."(".$it_from."-".$it_to.")");
        else
            label_cell($it_str);
    }
    if (in_array($it_typ,array("String","DB","Term","Block","Textarea")))
        $editbutton = submit("alter", CHANGE, false);
    else
        $editbutton = " ";
    echo "<td>\n";
    start_form(false, false, "repgen_strings.php?report_type=".$report_type, "edit");
    echo $hiddenattrs . $editbutton . submit("delete", DELETE, false);
    end_form();
    echo "</td>\n";
    end_row();
    $kk++;
}  // end of while

end_table(1);

end_page();
?>

6,047

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

As there is no Primary Key field in the xx_reports table, even DELETION will not work reliably if it does work at all.

6,048

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

Both files: /modules/repgen/repgen_strings.php and repgen_graphics.php do not have any UPDATE / REPLACE SQL query for case="alter" and hence no updations occur. Hence we will have to manually enter the item values into the table for now.

The repgen_graphics.php uses the $k row variable for the "edit" form names and this alternates between 0 and 1 as it is used for alternate row colors. Another variable should be used to serially number the form name like edit1, edit2, etc. This is totally absent in repgen_strings.php.

6,049

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

It would be nice if this board enables file attachments.

6,050

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

For a start, I have done some code cleanup for /modules/repgen/repgen_strings.php by bringing all form elements into one cell for each record. They just have the same name for each record's form.

The last empty column after "Action" is removed in Line 602 by replacing:
$th = array(IT_TYP, IT_ART, IT_FONT, IT_FONT_SIZE, IT_ORD, IT_LEN, IT_X1, IT_Y1, "Total", IT_STRING, "Action", "");
with
$th = array(IT_TYP, IT_ART, IT_FONT, IT_FONT_SIZE, IT_ORD, IT_LEN, IT_X1, IT_Y1, "Total", IT_STRING, "Action");


Then replace the snippet from "existing items" till "end of while" with:

// <!-- existing items -->

    $hiddenattrs  = hidden("id1", $id_new, false);
    $hiddenattrs .= hidden("attrib", $val, false);
    $hiddenattrs .= hidden("id_new", $id_new, false);
    $hiddenattrs .= hidden("sql", $sql,false);
    $hiddenattrs .= hidden("long", $long, false);
   
    alt_table_row_color($k);
    label_cell($it_typ);
    label_cell($it_art);
    label_cell($it_font);
    label_cell($it_fontsize);
    label_cell($it_ord);
    label_cell($it_number);
    label_cell($it_x1);
    label_cell(($it_y1 != "" ? $it_y1 : "."));
    label_cell(($it_total != "" ? $it_total : "."));
    if (in_array($it_typ, array("Line","Rectangle")))
        label_cell(".");
    else
    {
        if (!(empty($it_from) || empty($it_to)))
            label_cell($it_str."(".$it_from."-".$it_to.")");
        else
            label_cell($it_str);
    }
    if (in_array($it_typ,array("String","DB","Term","Block","Textarea")))
        $editbutton = submit("alter", CHANGE, false);
    else
        $editbutton = " ";
    echo "<td>\n";
    start_form(false, false, "repgen_strings.php?report_type=".$report_type, "edit");
    echo $hiddenattrs . $editbutton . submit("delete", DELETE, false);
    end_form();
    echo "</td>\n";

    end_row();
   
}  // end of while


The form URL is still suspect - the $report_type variable in the submit url may cause problems with the other POST variables.