uc_stock.ca.inc in Ubercart 6.2
This file contains all the Workflow-NG hooks that are necessary for Workflow integeration with the uc_stock module
File
uc_stock/uc_stock.ca.incView source
<?php
/**
* @file
* This file contains all the Workflow-NG hooks that are necessary for Workflow
* integeration with the uc_stock module
*/
/******************************************************************************
* Conditional Action Hooks *
******************************************************************************/
/**
* Implements hook_ca_predicate().
*/
function uc_stock_ca_predicate() {
$predicates['uc_stock_decrement_on_order'] = array(
'#title' => t('Decrement stock upon order submission'),
'#trigger' => 'uc_checkout_complete',
'#class' => 'uc_stock',
'#status' => 1,
'#actions' => array(
array(
'#name' => 'uc_stock_action_decrement_stock',
'#title' => t('Decrement stock of products in order'),
'#argument_map' => array(
'order' => 'order',
),
),
),
);
$predicates['uc_stock_increment_on_cancel'] = array(
'#title' => t('Increment stock on cancelling order'),
'#trigger' => 'uc_order_status_update',
'#conditions' => array(
'#operator' => 'AND',
'#conditions' => array(
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status is Cancelled.'),
'#argument_map' => array(
'order' => 'updated_order',
),
'#settings' => array(
'order_status' => 'canceled',
),
),
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status wasn\'t Canceled.'),
'#argument_map' => array(
'order' => 'order',
),
'#settings' => array(
'order_status' => 'canceled',
'negate' => TRUE,
),
),
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status wasn\'t In Checkout.'),
'#argument_map' => array(
'order' => 'order',
),
'#settings' => array(
'order_status' => 'in_checkout',
'negate' => TRUE,
),
),
),
),
'#class' => 'uc_stock',
'#status' => 0,
'#actions' => array(
array(
'#name' => 'uc_stock_action_increment_stock',
'#title' => t('Increment stock of products in order'),
'#argument_map' => array(
'order' => 'order',
),
),
),
);
$predicates['uc_stock_increment_on_delete'] = array(
'#title' => t('Increment stock on deleting an order'),
'#trigger' => 'uc_order_delete',
'#conditions' => array(
'#operator' => 'AND',
'#conditions' => array(
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status wasn\'t Canceled.'),
'#argument_map' => array(
'order' => 'order',
),
'#settings' => array(
'order_status' => 'canceled',
'negate' => TRUE,
),
),
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status wasn\'t In Checkout.'),
'#argument_map' => array(
'order' => 'order',
),
'#settings' => array(
'order_status' => 'in_checkout',
'negate' => TRUE,
),
),
),
),
'#class' => 'uc_stock',
'#status' => 0,
'#actions' => array(
array(
'#name' => 'uc_stock_action_increment_stock',
'#title' => t('Increment stock of products in order'),
'#argument_map' => array(
'order' => 'order',
),
),
),
);
$predicates['uc_stock_decrement_on_uncancel'] = array(
'#title' => t('Decrement stock when order cancellation is being undone'),
'#trigger' => 'uc_order_status_update',
'#conditions' => array(
'#operator' => 'AND',
'#conditions' => array(
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status was Canceled.'),
'#argument_map' => array(
'order' => 'order',
),
'#settings' => array(
'order_status' => 'canceled',
),
),
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status isn\'t Canceled.'),
'#argument_map' => array(
'order' => 'updated_order',
),
'#settings' => array(
'order_status' => 'canceled',
'negate' => TRUE,
),
),
array(
'#name' => 'uc_order_status_condition',
'#title' => t('If the order status isn\'t In Checkout.'),
'#argument_map' => array(
'order' => 'updated_order',
),
'#settings' => array(
'order_status' => 'in_checkout',
'negate' => TRUE,
),
),
),
),
'#class' => 'uc_stock',
'#status' => 0,
'#actions' => array(
array(
'#name' => 'uc_stock_action_decrement_stock',
'#title' => t('Decrement stock of products in order'),
'#argument_map' => array(
'order' => 'order',
),
),
),
);
return $predicates;
}
/**
* Implements hook_action().
*/
function uc_stock_ca_action() {
$actions['uc_stock_action_decrement_stock'] = array(
'#title' => t('Decrement stock of products on the order with tracking activated.'),
'#callback' => 'uc_stock_action_decrement_stock',
'#arguments' => array(
'order' => array(
'#entity' => 'uc_order',
'#title' => t('Order'),
),
),
'#category' => t('Stock'),
);
$actions['uc_stock_action_increment_stock'] = array(
'#title' => t('Increment stock of products on the order with tracking activated.'),
'#callback' => 'uc_stock_action_increment_stock',
'#arguments' => array(
'order' => array(
'#entity' => 'uc_order',
'#title' => t('Order'),
),
),
'#category' => t('Stock'),
);
return $actions;
}
/******************************************************************************
* Conditional Action Callbacks and Forms *
******************************************************************************/
/**
* Decreases the stock of ordered products.
*/
function uc_stock_action_decrement_stock($order, $settings) {
if (is_array($order->products)) {
array_walk($order->products, 'uc_stock_adjust_product_stock', $order);
}
}
/**
* Increase the stock of ordered products.
*/
function uc_stock_action_increment_stock($order, $settings) {
if (is_array($order->products)) {
array_walk($order->products, 'uc_stock_increment_product_stock', $order);
}
}
Functions
Name | Description |
---|---|
uc_stock_action_decrement_stock | Decreases the stock of ordered products. |
uc_stock_action_increment_stock | Increase the stock of ordered products. |
uc_stock_ca_action | Implements hook_action(). |
uc_stock_ca_predicate | Implements hook_ca_predicate(). |