errs; $vars['info'] = $this->info; $vars['added_users'] = $this->added_users; return $vars; } public function handle() { $try = getVal('Try'); $execute = getVal('Execute'); global $cfg; if (!empty($execute) || (!empty($try))) { if (!empty($_FILES['file']['tmp_name'])) { $path = $cfg['Path']['data'].'tmp/users_import.xsl'; move_uploaded_file($_FILES['file']['tmp_name'], $path); // Increase memory for large files ini_set('memory_limit', '512M'); $import = new AutomaticImportTransform($path); $users_array = $import->LoadBinfileAsArray(); /* * A = jméno * B = přijmení * C = společnost * D = email * E = telefon * F = ulice * G = město * H = země * I = psč * J = skupiny * K = newsletter * L = ICO * M = DIC * N = delivery name * O = delivery surname * P = delivery firm * Q = delivery street * R = delivery city * S = delivery zip * T = delivery_country */ $errs = []; $added = 0; $price_levels = sqlFetchAll(sqlQueryBuilder()->select('id, name')->from('price_levels')->execute(), ['id' => 'name']); foreach (reset($users_array) as $index => $user) { if ($index == 1) { continue; } if (!empty($user['D'])) { if (filter_var($user['D'], FILTER_VALIDATE_EMAIL)) { $groups = []; if (!empty($user['K'])) { $groups = explode(';', str_replace(' ', '', $user['K'])); } $fields = ['figure' => 'N']; if (!empty($user['A'])) { $fields['name'] = $user['A']; } if (!empty($user['B'])) { $fields['surname'] = $user['B']; } if (!empty($user['C'])) { $fields['firm'] = $user['C']; } if (!empty($user['E'])) { $fields['phone'] = $user['E']; } if (!empty($user['F'])) { $fields['street'] = $user['F']; } if (!empty($user['G'])) { $fields['city'] = $user['G']; } if (!empty($user['H'])) { $fields['zip'] = $user['H']; } if (!empty($user['I'])) { $fields['state'] = $user['I']; } if (!empty($user['J'])) { $fields['country'] = $user['J']; } if (!empty($user['L'])) { $fields['get_news'] = ($user['L'] == 'ano') ? 'Y' : 'N'; } if (!empty($user['M'])) { $fields['ico'] = $user['M']; } if (!empty($user['N'])) { $fields['dic'] = $user['N']; } if (!empty($user['O'])) { $fields['delivery_name'] = $user['O']; } if (!empty($user['P'])) { $fields['delivery_surname'] = $user['P']; } if (!empty($user['Q'])) { $fields['delivery_firm'] = $user['Q']; } if (!empty($user['R'])) { $fields['delivery_street'] = $user['R']; } if (!empty($user['S'])) { $fields['delivery_city'] = $user['S']; } if (!empty($user['T'])) { $fields['delivery_zip'] = $user['T']; } if (!empty($user['U'])) { $fields['delivery_state'] = $user['U']; } if (!empty($user['V'])) { $fields['delivery_country'] = $user['V']; } $price_level = null; if (!empty($user['W'])) { // cenová hladina $price_level = array_search(trim($user['W']), $price_levels); } if (empty($try)) { $confirmed = false; if (getVal('newsletter_confirm')) { $confirmed = true; } $user['id'] = addUserEmail($user['D'], $groups, $fields, $confirmed); if ($price_level) { sqlQuery("REPLACE INTO users_dealer_price_level (id_user, id_price_level) VALUES ('{$user['id']}', '{$price_level}')"); } } else { $fields['email'] = $user['D']; $fields['groups'] = $groups; $fields['price_level'] = ($price_level ? $price_level.' - '.$user['W'] : ''); $this->added_users[] = $fields; } ++$added; } else { $errs[$index] = "Nevalidní email {$user['D']}"; } } else { $errs[$index] = 'Prázdný email - uživatel nemůže být přidán'; } } $info['test'] = !empty($try) ? 1 : 2; $info['added'] = $added; $this->info = $info; $this->errs = $errs; } } } }