VPN?
htaccesspwd?
351 11/04/2021 04:34:57 am
Re: Username login security? (12 replies, posted in Setup)
352 10/19/2021 12:49:00 pm
Re: Menu for reduce inventory (1 replies, posted in Items and Inventory)
Wastage as negative item entry.
353 10/19/2021 12:48:00 pm
Re: Withdraw the cash directly from the company for personal use (10 replies, posted in Banking and General Ledger)
Just taking from his profits from time to time.
Keep debiting his account for each withdrawal and then credit his profits from the business into it from time to time or at the end of he fiscal.
354 10/05/2021 02:23:12 pm
Re: Entering Begining Balance (3 replies, posted in Banking and General Ledger)
Use a Journal Entry with all opening balances as of the last day of the previous finscal year and close that and ll will be fine for the current fiscal year.
355 10/04/2021 05:34:22 pm
Re: Saving dimension id with Customer registeration (3 replies, posted in Modules Add-on's)
Did you replace "0, 0" with "$dimension_id, $dimension2_id" ?
Or did you put in some $info[] element?
356 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.
357 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.
358 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
359 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.
360 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#.
361 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.
362 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?
363 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..?
364 08/29/2021 02:03:22 pm
Re: BUG in Inventory Valuation Report (2 replies, posted in Reporting)
@joe: run into this issue?
365 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.
366 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?
367 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.
368 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
369 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.
370 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.
371 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
372 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.
373 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.
374 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.
375 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?