Hello,

I will be thankfull if any body explain how to use : Font Utility package

I read the readme.txt but I couldn't arrive to apply it.


khaled

hi,

I am very glad that you are thinking to include this approach in 2.3.

RE : CHAR 15

0. The philosophy behind it is described as below :
   
    suppose you have an account number 11006050

    practically it is composed as :        1  100  1060

                   where :  1      ->  refer to the Class  account it belongs
                                100   ->  refer to the Group account it belongs
                                1060 ->  refer to the Account

             
1. Practically for a single company : CHAR 11      is sure enough.

2. Using CHAR 15 will be helfull in the case of having a company with multiple
    branshes. In this case,
        -  the first 11 char will be used to the company account
        -  and the last 4 char are to be used for the company branshes.
        -  in such a case , company with multiple branshes, you will have many
           accounts with the same numbers :
                                    11001060-010
                                    11001060-020
                                    11001060-030
        Later on, and when you decide print " Balance Sheet " of any Bransh, it
        can be isolated easely by queyring the database to the selected bransh
        (010  for example). A similar approach can also be developed to the
        global company Balance Sheet.


Thanks,


Khaled

Errata :

* includes/ui/ui_lists.inc
       'order' => array('account_code','type.id'),   
                      // FA Original :  array('type.id','account_code'),
       
       should keep it as FA Original : array('type.id','account_code'),


khaled

Hello,

Find bellow a simple way to let the outstanding FA package support characters ID's in the Classes/Types Accounts.


1 - use en_US-Demo.sql  & en_US-New.sql Supporting Classes/Types Characters
     id's. This will be done easly by changing :

       - all varchar(11) should be changed to varchar(15) in the .sql file

       - CREATE TABLE `0_chart_class` (
         `cid` varchar(3) NOT NULL default '',
         `class_name` varchar(60) NOT NULL default '',
         `ctype` tinyint(1) NOT NULL default '0',
         `inactive` tinyint(1) NOT NULL default '0',
          PRIMARY KEY  (`cid`)
          ) TYPE=MyISAM  ;

       - CREATE TABLE `0_chart_master` (
         `account_code` varchar(15) NOT NULL default '',
         `account_code2` varchar(15) default '',
         `account_name` varchar(60) NOT NULL default '',
         `account_type` varchar(10) NOT NULL default '0',
         `inactive` tinyint(1) NOT NULL default '0',
          PRIMARY KEY  (`account_code`),
          KEY `account_code` (`account_code`),
          KEY `account_name` (`account_name`)
          ) TYPE=MyISAM  ;

        - CREATE TABLE `0_chart_types` (
         `id` varchar(10) NOT NULL default '',
         `name` varchar(60) NOT NULL default '',
         `class_id` varchar(3) NOT NULL default '0',
         `parent` varchar(10) NOT NULL default '-1',
         `inactive` tinyint(1) NOT NULL default '0',
           PRIMARY KEY  (`id`),
          KEY `name` (`name`)
          ) TYPE=MyISAM;

