本文整理汇总了PHP中WarehouseProductLocation::update方法的典型用法代码示例。如果您正苦于以下问题:PHP WarehouseProductLocation::update方法的具体用法?PHP WarehouseProductLocation::update怎么用?PHP WarehouseProductLocation::update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WarehouseProductLocation
的用法示例。
在下文中一共展示了WarehouseProductLocation::update方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: attributeImportOne
//.........这里部分代码省略.........
$position = trim($tab_group[2]);
} else {
$position = false;
}
if (!isset($groups[$group])) {
$obj = new AttributeGroup();
$obj->is_color_group = false;
$obj->group_type = pSQL($type);
$obj->name[$default_language] = $group;
$obj->public_name[$default_language] = $group;
$obj->position = !$position ? AttributeGroup::getHigherPosition() + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) {
// here, cannot avoid attributeGroup insertion to avoid an error during validation step.
//if (!$validateOnly) {
$obj->add();
$obj->associateTo($id_shop_list);
$groups[$group] = $obj->id;
//}
} else {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '');
}
// fills groups attributes
$id_attribute_group = $obj->id;
$groups_attributes[$key]['id'] = $id_attribute_group;
} else {
// already exists
$id_attribute_group = $groups[$group];
$groups_attributes[$key]['id'] = $id_attribute_group;
}
}
}
// inits attribute
$id_product_attribute = 0;
$id_product_attribute_update = false;
$attributes_to_add = array();
// for each attribute
if (isset($info['attribute'])) {
foreach (explode($this->multiple_value_separator, $info['attribute']) as $key => $attribute) {
if (empty($attribute)) {
continue;
}
$tab_attribute = explode(':', $attribute);
$attribute = trim($tab_attribute[0]);
// if position is filled
if (isset($tab_attribute[1])) {
$position = trim($tab_attribute[1]);
} else {
$position = false;
}
if (isset($groups_attributes[$key])) {
$group = $groups_attributes[$key]['group'];
if (!isset($attributes[$group . '_' . $attribute]) && count($groups_attributes[$key]) == 2) {
$id_attribute_group = $groups_attributes[$key]['id'];
$obj = new Attribute();
// sets the proper id (corresponding to the right key)
$obj->id_attribute_group = $groups_attributes[$key]['id'];
$obj->name[$default_language] = str_replace('\\n', '', str_replace('\\r', '', $attribute));
$obj->position = !$position && isset($groups[$group]) ? Attribute::getHigherPosition($groups[$group]) + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) {
if (!$validateOnly) {
$obj->add();
$obj->associateTo($id_shop_list);
$attributes[$group . '_' . $attribute] = $obj->id;
}
} else {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '');
示例2: attributeImport
//.........这里部分代码省略.........
// sets group
$groups_attributes[$key]['group'] = $group;
// if position is filled
if (isset($tab_group[2])) {
$position = trim($tab_group[2]);
} else {
$position = false;
}
if (!isset($groups[$group])) {
$obj = new AttributeGroup();
$obj->is_color_group = false;
$obj->group_type = pSQL($type);
$obj->name[$default_language] = $group;
$obj->public_name[$default_language] = $group;
$obj->position = !$position ? AttributeGroup::getHigherPosition() + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) {
$obj->add();
$obj->associateTo($id_shop_list);
$groups[$group] = $obj->id;
} else {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '');
}
// fills groups attributes
$id_attribute_group = $obj->id;
$groups_attributes[$key]['id'] = $id_attribute_group;
} else {
$id_attribute_group = $groups[$group];
$groups_attributes[$key]['id'] = $id_attribute_group;
}
}
}
// inits attribute
$id_product_attribute = 0;
$id_product_attribute_update = false;
$attributes_to_add = array();
// for each attribute
if (isset($info['attribute'])) {
foreach (explode($this->multiple_value_separator, $info['attribute']) as $key => $attribute) {
if (empty($attribute)) {
continue;
}
$tab_attribute = explode(':', $attribute);
$attribute = trim($tab_attribute[0]);
// if position is filled
if (isset($tab_attribute[1])) {
$position = trim($tab_attribute[1]);
} else {
$position = false;
}
if (isset($groups_attributes[$key])) {
$group = $groups_attributes[$key]['group'];
if (!isset($attributes[$group . '_' . $attribute]) && count($groups_attributes[$key]) == 2) {
$id_attribute_group = $groups_attributes[$key]['id'];
$obj = new Attribute();
// sets the proper id (corresponding to the right key)
$obj->id_attribute_group = $groups_attributes[$key]['id'];
$obj->name[$default_language] = str_replace('\\n', '', str_replace('\\r', '', $attribute));
$obj->position = !$position && isset($groups[$group]) ? Attribute::getHigherPosition($groups[$group]) + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) {
$obj->add();
$obj->associateTo($id_shop_list);
$attributes[$group . '_' . $attribute] = $obj->id;
} else {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '');
}
}
示例3: productImport
//.........这里部分代码省略.........
foreach ($product->meta_keywords as &$meta_keyword) {
if (!empty($meta_keyword)) {
$meta_keyword = str_replace($this->multiple_value_separator, ',', $meta_keyword);
}
}
}
}
// Convert comma into dot for all floating values
foreach (Product::$definition['fields'] as $key => $array) {
if ($array['type'] == Product::TYPE_FLOAT) {
$product->{$key} = str_replace(',', '.', $product->{$key});
}
}
// Indexation is already 0 if it's a new product, but not if it's an update
$product->indexed = 0;
$res = false;
$field_error = $product->validateFields(UNFRIENDLY_ERROR, true);
$lang_field_error = $product->validateFieldsLang(UNFRIENDLY_ERROR, true);
if ($field_error === true && $lang_field_error === true) {
// check quantity
if ($product->quantity == null) {
$product->quantity = 0;
}
// If match ref is specified && ref product && ref product already in base, trying to update
if (Tools::getValue('match_ref') && $product->reference && $product->existsRefInDatabase($product->reference)) {
$datas = Db::getInstance()->getRow('
SELECT product_shop.`date_add`, p.`id_product`
FROM `' . _DB_PREFIX_ . 'product` p
' . Shop::addSqlAssociation('product', 'p') . '
WHERE p.`reference` = "' . pSQL($product->reference) . '"
');
$product->id = (int) $datas['id_product'];
$product->date_add = pSQL($datas['date_add']);
$res = $product->update();
} elseif ($product->id && Product::existsInDatabase((int) $product->id, 'product')) {
$datas = Db::getInstance()->getRow('
SELECT product_shop.`date_add`
FROM `' . _DB_PREFIX_ . 'product` p
' . Shop::addSqlAssociation('product', 'p') . '
WHERE p.`id_product` = ' . (int) $product->id);
$product->date_add = pSQL($datas['date_add']);
$res = $product->update();
}
// If no id_product or update failed
$product->force_id = (bool) Tools::getValue('forceIDs');
if (!$res) {
if (isset($product->date_add) && $product->date_add != '') {
$res = $product->add(false);
} else {
$res = $product->add();
}
}
if ($product->getType() == Product::PTYPE_VIRTUAL) {
StockAvailable::setProductOutOfStock((int) $product->id, 1);
} else {
StockAvailable::setProductOutOfStock((int) $product->id, (int) $product->out_of_stock);
}
}
$shops = array();
$product_shop = explode($this->multiple_value_separator, $product->shop);
foreach ($product_shop as $shop) {
if (empty($shop)) {
continue;
}
$shop = trim($shop);
if (!empty($shop) && !is_numeric($shop)) {
示例4: attributeImport
//.........这里部分代码省略.........
$type = 'select';
} else {
$type = trim($tab_group[1]);
}
$groups_attributes[$key]['group'] = $group;
if (isset($tab_group[2])) {
$position = trim($tab_group[2]);
} else {
$position = false;
}
if (!isset($groups[$group])) {
$obj = new AttributeGroup();
$obj->is_color_group = false;
$obj->group_type = pSQL($type);
$obj->name[$default_language] = $group;
$obj->public_name[$default_language] = $group;
$obj->position = !$position ? AttributeGroup::getHigherPosition() + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) {
$obj->add();
$obj->associateTo($id_shop_list);
$groups[$group] = $obj->id;
} else {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '');
}
$id_attribute_group = $obj->id;
$groups_attributes[$key]['id'] = $id_attribute_group;
} else {
$id_attribute_group = $groups[$group];
$groups_attributes[$key]['id'] = $id_attribute_group;
}
}
}
$id_product_attribute = 0;
$id_product_attribute_update = false;
$attributes_to_add = array();
if (isset($info['attribute'])) {
foreach (explode($this->multiple_value_separator, $info['attribute']) as $key => $attribute) {
if (empty($attribute)) {
continue;
}
$tab_attribute = explode(':', $attribute);
$attribute = trim($tab_attribute[0]);
if (isset($tab_attribute[1])) {
$position = trim($tab_attribute[1]);
} else {
$position = false;
}
if (isset($groups_attributes[$key])) {
$group = $groups_attributes[$key]['group'];
if (!isset($attributes[$group . '_' . $attribute]) && count($groups_attributes[$key]) == 2) {
$id_attribute_group = $groups_attributes[$key]['id'];
$obj = new Attribute();
$obj->id_attribute_group = $groups_attributes[$key]['id'];
$obj->name[$default_language] = str_replace('\\n', '', str_replace('\\r', '', $attribute));
$obj->position = !$position && isset($groups[$group]) ? Attribute::getHigherPosition($groups[$group]) + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) {
$obj->add();
$obj->associateTo($id_shop_list);
$attributes[$group . '_' . $attribute] = $obj->id;
} else {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '');
}
}
$info['minimal_quantity'] = isset($info['minimal_quantity']) && $info['minimal_quantity'] ? (int) $info['minimal_quantity'] : 1;
$info['wholesale_price'] = str_replace(',', '.', $info['wholesale_price']);
$info['price'] = str_replace(',', '.', $info['price']);
示例5: processWarehouses
/**
* Post treatment for warehouses
*/
public function processWarehouses()
{
$app = JFactory::getApplication();
$product = new JeproshopProductModelProduct((int) $app->input->get('product_id'));
if ((int) $app->input->get('warehouse_loaded') === 1 && JeproshopTools::isLoadedObject($product, 'product_id')) {
// Get all id_product_attribute
$warehouse_attributes = $product->getAttributesResume($this->context->language->lang_id);
if (empty($warehouse_attributes)) {
$attribute = new JObject();
$attribute->set('product_attribute_id', 0);
$attribute->set('attribute_designation', '');
$warehouse_attributes[] = $attribute;
}
// Get all available warehouses
$warehouses = JeproshopWarehouseModelWarehouse::getWarehouses(true);
// Get already associated warehouses
$associated_warehouses_collection = JeproshopWarehouseProductLocationModelWarehouseProductLocation::getCollection($product->product_id);
$elements_to_manage = array();
// get form information
foreach ($warehouse_attributes as $attribute) {
foreach ($warehouses as $warehouse) {
$key = $warehouse->warehouse_id . '_' . $product->product_id . '_' . $attribute->product_attribute_id;
// get elements to manage
if ($app->input->get('check_warehouse_' . $key)) {
$location = $app->input->get('location_warehouse_' . $key, '');
$elements_to_manage[$key] = $location;
}
}
}
// Delete entry if necessary
foreach ($associated_warehouses_collection as $awc) {
if (!array_key_exists($awc->warehouse_id . '_' . $awc->product_id . '_' . $awc->product_attribute_id, $elements_to_manage)) {
$awc->delete();
}
}
// Manage locations
foreach ($elements_to_manage as $key => $location) {
$params = explode('_', $key);
$wpl_id = (int) JeproshopWarehouseProductLocationModelWarehouseProductLocation::getIdByProductAndWarehouse((int) $params[1], (int) $params[2], (int) $params[0]);
if (empty($wpl_id)) {
//create new record
$warehouse_location_entity = new JeproshopWarehouseProductLocationModelWarehouseProductLocation();
$warehouse_location_entity->product_id = (int) $params[1];
$warehouse_location_entity->product_attribute_id = (int) $params[2];
$warehouse_location_entity->warehouse_id = (int) $params[0];
$warehouse_location_entity->location = JFactory::getDBO()->query($location);
$warehouse_location_entity->save();
} else {
$warehouse_location_entity = new WarehouseProductLocation((int) $wpl_id);
$location = $location;
if ($location != $warehouse_location_entity->location) {
$warehouse_location_entity->location = $location;
$warehouse_location_entity->update();
}
}
}
JeproshopStockAvailableModelStockAvailable::synchronize((int) $product->product_id);
}
}