[*] WS: management of stockavailables

This commit is contained in:
rGaillard
2012-09-25 10:11:51 +00:00
parent 6a5f5aba4a
commit 6a6cc86c11
3 changed files with 30 additions and 3 deletions
+15
View File
@@ -301,6 +301,7 @@ class ProductCore extends ObjectModel
'default_category' => array('type' => self::HAS_ONE, 'field' => 'id_category_default', 'object' => 'Category'),
'tax_rules_group' => array('type' => self::HAS_ONE),
'categories' => array('type' => self::HAS_MANY, 'field' => 'id_category', 'object' => 'Category', 'association' => 'category_product'),
'stock_availables' => array('type' => self::HAS_MANY, 'field' => 'id_stock_available', 'object' => 'StockAvailable', 'association' => 'stock_availables'),
),
);
@@ -392,6 +393,13 @@ class ProductCore extends ObjectModel
'fields' => array(
'id' => array('required' => true),
)),
'stock_availables' => array('resource' => 'stock_available',
'fields' => array(
'id' => array('required' => true),
'id_product_attribute' => array('required' => true),
),
'setter' => false
),
),
);
@@ -4460,6 +4468,13 @@ class ProductCore extends ObjectModel
ORDER BY i.`position`');
}
public function getWsStockAvailables()
{
return Db::getInstance()->executeS('SELECT `id_stock_available` id, `id_product_attribute`
FROM `'._DB_PREFIX_.'stock_available`
WHERE `id_product`='.($this->id).StockAvailable::addSqlShopRestriction());
}
public function getWsTags()
{
return Db::getInstance()->executeS('
+13 -1
View File
@@ -83,6 +83,10 @@ class StockAvailableCore extends ObjectModel
),
'hidden_fields' => array(
),
'objectMethods' => array(
'add' => 'addWs',
'update' => 'updateWs',
),
);
/**
@@ -93,6 +97,14 @@ class StockAvailableCore extends ObjectModel
* @param int $id_shop Optional
* @return int
*/
public function updateWs()
{
if ($this->depends_on_stock)
return WebserviceRequest::getInstance()->setError(500, Tools::displayError('You can\'t update stock available when it\'s depend on stock'));
return $this->update();
}
public static function getStockAvailableIdByProductId($id_product, $id_product_attribute = null, $id_shop = null)
{
if (!Validate::isUnsignedId($id_product))
@@ -361,7 +373,7 @@ class StockAvailableCore extends ObjectModel
{
if (!parent::update($null_values))
return false;
$this->postSave();
return $this->postSave();
}
/**
+2 -2
View File
@@ -269,7 +269,7 @@ class WebserviceRequestCore
'stock_movement_reasons' => array('description' => 'Stock movement reason', 'class' => 'StockMvtReason'),
'warehouses' => array('description' => 'Warehouses', 'class' => 'Warehouse', 'forbidden_method' => array('DELETE')),
'stocks' => array('description' => 'Stocks', 'class' => 'Stock', 'forbidden_method' => array('PUT', 'POST', 'DELETE')),
'stock_availables' => array('description' => 'Available quantities', 'class' => 'StockAvailable', 'forbidden_method' => array('PUT', 'POST', 'DELETE')),
'stock_availables' => array('description' => 'Available quantities', 'class' => 'StockAvailable', 'forbidden_method' => array('POST', 'DELETE')),
'warehouse_product_locations' => array('description' => 'Location of products in warehouses', 'class' => 'WarehouseProductLocation', 'forbidden_method' => array('PUT', 'POST', 'DELETE')),
'supply_orders' => array('description' => 'Supply Orders', 'class' => 'SupplyOrder', 'forbidden_method' => array('PUT', 'POST', 'DELETE')),
'supply_order_details' => array('description' => 'Supply Order Details', 'class' => 'SupplyOrderDetail', 'forbidden_method' => array('PUT', 'POST', 'DELETE')),
@@ -1537,7 +1537,7 @@ class WebserviceRequestCore
}
}
$assoc = Shop::getAssoTable($this->resourceConfiguration['retrieveData']['table']);
if ($assoc !== false)
if ($assoc !== false && $assoc['type'] != 'fk_shop')
{
// PUT nor POST is destructive, no deletion
$sql = 'INSERT IGNORE INTO `'.bqSQL(_DB_PREFIX_.$this->resourceConfiguration['retrieveData']['table'].'_'.$assoc['type']).'` (id_shop, '.pSQL($this->resourceConfiguration['fields']['id']['sqlId']).') VALUES ';