2 - do those simple modifications in the bellow files :

    * gl/includes/db/gl_db_account_types.inc

          - function add_account_type
            $sql = "INSERT INTO ".TB_PREF."chart_types (id, name, class_id, parent)
          VALUES (".db_escape($id).", ".db_escape($name).", ".db_escape
                                    ($class_id).", ".db_escape($parent).")";         
                     // FA original was  : VALUES ( $id,.......

          - function get_account_types
               $sql .= " ORDER BY class_id, id, parent ";
                    // FA Original : " ORDER BY class_id, id"

          - function get_account_classes
               $sql .= " ORDER BY ctype,cid";         
                   //  FA Original : " ORDER BY cid"

    * gl/manage/gl_account_classes.php
            1. comment the following lines:
      /* if (!is_numeric($_POST['id']))
        {
              display_error( _("The account class ID must be numeric."));
               set_focus('id');
                          return false;
         }
                */
            2. in the delete check :
         $sql= "SELECT COUNT(*) FROM ".TB_PREF."chart_types
                          WHERE class_id=".db_escape($selected_id)." ";
                             // FA Original:  class_id=$selected_id

     * gl/manage/gl_account_types.php
            1. comment the following lines:
    /*   if (!input_num('id'))
          {
            display_error( _("The account id must be an integer and cannot
                                                 be empty."));
            set_focus('id');
            return false;
           }
                */
            2. minor changes:
                 - $th = array(_("Group ID"), _("Group Name"), _("Subgroup Of"),
                                    _("Class Type"), "", "");    // khaled : ID ; Name

                 - if ($myrow["parent"] == "0")
                        //FA Original :   if ($myrow["parent"]== ANY_NUMERIC)
     
      * gl/manage/gl_accounts.php
    - text_row_ex(_("Account Code:"), 'account_code', 15);     
                       //FA Original was 11
                -  text_row_ex(_("Account Code 2:"), 'account_code2', 15);   
                      //FA Original was 11

       * includes/ui/ui_lists.inc
       'order' => array('account_code','type.id'),   
                      // FA Original :  array('type.id','account_code'),


Should also change in config.php : $accounts_alpha = 1;

I hope you will find those modifications usefull.

Finally, This is how I use FA & in every new version I do those modifications.

Regards,


Khaled

Hello,

believe me joe, classes/types are better interpreted by the accountants when

they are characters. I think it is widely used in europe and middle east areas.

besides it facilitate the logic of hierarchy sub levels.

For myself, I made the necessary modifications. it was not so complex.
I'm always ready to send it to you if you find the idea interesting to include it in next versions.

Khaled

Hello Joe,

Can you give us please a simple example of the new Group Accounts Multi Level Feature.


And how we can profit from the new facility of :
  " GL Account Types (Groups) allows up to 10 digits  " ?


From other side is it possible from your side to include an option for changing :

id (chart_types) to Character in Config.php ?


Thanks

khaled

Thanks,


I will move to Ver 2.2.2



khaled

which file I need to download and update ?

khaled

Hello,

I hope you are all fine in this new year.

Does the Journal Entry Modifications was resolved (Amplification of the figures) ?

I noticed that is resolved in the demos or what ?

Thanks.


Khaled

If you check "Peachtree Accounting " software, you will find that they use 15 Char for the accounts length. Assuming that, you may use the 1st 9-11 for the account & the last 4 for referring to Company Branches/Departments :

ex : 600123-xx-yy   where --> xx : Branch    ;  yy : Department

For this reason I prefer to use characters for the account nb, although the numeric values are more practical
--------------------------------------------------------
RE : Account Types & being Characters :
Generally, the Accountants prefer that the Initials of an active account nb are the same as their Account Types Parent group. This will help them to easily remember and classify. This is why also I prefer it to be Characters and not numeric.

ex:   1 Assets   ( Class)
         
           10 Current Assets  (Type)
                   1060 Checking Account (Account)
                   1065 Petty Cash  (Account)
           11 Non Fixed Assets  (Type)
           12 Inventory Assets  (Type)
           13 Capital Assets (Type)

--------------------------------------------------------
RE : Account Classes :
Being numeric does not infect any concept.
--------------------------------------------------------

Anyhow I don't know what it affects FA if we do changes like I proposed. But for myself I did the modifications and I didn't find problems.

/Khaled

Hi,

I will change my discussion to Wiki.

Anyhow, I Found on the net, a free open sourced javascript tree menu which I hope it will helps :

File Download page :
http://www.softcomplex.com/products/tigra_tree_menu/download.html


Documentation Page :
http://www.softcomplex.com/products/tigra_tree_menu/docs/

/khaled

Hi,


I think we can reach the same Idea in a simpler way If we Control the way that gl_all_accounts_list display the ComboBox :

I suggest that if you can display the content of the ComboBox as a hierarchical tree with ( +/- ) sign at the right of the Group/Types level. So, when you click the ( + ) sign, it will expand its sub accounts & if you click the ( - ) it will hide them.

This will be Just a looks like : "Hierarchical Tree Menu" embedded in the ComboBox Accounts List where the Types=Level1 Menu & Accounts=Level2 Menu

In this case as an end user, you have a full control for Minimizing/Limiting the displayed accounts of the COA in the ComboBox.

By doing the approach like I suggest now, we won't need at all to modify the structure of the 0_chart_types table. And perhaps we escape from the complexity
who may cause.

Finally by searching the net, what I mentioned is known as a " Tree ComboBox "
you may see a demo example at this link :

http://demo.koolphp.net/Examples/KoolComboBox/Advances/With_TreeView/index.php

Practically, we will need only 2 levels :
- Type/Group Level & Accounts Level
- Class Levels will be an extra option. Generally it is not needed when working
  on data entry transactions


Khaled

Hello,

Idea :

Control the Displayed Accounts in the " Combo Box " Accounts Lists


Way of :

in 0_chart_types add a Field : ShowSubAccounts   default 'Yes'

Now, when you want to call any " Combo Box " Accounts List:

1. Call a new function : Ex. ShowGroupAccounts
    - Default : Show All Types/Accounts Sub Accounts
    - Select What Types/Groups Account to hide in the " Combo Box " Accounts
      Lists

2. Call function "gl_all_accounts_list" based on what returns the function
    ShowGroupAccounts

Advantage :

The main concept of this turn around is to provide a way to control any
Journal Voucher Data Entry Accounts Lists.

This will help to :
- develop unlimited web pages based on : gl_journal.php
- control the length of any Accounts List who may become annoying when the
  COA is too long

Example of a direct application (Embed a simple PAYROLL approach based on accountants view):

Type/Group Account : 60 Wages & Salaries

Accounts         : 60000 W & S General
                        60001 Empl_1
                        60002 Empl_2
                        60003 Empl_3
                        60004 Empl_4
                        ......... etc


Regards,


Khaled

thanks for your responses:

note : I use PHP 5.2.8 & Mysql 5.1.3. w/ WAMP

The initial Problem I faced w/ JV entries, was in the past versions:

1. When I enter the JV's and go to JV's Inquity i do not see what I entered p1-2.

2. I made changes as mentioned in p.3 before. it works then.


Now I rechecked the original copy of Ver 2.2, and saw that is ok, no need at all of that. No need to comment # lines # 28 in : audit_trail_db.inc , as I did before.


Exactly as " Janusz " said.


khaled

Hello,

I faced a problem with JV Inquiries :

1. when I enter any JV via |: Transactions / Journal Entry Web Page

2. I could not see it in :         Inquiries and Reports / Journal Inquiry Web Page

3. to overpass this problem, I commented the lines # 28 in " audit_trail_db.inc "
    as bellow :

    // all audit records beside latest one should have gl_seq set to NULL
    // to avoid need for subqueries (not existing in MySQL 3) all over the code
    //$sql = "UPDATE ".TB_PREF."audit_trail SET gl_seq = NULL". " WHERE type=".db_escape($trans_type)." AND trans_no=".db_escape($trans_no)." AND id!=".db_insert_id();
    //    db_query($sql, "Cannot update audit gl_seq");

4. it works ok, but I faced another problem :

5.   if you enter a simple JV via : Transactions / Journal Entry Web Page

6.  Go to : Inquiries and Reports / Journal Inquiry Web Page

7. check the Amount of the transaction you will find it ok.

8. if you Try to modify it via the editor as permitted, then add any additional
   transaction to this JV

9. Go back to :  Inquiries and Reports / Journal Inquiry Web Page

10. You will see now that the Amount of the voucher displayed in the JV inquiry
      page is amplified.

7. If you try to modify it again, the result will be another amplification of the
    Amount of the JV in the inquiry page.

Please check. because it is very important when you enter JV's to have the option to review on screen  to modify it on needed demand.

I noticed that, If I check the PDF report of the JV transactions, they appear ok.
I think it means that the problem is hoovering around the way the Amount of the JV is displayed in the "JV inquiry " web page.


Regards,


Khaled

Hello,

I wish from your side, to expand the possibility of using " Characters " when defining the ID numbers in Classes & Types accounts tables.

This will help efficiently in developing reports by grouping the descendent accounts under any group type or class using simple SQL statements.

In this case , using RepGen 2.2 will be very simple to explore & report any grouping of accounts transactions & data.


I am sure that with such simple modification
Note when using character types in :

chart_class (cid)   
I suggest : cid varchar(3)   

chart_types (id ; class_id)   
I suggest : id varchar(8)   & class_id varchar(3)   

chart_master (account_code ; account_type)         
I suggest : account_code varchar(15) & account_type varchar(8)

So you may build an interrelated hierarchical tree for your chart of account who can be accessed at any level you want from a simple SQL Statement using RepGen2.2.

I am sure it will be a wonderfull solution for reporting.

ex. :

1        Class
11       Type
111     Sub-Type
11111  Account



Regards,


Khaled

42

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

Nice & Efficient Work Joe.

khaled

43

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

Hello Joe,

in RepGen, if you try to go :

Account List [Run] ==> then next if you try to :

press the  Button [ Test the SQL Statement ], you will find a Bug.

And this is how I fix it in 2 steps :


1. Replace in : repgen_create.php ( line 203 #  )

from :
-------

$txt = "<input type='button' name='test_sel' value='".TEST_SEL.
    "' onclick=\"openWindow('".REPGENDIR."/repgen_test_sel.php"."', 'SQL');\" >";

to :
----

$txt = "<input type='button' name='test_sel' value='".TEST_SEL.
    "' onclick=\"openWindow('".REPGENDIR."/repgen_test_sel.php?var101=".$sql."', 'SQL');\" >";



2. Add in :    repgen_test_sel.php  ( line 22 # )

$sql =$_GET['var101']; 


So the Bug is fixed at this stage.
----------------------------------------------------------

But, If you enter a New SQL statement in the textarea & try to

press the  Button [ Test the SQL Statement ], you will find that now , the $sql

variable was not passed through ( var101 ) to the pop up window like if it treats

$sql = "".

Instead of that, if you press the [Page Definition for Strings], you will find

that the page is directed to a new page and $sql now is treated well.

I could not find the clue. Can you help resolving this bug please.



Regards,


Khaled

Hello,

I think it is a nice trick to lok arround acocunts.

somehow, if it is a little bit flexible I do not know if you can define it as mini-sub account of a GL Account.

if so, you can do a wide choices of manipulations :

ex: gives a tag for each employee where this taged account transactions will be directly upward posted to the payroll account. (OR perhaps no, it is not the case)

anyhow, you are doing an extrem work with this FA.

Regards,


Khaled

Hi,

can you some how post an example of using the tags.

khaled

Hello,

I tried to go to the new feature : Dimension tags web page
( http://localhost/FA22RC/admin/tags.php?type=dimension)

I got this error :

( ! ) Notice: Undefined index: type in D:\wamp\www\FA22RC\admin\tags.php on line 14
Call Stack
# Time Memory Function Location
1 1.0035 110928 {main}( ) ..\tags.php:0

( ! ) Notice: Use of undefined constant TAG_ACCOUNT - assumed 'TAG_ACCOUNT' in D:\wamp\www\FA22RC\admin\tags.php on line 14
Call Stack
# Time Memory Function Location
1 1.0035 110928 {main}( ) ..\tags.php:0

I could not resolve it.

Regards,

Khaled

Thanks a lot

I will update you.


regards,


khaled

ok, thanks.

I check it and it is simple to immitate it.

From other side and talking about extensions/modules :

is there any Payroll System you may advise to let me Try integrate it in FA.

I will be thankfull.


Regards,



Khaled

Hi,

When duplicating the ID's of Classes, Types or Account

the system do not display the msg :

"The entered information is a duplicate. Please go back and enter different values."

as expected and as it was in FA215


Kalido

Hello,

What is the : " Access Levels Extensions "

and what is its job and how can we use it.

================================================
I tried to install : WIKI, REPGEN via the Install/Update Extensions.

WIKI, ok it works.

REPGEN :

in the Folder repgen, and in all of it (where ever it exists )
I changed all the : $page_security  = 9 (or 15) ;
to                      :  $page_security = 'SA_OPEN';

also, I changed :     page("Report Generator REPGEN",true);
in the file :  repgen_test_sel.php
to
page("Report Generator REPGEN);

the generation of the reports works fine.

///////////////////////////////////////////////////////////////////////////////////////
A single error I could not resolve is and I don't know if it affects some how:

the main web page of RepGen :

http://localhost/FA220Beta2-AR/modules/REPGEN/repgen_select.php?

is Open with the following error ( I use IE ver 8) :
=================================================
Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; OfficeLiveConnector.1.3; .NET CLR 3.0.30618; .NET CLR 3.5.30729; OfficeLivePatch.1.3)
Timestamp: Fri, 2 Oct 2009 21:19:35 UTC

Message: Invalid argument.
Line: 68
Char: 1
Code: 0
URI: http://localhost/FA220Beta2-AR/company/0/js_cache/utils.js

===================================================

When I checked with : " Google Chrome ver 3.0.195.24 "

I did not notice any error when openig the page.




Regards,


khaled