Did you replace "0, 0" with "$dimension_id, $dimension2_id" ?
Or did you put in some $info[] element?
401 10/04/2021 05:34:22 pm
Re: Saving dimension id with Customer registeration (3 replies, posted in Modules Add-on's)
402 10/04/2021 05:25:39 pm
Re: Saving dimension id with Customer registeration (3 replies, posted in Modules Add-on's)
At the time the API was framed, dimensions may not have been available for customers.
I expect you are referring to line 111.
403 10/04/2021 05:18:53 pm
Re: Withdraw the cash directly from the company for personal use (10 replies, posted in Banking and General Ledger)
If the monies do not comeback to the company then it will be wrong to allow it as an advance.
The monies withdrawn then are of an expenditure nature as it will not come back. In such a case, it must be charged to an expense account that is legitimately for the company to incur although the director may be the one that is being reimbursed or authorised for the transaction.
404 09/29/2021 04:29:22 am
Re: Withdraw the cash directly from the company for personal use (10 replies, posted in Banking and General Ledger)
Debit Cash A/c
Credit Director Current A/c
405 09/29/2021 04:25:45 am
Re: How can i retain the session for atleast 24 hours (2 replies, posted in FA Modifications)
After code changes, close all browser instances, clear cache and try again.
406 09/29/2021 04:22:34 am
Re: Customer trial balance (1 replies, posted in Reporting)
Edit the said report and place it in the company/#/reporting folder for the appropriate company#.
407 09/29/2021 04:21:40 am
Re: Organization-wide Role hierarchy (3 replies, posted in Setup)
Use a CRM like vTigerCRM and map the account codes of FA into it.
408 08/29/2021 04:42:24 pm
Re: Logo on invoices in RTL (2 replies, posted in FA Modifications)
The LTR version is attached where the Company Name follows the logo. What do you want to do?
409 08/29/2021 04:41:22 pm
Topic: Logo on invoices in RTL (2 replies, posted in FA Modifications)
@hannah: I tried many times to make logo little down in the invoice , I can't
Please can you show me which file and line i have to edit..?
410 08/29/2021 02:03:22 pm
Re: BUG in Inventory Valuation Report (2 replies, posted in Reporting)
@joe: run into this issue?
411 08/29/2021 01:58:27 pm
Re: REQUIRE SOME MODIFICATION IF POSSIBLE (3 replies, posted in FA Modifications)
Quotations is a special form of Invoice and hence it should be done in the same manner. State your need very specifically and post your bounty in the Job Offers board.
412 08/22/2021 05:19:17 am
Re: Remnant Data Show up in New Sales Direct Sales Invoice (13 replies, posted in Report Bugs here)
Should this need a company level flag in sys_prefs?
413 08/22/2021 05:12:18 am
Re: Import Multiple Journal Entries - nothing imported (7 replies, posted in Modules Add-on's)
Try and let us know what results you get.
414 08/19/2021 04:09:45 am
Re: Securing the login form with the CAPTCHA system. (2 replies, posted in FA Modifications)
Checkout Secuimage CAPTCHA with FA at:
https://frontaccounting.com/punbb/viewtopic.php?id=3341
415 08/19/2021 03:36:23 am
Re: Import Multiple Journal Entries - nothing imported (7 replies, posted in Modules Add-on's)
In gl/includes/db/gl_db_banking.inc there is a function write_bank_transaction() that may a clue to what changed since 27th Oct 2010 when the said function name was changed in FA v2.3 RC3.
The original function was:
//----------------------------------------------------------------------------------
// Add bank payment or deposit to database.
//
// $from_account - bank account id
// $item - transaction cart (line item's amounts in bank account's currency)
// $person_type_id - defines type of $person_id identifiers
// $person_id - supplier/customer/other id
// $person_detail_id - customer branch id or not used
//
// returns an array of (inserted trans type, trans no)
function add_bank_transaction($trans_type, $from_account, $items, $date_,
$person_type_id, $person_id, $person_detail_id, $ref, $memo_, $use_transaction=true)
{
global $Refs, $SysPrefs;
// we can only handle type 1 (payment)and type 2 (deposit)
if ($trans_type != ST_BANKPAYMENT && $trans_type != ST_BANKDEPOSIT)
display_db_error("Invalid type ($trans_type) sent to add_bank_transaction");
$do_exchange_variance = false;
$exchanged = false;
if ($use_transaction)
begin_transaction();
$currency = get_bank_account_currency($from_account);
$bank_gl_account = get_bank_gl_account($from_account);
// the gl items are already inversed/negated for type 2 (deposit)
$total_amount = $items->gl_items_total();
if ($person_type_id == PT_CUSTOMER)
{
// we need to add a customer transaction record
// convert to customer currency
$cust_amount = exchange_from_to($total_amount, $currency, get_customer_currency($person_id), $date_);
// we need to negate it too
$cust_amount = -$cust_amount;
$trans_no = write_customer_trans($trans_type, 0, $person_id, $person_detail_id, $date_,
$ref, $cust_amount);
}
elseif ($person_type_id == PT_SUPPLIER)
{
// we need to add a supplier transaction record
// convert to supp currency
$supp_amount = exchange_from_to($total_amount, $currency, get_supplier_currency($person_id), $date_);
// we need to negate it too
$supp_amount = -$supp_amount;
$trans_no = add_supp_trans($trans_type, $person_id, $date_, '',
$ref, "", $supp_amount, 0, 0);
}
else
{
$trans_no = get_next_trans_no($trans_type);
$do_exchange_variance = $SysPrefs->auto_currency_revaluation();
if ($do_exchange_variance)
$trans_no1 = get_next_trans_no(ST_JOURNAL);
}
// do the source account postings
add_bank_trans($trans_type, $trans_no, $from_account, $ref,
$date_, -$total_amount,
$person_type_id, $person_id,
$currency,
"Cannot insert a source bank transaction");
$total = 0;
foreach ($items->gl_items as $gl_item)
{
$is_bank_to = is_bank_account($gl_item->code_id);
if ($trans_type == ST_BANKPAYMENT AND $is_bank_to)
{
// we don't allow payments to go to a bank account. use transfer for this !
display_db_error("invalid payment entered. Cannot pay to another bank account", "");
}
// do the destination account postings
$total += add_gl_trans($trans_type, $trans_no, $date_, $gl_item->code_id,
$gl_item->dimension_id, $gl_item->dimension2_id, $gl_item->reference,
$gl_item->amount, $currency, $person_type_id, $person_id);
if ($is_bank_to)
{
add_bank_trans($trans_type, $trans_no, $is_bank_to, $ref,
$date_, $gl_item->amount,
$person_type_id, $person_id, $currency,
"Cannot insert a destination bank transaction");
if ($do_exchange_variance)
{
add_exchange_variation($trans_no1, $date_, $is_bank_to, $gl_item->code_id,
$currency, $person_type_id, $person_id);
}
}
// store tax details if the gl account is a tax account
$amount = $gl_item->amount;
$ex_rate = get_exchange_rate_from_home_currency($currency, $date_);
add_gl_tax_details($gl_item->code_id, $trans_type, $trans_no, -$amount,
$ex_rate, $date_, $memo_);
}
// do the source account postings
add_gl_trans($trans_type, $trans_no, $date_, $bank_gl_account, 0, 0, $memo_,
-$total, null, $person_type_id, $person_id);
if ($do_exchange_variance)
{
if ($exchanged || add_exchange_variation($trans_no1, $date_, $from_account, $bank_gl_account,
$currency, $person_type_id, $person_id))
{
$ref1 = $Refs->get_next(ST_JOURNAL);
$Refs->save(ST_JOURNAL, $trans_no1, $ref1);
add_audit_trail(ST_JOURNAL, $trans_no1, $date_);
}
}
add_comments($trans_type, $trans_no, $date_, $memo_);
$Refs->save($trans_type, $trans_no, $ref);
add_audit_trail($trans_type, $trans_no, $date_);
if ($use_transaction)
commit_transaction();
return array($trans_type, $trans_no);
}
and that got changed then to
//----------------------------------------------------------------------------------
// Add bank payment or deposit to database.
//
// $from_account - bank account id
// $item - transaction cart (line item's amounts in bank account's currency)
// $person_type_id - defines type of $person_id identifiers
// $person_id - supplier/customer/other id
// $person_detail_id - customer branch id or not used
//
// returns an array of (inserted trans type, trans no)
//
// FIXME -revise code for update case
//
function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $date_,
$person_type_id, $person_id, $person_detail_id, $ref, $memo_, $use_transaction=true)
{
global $Refs, $SysPrefs;
// we can only handle type 1 (payment)and type 2 (deposit)
if ($trans_type != ST_BANKPAYMENT && $trans_type != ST_BANKDEPOSIT)
display_db_error("Invalid type ($trans_type) sent to add_bank_transaction");
$do_exchange_variance = false;
$exchanged = false;
if ($use_transaction)
begin_transaction();
if ($trans_no)
clear_bank_transaction($_SESSION['pay_items']->trans_type, $_SESSION['pay_items']->order_id);
$currency = get_bank_account_currency($from_account);
$bank_gl_account = get_bank_gl_account($from_account);
// the gl items are already inversed/negated for type 2 (deposit)
$total_amount = $items->gl_items_total();
if ($person_type_id == PT_CUSTOMER)
{
// we need to add a customer transaction record
// convert to customer currency
$cust_amount = exchange_from_to($total_amount, $currency, get_customer_currency($person_id), $date_);
// we need to negate it too
$cust_amount = -$cust_amount;
$trans_no = write_customer_trans($trans_type, $trans_no, $person_id, $person_detail_id, $date_,
$ref, $cust_amount);
}
elseif ($person_type_id == PT_SUPPLIER)
{
// we need to add a supplier transaction record
// convert to supp currency
$supp_amount = exchange_from_to($total_amount, $currency, get_supplier_currency($person_id), $date_);
// we need to negate it too
$supp_amount = -$supp_amount;
$trans_no = write_supp_trans($trans_type, $trans_no, $person_id, $date_, '',
$ref, "", $supp_amount, 0, 0);
}
else
{
if (!$trans_no)
$trans_no = get_next_trans_no($trans_type);
$do_exchange_variance = $SysPrefs->auto_currency_revaluation();
if ($do_exchange_variance)
$trans_no1 = get_next_trans_no(ST_JOURNAL);
}
// do the source account postings
add_bank_trans($trans_type, $trans_no, $from_account, $ref,
$date_, -$total_amount,
$person_type_id, $person_id,
$currency,
"Cannot insert a source bank transaction");
$total = 0;
foreach ($items->gl_items as $gl_item)
{
$is_bank_to = is_bank_account($gl_item->code_id);
if ($trans_type == ST_BANKPAYMENT AND $is_bank_to)
{
// we don't allow payments to go to a bank account. use transfer for this !
display_db_error("invalid payment entered. Cannot pay to another bank account", "");
}
// do the destination account postings
$total += add_gl_trans($trans_type, $trans_no, $date_, $gl_item->code_id,
$gl_item->dimension_id, $gl_item->dimension2_id, $gl_item->reference,
$gl_item->amount, $currency, $person_type_id, $person_id);
if ($is_bank_to)
{
add_bank_trans($trans_type, $trans_no, $is_bank_to, $ref,
$date_, $gl_item->amount,
$person_type_id, $person_id, $currency,
"Cannot insert a destination bank transaction");
if ($do_exchange_variance)
{
add_exchange_variation($trans_no1, $date_, $is_bank_to, $gl_item->code_id,
$currency, $person_type_id, $person_id);
}
}
// store tax details if the gl account is a tax account
$amount = $gl_item->amount;
$ex_rate = get_exchange_rate_from_home_currency($currency, $date_);
add_gl_tax_details($gl_item->code_id, $trans_type, $trans_no, -$amount,
$ex_rate, $date_, $memo_);
}
// do the source account postings
add_gl_trans($trans_type, $trans_no, $date_, $bank_gl_account, 0, 0, $memo_,
-$total, null, $person_type_id, $person_id);
if ($do_exchange_variance)
{
if ($exchanged || add_exchange_variation($trans_no1, $date_, $from_account, $bank_gl_account,
$currency, $person_type_id, $person_id))
{
$ref1 = $Refs->get_next(ST_JOURNAL);
$Refs->save(ST_JOURNAL, $trans_no1, $ref1);
add_audit_trail(ST_JOURNAL, $trans_no1, $date_);
}
}
add_comments($trans_type, $trans_no, $date_, $memo_);
$Refs->save($trans_type, $trans_no, $ref);
add_audit_trail($trans_type, $trans_no, $date_);
if ($use_transaction)
commit_transaction();
return array($trans_type, $trans_no);
}
and now in v2.4.10+ stands at:
//----------------------------------------------------------------------------------
// Add bank payment or deposit to database.
//
// $from_account - bank account id
// $items - transaction cart (line amounts in bank account's currency); negative for deposit
// $person_type_id - defines type of $person_id identifiers
// $person_id - supplier/customer/other id
// $person_detail_id - customer branch id or not used
// $settled_amount - settled amount in AR/AP (if applicable) in customer/supplier currency (always non-negative number)
//
// returns an array of (inserted trans type, trans no)
//
// FIXME -revise code for update case
//
function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $date_,
$person_type_id, $person_id, $person_detail_id, $ref, $memo_, $use_transaction=true, $settled_amount=null)
{
global $Refs, $SysPrefs;
// we can only handle type 1 (payment)and type 2 (deposit)
if ($trans_type != ST_BANKPAYMENT && $trans_type != ST_BANKDEPOSIT)
display_db_error("Invalid type ($trans_type) sent to add_bank_transaction");
$do_exchange_variance = false;
if ($use_transaction)
begin_transaction();
$args = func_get_args(); if (count($args) < 11) $args[] = true;
$args = (object)array_combine(array('trans_type', 'trans_no', 'from_account', 'items', 'date_',
'person_type_id', 'person_id', 'person_detail_id', 'ref', 'memo_', 'use_transaction', 'settled_amount'),
$args);
hook_db_prewrite($args, $trans_type);
$aid = 0;
if ($trans_no) {
$old_trans = $trans_no;
$Refs->restore_last($trans_type, $trans_no);
$aid = has_attachment($trans_type, $trans_no);
} else
$old_trans = false;
$currency = get_bank_account_currency($from_account);
$bank_gl_account = get_bank_gl_account($from_account);
// the gl items are already inversed/negated for type 2 (deposit)
$total_amount = $items->gl_items_total();
if ($person_type_id == PT_CUSTOMER)
{
// we need to add a customer transaction record
// convert to customer currency
if (!isset($settled_amount)) // leaved for backward/ext compatibility
$cust_amount = exchange_from_to(abs($total_amount), $currency, get_customer_currency($person_id), $date_);
else
$cust_amount = $settled_amount;
if ($trans_type == ST_BANKPAYMENT)
$cust_amount = -$cust_amount;
$trans_no = write_customer_trans($trans_type, 0, $person_id, $person_detail_id, $date_,
$ref, $cust_amount);
if ($old_trans)
move_trans_attachments($trans_type, $old_trans, $trans_no);
}
elseif ($person_type_id == PT_SUPPLIER)
{
// we need to add a supplier transaction record
// convert to supp currency
if (!isset($settled_amount)) // leaved for for backward/ext compatibility
$supp_amount = exchange_from_to(abs($total_amount), $currency, get_supplier_currency($person_id), $date_);
else
$supp_amount = $settled_amount;
if ($trans_type == ST_BANKPAYMENT)
$supp_amount = -$supp_amount;
$trans_no = write_supp_trans($trans_type, 0, $person_id, $date_, '',
$ref, "", $supp_amount, 0, 0);
if ($old_trans)
move_trans_attachments($trans_type, $old_trans, $trans_no);
}
else
{
$trans_no = get_next_trans_no($trans_type);
$do_exchange_variance = $SysPrefs->auto_currency_revaluation();
if ($do_exchange_variance)
$trans_no1 = get_next_trans_no(ST_JOURNAL);
}
if ($aid != 0)
{
$row = get_attachment($aid);
update_attachment($aid, $row['type_no'], $trans_no, $row['description'],
$row['filename'], $row['unique_name'], $row['filesize'], $row['filetype']);
}
// do the source account postings
add_bank_trans($trans_type, $trans_no, $from_account, $ref,
$date_, -$total_amount,
$person_type_id, $person_id,
$currency,
"Cannot insert a source bank transaction");
$total = 0;
foreach ($items->gl_items as $gl_item)
{
$is_bank_to = is_bank_account($gl_item->code_id);
if ($trans_type == ST_BANKPAYMENT AND $is_bank_to)
{
// we don't allow payments to go to a bank account. use transfer for this !
display_db_error("invalid payment entered. Cannot pay to another bank account", "");
}
// do the destination account postings
$total += add_gl_trans($trans_type, $trans_no, $date_, $gl_item->code_id,
$gl_item->dimension_id, $gl_item->dimension2_id, $gl_item->reference,
$gl_item->amount, $currency, $person_type_id, $person_id);
if ($is_bank_to)
{
add_bank_trans($trans_type, $trans_no, $is_bank_to, $ref,
$date_, $gl_item->amount,
$person_type_id, $person_id, $currency,
"Cannot insert a destination bank transaction");
if ($do_exchange_variance)
{
add_exchange_variation($trans_no1, $date_, $is_bank_to, $gl_item->code_id,
$currency, $person_type_id, $person_id);
}
}
// store tax details if the gl account is a tax account
$amount = $gl_item->amount;
$ex_rate = get_exchange_rate_from_home_currency($currency, $date_);
add_gl_tax_details($gl_item->code_id, $trans_type, $trans_no, -$amount,
$ex_rate, $date_, $memo_);
}
// do the source account postings
add_gl_trans($trans_type, $trans_no, $date_, $bank_gl_account, $gl_item->dimension_id, $gl_item->dimension2_id, $memo_,
-$total, null, $person_type_id, $person_id);
if ($do_exchange_variance)
{
add_exchange_variation($trans_no1, $date_, $from_account, $bank_gl_account,
$currency, $person_type_id, $person_id);
}
add_comments($trans_type, $trans_no, $date_, $memo_);
$Refs->save($trans_type, $trans_no, $ref);
add_audit_trail($trans_type, $trans_no, $date_);
// old transaction can be voided only after new transaction is entered,
// otherwise the operation could fail for cash accounts due to temporary negative balance
if ($old_trans)
{
$msg = void_transaction($trans_type, $old_trans, $date_, _("Document reentered."));
if ($msg)
{
display_error($msg);
return false;
}
}
$args->trans_no = $trans_no;
hook_db_postwrite($args, $trans_type);
if ($use_transaction)
commit_transaction();
return array($trans_type, $trans_no);
}
Hence hash an appropriate add_bank_transaction() function from the above in the said file that spews the stated error and you should be good to go.
Dimensions are now set, the second argument is now a trans_no and a settled_amount is the last optional argument.
416 08/19/2021 03:27:00 am
Re: Remnant Data Show up in New Sales Direct Sales Invoice (13 replies, posted in Report Bugs here)
@joe: Is this a real issue?
Looks like some cache settings in the browser need to be cleared.
417 08/15/2021 09:20:44 am
Re: Remnant Data Show up in New Sales Direct Sales Invoice (13 replies, posted in Report Bugs here)
Link not accessible
418 08/15/2021 09:17:59 am
Re: Import Multiple Journal Entries - nothing imported (7 replies, posted in Modules Add-on's)
I hope you are using the module from my repo at:
https://github.com/apmuthu/FA24extensions/tree/master/Extensions/import_multijournalentries
The function add_bank_transaction() was a native function in FA but not available in both v2.3.26 and in any v2.4.x versions now.
419 08/15/2021 09:00:35 am
Re: config.default.inc error on startup (3 replies, posted in Report Bugs here)
Line 153 in config.default.inc:
$UTF8_fontfile = $_SESSION['language']->dir == 'ltr' ? "FreeSans.ttf" : "zarnormal.ttf"; // for Arabic Dashboard
should be replaced with:
$UTF8_fontfile = @$_SESSION['language']->dir == 'ltr' ? "FreeSans.ttf" : "zarnormal.ttf"; // for Arabic Dashboard
for now till a better solution presents itself.
420 08/14/2021 02:04:39 am
Topic: config.default.inc error on startup (3 replies, posted in Report Bugs here)
The recent change to config.default.inc fails when starting up FA where $_SESSION['language'] is not yet defined then in line 153. That line config.default.inc:
$UTF8_fontfile = $_SESSION['language']->dir == 'ltr' ? "FreeSans.ttf" : "zarnormal.ttf"; // for Arabic Dashboard
should be replaced in the config.php with:
$UTF8_fontfile = "FreeSans.ttf";
//$UTF8_fontfile = "zarnormal.ttf"; // for Arabic Dashboard
or suppress the error with "@" prefix to the original line or make sure it "isset" before testing it with some default.
421 08/14/2021 01:48:36 am
Re: Unable to void a Sales Invoice (10 replies, posted in Report Bugs here)
@joe: can this get into the core?
422 08/14/2021 01:44:25 am
Re: Custom Labels (2 replies, posted in Modules Add-on's)
Changing the language files to replace all instances of customers with donors and then re-compiling them would be easiest. Otherwise, confusion would ensue where it is referred to as donors only in places where such changes have been made. Restricting such changes to just those files in the new module may be one such option provided that outputs of standard core functions in FA used in the new module are not touched and acceptable as is.
423 08/14/2021 01:42:14 am
Re: Shipment Tracking Module (15 replies, posted in Modules Add-on's)
Which version of FA and platform versions are you on? Linux/Windows/Mac, PHP, MySQL versions.
424 08/14/2021 01:39:38 am
Re: Multi-currency purchase order (2 replies, posted in Accounts Payable)
Hedge / book the currencies in your home currency and prepare the purchase order accordingly with the quoted currencies in the memo field and book the costs in the local currency.
Alternatively, break up the purchase order into separate currency ones and live within standard FA.
425 08/11/2021 04:09:20 pm
Re: ERROR Report GL Trans (show warning sign) (18 replies, posted in Reporting)
Lines 38 and 40 in js/utils.js need this change.