Esempio n. 1
0
 static function insert_copied_rows($query_num, $place_id)
 {
     if (empty($_SESSION['rt']['buffer']['copied_rows'])) {
         return '[0,"нет сохраненной информации для вставки"]';
     }
     if (($data = json_decode($_SESSION['rt']['buffer']['copied_rows'])) == NULL) {
         return '[0,"нет сохраненной информации для вставки"]';
     }
     $data = (array) $data;
     // print_r($data);
     // exit;
     foreach ($data as $mainCopiedRowId => $dop_data) {
         // если у нас есть место в которое мы хотим вставить скопированные ряды
         if ($place_id) {
             //echo 'mainCopiedRowId-'.$mainCopiedRowId."\r\n";
             // первым шагом "опускаем" сортировку рядов, которые находятся на том и ниже местах куда хотим вставить
             // скопированные ряды тоесть увеличиваем sort на 1 (sort+1) в рамках данной заявки там где id равно или больше
             // $place_id функция возвращает новый sort_id который был у ряда в который мы хотим вставить, чтобы затем
             // присвоить его новому ряду
             $sort_id = RT::change_rows_sort((int) $place_id, $query_num);
         } else {
             // нам нужно получить максимальное значение поля sort для текущей заявки
             // затем мы присвоим новому вставляемому ряду это значение увеличенное на еденицу
             $sort_id = RT::get_maximum_sort_id($query_num);
         }
         // теперь мы вставляем ряд в конец таблицы RT_MAIN_ROWS копируя его из RT_MAIN_ROWS по $mainCopiedRowId
         // затем вставляем в RT_DOP_DATA новые ряды скопированные из RT_DOP_DATA
         // затем вставляем в RT_DOP_USLUGI новые ряды скопированные из RT_DOP_USLUGI
         RT::insert_copied_rows_insert_part((int) $sort_id, (int) $mainCopiedRowId, $query_num, $dop_data);
     }
     return '[1]';
 }