function orders_create($dishid, $input_data = array()) { global $tpl; if (!isset($input_data['quantity'])) { $input_data['quantity'] = 1; echo '<br>quantity not set!'; } $existing = 0; if (isset($input_data['priority']) && $input_data['priority']) { $existing = order_find_incrementable($dishid, $input_data['priority']); } if ($existing) { // the order already exists, so updates the old one instead of creating a new identical $existing = (int) $existing; $ord = new order($existing); $data_old = $ord->data; $data_old['quantity'] = $data_old['quantity'] + $input_data['quantity']; if ($err = orders_update($data_old)) { return 0; } return $ord->id; } $ord = new order(); $ord->prepare_default_array($dishid); if ($err = $ord->create()) { return 0; } // insert all the modules interfaces for order creation here toplist_insert($dishid, $input_data['quantity']); //don't move stock from here! if (class_exists('stock_object') && isset($input_data['quantity'])) { $stock = new stock_object(); $stock->silent = true; $stock->remove_from_waiter($ord->id, $input_data['quantity']); } // end interfaces $ord->data['associated_id'] = $ord->id; $ord->data['quantity'] = $input_data['quantity']; if (isset($input_data['priority']) && $input_data['priority']) { $ord->data['priority'] = $input_data['priority']; } if ($dishid == SERVICE_ID) { $ord->data['priority'] = 0; } if ($err = $ord->set()) { return 0; } return $ord->id; }
function toplist_update($dishid, $old, $new) { $err = 0; $quantity_diff = $new - $old; if ($quantity_diff > 0) { $err = toplist_insert($dishid, abs($quantity_diff)); } if ($quantity_diff < 0) { $err = toplist_delete($dishid, abs($quantity_diff)); } return $err; }