Fixed bug in reallocation payments during purchase invoice edition.
[fa-stable.git] / purchasing / includes / db / invoice_db.inc
index 3bd100302c7860aacad78f9f08bd9be0a400a049..aee0bfcce7ab478afb5e30da8c23d41a6be008f8 100644 (file)
@@ -135,7 +135,7 @@ function add_supp_invoice(&$supp_trans)
        $tax_total = 0;
     $taxes = $supp_trans->get_taxes($supp_trans->tax_group_id);
        if ($trans_no) {
-               $allocs = get_payments_for($trans_no, $trans_type); // save allocations
+               $allocs = get_payments_for($trans_no, $trans_type, $supp_trans->supplier_id); // save allocations
                void_transaction($trans_type, $trans_no, Today(), _("Document reentered."));
                $Refs->restore_last($trans_type, $trans_no);
        } else
@@ -354,7 +354,7 @@ function add_supp_invoice(&$supp_trans)
                        }
                        add_or_update_purchase_data($supp_trans->supplier_id, $entered_grn->item_code, $entered_grn->chg_price); 
                }
-
+               update_purchase_value($entered_grn->item_code, $entered_grn->chg_price * $ex_rate);
                add_supp_invoice_item($trans_type, $invoice_id, $entered_grn->item_code,
                        $entered_grn->item_description, 0,      $entered_grn->chg_price, $line_tax/$entered_grn->this_quantity_inv,
                        $entered_grn->this_quantity_inv, $entered_grn->id, $entered_grn->po_detail_item, "");
@@ -367,8 +367,9 @@ function add_supp_invoice(&$supp_trans)
 
        $Refs->save($trans_type, $invoice_id, $supp_trans->reference);
 
-       if ($supp_trans->src_docs)
+       if (count($supp_trans->src_docs) == 1)
        {
+               $invoice_no = key($supp_trans->src_docs);
                $invoice_alloc_balance = get_supp_trans_allocation_balance(ST_SUPPINVOICE, $supp_trans->src_docs);
                if ($invoice_alloc_balance > 0) 
                {       //the invoice is not already fully allocated 
@@ -392,11 +393,7 @@ function add_supp_invoice(&$supp_trans)
                }
        }
 
-//_vd($allocs);
-       reallocate_payments($invoice_id, ST_SUPPINVOICE, $date_, $to_allocate, $allocs);
-//_vd(get_payments_for($sales_order, ST_PURCHORDER));
-//_vd(get_payments_for($invoice_id, ST_SUPPINVOICE));
-//exit;
+       reallocate_payments($invoice_id, ST_SUPPINVOICE, $date_, $to_allocate, $allocs, $supp_trans->supplier_id);
        $supp_trans->trans_no = $invoice_id;
        hook_db_postwrite($supp_trans, $supp_trans->trans_type);
     commit_transaction();
@@ -495,8 +492,9 @@ function read_supp_invoice($trans_no, $trans_type, &$supp_trans)
                }
                else
                {
-                       $supp_trans->add_gl_codes_to_trans($details_row["gl_code"], get_gl_account_name($details_row["gl_code"]), 0, 0,
-                                       $details_row["FullUnitPrice"], $details_row["memo_"], $details_row["dimension_id"], $details_row["dimension2_id"]);
+                       $supp_trans->add_gl_codes_to_trans($details_row["gl_code"], get_gl_account_name($details_row["gl_code"]), 
+                               $details_row["dimension_id"], $details_row["dimension2_id"],
+                                       $details_row["FullUnitPrice"], $details_row["memo_"]);
                }
             }
                        $supp_trans->tax_overrides = get_tax_overrides($trans_type, $trans_no);