예제 #1
0
function mods_create_order($start_data)
{
    $id = (int) $start_data['id'];
    $old = new order($id);
    // requantify the old order
    $old->data['quantity'] = $old->data['quantity'] - $start_data['quantity'];
    if (class_exists('stock_object')) {
        $stock = new stock_object();
        $stock->silent = true;
        $stock->remove_from_waiter($old->id, $old->data['quantity']);
    }
    $err = $old->set();
    if ($err) {
        return 1;
    }
    // quantity set error
    // creates the new order;
    $arr['quantity'] = 0;
    $newid = orders_create($ord->data['dishid'], $arr);
    if ($newid == 0) {
        return 1;
    }
    // order not created
    $newid = (int) $newid;
    $new = new order($newid);
    $olddata = $old->data;
    // copies old order's data
    // now unsets some vars that we don't want to copy
    unset($olddata['id']);
    unset($olddata['associated_id']);
    unset($olddata['price']);
    unset($olddata['timestamp']);
    $new->data = $olddata;
    //first set() without quantity for stock function
    $new->data['quantity'] = 0;
    $err = $new->set();
    $new->data['quantity'] = $start_data['quantity'];
    if (class_exists('stock_object')) {
        $stock = new stock_object();
        $stock->silent = true;
        $stock->remove_from_waiter($new->id, $new->data['quantity']);
    }
    $err = $new->set();
    if ($err) {
        return 1;
    }
    // Now we set $start_data[id] to the new order, because we're going to work on it, and leave the old one
    $GLOBALS['start_data']['id'] = $new->id;
    return 0;
}
예제 #2
0
function orders_update($start_data)
{
    global $tpl;
    $id = (int) $start_data['id'];
    $ord = new order($id);
    if (!isset($start_data['suspend'])) {
        $start_data['suspend'] = 0;
    }
    if (!isset($start_data['extra_care'])) {
        $start_data['extra_care'] = 0;
    }
    if (isset($start_data['price'])) {
        $start_data['price'] = eq_to_number($start_data['price']);
    }
    // forces extra_care = 1 for generic dishes
    $dishid = get_db_data(__FILE__, __LINE__, $_SESSION['common_db'], "orders", "dishid", $start_data['id']);
    $generic = get_db_data(__FILE__, __LINE__, $_SESSION['common_db'], "dishes", "generic", $dishid);
    if ($generic && $start_data['price'] == 0) {
        $start_data['extra_care'] = '1';
    } elseif ($generic && $start_data['price']) {
        $start_data['extra_care'] = '0';
    }
    // toplist update code
    if (!isset($start_data['quantity'])) {
        $start_data['quantity'] = 0;
    }
    // insert all the modules interfaces for order creation here
    toplist_update($ord->data['dishid'], $ord->data['quantity'], $start_data['quantity']);
    if (class_exists('stock_object')) {
        $stock = new stock_object();
        $stock->silent = true;
        $stock->remove_from_waiter($id, $start_data['quantity']);
    }
    // end interfaces
    // real update
    $ord->data = $start_data;
    $err = $ord->set();
    unset($ord);
    return $err;
}
 function copy($dest = 0)
 {
     if (!$dest || !$dest->exists()) {
         $dest = new order();
         $create = true;
     }
     $this->get();
     $dest->data = $this->data;
     unset($dest->data['id']);
     unset($dest->data['associated_id']);
     unset($dest->data['price']);
     unset($dest->data['timestamp']);
     if ($create) {
         $id = $dest->create();
     } else {
         $dest->set();
     }
     return $dest->id;
 }