return $diff;
}
//----------------------------------------------------------------------------------------
-
function add_supp_invoice(&$supp_trans)
{
global $Refs;
foreach ($taxes as $n => $taxitem)
$item_added_tax += isset($taxitem['Override']) ? $taxitem['Override'] : round2($taxitem['Value'], user_price_dec());
}
-
if ($trans_type == ST_SUPPCREDIT)
{
// let's negate everything because it's a credit note
$Refs->save($trans_type, $invoice_id, $supp_trans->reference);
- if (count($supp_trans->src_docs) == 1)
+ if ($trans_type==ST_SUPPCREDIT && count($supp_trans->src_docs) == 1) // for credit issued to single invoice autoallocate amount
{
$invoice_no = key($supp_trans->src_docs);
- $invoice_alloc_balance = get_supp_trans_allocation_balance(ST_SUPPINVOICE, $supp_trans->src_docs);
+ $invoice_alloc_balance = get_supp_trans_allocation_balance(ST_SUPPINVOICE, $invoice_no);
if ($invoice_alloc_balance > 0)
{ //the invoice is not already fully allocated
update_supp_trans_allocation(ST_SUPPINVOICE, $invoice_no, $supp_trans->supplier_id);
update_supp_trans_allocation(ST_SUPPCREDIT, $invoice_id, $supp_trans->supplier_id);
- exchange_variation(ST_SUPPCREDIT, $invoice_id, ST_SUPPINVOICE, $supp_trans->src_docs, $date_,
+ exchange_variation(ST_SUPPCREDIT, $invoice_id, ST_SUPPINVOICE, $invoice_no, $date_,
$allocate_amount, PT_SUPPLIER);
}
}
$details_row["description"],
$details_row['qty_recd'],
$details_row['quantity_inv'],
- $details_row["quantity"], 0, $details_row["FullUnitPrice"],
+ ($trans_type == ST_SUPPCREDIT ? -1 : 1) * $details_row["quantity"], 0, $details_row["FullUnitPrice"], // SUPPCREDIT quantities are stored negative in database
0, 0);
}
else