Exemplo n.º 1
0
 protected static function get_inventory_item($inventory_id)
 {
     $item = new WPIMItem();
     return $item->get($inventory_id);
 }
Exemplo n.º 2
0
function wpinventory_reserve_form($args = NULL)
{
    if (!(int) wpinventory_get_config('reserve_allow')) {
        return '<!-- Reserve form disabled in admin dashboard -->';
    }
    $args = wpinventory_get_reserve_config($args);
    $error = '';
    $message = '';
    $display = TRUE;
    if (isset($_POST['wpinventory_reserve_submit'])) {
        $data = array();
        foreach ($args as $field => $required) {
            if (stripos($field, 'display_') === 0) {
                $field = str_replace('display_', '', $field);
                if ($field) {
                    $data[$field] = array('value' => WPIMCore::request('wpinventory_reserve_' . $field), 'label' => $args[$field . '_label']);
                    if (stripos($field, 'quantity') !== FALSE) {
                        $data[$field]['value'] = (int) $data[$field]['value'];
                        if ($data[$field]['value'] < 0) {
                            $data[$field]['value'] = 0;
                        }
                    }
                    if (!trim($data[$field]['value']) && $required === 2) {
                        $error .= $args[$field . '_label'] . ' ' . WPIMCore::__('is required.') . '<br />';
                    }
                }
            }
        }
        if (!$error && (int) wpinventory_get_config('reserve_decrement')) {
            $wpim_item = new WPIMItem();
            $item = $wpim_item->get($args['inventory_id']);
            if ($item) {
                $on_hand = $item->inventory_quantity;
                if ($data['quantity']['value'] > $on_hand) {
                    $error = WPIMCore::__('There are not enough of this item to reserve') . ' ' . $data['quantity']['value'] . '<br>';
                }
            }
        }
        if (!$error) {
            $data['inventory_id'] = $args['inventory_id'];
            $success = wpinventory_process_reserve($data);
            if ($success === TRUE) {
                $display = FALSE;
                $message = WPIMCore::__('Thank you.  Your reservation has been submitted.');
            } else {
                $error = $success;
            }
        }
    }
    $args['error'] = $error;
    if ($display) {
        return wpinventory_get_template_part('reserve-form', '', FALSE, $args);
    } elseif ($message) {
        return '<a id="wpim_reserve" name="wpim_reserve"></a><div class="wpinventory_message">' . $message . '</div>';
    }
}