示例#1
0
 private static function AssignMatvid($material_name1c)
 {
     // Определяем Вид материальной ценности
     Proc::mb_preg_match_all('/[а-яА-Яa-zA-Z\\d]+/u', $material_name1c, $match_arr, PREG_OFFSET_CAPTURE, 0, 'UTF-8');
     $i = 0;
     $tmpmin = [1, ''];
     while ($i < count($match_arr[0])) {
         $word = $match_arr[0][$i];
         $str = mb_substr($material_name1c, 0, $word[1], 'UTF-8') . $word[0];
         $rows = self::GetRowsPDO('select importmaterial_combination, id_matvid from importmaterial where importmaterial_combination like :importmaterial_combination order by CHAR_LENGTH(importmaterial_combination)', ['importmaterial_combination' => $str . '%'], true);
         if (count($rows) === 1 && mb_stripos($material_name1c, $rows[0]['importmaterial_combination'], 0, 'UTF-8') === 0 || count($rows) > 1) {
             $tmpmin = [$rows[0]['id_matvid'], $rows[0]['importmaterial_combination']];
         } else {
             break;
         }
         $i++;
     }
     unset($match_arr);
     unset($rows);
     // Если Вид материальной ценности не определен, то ставится ключ 1 со значением "Не определен"
     return $tmpmin[0];
 }