Skip to content
Snippets Groups Projects
Commit d9462288 authored by xamgore's avatar xamgore
Browse files

Filter of invisible symbols + refactoring

parent 14f10a52
No related merge requests found
......@@ -19,10 +19,10 @@ class FileParser
while ($line = fgetcsv($file, 0, ";")) {
// ФИО, курс, степень подготовки,
list($name, $gradeNum, $groupNum, $degree, $spec) = $line;
list($name, $gradeNum, $groupNum, $degree, $spec) = UTF8::clear($line);
// Фамилия, имя, отчество
list($lastName, $firstName, $secondName) = self::parsePeopleName($name);
list($lastName, $firstName, $secondName) = self::parseFullName($name);
$degree = Model_Grades::getDegreeType($degree);
......@@ -54,11 +54,12 @@ class FileParser
$count = $exists = 0;
$errors = [];
while (list($name, $abbr) = fgetcsv($file, 0, ";")) {
while ($line = fgetcsv($file, 0, ";")) {
list($name, $abbr) = UTF8::clear($line);
$attempt = Model_Subject::create($name, $abbr, $facultyID);
if ($attempt < 0) {
$errors[] = ['Row' => $count, 'Info' => $name . ';' . $abbr];
$errors[] = ['Row' => $count, 'Info' => implode(';', $line)];
} elseif ($attempt == 1) {
$exists++;
}
......@@ -99,7 +100,7 @@ class FileParser
list($name, $department, $facultyName) = UTF8::clear($line);
// Фамилия, имя, отчество
list($lastName, $firstName, $secondName) = self::parsePeopleName($name);
list($lastName, $firstName, $secondName) = self::parseFullName($name);
// if ($facultyName)
// $facultyID = $faculties[trim($facultyName)];
......@@ -116,25 +117,10 @@ class FileParser
return $errors;
}
private static function parsePeopleName($name) {
$nameExploded = explode(' ', $name);
$idx = 0;
$nameHandled = [];
private static function parseFullName($name) {
// Енотова (Сенченко) Наталья Лин Чу Геннадьевна
if (UTF8::substr($nameExploded[1], 0, 1) == '(') {
$idx = 1;
}
$nameHandled[0] = $nameExploded[0];
$nameHandled[1] = $nameExploded[1 + $idx];
$nameHandled[2] = '';
for ($i = 2 + $idx; $i < count($nameExploded); $i++) {
$nameHandled[2] .= $nameExploded[$i] . ' ';
}
return Arr::map('trim', $nameHandled);
$name = preg_replace('/\(.*\)\s+/', '', $name);
$res = explode(' ', $name, 3);
return Arr::map('trim', $res);
}
}
\ No newline at end of file
......@@ -73,9 +73,9 @@ class Model_Account extends Model
$response = DB::query(Database::SELECT, $sql)
->parameters([
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':last' => trim($lastName),
':first' => trim($firstName),
':second' => trim($secondName),
':grade' => $grade,
':group' => $groupNum,
':faculty' => $facultyID,
......@@ -95,9 +95,9 @@ class Model_Account extends Model
$sql = "SELECT `CreateStudentEx`(:last, :first, :second, :grade, :group, :degree, :spec, :faculty, :code, :semester) AS `UserID`;";
$response = DB::query(Database::SELECT, $sql)
->parameters([
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':last' => trim($lastName),
':first' => trim($firstName),
':second' => trim($secondName),
':grade' => $gradeNum,
':group' => $groupNum,
':degree' => $degree,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment