global $db_connections;
$updates = array(
- 'alter_sales_order_details.sql' => array('sales_order_details'),// ,'required_date'),
+ 'alter_sales_order_details.sql' => array('sales_order_details','required_date'),
'create_denorm_order_details_queue.sql' => array('denorm_order_details_queue'),
+ 'create_denorm_qoh.sql' => array('denorm_qoh'),
);
- return $this->update_databases($company, $updates, $check_only) && update_queue_quantities();
+ return $this->update_databases($company, $updates, $check_only)
+ && update_queue_quantities()
+ && update_qoh_for_item();;
}
function deactivate_extension($company, $check_only=true)
}
function update_queue_quantities() {
- $sql = "SELECT DISTINCT stk_code from 0_sales_order_details WHERE quantity > qty_sent";
+ $sql = "SELECT DISTINCT stk_code from ".TB_PREF."sales_order_details WHERE quantity > qty_sent";
$result = db_query($sql);
while($row=db_fetch($result)) {
$stock_id = $row['stk_code'];
db_query($sql, "can't set priorti to order details $detail_id");
}
+function update_qoh_for_item($stock_id=null) {
+ clear_qoh_for_item($stock_id);
+ $sql = "INSERT INTO ".TB_PREF."denorm_qoh(stock_id, loc_code, quantity)
+ SELECT
+ stock_id
+ ,loc_code
+ ,sum(qty) as quantity
+ FROM ".TB_PREF."stock_moves
+ WHERE tran_date <= NOW()";
+ if(isset($stock_id)) $sql.= " AND stock_id = '$stock_id'";
+ $sql .= " GROUP BY stock_id, loc_code";
+
+
+ return db_query($sql, $sql);
+
+}
+function clear_qoh_for_item($stock_id=null) {
+ if(isset($stock_id)) {
+ $sql = "DELETE FROM ".TB_PREF."denorm_qoh
+ WHERE stock_id = \"$stock_id\"
+";
+ }
+ else {
+ $sql = "TRUNCATE TABLE ".TB_PREF."denorm_qoh";
+ }
+
+ return db_query($sql, 'Error when trying to clean ".TB_PREF."denorm_qoh');
+}
+
?>
--- /dev/null
+CREATE TABLE 0_denorm_qoh (
+ id INT AUTO_INCREMENT,
+ stock_id VARCHAR(20),
+ loc_code VARCHAR(20),
+ quantity DOUBLE, -- quantity in the order
+ primary key (id),
+ key stock_id (stock_id, loc_code)
+)
+;