Added db_write/db_void hooks.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sat, 13 Nov 2010 09:19:28 +0000 (09:19 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sat, 13 Nov 2010 09:19:28 +0000 (09:19 +0000)
17 files changed:
gl/includes/db/gl_db_banking.inc
inventory/includes/db/items_adjust_db.inc
inventory/includes/db/items_transfer_db.inc
manufacturing/includes/db/work_order_issues_db.inc
manufacturing/includes/db/work_order_produce_items_db.inc
manufacturing/includes/db/work_orders_db.inc
manufacturing/includes/db/work_orders_quick_db.inc
purchasing/includes/db/grn_db.inc
purchasing/includes/db/invoice_db.inc
purchasing/includes/db/po_db.inc
purchasing/includes/db/supp_payment_db.inc
purchasing/po_entry_items.php
sales/includes/db/payment_db.inc
sales/includes/db/sales_credit_db.inc
sales/includes/db/sales_delivery_db.inc
sales/includes/db/sales_invoice_db.inc
sales/includes/db/sales_order_db.inc

index 721bff1eb34abed556cccd099448713be56fbb8e..9d2a585d6e88187d054e1a0dd0cbf113be1abc4b 100644 (file)
@@ -87,6 +87,11 @@ function add_bank_transfer($from_account, $to_account, $date_,
        global $Refs, $SysPrefs;
        
        begin_transaction();
+       $args = func_get_args(); if (count($args) < 7) $args[] = 0;
+       $args = (object)array_combine(array('from_account', 'to_account', 'date_', 'amount',
+               'ref', 'memo_', 'charge'), $args);
+       $args->trans_no = 0;
+       hook_db_prewrite($args, ST_BANKTRANSFER);
 
        $trans_type = ST_BANKTRANSFER;
 
@@ -153,6 +158,8 @@ function add_bank_transfer($from_account, $to_account, $date_,
        $Refs->save($trans_type, $trans_no, $ref);
        add_audit_trail($trans_type, $trans_no, $date_);
 
+       $args->trans_no = $trans_no;
+       hook_db_postwrite($args, ST_BANKTRANSFER);
        commit_transaction();
 
        return $trans_no;
@@ -184,6 +191,12 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
        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'),
+               $args);
+       hook_db_prewrite($args, $trans_type);
+
        if ($trans_no)
                clear_bank_transaction($_SESSION['pay_items']->trans_type, $_SESSION['pay_items']->order_id);
 
@@ -292,6 +305,8 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
        $Refs->save($trans_type, $trans_no, $ref);
        add_audit_trail($trans_type, $trans_no, $date_);
 
+       $args->trans_no = $trans_no;
+       hook_db_postwrite($args, $trans_type);
        if ($use_transaction)
                commit_transaction();
 
@@ -302,6 +317,8 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
 function clear_bank_transaction($type, $type_no)
 {
 
+       hook_db_prevoid($type, $type_no);
+
        $sql = "DELETE FROM ".TB_PREF."bank_trans 
                WHERE type=".db_escape($type)." AND trans_no=".db_escape($type_no);
 
index ae2e25c709574014170217d6793756f780e25e58..5274584d13a35b4748d60cda53d5cce691cb8d9c 100644 (file)
@@ -16,6 +16,11 @@ function add_stock_adjustment($items, $location, $date_, $type, $increase, $refe
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('items', 'location', 'date_', 'type', 'increase',
+               'reference', 'memo_'), $args);
+       $args->trans_no = 0;
+       hook_db_prewrite($args, ST_INVADJUST);
 
        $adj_id = get_next_trans_no(ST_INVADJUST);
 
@@ -34,6 +39,8 @@ function add_stock_adjustment($items, $location, $date_, $type, $increase, $refe
        $Refs->save(ST_INVADJUST, $adj_id, $reference);
        add_audit_trail(ST_INVADJUST, $adj_id, $date_);
 
+       $args->trans_no = $adj_id;
+       hook_db_postwrite($args, ST_INVADJUST);
        commit_transaction();
 
        return $adj_id;
@@ -43,6 +50,7 @@ function add_stock_adjustment($items, $location, $date_, $type, $increase, $refe
 
 function void_stock_adjustment($type_no)
 {
+       hook_db_prevoid(ST_INVADJUST, $type_no);
        void_gl_trans(ST_INVADJUST, $type_no);
        void_stock_move(ST_INVADJUST, $type_no);
 }
index da1ceec24b43fbfb1a1c6fd52fbfd3113edf67af..5d5181f78ce89d7660123c76565e46086f107590 100644 (file)
@@ -16,6 +16,11 @@ function add_stock_transfer($Items, $location_from, $location_to, $date_, $type,
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('Items', 'location_from', 'location_to', 
+       'date_', 'type', 'reference', 'memo_'), $args);
+       $args->trans_no = 0;
+       hook_db_prewrite($args, ST_LOCTRANSFER);
 
        $transfer_id = get_next_trans_no(ST_LOCTRANSFER);
 
@@ -30,6 +35,9 @@ function add_stock_transfer($Items, $location_from, $location_to, $date_, $type,
        $Refs->save(ST_LOCTRANSFER, $transfer_id, $reference);
        add_audit_trail(ST_LOCTRANSFER, $transfer_id, $date_);
 
+       $args->trans_no = $transfer_id;
+       hook_db_postwrite($args, ST_LOCTRANSFER);
+
        commit_transaction();
 
        return $transfer_id;
@@ -94,6 +102,7 @@ function get_stock_transfer_items($trans_no)
 
 function void_stock_transfer($type_no)
 {
+       hook_db_prevoid(ST_LOCTRANSFER, $type_no);
        void_stock_move(ST_LOCTRANSFER, $type_no);
 }
 
index b9cb6e55fb8541470a53e63a5939b6358e3ae52b..28167da7da3c9b7a43354280431229af03b06b49 100644 (file)
@@ -17,6 +17,11 @@ function add_work_order_issue($woid, $ref, $to_work_order, $items, $location, $w
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('woid', 'ref', 'to_work_order', 'items', 'location', 
+               'workcentre', 'date_', 'memo_'), $args);
+       $args->trans_no = 0;
+       hook_db_prewrite($args, ST_MANUISSUE);
 
        $details = get_work_order($woid);
 
@@ -80,6 +85,8 @@ function add_work_order_issue($woid, $ref, $to_work_order, $items, $location, $w
        $Refs->save(ST_MANUISSUE, $number, $ref);
        add_audit_trail(ST_MANUISSUE, $number, $date_);
 
+       $args->trans_no = $number;
+       hook_db_postwrite($args, ST_MANUISSUE);
        commit_transaction();
 }
 
@@ -148,6 +155,7 @@ function exists_work_order_issue($issue_no)
 function void_work_order_issue($type_no)
 {
        begin_transaction();
+       hook_db_prevoid(ST_MANUISSUE, $type_no);
 
        // void the actual issue items and their quantities
        $sql = "UPDATE ".TB_PREF."wo_issue_items Set qty_issued = 0 WHERE issue_id="
index 8102c197963b6bdc97e26750cfc5ba09221d6097..9b2095c076141fdce58e949a8ab2c5ed1999d4d7 100644 (file)
@@ -14,6 +14,11 @@ function work_order_produce($woid, $ref, $quantity, $date_, $memo_, $close_wo)
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('woid', 'ref', 'quantity', 'date_', 'memo_','close_wo'),
+               $args);
+       $args->trans_no = 0;
+       hook_db_prewrite($args, ST_MANURECEIVE);
 
        $details = get_work_order($woid);
 
@@ -59,6 +64,8 @@ function work_order_produce($woid, $ref, $quantity, $date_, $memo_, $close_wo)
        $Refs->save(ST_MANURECEIVE, $id, $ref);
        add_audit_trail(ST_MANURECEIVE, $id, $date_, _("Production."));
 
+       $args->trans_no = $id;
+       hook_db_postwrite($args, ST_MANURECEIVE);
        commit_transaction();
 }
 
@@ -101,6 +108,7 @@ function exists_work_order_produce($id)
 function void_work_order_produce($type_no)
 {
        begin_transaction();
+       hook_db_prevoid(ST_MANURECEIVE, $type_no);
 
        $row = get_work_order_produce($type_no);
 
index 830b33b90ff217765fe8893301979beb4c18aadb..e39d334c8ba38177d7aae9a4cb7b84e46661a7af 100644 (file)
@@ -118,6 +118,11 @@ function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id,
                return add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $memo_, $costs, $cr_acc, $labour, $cr_lab_acc);
 
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('wo_ref', 'loc_code', 'units_reqd', 'stock_id',
+               'type', 'date_', 'required_by', 'memo_', 'costs', 'cr_acc', 'labour', 'cr_lab_acc'), $args);
+       $args->woid = 0;
+       hook_db_prewrite($args, ST_WORKORDER);
 
        add_material_cost($stock_id, $units_reqd, $date_);
 
@@ -138,6 +143,8 @@ function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id,
        $Refs->save(ST_WORKORDER, $woid, $wo_ref);
        add_audit_trail(ST_WORKORDER, $woid, $date_);
 
+       $args->woid = $woid;
+       hook_db_postwrite($args, ST_WORKORDER);
        commit_transaction();
 
        return $woid;
@@ -149,6 +156,10 @@ function update_work_order($woid, $loc_code, $units_reqd, $stock_id,
                                        $date_, $required_by, $memo_)
 {
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('woid', 'loc_code', 'units_reqd', 'stock_id',
+               'date_', 'required_by', 'memo_'), $args);
+       hook_db_prewrite($args, ST_WORKORDER);
 
        add_material_cost($_POST['old_stk_id'], -$_POST['old_qty'], $date_);
        add_material_cost($stock_id, $units_reqd, $date_);
@@ -167,12 +178,14 @@ function update_work_order($woid, $loc_code, $units_reqd, $stock_id,
        update_comments(ST_WORKORDER, $woid, null, $memo_);
        add_audit_trail(ST_WORKORDER, $woid, $date_, _("Updated."));
 
+       hook_db_postwrite($args, ST_WORKORDER);
        commit_transaction();
 }
 
 function delete_work_order($woid)
 {
        begin_transaction();
+       hook_db_prevoid(ST_WORKORDER, $woid);
 
        add_material_cost($_POST['stock_id'], -$_POST['quantity'], $_POST['date_']);
 
@@ -299,6 +312,7 @@ function work_order_update_finished_quantity($woid, $quantity, $force_close=0)
 function void_work_order($woid)
 {
        begin_transaction();
+       hook_db_prevoid(ST_WORKORDER, $woid);
 
        $work_order = get_work_order($woid);
        if (!($work_order["type"] == WO_ADVANCED))
index fe4caa51ba3c43a43bab7eee6d18556eac254ecc..1534e277a076920f6305684f63b1af0f9f8bab1e 100644 (file)
 ***********************************************************************/
 //--------------------------------------------------------------------------------------
 
-function add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $memo_, $costs, $cr_acc, $labour, $cr_lab_acc)
+function add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, 
+       $date_, $memo_, $costs, $cr_acc, $labour, $cr_lab_acc)
 {
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args();
+       $args = (object)array_combine(array('wo_ref', 'loc_code', 'units_reqd', 'stock_id',
+               'type', 'date_', 'memo_', 'costs', 'cr_acc', 'labour', 'cr_lab_acc'), $args);
+       $args->woid = 0;
+       hook_db_prewrite($args, ST_WORKORDER);
 
        // if unassembling, reverse the stock movements
        if ($type == WO_UNASSEMBLY)
@@ -81,6 +87,9 @@ function add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type,
 
        $Refs->save(ST_WORKORDER, $woid, $wo_ref);
        add_audit_trail(ST_WORKORDER, $woid, $date_,_("Quick production."));
+
+       $args->woid = $woid;
+       hook_db_postwrite($args, ST_WORKORDER);
        commit_transaction();
        return $woid;
 }
index b1ce52ae93fb2674f5b76644ab35903512218ef0..8e521288428b51b7cbdfe91681cfd9eb59522c9b 100644 (file)
@@ -85,6 +85,7 @@ function add_grn(&$po)
        $date_ = $po->orig_order_date;
 
        begin_transaction();
+       hook_db_prewrite($po, ST_SUPPRECEIVE);
 
        $grn = add_grn_batch($po->order_no, $po->supplier_id, $po->reference, $po->Location, $date_);
 
@@ -129,6 +130,8 @@ function add_grn(&$po)
 
        add_audit_trail(ST_SUPPRECEIVE, $grn, $date_);
 
+       $po->trans_no = $grn;
+       hook_db_postwrite($po, ST_SUPPRECEIVE);
        commit_transaction();
 
        return $grn;
@@ -381,6 +384,7 @@ function void_grn($grn_batch)
                return false;
 
        begin_transaction();
+       hook_db_prevoid(ST_SUPPRECEIVE, $grn_batch);
 
        void_bank_trans(ST_SUPPRECEIVE, $grn_batch, true);
        void_gl_trans(ST_SUPPRECEIVE, $grn_batch, true);
index 4094e449d101c53bd0af6f9fbbfb55fbe74c7a35..58e3aeb7bf6c7ab2c126bbc78abfb8adcb51df37 100644 (file)
@@ -119,7 +119,7 @@ function add_supp_invoice($supp_trans, $invoice_no=0) // do not receive as ref b
        //$company_currency = get_company_currency();
        /*Start an sql transaction */
        begin_transaction();
-
+       hook_db_prewrite($supp_trans, $supp_trans->trans_type);
        $tax_total = 0;
     $taxes = $supp_trans->get_taxes($supp_trans->tax_group_id);
 
@@ -345,7 +345,9 @@ function add_supp_invoice($supp_trans, $invoice_no=0) // do not receive as ref b
                        }
                }
        }
-       
+
+       $supp_trans->trans_no = $invoice_id;
+       hook_db_postwrite($supp_trans, $supp_trans->trans_type);
     commit_transaction();
 
     return $invoice_id;
@@ -447,6 +449,7 @@ function void_supp_invoice($type, $type_no)
 {
        begin_transaction();
 
+       hook_db_prevoid($type, $type_no);
        $trans = get_supp_trans($type_no, $type);
 
        void_bank_trans($type, $type_no, true);
index 859deaa78cc877e551e1df868b0f992726d7443b..64cd7d3ab0617c3d9595a259af6259d3766c6762 100644 (file)
@@ -13,6 +13,7 @@
 
 function delete_po($po)
 {
+       hook_db_prevoid($po, ST_PURCHORDER);
        $sql = "DELETE FROM ".TB_PREF."purch_orders WHERE order_no=".db_escape($po);
        db_query($sql, "The order header could not be deleted");
 
@@ -27,6 +28,7 @@ function add_po(&$po_obj)
        global $Refs;
 
        begin_transaction();
+       hook_db_prewrite($po_obj, ST_PURCHORDER);
 
      /*Insert to purchase order header record */
      $sql = "INSERT INTO ".TB_PREF."purch_orders (supplier_id, Comments, ord_date, reference, 
@@ -64,6 +66,7 @@ function add_po(&$po_obj)
        //add_comments(ST_PURCHORDER, $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments);
 
        add_audit_trail(ST_PURCHORDER, $po_obj->order_no, $po_obj->orig_order_date);
+       hook_db_postwrite($po_obj, ST_PURCHORDER);
        commit_transaction();
 
        return $po_obj->order_no;
@@ -74,6 +77,7 @@ function add_po(&$po_obj)
 function update_po(&$po_obj)
 {
        begin_transaction();
+       hook_db_prewrite($po_obj, ST_PURCHORDER);
 
     /*Update the purchase order header with any changes */
     $sql = "UPDATE ".TB_PREF."purch_orders SET Comments=" . db_escape($po_obj->Comments) . ",
@@ -109,6 +113,7 @@ function update_po(&$po_obj)
        // add_comments(ST_PURCHORDER, $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments);
 
        add_audit_trail($po_obj->trans_type, $po_obj->order_no, Today(), _("Updated."));
+       hook_db_postwrite($po_obj, ST_PURCHORDER);
        commit_transaction();
 
        return $po_obj->order_no;
index 32b35041b90bbf799802d0372b1fedaf1443f925..f4a0e27f622162d1d1520902ae841438eda59a26 100644 (file)
@@ -15,6 +15,11 @@ function add_supp_payment($supplier_id, $date_, $bank_account,
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args(); while (count($args) < 9) $args[] = 0;
+       $args = (object)array_combine(array('supplier_id', 'date_', 'bank_account', 
+               'amount', 'discount', 'ref', 'memo_', 'rate', 'charge'), $args);
+       $args->trans_no = 0;
+       hook_db_prewrite( $args, ST_SUPPAYMENT);
 
        $supplier_currency = get_supplier_currency($supplier_id);
     $bank_account_currency = get_bank_account_currency($bank_account);
@@ -81,6 +86,8 @@ function add_supp_payment($supplier_id, $date_, $bank_account,
 
        $Refs->save($trans_type, $payment_id, $ref);
 
+       $args->trans_no = $payment_id;
+       hook_db_postwrite($args, ST_SUPPAYMENT);
        commit_transaction();
 
        return $payment_id;
@@ -91,6 +98,7 @@ function add_supp_payment($supplier_id, $date_, $bank_account,
 function void_supp_payment($type, $type_no)
 {
        begin_transaction();
+       hook_db_prevoid($type, $type_no);
 
        void_bank_trans($type, $type_no, true);
        void_gl_trans($type, $type_no, true);
index bffe486a78c4f198e5a933655989e1ee8c59ef91..d707dbfe11bc841776fd0deb3c779147920c02de 100644 (file)
@@ -451,7 +451,7 @@ function handle_commit_order()
                        }
                        $inv_no = add_supp_invoice($inv);
                        commit_transaction(); // save PO+GRN+PI
-                       // payment for cash terms...
+                       // FIXME payment for cash terms. (Needs cash account selection)
                        unset($_SESSION['PO']);
                        meta_forward($_SERVER['PHP_SELF'], "AddedPI=$inv_no");
                }
index 2f9e5ac2a44242495686709f47529b1c82bcc3f6..8b92dd1c59e15bcedb5607820b39300426d756fa 100644 (file)
@@ -18,6 +18,10 @@ function write_customer_payment($trans_no, $customer_id, $branch_id, $bank_accou
        global $Refs;
 
        begin_transaction();
+       $args = func_get_args(); while (count($args) < 11) $args[] = 0;
+       $args = (object)array_combine(array('trans_no', 'customer_id', 'branch_id', 'bank_account', 
+               'date_', 'ref', 'amount', 'discount', 'memo_','rate','charge'), $args);
+       hook_db_prewrite($args, ST_CUSTPAYMENT);
 
        $company_record = get_company_prefs();
 
@@ -82,6 +86,8 @@ function write_customer_payment($trans_no, $customer_id, $branch_id, $bank_accou
 
        $Refs->save(ST_CUSTPAYMENT, $payment_no, $ref);
 
+       $args->trans_no = $payment_no;
+       hook_db_postwrite($args, ST_CUSTPAYMENT);
        commit_transaction();
 
        return $payment_no;
@@ -93,6 +99,7 @@ function void_customer_payment($type, $type_no)
 {
        begin_transaction();
 
+       hook_db_prevoid($type, $type_no);
        void_bank_trans($type, $type_no, true);
        void_gl_trans($type, $type_no, true);
        void_cust_allocations($type, $type_no);
index 7fc09668a83badd4c6f4bdb37ebbf22cc158516a..ce1cb17f14ae5fd9097cc7ab5476eaf530a4fa37 100644 (file)
@@ -31,6 +31,7 @@ function write_credit_note(&$credit_note, $write_off_acc)
        $credit_type = $write_off_acc == 0 ? 'Return' : 'WriteOff';
 
        begin_transaction();
+       hook_db_prewrite($credit_note, ST_CUSTCREDIT);
 
        $company_data = get_company_prefs();
        $branch_data = get_branch_accounts($credit_note->Branch);
@@ -160,6 +161,7 @@ function write_credit_note(&$credit_note, $write_off_acc)
        if ($trans_no == 0) {
                $Refs->save(ST_CUSTCREDIT, $credit_no, $credit_note->reference);
        }
+       hook_db_postwrite($credit_note, ST_CUSTCREDIT);
        commit_transaction();
 
        return $credit_no;
index f5e455edd9b0e894653579812859c2475ae6754d..5c269406349b06a7aeadb09e9db755eb2035dc4f 100644 (file)
@@ -20,6 +20,8 @@ function write_sales_delivery(&$delivery,$bo_policy)
        if (is_array($trans_no)) $trans_no = key($trans_no);
 
        begin_transaction();
+       $delivery->bo_policy = $bo_policy;
+       hook_db_prewrite($delivery, ST_CUSTDELIVERY);
 
        $customer = get_customer($delivery->customer_id);
        $delivery_items_total = $delivery->get_items_total_dispatch();
@@ -140,6 +142,7 @@ function write_sales_delivery(&$delivery,$bo_policy)
                        $Refs->save(ST_CUSTDELIVERY, $delivery_no, $delivery->reference);
        }
 
+       hook_db_postwrite($delivery, ST_CUSTDELIVERY);
        commit_transaction();
 
        return $delivery_no;
@@ -152,6 +155,8 @@ function void_sales_delivery($type, $type_no, $transactions=true)
        if ($transactions)
                begin_transaction();
 
+       hook_db_prevoid($type, $type_no);
+       
        void_gl_trans($type, $type_no, true);
 
        // reverse all the changes in the sales order
index 7928a12dfa277e59fd5f8887f05c6b52d8a1ba5f..95d5e396c9d2ad9a96cd42d503269c9cc373461c 100644 (file)
@@ -25,6 +25,7 @@ function write_sales_invoice(&$invoice)
 
        begin_transaction();
 
+       hook_db_prewrite($invoice, ST_SALESINVOICE);
        $company_data = get_company_prefs();
 
        $branch_data = get_branch_accounts($invoice->Branch);
@@ -182,6 +183,7 @@ function write_sales_invoice(&$invoice)
                        update_debtor_trans_allocation(ST_CUSTPAYMENT, $pmtno, $amount);
                }
        }
+       hook_db_postwrite($invoice, ST_SALESINVOICE);
        commit_transaction();
 
        return $invoice_no;
@@ -193,6 +195,7 @@ function void_sales_invoice($type, $type_no)
 {
        begin_transaction();
 
+       hook_db_prevoid($type, $type_no);
        void_bank_trans($type, $type_no, true);
        void_gl_trans($type, $type_no, true);
 
index 509ee89e0917586e9a53dbecfeecb55ca47ab56e..636dea7ebf4af549985c84742c6867cc58183625 100644 (file)
@@ -15,7 +15,7 @@ function add_sales_order(&$order)
        global $loc_notification, $path_to_root, $Refs;
 
        begin_transaction();
-
+       hook_db_prewrite($order, $order->trans_type);
        $order_no = get_next_trans_no($order->trans_type);
        $del_date = date2sql($order->due_date);
        $order_type = 0; // this is default on new order
@@ -91,6 +91,8 @@ function add_sales_order(&$order)
 
        add_audit_trail($order->trans_type, $order_no, $order->document_date);
        $Refs->save($order->trans_type, $order_no, $order->reference);
+
+       hook_db_postwrite($order, $order->trans_type);
        commit_transaction();
 
        if ($loc_notification == 1 && count($st_ids) > 0)
@@ -119,6 +121,7 @@ function add_sales_order(&$order)
 function delete_sales_order($order_no, $trans_type)
 {
        begin_transaction();
+       hook_db_prevoid($trans_type, $order_no);
 
        $sql = "DELETE FROM ".TB_PREF."sales_orders WHERE order_no=" . db_escape($order_no) 
                . " AND trans_type=".db_escape($trans_type);
@@ -336,6 +339,7 @@ function get_sales_order_details($order_no, $trans_type) {
 
 function read_sales_order($order_no, &$order, $trans_type)
 {
+
        $myrow = get_sales_order_header($order_no, $trans_type);
 
        $order->trans_type = $myrow['trans_type'];
@@ -376,6 +380,7 @@ function read_sales_order($order_no, &$order, $trans_type)
                }
        }
 
+       hook_db_postread($order, $trans_type);
        return true;
 }