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;
$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;
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);
$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();
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);
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);
$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;
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);
}
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);
$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;
function void_stock_transfer($type_no)
{
+ hook_db_prevoid(ST_LOCTRANSFER, $type_no);
void_stock_move(ST_LOCTRANSFER, $type_no);
}
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);
$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();
}
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="
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);
$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();
}
function void_work_order_produce($type_no)
{
begin_transaction();
+ hook_db_prevoid(ST_MANURECEIVE, $type_no);
$row = get_work_order_produce($type_no);
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_);
$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;
$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_);
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_']);
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))
***********************************************************************/
//--------------------------------------------------------------------------------------
-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)
$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;
}
$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_);
add_audit_trail(ST_SUPPRECEIVE, $grn, $date_);
+ $po->trans_no = $grn;
+ hook_db_postwrite($po, ST_SUPPRECEIVE);
commit_transaction();
return $grn;
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);
//$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);
}
}
}
-
+
+ $supp_trans->trans_no = $invoice_id;
+ hook_db_postwrite($supp_trans, $supp_trans->trans_type);
commit_transaction();
return $invoice_id;
{
begin_transaction();
+ hook_db_prevoid($type, $type_no);
$trans = get_supp_trans($type_no, $type);
void_bank_trans($type, $type_no, true);
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");
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,
//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;
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) . ",
// 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;
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);
$Refs->save($trans_type, $payment_id, $ref);
+ $args->trans_no = $payment_id;
+ hook_db_postwrite($args, ST_SUPPAYMENT);
commit_transaction();
return $payment_id;
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);
}
$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");
}
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();
$Refs->save(ST_CUSTPAYMENT, $payment_no, $ref);
+ $args->trans_no = $payment_no;
+ hook_db_postwrite($args, ST_CUSTPAYMENT);
commit_transaction();
return $payment_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);
$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);
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;
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();
$Refs->save(ST_CUSTDELIVERY, $delivery_no, $delivery->reference);
}
+ hook_db_postwrite($delivery, ST_CUSTDELIVERY);
commit_transaction();
return $delivery_no;
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
begin_transaction();
+ hook_db_prewrite($invoice, ST_SALESINVOICE);
$company_data = get_company_prefs();
$branch_data = get_branch_accounts($invoice->Branch);
update_debtor_trans_allocation(ST_CUSTPAYMENT, $pmtno, $amount);
}
}
+ hook_db_postwrite($invoice, ST_SALESINVOICE);
commit_transaction();
return $invoice_no;
{
begin_transaction();
+ hook_db_prevoid($type, $type_no);
void_bank_trans($type, $type_no, true);
void_gl_trans($type, $type_no, true);
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
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)
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);
function read_sales_order($order_no, &$order, $trans_type)
{
+
$myrow = get_sales_order_header($order_no, $trans_type);
$order->trans_type = $myrow['trans_type'];
}
}
+ hook_db_postread($order, $trans_type);
return true;
}