SetTitle($LNG['SRD_CHANGE']); if (!isUserMinAdmin()) { echo $LNG['EDIT_NO_ALLOW']; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); exit(); } $id = intval($_GET['id']); // загрузка записи по id $SrdItem = []; $isRowExists = false; $PRODUCT_ID_Z = []; if ($id) { $arFilter = Array("IBLOCK_ID"=>"11", "ACTIVE"=>"Y", "ID" => $id); $dc = CIBlockElement::GetList(Array(), $arFilter, Array("IBLOCK_ID", "ID", "NAME", "PROPERTY_NAME", "PROPERTY_NAME_KZ", "PROPERTY_WORK", "PROPERTY_WORK_KZ", "PROPERTY_NOTE", "PROPERTY_NOTE_KZ", "PROPERTY_UNIT", "PROPERTY_UNIT_KZ", "PROPERTY_CODE", "PROPERTY_ITEMS")); while($Item = $dc->GetNext()) { $isRowExists = true; $SrdItem['code'] = $Item['NAME']; $SrdItem['name_srd'] = $Item['PROPERTY_NAME_VALUE']; $SrdItem['name_srd_kz'] = $Item['PROPERTY_NAME_KZ_VALUE']; $SrdItem['work'] = $Item['PROPERTY_WORK_VALUE']; $SrdItem['work_kz'] = $Item['PROPERTY_WORK_KZ_VALUE']; $SrdItem['prem'] = $Item['PROPERTY_NOTE_VALUE']; $SrdItem['prem_kz'] = $Item['PROPERTY_NOTE_KZ_VALUE']; $SrdItem['unit'] = $Item['PROPERTY_UNIT_VALUE']; $SrdItem['unit_kz'] = $Item['PROPERTY_UNIT_KZ_VALUE']; $SrdItem['kod_r'] = $Item['PROPERTY_CODE_VALUE']; $PRODUCT_ID_Z[] = $Item['PROPERTY_ITEMS_VALUE']; } } if ($isRowExists) { $arFilter = Array("IBLOCK_ID"=>"10", "ACTIVE"=>"Y", "NAME" => $SrdItem['kod_r']); $dc = CIBlockElement::GetList(Array(), $arFilter, Array("IBLOCK_ID", "ID", "PROPERTY_NAME", "PROPERTY_NAME_KZ")); while($Item = $dc->GetNext()) { $SrdItem['name_r'] = $Item['PROPERTY_NAME_VALUE']; $SrdItem['name_r_kz'] = $Item['PROPERTY_NAME_KZ_VALUE']; } $SrdItem['list'] = []; if (count($PRODUCT_ID_Z) > 0 && $PRODUCT_ID_Z[0]) { $arFilter = Array("IBLOCK_ID"=>"12", "ACTIVE"=>"Y", "ID" => $PRODUCT_ID_Z); $dc = CIBlockElement::GetList(Array(), $arFilter, Array("IBLOCK_ID", "ID", "NAME", "PROPERTY_NAME", "PROPERTY_NAME_KZ", "PROPERTY_TYPE", "PROPERTY_UNIT", "PROPERTY_UNIT_KZ", "PROPERTY_CODE", "PROPERTY_VOLUME", "PROPERTY_P", "PROPERTY_D", "PROPERTY_D1", "PROPERTY_D2", "PROPERTY_V", "PROPERTY_R", "PROPERTY_PRIM", "PROPERTY_S", "PROPERTY_SNUM", "PROPERTY_SV", "PROPERTY_SVNUM", "PROPERTY_SVR")); while($Item = $dc->GetNext()) { $SrdItem['list'][ $Item['ID'] ] = $Item; } } } else { echo $LNG['ITEM_NOT_FOUND']; } $err = 0; // сохранение if ($id && isset($_POST['edit'])) { $arFilter = Array("IBLOCK_ID"=>"10", "ACTIVE"=>"Y", "NAME" => $_POST['kod_r']); $res_count = CIBlockElement::GetList(Array(), $arFilter, Array(), false, Array()); if($res_count == '0') { $el_r = new CIBlockElement; $arr = array(); $arr = explode("-", $_POST['kod_r']); $codeZ = str_replace(' ', '', $_POST['kod_r']); $arLoadProductArray_r = Array( "MODIFIED_BY" => $USER->GetID(), "CREATED_BY" => $USER->GetID(), "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => '10', "NAME" => $codeZ, "ACTIVE" => "Y", "PROPERTY_VALUES" => array( "NAME" => $_POST['name_r'], "NAME_KZ" => $_POST['name_r_kz'], "S1" => $arr['1'], "S2" => $arr['2'] ) ); $PRODUCT_ID_R = $el_r->Add($arLoadProductArray_r,true); } $codeR = str_replace(' ', '', $_POST['code']); //header ('location: http://infozhol-test.kad.org.kz/raschet/?id='.$_GET['id'].'&idsrd='.$PRODUCT_ID); $arFilter = Array("IBLOCK_ID"=>"11", "ACTIVE"=>"Y", "!ID" => $id, "NAME" => $codeR); $res_count = CIBlockElement::GetList(Array(), $arFilter, Array(), false, Array()); $PRODUCT_ID_Z = []; if($res_count == '0') { $CHANGE_I = []; for ($i = 1;$i<=4;$i++){ if (array_key_exists("NAME_".$i."_1", $_POST)) { $io = 1; while (array_key_exists("NAME_".$i."_".$io, $_POST)) { $CHANGE_I0 = [ 'action' => '', 'code' => '', 'list' => [] ]; if ($_POST["delete_".$i."_".$io]==0) { $el_z = new CIBlockElement; $codeZ = $_POST["CODE_".$i."_".$io]; if(!preg_match('@[А-я]@u',$codeZ) && $codeZ != '') { $codeZ = str_replace(array(' ','-'), '', $codeZ); // $codeZ = substr_replace($codeZ, "-", 4, 0); // $codeZ = substr_replace($codeZ, "-", 9, 0); } if ($_POST["ID_".$i."_".$io] && $SrdItem['list'][$_POST["ID_".$i."_".$io]]) { $OldSubItem = $SrdItem['list'][$_POST["ID_".$i."_".$io]]; $CHANGE_I0['action'] = 'Изменен'; $CHANGE_I0['code'] = $codeZ; if ($_POST['CODE_'.$i.'_'.$io] != $OldSubItem['PROPERTY_CODE_VALUE']) {$CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_CODE_VALUE'], 'new' => $_POST['CODE_'.$i.'_'.$io], 'name' => 'Шифр норм и коды ресурсов'];} if ($_POST['NAME_'.$i.'_'.$io] != $OldSubItem['PROPERTY_NAME_VALUE']) {$CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_NAME_VALUE'], 'new' => $_POST['NAME_'.$i.'_'.$io], 'name' => 'Наименование работ и затрат (Рус)'];} if ($_POST['NAME_KZ_'.$i.'_'.$io] != $OldSubItem['PROPERTY_NAME_KZ_VALUE']) {$CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_NAME_KZ_VALUE'], 'new' => $_POST['NAME_KZ_'.$i.'_'.$io], 'name' => 'Наименование работ и затрат (Каз)'];} if ($_POST['UNIT_'.$i.'_'.$io] != $OldSubItem['PROPERTY_UNIT_VALUE']) {$CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_UNIT_VALUE'], 'new' => $_POST['UNIT_'.$i.'_'.$io], 'name' => 'Единица измерения (Рус)'];} if ($_POST['UNIT_KZ_'.$i.'_'.$io] != $OldSubItem['PROPERTY_UNIT_KZ_VALUE']) {$CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_UNIT_KZ_VALUE'], 'new' => $_POST['UNIT_KZ_'.$i.'_'.$io], 'name' => 'Единица измерения (Каз)'];} if ($_POST['VOLUME_'.$i.'_'.$io] != $OldSubItem['PROPERTY_VOLUME_VALUE']) {$CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_VOLUME_VALUE'], 'new' => $_POST['VOLUME_'.$i.'_'.$io], 'name' => 'Количество'];} $arLoadProductArray_z = Array( "MODIFIED_BY" => $USER->GetID(), "NAME" => $_POST["NAME_".$i."_".$io].'('.$_POST["CODE_".$i."_".$io].')', "PROPERTY_VALUES" => array( "NAME" => $_POST["NAME_".$i."_".$io], "NAME_KZ" => $_POST["NAME_KZ_".$i."_".$io], "TYPE" => $i, "UNIT" => $_POST["UNIT_".$i."_".$io], "UNIT_KZ" => $_POST["UNIT_KZ_".$i."_".$io], "CODE" => $codeZ, "VOLUME" => str_replace(',', '.', $_POST["VOLUME_".$i."_".$io]), "D" => $_POST["D_".$i."_".$io], "D1" => $_POST["D1_".$i."_".$io], "D2" => $_POST["D2_".$i."_".$io], "V" => $_POST["V_".$i."_".$io], "PRIM" => $_POST["PRIM_".$i."_".$io], "S" => $_POST["S_".$i."_".$io], "SNUM" => $_POST["SNUM_".$i."_".$io], "SV" => $_POST["SV_".$i."_".$io], "SVNUM" => $_POST["SVNUM_".$i."_".$io], "SVR" => $_POST["SVR_".$i."_".$io] ) ); $el_z->Update($_POST["ID_".$i."_".$io],$arLoadProductArray_z,true); $PRODUCT_ID_Z[] = $_POST["ID_".$i."_".$io]; } else { $CHANGE_I0['action'] = 'Добавлен'; $CHANGE_I0['code'] = $codeZ; $CHANGE_I0['list'][] = ['old' => '', 'new' => $_POST['CODE_'.$i.'_'.$io], 'name' => 'Шифр норм и коды ресурсов']; $CHANGE_I0['list'][] = ['old' => '', 'new' => $_POST['NAME_'.$i.'_'.$io], 'name' => 'Наименование работ и затрат (Рус)']; $CHANGE_I0['list'][] = ['old' => '', 'new' => $_POST['NAME_KZ_'.$i.'_'.$io], 'name' => 'Наименование работ и затрат (Каз)']; $CHANGE_I0['list'][] = ['old' => '', 'new' => $_POST['UNIT_'.$i.'_'.$io], 'name' => 'Единица измерения (Рус)']; $CHANGE_I0['list'][] = ['old' => '', 'new' => $_POST['UNIT_KZ_'.$i.'_'.$io], 'name' => 'Единица измерения (Каз)']; $CHANGE_I0['list'][] = ['old' => '', 'new' => $_POST['VOLUME_'.$i.'_'.$io], 'name' => 'Количество']; $arLoadProductArray_z = Array( "MODIFIED_BY" => $USER->GetID(), "CREATED_BY" => $USER->GetID(), "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => '12', "NAME" => $_POST["NAME_".$i."_".$io].'('.$_POST["CODE_".$i."_".$io].')', "ACTIVE" => "Y", "PROPERTY_VALUES" => array( "NAME" => $_POST["NAME_".$i."_".$io], "NAME_KZ" => $_POST["NAME_KZ_".$i."_".$io], "TYPE" => $i, "UNIT" => $_POST["UNIT_".$i."_".$io], "UNIT_KZ" => $_POST["UNIT_KZ_".$i."_".$io], "CODE" => $codeZ, "VOLUME" => str_replace(',', '.', $_POST["VOLUME_".$i."_".$io]), "D" => $_POST["D_".$i."_".$io], "D1" => $_POST["D1_".$i."_".$io], "D2" => $_POST["D2_".$i."_".$io], "V" => $_POST["V_".$i."_".$io], "PRIM" => $_POST["PRIM_".$i."_".$io], "S" => $_POST["S_".$i."_".$io], "SNUM" => $_POST["SNUM_".$i."_".$io], "SV" => $_POST["SV_".$i."_".$io], "SVNUM" => $_POST["SVNUM_".$i."_".$io], "SVR" => $_POST["SVR_".$i."_".$io] ) ); $PRODUCT_ID_Z[] = $el_z->Add($arLoadProductArray_z,true); } } else { if ($_POST["ID_".$i."_".$io]) { $OldSubItem = $SrdItem['list'][$_POST["ID_".$i."_".$io]]; $CHANGE_I0['action'] = 'Удален'; $CHANGE_I0['code'] = $OldSubItem['PROPERTY_CODE_VALUE']; $CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_CODE_VALUE'], 'new' => '', 'name' => 'Шифр норм и коды ресурсов']; $CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_NAME_VALUE'], 'new' => '', 'name' => 'Наименование работ и затрат (Рус)']; $CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_NAME_KZ_VALUE'], 'new' => '', 'name' => 'Наименование работ и затрат (Каз)']; $CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_UNIT_VALUE'], 'new' => '', 'name' => 'Единица измерения (Рус)']; $CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_UNIT_KZ_VALUE'], 'new' => '', 'name' => 'Единица измерения (Каз)']; $CHANGE_I0['list'][] = ['old' => $OldSubItem['PROPERTY_VOLUME_VALUE'], 'new' => '', 'name' => 'Количество']; CIBlockElement::Delete($_POST["ID_".$i."_".$io]); } } if (!empty($CHANGE_I0['list'])) { $CHANGE_I[$i][] = $CHANGE_I0; } $io = $io + 1; } } } $el = new CIBlockElement; $numCODE = str_replace("СРД", "", $codeR); $numCODE = str_replace("-", "", $numCODE); $numCODE = str_replace(" ", "", $numCODE); $CHANGE = []; if ($_POST['name_srd'] != $SrdItem['name_srd']) {$CHANGE[] = ['name' => 'Наименование (Рус)', 'old' => $SrdItem['name_srd'], 'new' => $_POST['name_srd']];} if ($_POST['name_srd_kz'] != $SrdItem['name_srd_kz']) {$CHANGE[] = ['name' => 'Наименование (Каз)', 'old' => $SrdItem['name_srd_kz'], 'new' => $_POST['name_srd_kz']];} if ($_POST['work'] != $SrdItem['work']) {$CHANGE[] = ['name' => 'Состав работ (Рус)', 'old' => $SrdItem['work'], 'new' => $_POST['work']];} if ($_POST['work_kz'] != $SrdItem['work_kz']) {$CHANGE[] = ['name' => 'Состав работ (Каз)', 'old' => $SrdItem['work_kz'], 'new' => $_POST['work_kz']];} if ($_POST['prem'] != $SrdItem['prem']) {$CHANGE[] = ['name' => 'Примечание (Рус)', 'old' => $SrdItem['prem'], 'new' => $_POST['prem']];} if ($_POST['prem_kz'] != $SrdItem['prem_kz']) {$CHANGE[] = ['name' => 'Примечание (Каз)', 'old' => $SrdItem['prem_kz'], 'new' => $_POST['prem_kz']];} if ($_POST['unit'] != $SrdItem['unit']) {$CHANGE[] = ['name' => 'Единица измерения (Рус)', 'old' => $SrdItem['unit'], 'new' => $_POST['unit']];} if ($_POST['unit_kz'] != $SrdItem['unit_kz']) {$CHANGE[] = ['name' => 'Единица измерения (Каз)', 'old' => $SrdItem['unit_kz'], 'new' => $_POST['unit_kz']];} if ($_POST['kod_r'] != $SrdItem['kod_r']) {$CHANGE[] = ['name' => 'Код родительского СРД', 'old' => $SrdItem['kod_r'], 'new' => $_POST['kod_r']];} if ($codeR != $SrdItem['code']) {$CHANGE[] = ['name' => 'Код СРД', 'old' => $SrdItem['code'], 'new' => $codeR];} $arLoadProductArray = Array( "MODIFIED_BY" => $USER->GetID(), "CREATED_BY" => $USER->GetID(), "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => '11', "NAME" => $codeR, "ACTIVE" => "Y", "PROPERTY_VALUES" => array( "NAME" => $_POST['name_srd'], "NAME_KZ" => $_POST['name_srd_kz'], "WORK" => $_POST['work'], "WORK_KZ" => $_POST['work_kz'], "NOTE" => $_POST['prem'], "NOTE_KZ" => $_POST['prem_kz'], "UNIT" => $_POST['unit'], "UNIT_KZ" => $_POST['unit_kz'], "CODE" => $_POST['kod_r'], "ITEMS" => $PRODUCT_ID_Z, "CODE_F" => $numCODE ) ); $PRODUCT_ID = $el->Update($id, $arLoadProductArray, true); if ($PRODUCT_ID != '') { echo "

".$LNG['SRD_SAVE_SUCCESS']."

"; //*************** сохранение истории изменений - начало ***************** ob_start(); ?>

05.03.2026 05:58:46,