. ***********************************************************************/ /* * Clear the denormalisation table for a given stock id */ function clear_queue_quantity_for_item($stock_id) { if(isset($stock_id)) { $sql = "DELETE FROM ".TB_PREF."denorm_order_details_queue WHERE stock_id = \"$stock_id\" "; } else { $sql = "TRUNCATE TABLE ".TB_PREF."denorm_order_details_queue"; } return db_query($sql, 'Error when trying to clean ".TB_PREF."denorm_order_details_queue'); } /* * Update the priority field of the denorm queru * a given stock id. Requires that table has been cleared * for the given item. */ function insert_item_into_queue($stock_id) { db_query("SELECT @running_quantity := 0"); $sql = " INSERT INTO ".TB_PREF."denorm_order_details_queue SELECT id, stk_code, order_no, quantity , (@running_quantity := @running_quantity + quantity) - quantity, priority FROM (SELECT id, stk_code, sd.order_no, quantity - qty_sent AS quantity, IF(priority IS NULL, CONCAT(ord_date, ' 23:59:59'), priority) AS priority FROM ".TB_PREF."sales_order_details sd NATURAL JOIN ".TB_PREF."sales_orders WHERE stk_code = \"$stock_id\" AND quantity > qty_sent ORDER BY IF(priority IS NULL, CONCAT(ord_date, ' 23:59:59'), priority) ) AS d "; return db_query($sql, "Problem whilst updating quantity queue for item : $stock_id"); } /* * This function update the denormalisation table for * a given stock id. */ function update_queue_quantity_for_item($stock_id) { begin_transaction(); clear_queue_quantity_for_item($stock_id); insert_item_into_queue($stock_id); commit_transaction(); } function update_queue_quantities() { $sql = "SELECT DISTINCT stk_code from 0_sales_order_details WHERE quantity > qty_sent"; $result = db_query($sql); while($row=db_fetch($result)) { $stock_id = $row['stk_code']; update_queue_quantity_for_item($stock_id); } } function update_order_detail_priority($detail_id, $priority) { $sql = "UPDATE ".TB_PREF."sales_order_details SET priority='".$priority."' WHERE id = $detail_id "; db_query($sql, "can't set priorti to order details $detail_id"); } ?>