@kvvaradha, you are right. Thanks alot

I got the problem. One of my customization was basically causing the issue. I must have checked that without customized code.

Regards.

I increased the max_execution_time so the problem mitigated but what if the records increases?

When querying one month transactions for a given gl account, the Ajax does not return any record because the number of records are around 300. What could be the solution for this? Can't we have multiple pages in the return of Query?

Modify the Code block at Line 182 on gl_bank.php with code below. This is to ensure the Edit of Bank Payment.

while ($row = db_fetch($result)) {
                if (is_bank_account($row['account']) && $_GET['ModifyPayment']=='Yes' && $row['amount'] > 0) //Added block by faisal
                {
                    $cart->add_gl_item( $row['account'], $row['dimension_id'],
                        $row['dimension2_id'], $row['amount'], $row['memo_']);
                }
                elseif (is_bank_account($row['account']) ) {
                    // date exchange rate is currenly not stored in bank transaction,
                    // so we have to restore it from original gl amounts
                    $ex_rate = $bank_trans['amount']/$row['amount'];
                }
                 else {
                    $cart->add_gl_item( $row['account'], $row['dimension_id'],
                        $row['dimension2_id'], $row['amount'], $row['memo_']);
                }
            }

Add this line at Line 411 in gl_bank.php

hidden('ModifyPayment',@$_GET['ModifyPayment']); //added by faisal
hidden('NewPayment',@$_GET['NewPayment']); //added by faisal

