Only first item in Supplier Credit Notes had tax added. Fixed.
[fa-stable.git] / admin / db / voiding_db.inc
index 17d7a8daceb58b2ca57210f50b0abf76574ecc26..5711a0e41eb3ffb3a1f8f95c08e018cf20135c16 100644 (file)
@@ -29,17 +29,21 @@ function void_transaction($type, $type_no, $date_, $memo_)
                        void_journal_trans($type, $type_no);
                        break;
 
-               case ST_BANKPAYMENT : // it's a payment
                case ST_BANKDEPOSIT : // it's a deposit
                case ST_BANKTRANSFER : // it's a transfer
+                       if (!check_void_bank_trans($type, $type_no))
+                               return false;
+               case ST_BANKPAYMENT : // it's a payment
                        if (!exists_bank_trans($type, $type_no))
                                return false;
                        void_bank_trans($type, $type_no);
                        break;
 
+               case ST_CUSTPAYMENT : // it's a customer payment
+                       if (!check_void_bank_trans($type, $type_no))
+                               return false;
                case ST_SALESINVOICE : // it's a customer invoice
                case ST_CUSTCREDIT : // it's a customer credit note
-               case ST_CUSTPAYMENT : // it's a customer payment
                case ST_CUSTDELIVERY : // it's a customer dispatch
                        if (!exists_customer_trans($type, $type_no))
                                return false;
@@ -65,8 +69,11 @@ function void_transaction($type, $type_no, $date_, $memo_)
                        break;
 
                case ST_PURCHORDER : // it's a PO
-               case ST_SUPPRECEIVE : // it's a GRN
                        return false;
+
+               case ST_SUPPRECEIVE : // it's a GRN
+                       if (exists_grn_on_invoices($type_no))
+                               return false;
                case ST_SUPPINVOICE : // it's a suppler invoice
                case ST_SUPPCREDIT : // it's a supplier credit note
                case ST_SUPPAYMENT : // it's a supplier payment
@@ -105,8 +112,8 @@ function void_transaction($type, $type_no, $date_, $memo_)
 
        // only add an entry if it's actually been voided
        add_audit_trail($type, $type_no, $date_, _("Voided.")."\n".$memo_);
-       add_voided_entry($type, $type_no, $date_, $memo_);
        $Refs->restore_last($type, $type_no);
+       add_voided_entry($type, $type_no, $date_, $memo_);
        return true;
 }