bebeboutik/classes/Combination.php
Srv Bebeboutik 340bc7c146 push site
2016-01-04 12:48:08 +01:00

181 lines
4.7 KiB
PHP
Executable File

<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 7397 $
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
class CombinationCore extends ObjectModel
{
public $id_product;
public $reference;
public $supplier_reference;
public $location;
public $ean13;
public $upc;
public $wholesale_price;
public $price;
public $ecotax;
public $quantity;
public $weight;
public $default_on;
protected $fieldsRequired = array(
'id_product',
);
protected $fieldsSize = array(
'reference' => 32,
'supplier_reference' => 32,
'location' => 64,
'ean13' => 13,
'upc' => 12,
'wholesale_price' => 27,
'price' => 20,
'ecotax' => 20,
'quantity' => 10
);
protected $fieldsValidate = array(
'id_product' => 'isUnsignedId',
'location' => 'isGenericName',
'ean13' => 'isEan13',
'upc' => 'isUpc',
'wholesale_price' => 'isPrice',
'price' => 'isPrice',
'ecotax' => 'isPrice',
'quantity' => 'isUnsignedInt',
'weight' => 'isFloat',
'default_on' => 'isBool',
);
protected $table = 'product_attribute';
protected $identifier = 'id_product_attribute';
protected $webserviceParameters = array(
'objectNodeName' => 'combination',
'objectsNodeName' => 'combinations',
'fields' => array(
'id_product' => array('required' => true, 'xlink_resource'=> 'products'),
),
'associations' => array(
'product_option_values' => array('resource' => 'product_option_value'),
'images' => array('resource' => 'image'),
),
);
public function getFields()
{
parent::validateFields();
$fields['id_product'] = (int)($this->id_product);
$fields['reference'] = pSQL($this->reference);
$fields['supplier_reference'] = pSQL($this->supplier_reference);
$fields['location'] = pSQL($this->location);
$fields['ean13'] = pSQL($this->ean13);
$fields['upc'] = pSQL($this->upc);
$fields['wholesale_price'] = pSQL($this->wholesale_price);
$fields['price'] = pSQL($this->price);
$fields['ecotax'] = pSQL($this->ecotax);
$fields['quantity'] = (int)($this->quantity);
$fields['weight'] = pSQL($this->weight);
$fields['default_on'] = (int)($this->default_on);
return $fields;
}
public function delete()
{
if (!parent::delete() OR $this->deleteAssociations() === false)
return false;
return true;
}
public function deleteAssociations()
{
if (
Db::getInstance()->Execute('
DELETE FROM `'._DB_PREFIX_.'product_attribute_combination`
WHERE `id_product_attribute` = '.(int)($this->id)) === false
)
return false;
return true;
}
public function setWsProductOptionValues($values)
{
if ($this->deleteAssociations())
{
$sqlValues = array();
foreach ($values as $value)
$sqlValues[] = '('.(int)$value['id'].', '.(int)$this->id.')';
$result = Db::getInstance()->Execute('
INSERT INTO `'._DB_PREFIX_.'product_attribute_combination` (`id_attribute`, `id_product_attribute`)
VALUES '.implode(',', $sqlValues)
);
return $result;
}
return false;
}
public function getWsProductOptionValues()
{
$result = Db::getInstance()->executeS('SELECT id_attribute AS id from `'._DB_PREFIX_.'product_attribute_combination` WHERE id_product_attribute = '.(int)$this->id);
return $result;
}
public function getWsImages()
{
return Db::getInstance()->ExecuteS('
SELECT `id_image` as id
FROM `'._DB_PREFIX_.'product_attribute_image`
WHERE `id_product_attribute` = '.(int)($this->id).'
');
}
public function setWsImages($values)
{
if (Db::getInstance()->Execute('
DELETE FROM `'._DB_PREFIX_.'product_attribute_image`
WHERE `id_product_attribute` = '.(int)($this->id)) === false)
return false;
$sqlValues = array();
foreach ($values as $value)
$sqlValues[] = '('.(int)$this->id.', '.(int)$value['id'].')';
Db::getInstance()->Execute('
INSERT INTO `'._DB_PREFIX_.'product_attribute_image` (`id_product_attribute`, `id_image`)
VALUES '.implode(',', $sqlValues)
);
return true;
}
}