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]'; }