本文整理汇总了PHP中Supplier::add方法的典型用法代码示例。如果您正苦于以下问题:PHP Supplier::add方法的具体用法?PHP Supplier::add怎么用?PHP Supplier::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Supplier
的用法示例。
在下文中一共展示了Supplier::add方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addressImport
public function addressImport()
{
$this->receiveTab();
$defaultLanguageId = (int) Configuration::get('PS_LANG_DEFAULT');
$handle = $this->openCsvFile();
self::setLocale();
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, Tools::getValue('separator')); $current_line++) {
if (Tools::getValue('convert')) {
$line = $this->utf8_encode_array($line);
}
$info = self::getMaskedRow($line);
self::setDefaultValues($info);
$address = new Address();
self::array_walk($info, array('AdminImport', 'fillInfo'), $address);
if (isset($address->country) and is_numeric($address->country)) {
if (Country::getNameById(Configuration::get('PS_LANG_DEFAULT'), (int) $address->country)) {
$address->id_country = (int) $address->country;
}
} elseif (isset($address->country) and is_string($address->country) and !empty($address->country)) {
if ($id_country = Country::getIdByName(NULL, $address->country)) {
$address->id_country = (int) $id_country;
} else {
$country = new Country();
$country->active = 1;
$country->name = self::createMultiLangField($address->country);
$country->id_zone = 0;
// Default zone for country to create
$country->iso_code = strtoupper(substr($address->country, 0, 2));
// Default iso for country to create
$country->contains_states = 0;
// Default value for country to create
$langFieldError = $country->validateFieldsLang(UNFRIENDLY_ERROR, true);
if (($fieldError = $country->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $country->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $country->add()) {
$address->id_country = (int) $country->id;
} else {
$this->_errors[] = $country->name[$defaultLanguageId] . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
}
if (isset($address->state) and is_numeric($address->state)) {
if (State::getNameById((int) $address->state)) {
$address->id_state = (int) $address->state;
}
} elseif (isset($address->state) and is_string($address->state) and !empty($address->state)) {
if ($id_state = State::getIdByName($address->state)) {
$address->id_state = (int) $id_state;
} else {
$state = new State();
$state->active = 1;
$state->name = $address->state;
$state->id_country = isset($country->id) ? (int) $country->id : 0;
$state->id_zone = 0;
// Default zone for state to create
$state->iso_code = strtoupper(substr($address->state, 0, 2));
// Default iso for state to create
$state->tax_behavior = 0;
if (($fieldError = $state->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $state->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $state->add()) {
$address->id_state = (int) $state->id;
} else {
$this->_errors[] = $state->name . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
}
if (isset($address->customer_email) and !empty($address->customer_email)) {
if (Validate::isEmail($address->customer_email)) {
$customer = Customer::customerExists($address->customer_email, true);
if ($customer) {
$address->id_customer = (int) $customer;
} else {
$this->_errors[] = mysql_error() . ' ' . $address->customer_email . ' ' . Tools::displayError('does not exist in database') . ' ' . (isset($info['id']) ? ' (ID ' . $info['id'] . ')' : '') . ' ' . Tools::displayError('Cannot be saved');
}
} else {
$this->_errors[] = '"' . $address->customer_email . '" :' . Tools::displayError('Is not a valid Email');
}
}
if (isset($address->manufacturer) and is_numeric($address->manufacturer) and Manufacturer::manufacturerExists((int) $address->manufacturer)) {
$address->id_manufacturer = (int) $address->manufacturer;
} elseif (isset($address->manufacturer) and is_string($address->manufacturer) and !empty($address->manufacturer)) {
$manufacturer = new Manufacturer();
$manufacturer->name = $address->manufacturer;
if (($fieldError = $manufacturer->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $manufacturer->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $manufacturer->add()) {
$address->id_manufacturer = (int) $manufacturer->id;
} else {
$this->_errors[] = mysql_error() . ' ' . $manufacturer->name . (isset($manufacturer->id) ? ' (' . $manufacturer->id . ')' : '') . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
if (isset($address->supplier) and is_numeric($address->supplier) and Supplier::supplierExists((int) $address->supplier)) {
$address->id_supplier = (int) $address->supplier;
} elseif (isset($address->supplier) and is_string($address->supplier) and !empty($address->supplier)) {
$supplier = new Supplier();
$supplier->name = $address->supplier;
if (($fieldError = $supplier->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $supplier->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $supplier->add()) {
$address->id_supplier = (int) $supplier->id;
} else {
$this->_errors[] = mysql_error() . ' ' . $supplier->name . (isset($supplier->id) ? ' (' . $supplier->id . ')' : '') . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
//.........这里部分代码省略.........
示例2: transferSingleSupplier
/**
* Transfer an enterprise
*
* @param $ID ID of the enterprise
**/
function transferSingleSupplier($ID)
{
global $DB;
// TODO clean system : needed ?
$ent = new Supplier();
if ($this->options['keep_supplier'] && $ent->getFromDB($ID)) {
if (isset($this->noneedtobe_transfer['Supplier'][$ID])) {
// recursive enterprise
return $ID;
} else {
if (isset($this->already_transfer['Supplier'][$ID])) {
// Already transfer
return $this->already_transfer['Supplier'][$ID];
} else {
$newID = -1;
// Not already transfer
$links_remaining = 0;
// All linked items need to be transfer so transfer enterprise ?
// Search for contract
$query = "SELECT count(*) AS CPT\n FROM `glpi_contracts_suppliers`\n WHERE `suppliers_id` = '{$ID}'\n AND `contracts_id` NOT IN " . $this->item_search['Contract'];
$result_search = $DB->query($query);
$links_remaining = $DB->result($result_search, 0, 'CPT');
if ($links_remaining == 0) {
// Search for infocoms
if ($this->options['keep_infocom']) {
foreach ($this->INFOCOMS_TYPES as $itemtype) {
$query = "SELECT count(*) AS CPT\n FROM `glpi_infocoms`\n WHERE `suppliers_id` = '{$ID}'\n AND `itemtype` = '{$itemtype}'\n AND `items_id` NOT IN " . $this->item_search[$itemtype];
if ($result_search = $DB->query($query)) {
$links_remaining += $DB->result($result_search, 0, 'CPT');
}
}
}
}
// All linked items need to be transfer -> use unique transfer system
if ($links_remaining == 0) {
$this->transferItem('Supplier', $ID, $ID);
$newID = $ID;
} else {
// else Transfer by Copy
// Is existing item in the destination entity ?
$query = "SELECT *\n FROM `glpi_suppliers`\n WHERE `entities_id` = '" . $this->to . "'\n AND `name` = '" . addslashes($ent->fields['name']) . "'";
if ($result_search = $DB->query($query)) {
if ($DB->numrows($result_search) > 0) {
$newID = $DB->result($result_search, 0, 'id');
$this->addToAlreadyTransfer('Supplier', $ID, $newID);
}
}
// Not found -> transfer copy
if ($newID < 0) {
// 1 - create new item
unset($ent->fields['id']);
$input = $ent->fields;
$input['entities_id'] = $this->to;
unset($ent->fields);
$newID = $ent->add($input);
// 2 - transfer as copy
$this->transferItem('Supplier', $ID, $newID);
}
// Founded -> use to link : nothing to do
}
return $newID;
}
}
}
return 0;
}
示例3: Supplier
You should have received a copy of the GNU General Public License
along with GLPI. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
/** @file
* @brief
*/
include '../inc/includes.php';
Session::checkRight("contact_enterprise", "r");
if (!isset($_GET["id"])) {
$_GET["id"] = -1;
}
$ent = new Supplier();
if (isset($_POST["add"])) {
$ent->check(-1, 'w', $_POST);
if ($newID = $ent->add($_POST)) {
Event::log($newID, "suppliers", 4, "financial", sprintf(__('%1$s adds the item %2$s'), $_SESSION["glpiname"], $_POST["name"]));
}
Html::back();
} else {
if (isset($_POST["delete"])) {
$ent->check($_POST["id"], 'd');
$ent->delete($_POST);
Event::log($_POST["id"], "suppliers", 4, "financial", sprintf(__('%s deletes an item'), $_SESSION["glpiname"]));
$ent->redirectToList();
} else {
if (isset($_POST["restore"])) {
$ent->check($_POST["id"], 'd');
$ent->restore($_POST);
Event::log($_POST["id"], "suppliers", 4, "financial", sprintf(__('%s restores an item'), $_SESSION["glpiname"]));
$ent->redirectToList();
示例4: addressImportOne
protected function addressImportOne($info, $force_ids, $validateOnly = false)
{
AdminImportController::setDefaultValues($info);
if ($force_ids && isset($info['id']) && (int) $info['id']) {
$address = new Address((int) $info['id']);
} else {
if (array_key_exists('id', $info) && (int) $info['id'] && Address::addressExists((int) $info['id'])) {
$address = new Address((int) $info['id']);
} else {
$address = new Address();
}
}
AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $address);
if (isset($address->country) && is_numeric($address->country)) {
if (Country::getNameById(Configuration::get('PS_LANG_DEFAULT'), (int) $address->country)) {
$address->id_country = (int) $address->country;
}
} elseif (isset($address->country) && is_string($address->country) && !empty($address->country)) {
if ($id_country = Country::getIdByName(null, $address->country)) {
$address->id_country = (int) $id_country;
} else {
$country = new Country();
$country->active = 1;
$country->name = AdminImportController::createMultiLangField($address->country);
$country->id_zone = 0;
// Default zone for country to create
$country->iso_code = Tools::strtoupper(Tools::substr($address->country, 0, 2));
// Default iso for country to create
$country->contains_states = 0;
// Default value for country to create
$lang_field_error = $country->validateFieldsLang(UNFRIENDLY_ERROR, true);
if (($field_error = $country->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $country->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && !$validateOnly && $country->add()) {
$address->id_country = (int) $country->id;
} else {
if (!$validateOnly) {
$default_language_id = (int) Configuration::get('PS_LANG_DEFAULT');
$this->errors[] = sprintf($this->trans('%s cannot be saved', array(), 'Admin.Parameters.Notification'), $country->name[$default_language_id]);
}
if ($field_error !== true || isset($lang_field_error) && $lang_field_error !== true) {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
}
if (isset($address->state) && is_numeric($address->state)) {
if (State::getNameById((int) $address->state)) {
$address->id_state = (int) $address->state;
}
} elseif (isset($address->state) && is_string($address->state) && !empty($address->state)) {
if ($id_state = State::getIdByName($address->state)) {
$address->id_state = (int) $id_state;
} else {
$state = new State();
$state->active = 1;
$state->name = $address->state;
$state->id_country = isset($country->id) ? (int) $country->id : 0;
$state->id_zone = 0;
// Default zone for state to create
$state->iso_code = Tools::strtoupper(Tools::substr($address->state, 0, 2));
// Default iso for state to create
$state->tax_behavior = 0;
if (($field_error = $state->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $state->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && !$validateOnly && $state->add()) {
$address->id_state = (int) $state->id;
} else {
if (!$validateOnly) {
$this->errors[] = sprintf($this->trans('%s cannot be saved', array(), 'Admin.Parameters.Notification'), $state->name);
}
if ($field_error !== true || isset($lang_field_error) && $lang_field_error !== true) {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
}
if (isset($address->customer_email) && !empty($address->customer_email)) {
if (Validate::isEmail($address->customer_email)) {
// a customer could exists in different shop
$customer_list = Customer::getCustomersByEmail($address->customer_email);
if (count($customer_list) == 0) {
$this->errors[] = sprintf(Tools::displayError('%1$s does not exist in database %2$s (ID: %3$s), and therefore cannot be ' . ($validateOnly ? 'validated' : 'saved')), Db::getInstance()->getMsgError(), $address->customer_email, isset($info['id']) && !empty($info['id']) ? $info['id'] : 'null');
}
} else {
$this->errors[] = sprintf($this->trans('"%s" is not a valid email address.', array(), 'Admin.Parameters.Notification'), $address->customer_email);
return;
}
} elseif (isset($address->id_customer) && !empty($address->id_customer)) {
if (Customer::customerIdExistsStatic((int) $address->id_customer)) {
$customer = new Customer((int) $address->id_customer);
// a customer could exists in different shop
$customer_list = Customer::getCustomersByEmail($customer->email);
if (count($customer_list) == 0) {
$this->errors[] = sprintf(Tools::displayError('%1$s does not exist in database %2$s (ID: %3$s), and therefore cannot be ' . ($validateOnly ? 'validated' : 'saved')), Db::getInstance()->getMsgError(), $customer->email, (int) $address->id_customer);
}
} else {
$this->errors[] = sprintf(Tools::displayError('The customer ID #%d does not exist in the database, and therefore cannot be ' . ($validateOnly ? 'validated' : 'saved')), $address->id_customer);
}
} else {
$customer_list = array();
$address->id_customer = 0;
}
if (isset($address->manufacturer) && is_numeric($address->manufacturer) && Manufacturer::manufacturerExists((int) $address->manufacturer)) {
//.........这里部分代码省略.........
示例5: addressImport
public function addressImport()
{
$this->receiveTab();
$default_language_id = (int) Configuration::get('PS_LANG_DEFAULT');
$handle = $this->openCsvFile();
AdminImportController::setLocale();
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) {
if (Tools::getValue('convert')) {
$line = $this->utf8EncodeArray($line);
}
$info = AdminImportController::getMaskedRow($line);
AdminImportController::setDefaultValues($info);
$address = new Address();
AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $address);
if (isset($address->country) && is_numeric($address->country)) {
if (Country::getNameById(Configuration::get('PS_LANG_DEFAULT'), (int) $address->country)) {
$address->id_country = (int) $address->country;
}
} elseif (isset($address->country) && is_string($address->country) && !empty($address->country)) {
if ($id_country = Country::getIdByName(null, $address->country)) {
$address->id_country = (int) $id_country;
} else {
$country = new Country();
$country->active = 1;
$country->name = AdminImportController::createMultiLangField($address->country);
$country->id_zone = 0;
// Default zone for country to create
$country->iso_code = Tools::strtoupper(Tools::substr($address->country, 0, 2));
// Default iso for country to create
$country->contains_states = 0;
// Default value for country to create
$lang_field_error = $country->validateFieldsLang(UNFRIENDLY_ERROR, true);
if (($field_error = $country->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $country->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $country->add()) {
$address->id_country = (int) $country->id;
} else {
$this->errors[] = sprintf(Tools::displayError('%s cannot be saved'), $country->name[$default_language_id]);
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
if (isset($address->state) && is_numeric($address->state)) {
if (State::getNameById((int) $address->state)) {
$address->id_state = (int) $address->state;
}
} elseif (isset($address->state) && is_string($address->state) && !empty($address->state)) {
if ($id_state = State::getIdByName($address->state)) {
$address->id_state = (int) $id_state;
} else {
$state = new State();
$state->active = 1;
$state->name = $address->state;
$state->id_country = isset($country->id) ? (int) $country->id : 0;
$state->id_zone = 0;
// Default zone for state to create
$state->iso_code = Tools::strtoupper(Tools::substr($address->state, 0, 2));
// Default iso for state to create
$state->tax_behavior = 0;
if (($field_error = $state->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $state->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $state->add()) {
$address->id_state = (int) $state->id;
} else {
$this->errors[] = sprintf(Tools::displayError('%s cannot be saved'), $state->name);
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
if (isset($address->customer_email) && !empty($address->customer_email)) {
if (Validate::isEmail($address->customer_email)) {
// a customer could exists in different shop
$customer_list = Customer::getCustomersByEmail($address->customer_email);
if (count($customer_list) == 0) {
$this->errors[] = sprintf(Tools::displayError('%1$s does not exist in database %2$s (ID: %3$s), and therefore cannot be saved.'), Db::getInstance()->getMsgError(), $address->customer_email, isset($info['id']) && !empty($info['id']) ? $info['id'] : 'null');
}
} else {
$this->errors[] = sprintf(Tools::displayError('"%s" is not a valid email address.'), $address->customer_email);
continue;
}
} elseif (isset($address->id_customer) && !empty($address->id_customer)) {
if (Customer::customerIdExistsStatic((int) $address->id_customer)) {
$customer = new Customer((int) $address->id_customer);
// a customer could exists in different shop
$customer_list = Customer::getCustomersByEmail($customer->email);
if (count($customer_list) == 0) {
$this->errors[] = sprintf(Tools::displayError('%1$s does not exist in database %2$s (ID: %3$s), and therefore cannot be saved.'), Db::getInstance()->getMsgError(), $customer->email, (int) $address->id_customer);
}
} else {
$this->errors[] = sprintf(Tools::displayError('The customer ID #%d does not exist in the database, and therefore cannot be saved.'), $address->id_customer);
}
} else {
$customer_list = array();
$address->id_customer = 0;
}
if (isset($address->manufacturer) && is_numeric($address->manufacturer) && Manufacturer::manufacturerExists((int) $address->manufacturer)) {
$address->id_manufacturer = (int) $address->manufacturer;
} elseif (isset($address->manufacturer) && is_string($address->manufacturer) && !empty($address->manufacturer)) {
$manufacturer = new Manufacturer();
$manufacturer->name = $address->manufacturer;
if (($field_error = $manufacturer->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $manufacturer->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $manufacturer->add()) {
$address->id_manufacturer = (int) $manufacturer->id;
} else {
$this->errors[] = Db::getInstance()->getMsgError() . ' ' . sprintf(Tools::displayError('%1$s (ID: %2$s) cannot be saved'), $manufacturer->name, isset($manufacturer->id) && !empty($manufacturer->id) ? $manufacturer->id : 'null');
//.........这里部分代码省略.........
示例6: generate_entity
/** Generate bigdump : generate items for an entity
*
* @param $ID_entity entity ID
**/
function generate_entity($ID_entity) {
global $MAX, $DB, $percent, $FIRST, $LAST, $MAX_KBITEMS_BY_CAT, $MAX_DISK,
$DOCUMENTS, $NET_PORT, $NET_LOC;
regenerateTreeCompleteName("glpi_entities");
$current_year = date("Y");
// DOMAIN
$items = array("SP2MI", "CAMPUS"," IUT86", "PRESIDENCE", "CEAT", "D'omaine");
$dp = new Domain();
$FIRST["domain"] = getMaxItem("glpi_domains")+1;
for ($i=0 ; $i<$MAX['domain'] ; $i++) {
if (isset($items[$i])) {
$val = $items[$i];
} else {
$val = "domain $ID_entity '$i";
}
$dp->add(toolbox::addslashes_deep(array('name' => $val,
'entities_id' => $ID_entity,
'is_recursive' => 1,
'comment' => "comment $val")));
}
$LAST["domain"] = getMaxItem("glpi_domains");
// STATUS
$items = array("Reparation", "En stock", "En fonction", "Retour SAV", "En attente d'");
$dp = new State();
$FIRST["state"] = getMaxItem("glpi_states")+1;
for ($i=0 ; $i<$MAX['state'] ; $i++) {
if (isset($items[$i])) {
$val = $items[$i];
} else {
$val = "State $ID_entity '$i";
}
$state_id = $dp->add(toolbox::addslashes_deep(array('name' => $val,
'entities_id' => $ID_entity,
'is_recursive' => 1,
'comment' => "comment $val")));
// generate sub status
for ($j=0 ; $j<$MAX['state'] ; $j++) {
$val2 = "Sub $val $j";
$dp->add(toolbox::addslashes_deep(array('name' => $val2,
'entities_id' => $ID_entity,
'is_recursive' => 1,
'states_id' => $state_id,
'comment' => "comment $val")));
}
}
$LAST["state"] = getMaxItem("glpi_states");
// glpi_groups
$FIRST["groups"] = getMaxItem("glpi_groups")+1;
$group = new Group();
for ($i=0 ; $i<$MAX['groups'] ; $i++) {
$gID = $group->add(toolbox::addslashes_deep(
array('entities_id' => $ID_entity,
'name' => "group d'$i",
'comment' => "comment group d'$i",
'is_assign' => 0)));
// Generate sub group
for ($j=0 ; $j<$MAX['groups'] ; $j++) {
$group->add(toolbox::addslashes_deep(
array('entities_id' => $ID_entity,
'name' => "subgroup d'$j",
'comment' => "comment subgroup d'$j of group $i",
'groups_id' => $gID,
'is_assign' => 0)));
}
}
$LAST["groups"] = getMaxItem("glpi_groups");
$FIRST["techgroups"] = $LAST["groups"]+1;
for ($i=0 ; $i<$MAX['groups'] ; $i++) {
$group->add(toolbox::addslashes_deep(
array('entities_id' => $ID_entity,
'name' => "tech group d'$i",
'comment' => "comment tech group d'$i")));
}
$LAST["techgroups"] = getMaxItem("glpi_groups");
regenerateTreeCompleteName("glpi_groups");
// glpi_users
$FIRST["users_sadmin"] = getMaxItem("glpi_users")+1;
//.........这里部分代码省略.........
示例7: productImport
public function productImport()
{
$this->receiveTab();
$handle = $this->openCsvFile();
$default_language_id = (int) Configuration::get('PS_LANG_DEFAULT');
$id_lang = Language::getIdByIso(Tools::getValue('iso_lang'));
if (!Validate::isUnsignedId($id_lang)) {
$id_lang = $default_language_id;
}
AdminImportController::setLocale();
$shop_ids = Shop::getCompleteListOfShopsID();
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) {
if (Tools::getValue('convert')) {
$line = $this->utf8EncodeArray($line);
}
$info = AdminImportController::getMaskedRow($line);
if (self::ignoreRow($info)) {
continue;
}
if (Tools::getValue('forceIDs') && isset($info['id']) && (int) $info['id']) {
$product = new Product((int) $info['id']);
} elseif (Tools::getValue('match_ref') && array_key_exists('reference', $info)) {
$datas = Db::getInstance()->getRow('
SELECT p.`id_product`
FROM `' . _DB_PREFIX_ . 'product` p
' . Shop::addSqlAssociation('product', 'p') . '
WHERE p.`reference` = "' . pSQL($info['reference']) . '"
');
if (isset($datas['id_product']) && $datas['id_product']) {
$product = new Product((int) $datas['id_product']);
} else {
$product = new Product();
}
} else {
if (array_key_exists('id', $info) && is_string($info['id'])) {
$prod = self::findProductByName($default_language_id, $info['id'], $info['name']);
if ($prod['id_product']) {
$info['id'] = (int) $prod['id_product'];
}
}
if (array_key_exists('id', $info) && (int) $info['id'] && Product::existsInDatabase((int) $info['id'], 'product')) {
$product = new Product((int) $info['id']);
$product->loadStockData();
$category_data = Product::getProductCategories((int) $product->id);
if (is_array($category_data)) {
foreach ($category_data as $tmp) {
if (!isset($product->category) || !$product->category || is_array($product->category)) {
$product->category[] = $tmp;
}
}
}
} else {
$product = new Product();
}
}
AdminImportController::setEntityDefaultValues($product);
AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $product);
if (!Shop::isFeatureActive()) {
$product->shop = 1;
} elseif (!isset($product->shop) || empty($product->shop)) {
$product->shop = implode($this->multiple_value_separator, Shop::getContextListShopID());
}
if (!Shop::isFeatureActive()) {
$product->id_shop_default = 1;
} else {
$product->id_shop_default = (int) Context::getContext()->shop->id;
}
// link product to shops
$product->id_shop_list = array();
foreach (explode($this->multiple_value_separator, $product->shop) as $shop) {
if (!empty($shop) && !is_numeric($shop)) {
$product->id_shop_list[] = Shop::getIdByName($shop);
} elseif (!empty($shop)) {
$product->id_shop_list[] = $shop;
}
}
if ((int) $product->id_tax_rules_group != 0) {
if (Validate::isLoadedObject(new TaxRulesGroup($product->id_tax_rules_group))) {
$address = $this->context->shop->getAddress();
$tax_manager = TaxManagerFactory::getManager($address, $product->id_tax_rules_group);
$product_tax_calculator = $tax_manager->getTaxCalculator();
$product->tax_rate = $product_tax_calculator->getTotalRate();
} else {
$this->addProductWarning('id_tax_rules_group', $product->id_tax_rules_group, Tools::displayError('Invalid tax rule group ID. You first need to create a group with this ID.'));
}
}
if (isset($product->manufacturer) && is_numeric($product->manufacturer) && Manufacturer::manufacturerExists((int) $product->manufacturer)) {
$product->id_manufacturer = (int) $product->manufacturer;
} elseif (isset($product->manufacturer) && is_string($product->manufacturer) && !empty($product->manufacturer)) {
if ($manufacturer = Manufacturer::getIdByName($product->manufacturer)) {
$product->id_manufacturer = (int) $manufacturer;
} else {
$manufacturer = new Manufacturer();
$manufacturer->name = $product->manufacturer;
if (($field_error = $manufacturer->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $manufacturer->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $manufacturer->add()) {
$product->id_manufacturer = (int) $manufacturer->id;
} else {
$this->errors[] = sprintf(Tools::displayError('%1$s (ID: %2$s) cannot be saved'), $manufacturer->name, isset($manufacturer->id) && !empty($manufacturer->id) ? $manufacturer->id : 'null');
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
//.........这里部分代码省略.........
示例8: testContact_Supplier
/**
* Check right on CommonDBRelation object
*/
public function testContact_Supplier()
{
global $DB;
$DB->connect();
$ent0 = $this->sharedFixture['entity'][0];
$ent1 = $this->sharedFixture['entity'][1];
$ent2 = $this->sharedFixture['entity'][2];
// Super admin
Session::changeProfile(4);
$this->assertEquals(4, $_SESSION['glpiactiveprofile']['id']);
$this->assertEquals(31, $_SESSION['glpiactiveprofile']['contact_enterprise']);
// See all
$this->assertTrue(Session::changeActiveEntities("all"));
// Create some contacts
$contact = new Contact();
$idc[0] = $contact->add(array('name' => "Contact 1", 'entities_id' => $ent0, 'is_recursive' => 0));
$this->assertGreaterThan(0, $idc[0]);
$idc[1] = $contact->add(array('name' => "Contact 2", 'entities_id' => $ent0, 'is_recursive' => 1));
$this->assertGreaterThan(0, $idc[1]);
$idc[2] = $contact->add(array('name' => "Contact 3", 'entities_id' => $ent1, 'is_recursive' => 1));
$this->assertGreaterThan(0, $idc[2]);
$idc[3] = $contact->add(array('name' => "Contact 4", 'entities_id' => $ent2));
$this->assertGreaterThan(0, $idc[3]);
// Create some suppliers
$supplier = new Supplier();
$ids[0] = $supplier->add(array('name' => "Supplier 1", 'entities_id' => $ent0, 'is_recursive' => 0));
$this->assertGreaterThan(0, $ids[0]);
$ids[1] = $supplier->add(array('name' => "Supplier 2", 'entities_id' => $ent0, 'is_recursive' => 1));
$this->assertGreaterThan(0, $ids[1]);
$ids[2] = $supplier->add(array('name' => "Supplier 3", 'entities_id' => $ent1));
$this->assertGreaterThan(0, $ids[2]);
$ids[3] = $supplier->add(array('name' => "Supplier 4", 'entities_id' => $ent2));
$this->assertGreaterThan(0, $ids[3]);
// Relation
$rel = new Contact_Supplier();
$input = array('contacts_id' => $idc[0], 'suppliers_id' => $ids[0]);
// root
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[0] = $rel->add($input);
$this->assertGreaterThan(0, $idr[0]);
$this->assertTrue($rel->can($idr[0], READ));
$this->assertTrue($rel->canEdit($idr[0]));
$input = array('contacts_id' => $idc[0], 'suppliers_id' => $ids[1]);
// root + rec
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[1] = $rel->add($input);
$this->assertGreaterThan(0, $idr[1]);
$this->assertTrue($rel->can($idr[1], READ));
$this->assertTrue($rel->canEdit($idr[1]));
$input = array('contacts_id' => $idc[0], 'suppliers_id' => $ids[2]);
// child 1
$this->assertFalse($rel->can(-1, CREATE, $input));
$input = array('contacts_id' => $idc[0], 'suppliers_id' => $ids[3]);
// child 2
$this->assertFalse($rel->can(-1, CREATE, $input));
$input = array('contacts_id' => $idc[1], 'suppliers_id' => $ids[0]);
// root
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[2] = $rel->add($input);
$this->assertGreaterThan(0, $idr[2]);
$this->assertTrue($rel->can($idr[2], READ));
$this->assertTrue($rel->canEdit($idr[2]));
$input = array('contacts_id' => $idc[1], 'suppliers_id' => $ids[1]);
// root + rec
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[3] = $rel->add($input);
$this->assertGreaterThan(0, $idr[3]);
$this->assertTrue($rel->can($idr[3], READ));
$this->assertTrue($rel->canEdit($idr[3]));
$input = array('contacts_id' => $idc[1], 'suppliers_id' => $ids[2]);
// child 1
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[4] = $rel->add($input);
$this->assertGreaterThan(0, $idr[4]);
$this->assertTrue($rel->can($idr[4], READ));
$this->assertTrue($rel->canEdit($idr[4]));
$input = array('contacts_id' => $idc[1], 'suppliers_id' => $ids[3]);
// child 2
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[5] = $rel->add($input);
$this->assertGreaterThan(0, $idr[5]);
$this->assertTrue($rel->can($idr[5], READ));
$this->assertTrue($rel->canEdit($idr[5]));
$input = array('contacts_id' => $idc[2], 'suppliers_id' => $ids[0]);
// root
$this->assertFalse($rel->can(-1, CREATE, $input));
$input = array('contacts_id' => $idc[2], 'suppliers_id' => $ids[1]);
// root + rec
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[6] = $rel->add($input);
$this->assertGreaterThan(0, $idr[6]);
$this->assertTrue($rel->can($idr[6], READ));
$this->assertTrue($rel->canEdit($idr[6]));
$input = array('contacts_id' => $idc[2], 'suppliers_id' => $ids[2]);
// Child 1
$this->assertTrue($rel->can(-1, CREATE, $input));
$idr[7] = $rel->add($input);
//.........这里部分代码省略.........
示例9: catch
$selected_supplier = NULL;
}
} catch (Exception $e) {
$messages[] = array('text' => nl2br($e->getMessage()), 'strong' => true, 'color' => 'red');
$fatal_error = true;
}
/********************************************************************************
*
* Execute actions
*
*********************************************************************************/
if (!$fatal_error) {
switch ($action) {
case 'add':
try {
$new_supplier = Supplier::add($database, $current_user, $log, $new_name, $new_parent_id, $new_address, $new_phone_number, $new_fax_number, $new_email_address, $new_website, $new_auto_product_url);
if (!$add_more) {
$selected_supplier = $new_supplier;
$selected_id = $selected_supplier->get_id();
}
} catch (Exception $e) {
$messages[] = array('text' => 'Der neue Lieferant konnte nicht angelegt werden!', 'strong' => true, 'color' => 'red');
$messages[] = array('text' => 'Fehlermeldung: ' . nl2br($e->getMessage()), 'color' => 'red');
}
break;
case 'delete':
try {
if (!is_object($selected_supplier)) {
throw new Exception('Es ist kein Lieferant markiert oder es trat ein Fehler auf!');
}
$parts = $selected_supplier->get_parts();
示例10: import_parts
/**
* @brief Import Parts (create Parts, and if neccessary, Categories, Footprints and so on)
*
* @note This function uses database transactions. If an error occurs, all changes will be rolled back.
*
* @param Database &$database reference to the database object
* @param User &$current_user reference to the user which is logged in
* @param Log &$log reference to the Log-object
* @param array $data The import data array from "extract_import_data_from_request()"
* @param boolean $only_check_data If true, this function will only check if all values in "$data" are valid.
* In this case, no parts will be imported!
*
* @retval array All new Part objects (only if "$only_check_data == false")
*
* @throws Exception if there was an error (maybe the passed data is not valid)
*/
function import_parts(&$database, &$current_user, &$log, $data, $only_check_data = false)
{
$parts = array();
try {
$transaction_id = $database->begin_transaction();
// start transaction
// Get the category, footprint, storelocation, ... which are named "Import", or create them.
// We need this elements as parent for new elements, which will be created while import parts.
$import_categories = Category::search($database, $current_user, $log, 'Import', true);
if (count($import_categories) > 0) {
$import_category = $import_categories[0];
$import_category_created = false;
} else {
$import_category = Category::add($database, $current_user, $log, 'Import', NULL);
$import_category_created = true;
// we can delete it later if we didn't need it
}
$import_storelocations = Storelocation::search($database, $current_user, $log, 'Import', true);
if (count($import_storelocations) > 0) {
$import_storelocation = $import_storelocations[0];
$import_storelocation_created = false;
} else {
$import_storelocation = Storelocation::add($database, $current_user, $log, 'Import', NULL);
$import_storelocation_created = true;
// we can delete it later if we didn't need it
}
$import_footprints = Footprint::search($database, $current_user, $log, 'Import', true);
if (count($import_footprints) > 0) {
$import_footprint = $import_footprints[0];
$import_footprint_created = false;
} else {
$import_footprint = Footprint::add($database, $current_user, $log, 'Import', NULL);
$import_footprint_created = true;
// we can delete it later if we didn't need it
}
$import_suppliers = Supplier::search($database, $current_user, $log, 'Import', true);
if (count($import_suppliers) > 0) {
$import_supplier = $import_suppliers[0];
$import_supplier_created = false;
} else {
$import_supplier = Supplier::add($database, $current_user, $log, 'Import', NULL);
$import_supplier_created = true;
// we can delete it later if we didn't need it
}
$import_manufacturers = Manufacturer::search($database, $current_user, $log, 'Import', true);
if (count($import_manufacturers) > 0) {
$import_manufacturer = $import_manufacturers[0];
$import_manufacturer_created = false;
} else {
$import_manufacturer = Manufacturer::add($database, $current_user, $log, 'Import', NULL);
$import_manufacturer_created = true;
// we can delete it later if we didn't need it
}
$import_category_used = false;
$import_storelocation_used = false;
$import_footprint_used = false;
$import_supplier_used = false;
$import_manufacturer_used = false;
// start import
$row_index = 0;
foreach ($data as $row) {
$name = $row['part_name'];
$description = $row['part_description'];
$instock = $row['part_instock'];
$mininstock = $row['part_mininstock'];
$comment = $row['part_comment'];
$category_name = $row['part_category_name'];
$footprint_name = $row['part_footprint_name'];
$storelocation_name = $row['part_storelocation_name'];
$manufacturer_name = $row['part_manufacturer_name'];
$supplier_name = $row['part_supplier_name'];
$supplierpartnr = $row['part_supplierpartnr'];
$price = $row['part_price'];
// search elements / create them if they don't exist already
if (strlen($category_name) > 0) {
$categories = Category::search($database, $current_user, $log, $category_name, true);
if (count($categories) > 0) {
$category = $categories[0];
} else {
$category = Category::add($database, $current_user, $log, $category_name, $import_category->get_id());
$import_category_used = true;
}
} else {
throw new Exception('Jedes Bauteil muss eine Kategorie haben!');
//.........这里部分代码省略.........
示例11: importSuppliers
protected function importSuppliers()
{
$this->truncateTables(array('supplier', 'supplier_lang', 'supplier_shop'));
$handle = $this->openCsvFile('suppliers.csv');
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, ';'); $current_line++) {
$res = false;
$fields = $this->filterFields('Supplier', $this->suppliers_fields, $line);
if (!isset($fields['id'])) {
$supplier = new Supplier($line[0]);
$supplier->id = $line[0];
} else {
$supplier = new Supplier($fields['id']);
}
foreach ($fields as $key => $field) {
if ($key == 'description' || $key == 'meta_title' || $key == 'meta_keywords' || $key == 'meta_description') {
$supplier->{$key} = $this->multilFild($field);
} else {
$supplier->{$key} = $field;
}
}
$supplier->force_id = true;
if (!$res) {
$res = $supplier->add();
}
}
$this->closeCsvFile($handle);
return true;
}