includes/ui/gl_bank_ui.inc at Line 253 (ignore this code set in above post#1)

if (@$_GET['NewPayment'] == 'Yes' || @$_POST['NewPayment'] == 'Yes' || @$_GET['ModifyPayment'] == 'Yes' || @$_POST['ModifyPayment'] == 'Yes' )
            $skip_bank = !$_SESSION["wa_current_user"]->can_access('SA_BANK2BANK');
    else {
        $skip_bank = true;
    }

    echo gl_all_accounts_list('code_id', null, $skip_bank, true); // modified by faisal

great smile

I have customized the code as below

includes/access_levels.inc Line 269

'SA_BANK2BANK' => array(SS_GL|13, _("Bank Transfer Through Bank Payment")), //added by faisal

includes/ui/gl_bank_ui.inc at Line 253

if (@$_GET['NewPayment'] == 'Yes') //Added by faisal
        $skip_bank = !$_SESSION["wa_current_user"]->can_access('SA_BANK2BANK');
    else {
        $skip_bank = true;
    }

    echo gl_all_accounts_list('code_id', null, $skip_bank, true); // modified by faisal

gl/includes/db/gl_db_banking.inc at Line 477

        if ($trans_type == ST_BANKPAYMENT AND $is_bank_to && !$_SESSION["wa_current_user"]->can_access('SA_BANK2BANK'))

Line numbers may vary.

Please test and comment.

I think members are not sure how to test it. Let me explain it.

Suppose if the Next Available Reference for Journal Entry is JE222 in Transaction References. Change it to JE220. Now if you will make the Journal Entry you will get the message "Reference already in use".

Now place the above code in core and test now. You will see that the message will not appear and the system will itself increment the values and record the transaction with Reference JE222.

I hope now someone can test it and give feedback to @joe.

I am surprised. No one in FA Community facing the problem of reference increment sad

could anyone test this?

I have set the cols='35' and rows='3' and now its OK for me

I have tested the recommended code of @kvvaradha. It is working fine and data is correctly displayed even in reports. The only problem mentioned in this screen short

The TextArea is encompassing the second column

The following function returns a TextBox to Edit Item Description if Item is Editable. Some Item Descriptions needs to be multi lines. How can this function returns TextArea for Editable Items.

function sales_items_list_cells($label, $name, $selected_id=null, $all_option=false, $submit_on_change=false, $editkey=false)
{
    if ($editkey)
        set_editor('item', $name, $editkey);

    if ($label != null)
        echo "<td>$label</td>\n";
    echo sales_items_list($name, $selected_id, $all_option, $submit_on_change,
        '', array('cells'=>true));
}

Can't we use both? i.description and s.long_description?

I want to add another column in Drop Down List in following function i.e. s.long_description. What changes shall I make

function sales_items_list($name, $selected_id=null, $all_option=false,
    $submit_on_change=false, $type='', $opts=array())
{
    // all sales codes
    $sql = "SELECT i.item_code, i.description, c.description, count(*)>1 as kit,
             i.inactive, if(count(*)>1, '0', s.editable) as editable
            FROM
            ".TB_PREF."stock_master s,
            ".TB_PREF."item_codes i
            LEFT JOIN
            ".TB_PREF."stock_category c
            ON i.category_id=c.category_id
            WHERE i.stock_id=s.stock_id
      AND mb_flag != 'F'";


    if ($type == 'local')    { // exclude foreign codes
        $sql .=    " AND !i.is_foreign";
    } elseif ($type == 'kits') { // sales kits
        $sql .=    " AND !i.is_foreign AND i.item_code!=i.stock_id";
    }
    $sql .= " AND !i.inactive AND !s.inactive AND !s.no_sale";
    $sql .= " GROUP BY i.item_code";

    return combo_input($name, $selected_id, $sql, 'i.item_code', 'c.description',
        array_merge(
          array(
            'format' => '_format_stock_items',
            'spec_option' => $all_option===true ?  _("All Items") : $all_option,
            'spec_id' => ALL_TEXT,
            'search_box' => true,
            'search' => array("i.item_code", "c.description", "i.description"),
            'search_submit' => get_company_pref('no_item_list')!=0,
            'size'=>15,
            'select_submit'=> $submit_on_change,
            'category' => 2,
            'order' => array('c.description','i.item_code'),
            'editable' => 30,
            'max' => 255
          ), $opts), $type == 'kits' ? $type : "stock_sales" );
}

I have tried one solution. I request you to please analyze it critically

Modified the below function in includes/references.inc

at Line 228

function is_new_reference(&$ref, $type, $trans_no=0) //modified by faisal
    {
        $old_ref = $ref;
        while ($this->_get($type,$trans_no,$ref))
        {
            $ref = $this->_increment($ref);
        }

        if ($old_ref!=$ref)
            $this->reflines->save_next($type,$ref);

        return !$this->_get($type, $trans_no, $ref);
    }

At Line 428

function is_new_reference(&$ref, $type, $trans_no=0)//Modified by faisal
{
    global $Refs;

    $old_ref = $ref;
    while (!$Refs->is_new_reference($ref,$type,$trans_no))
    {
        $ref = $Refs->_increment($ref);
    }

    if ($old_ref!=$ref)
        $Refs->reflines->save_next($type,$ref);
    
    return $Refs->is_new_reference($ref, $type, $trans_no);
}

includes/data_checks.inc at Line 666

function check_reference(&$reference, $trans_type, $trans_no=0, $context=null, $line=null)

the code for it has been placed in the forum and possibly in the wiki adn the end user can make a choice.

@apmuthu can you refer the wiki or post where this code is available for this solution.

393

(8 replies, posted in FA Modifications)

Quite difficult for me to edit Javascript sad

This topic has been discussed in various posts  but now I want to discuss a different scope.

Any Transaction form picks the value of next reference from Transaction References table and Upon new record creation it sets the next reference in Transaction References table.

This process is very natural but sometimes, not always but rarely the value doesn't increment in Transaction References. The User see the message "The reference is already in use " . Then the user has to manually increment the value in Transaction References.

I could not find the reason why the increment stucks but it is not always like this.

What could be the fix for this problem?

395

(6 replies, posted in Setup)

@davidkumi, you need to change the core as below

Paste the code below at Line 660 in includes\datachecks.inc

if (!$_SESSION['wa_current_user']->can_access('SA_EDITOWNRSTRANS'))
    {
        $audit = get_audit_trail_last($trans_type, $trans_no);

        if ($_SESSION['wa_current_user']->user == $audit['user'])
        {
            if (!$msg)
                $msg = '<b>'._("You have no edit access to transactions created by YOURSELF.").'</b>';
            display_note($msg);
            display_footer_exit();
        }
    }

Add the code below at Line 131 in includes/access_levels.inc

  'SA_EDITOWNTRANS' => array(SS_SPEC|7, _("Edit Own transactions")), 

Hope this works

396

(8 replies, posted in FA Modifications)

Yes, I want to input time manually. What could be the changes?

397

(8 replies, posted in FA Modifications)

I tried changing the datatype of the field from date -> datetime in mysql. It gives me two options (ON UPDATE) AND (CURRENT TIMESTAMP). I tried both cases

After changing this data type the behaviour of FA remains unchanged while the value being stored at database is like this
2018-07-04 00:00:00

No input is taken from FA for the Time.

398

(8 replies, posted in FA Modifications)

Using Date_row function with date picker can we input both Date and Time?

399

(5 replies, posted in Setup)

Yes this is Necessary. We shall add this in the Core

400

(3 replies, posted in Setup)

Is it possible to connect FA to remote Database? I have many companies on my installation but I want only 2 companies to connect to remote database. Is it possible?