"Cannot insert a source bank transaction");
// do the destination account postings
- add_gl_trans($trans_type, $trans_no, $date_, $to_account, 0, 0, "",
- -$total, null);
-
+ $total += add_gl_trans($trans_type, $trans_no, $date_, $to_account, 0, 0, "",
+ $amount, $currency);
+ /*Post a balance post if $total != 0 */
+ add_gl_balance($trans_type, $trans_no, $date_, -$total);
+
add_bank_trans($trans_type, $trans_no, $to_account, $ref,
$date_, $payment_type, $amount,
payment_person_types::misc(), "",
return 0;
}
+// Function for even out rounding problems
+function add_gl_balance($type, $trans_id, $date_, $amount, $person_type_id=null, $person_id=null)
+{
+ $amount = round($amount, user_price_dec());
+ if ($amount != 0)
+ return add_gl_trans($type, $trans_id, $date_, get_company_pref('exchange_diff_act'), 0, 0, "",
+ $amount, null, $person_type_id, $person_id, "The balanced GL transaction could not be inserted");
+ else
+ return 0;
+}
+
//--------------------------------------------------------------------------------
function get_gl_transactions($from_date, $to_date, $trans_no=0,
$supp_trans->reference, $supp_trans->supp_reference,
$invoice_items_total, $tax_total, $supp_trans->ov_discount);
+ $total = 0;
/* Now the control account */
$supplier_accounts = get_supplier_accounts($supp_trans->supplier_id);
+ $total += add_gl_trans_supplier($trans_type, $invoice_id, $date_, $supplier_accounts["payable_account"], 0, 0,
+ -($invoice_items_total + $tax_total + $supp_trans->ov_discount),
+ $supp_trans->supplier_id,
+ "The general ledger transaction for the control total could not be added");
/*Loop through the GL Entries and create a debit posting for each of the accounts entered */
between the std cost and the currency cost charged as converted at the ex rate of of the invoice is written off
to the purchase price variance account applicable to the item being invoiced.
*/
- $total = 0;
foreach ($supp_trans->gl_codes as $entered_gl_code)
{
"A general ledger transaction for the tax amount could not be added");
}
}
- add_gl_trans($trans_type, $invoice_id, $date_, $supplier_accounts["payable_account"], 0, 0, "",
- -$total, null, payment_person_types::supplier(), $supp_trans->supplier_id,
- "The general ledger transaction for the control total could not be added");
+
+ /*Post a balance post if $total != 0 */
+ add_gl_balance($trans_type, $invoice_id, $date_, -$total, payment_person_types::supplier(), $supp_trans->supplier_id);
+
add_comments($trans_type, $invoice_id, $date_, $supp_trans->Comments);
references::save_last($supp_trans->reference, $trans_type);
// Now debit creditors account with payment + discount
+ $total = 0;
$supplier_accounts = get_supplier_accounts($supplier_id);
+ $total += add_gl_trans_supplier($trans_type, $payment_id, $date_, $supplier_accounts["payable_account"], 0, 0,
+ $supp_amount + $supp_discount, $supplier_id, "", $rate);
- $total = 0;
// Now credit discount received account with discounts
if ($supp_discount != 0)
{
-$supp_amount, $supplier_id, "", $rate);
}
- add_gl_trans($trans_type, $payment_id, $date_, $supplier_accounts["payable_account"], 0, 0, "",
- -$total, null, payment_person_types::supplier(), $supplier_id);
+ /*Post a balance post if $total != 0 */
+ add_gl_balance($trans_type, $payment_id, $date_, -$total, payment_person_types::supplier(), $supplier_id);
+
/*now enter the bank_trans entry */
add_bank_trans($trans_type, $payment_id, $bank_account, $ref,
$date_, $payment_type, -($amount), payment_person_types::supplier(),
$discount_account = $company_record["default_prompt_payment_act"];
}
+ if (($discount + $amount) != 0) {
+ /* Now Credit Debtors account with receipts + discounts */
+ $total += add_gl_trans_customer(12, $payment_no, $date_,
+ $debtors_account, 0, 0, -($discount + $amount), $customer_id,
+ "Cannot insert a GL transaction for the debtors account credit", $rate);
+ }
if ($discount != 0) {
/* Now Debit discount account with discounts allowed*/
$total += add_gl_trans_customer(12, $payment_no, $date_,
"Cannot insert a GL transaction for the payment discount debit", $rate);
}
- if (($discount + $amount) != 0) {
- /* Now Credit Debtors account with receipts + discounts */
- add_gl_trans(12, $payment_no, $date_, $debtors_account, 0, 0, "",
- -$total, null, payment_person_types::customer(), $customer_id,
- "Cannot insert a GL transaction for the debtors account credit");
- }
+ /*Post a balance post if $total != 0 */
+ add_gl_balance(12, $payment_no, $date_, -$total, payment_person_types::customer(), $customer_id);
/*now enter the bank_trans entry */
add_bank_trans(12, $payment_no, $bank_account, $ref,
$credit_date, $credit_type, $write_off_acc, $branch_data);
} /*end of credit_line loop */
+ /*Post credit note transaction to GL credit debtors,
+ debit freight re-charged and debit sales */
+
+ if (($credit_note_total + $credit_note->freight_cost) != 0) {
+
+ $total += add_gl_trans_customer(11, $credit_no, $credit_date, $branch_data["receivables_account"], 0, 0,
+ -($credit_note_total + $credit_note->freight_cost + $items_added_tax + $freight_added_tax),
+ $credit_note->customer_id,
+ "The total debtor GL posting for the credit note could not be inserted");
+ }
if ($credit_note->freight_cost !=0) {
$total += add_gl_trans_customer(11, $credit_no, $credit_date, $company_data["freight_act"], 0, 0,
"A tax GL posting for this credit note could not be inserted");
}
}
- /*Post credit note transaction to GL credit debtors,
- debit freight re-charged and debit sales */
-
- if (($credit_note_total + $credit_note->freight_cost) != 0) {
+ /*Post a balance post if $total != 0 */
+ add_gl_balance(11, $credit_no, $credit_date, -$total, payment_person_types::customer(), $credit_note->customer_id);
- add_gl_trans(11, $credit_no, $credit_date, $branch_data["receivables_account"], 0, 0, "",
- -$total, null, payment_person_types::customer(), $credit_note->customer_id,
- "The total debtor GL posting for the credit note could not be inserted");
- }
add_comments(11, $credit_no, $credit_date, $credit_note->Comments);
if ($trans_no == 0) {
} /*quantity dispatched is more than 0 */
} /*end of delivery_line loop */
+ if (($items_total + $charge_shipping) != 0) {
+ $total += add_gl_trans_customer(10, $invoice_no, $date_, $branch_data["receivables_account"], 0, 0,
+ ($items_total + $charge_shipping + $items_added_tax + $freight_added_tax),
+ $invoice->customer_id, "The total debtor GL posting could not be inserted");
+ }
+
if ($charge_shipping != 0) {
$total += add_gl_trans_customer(10, $invoice_no, $date_, $company_data["freight_act"], 0, 0,
-$invoice->get_tax_free_shipping(), $invoice->customer_id,
}
}
- /*Post debtors transaction to GL debit debtors, credit freight re-charged and credit sales */
- if (($items_total + $charge_shipping) != 0) {
- add_gl_trans(10, $invoice_no, $date_, $branch_data["receivables_account"], 0, 0, "",
- -$total, null, payment_person_types::customer(), $invoice->customer_id,
- "The total debtor GL posting could not be inserted");
- }
+ /*Post a balance post if $total != 0 */
+ add_gl_balance(10, $invoice_no, $date_, -$total, payment_person_types::customer(), $invoice->customer_id);
+
add_comments(10, $invoice_no, $date_, $invoice->Comments);
if ($trans_no == 0) {