Добрый день уважаемые разработчики!
Столкнулся с проблемой, уже 2 день сижу ломаю голову - задача в следующем - на странице списка заказов у каждого заказа выводить тот профиль покупателя с которым был создан заказ.
Я тестирую - в первом заказе создаю первый профиль, создаю заказ - все ок, отображается ФИО профиля покупателя;
Во втором заказе создаю второй профиль покупателя и тоже все ок;
Но, когда я создаю третий заказ с 3 новым профилем, то начинает отображаться последний из первых двух профилей, вот код:
$search_order_id = $order['ORDER']['ACCOUNT_NUMBER']; //получаю из списка заказов ID заказа
if ($arOrder = CSaleOrder::GetByID($search_order_id)) { //это функция, взятая у Антона Долганина -
//print_r($arOrder);
$rsOrderProps = CSaleOrderProps::GetList(array(), array('PERSON_TYPE_ID' => $arOrder['PERSON_TYPE_ID'], 'IS_EMAIL' => 'Y'));
if ($arOrderProp = $rsOrderProps->Fetch()) {
$rsProps = CSaleOrderPropsValue::GetList(array('SORT' => 'ASC'), array('ORDER_ID' => $search_order_id, 'ORDER_PROPS_ID' => $arOrderProp['ID']));
if ($arProp = $rsProps->Fetch()) {
$rsUP = CSaleOrderUserPropsValue::GetList(array(), array('ORDER_PROPS_ID' => $arOrderProp['ID'],
'VALUE' => $arProp['VALUE'],
'PROP_PERSON_TYPE_ID' => $arOrder['PERSON_TYPE_ID']));
if ($arUP = $rsUP->Fetch()) {
$profile_id = $arUP['USER_PROPS_ID']; //здесь записываю ID профиля покупателя с которым был сделан заказ
}
}
}
}
$arProfileID=CSaleOrderUserProps::GetByID($profile_id);
if($arProfileID["PERSON_TYPE_ID"]==1){ //определяю физ.лицо / юр.лицо
$arProfile = CUser::GetByID($arProfileID["USER_ID"]);
$fio = "";
$profile_tek = CSaleOrderUserPropsValue::GetList(array(), array("USER_PROPS_ID"=>$arProfileID["ID"], "NAME"=>array("Имя", "Фамилия", "Отчество")));
while($profile_tek1 = $profile_tek->Fetch()){
$fio = $fio.$profile_tek1["VALUE"]." ";}
print_r($fio);} // если физ лицо, то вывожу ФИО
else {
print_r($arProfileID["NAME"]);} //если юр.лицо вывожу название профиля, т.е. название Юр.лица
Помогите пожалуйста! Даже с вознаграждением.
Столкнулся с проблемой, уже 2 день сижу ломаю голову - задача в следующем - на странице списка заказов у каждого заказа выводить тот профиль покупателя с которым был создан заказ.
Я тестирую - в первом заказе создаю первый профиль, создаю заказ - все ок, отображается ФИО профиля покупателя;
Во втором заказе создаю второй профиль покупателя и тоже все ок;
Но, когда я создаю третий заказ с 3 новым профилем, то начинает отображаться последний из первых двух профилей, вот код:
$search_order_id = $order['ORDER']['ACCOUNT_NUMBER']; //получаю из списка заказов ID заказа
if ($arOrder = CSaleOrder::GetByID($search_order_id)) { //это функция, взятая у Антона Долганина -
//print_r($arOrder);
$rsOrderProps = CSaleOrderProps::GetList(array(), array('PERSON_TYPE_ID' => $arOrder['PERSON_TYPE_ID'], 'IS_EMAIL' => 'Y'));
if ($arOrderProp = $rsOrderProps->Fetch()) {
$rsProps = CSaleOrderPropsValue::GetList(array('SORT' => 'ASC'), array('ORDER_ID' => $search_order_id, 'ORDER_PROPS_ID' => $arOrderProp['ID']));
if ($arProp = $rsProps->Fetch()) {
$rsUP = CSaleOrderUserPropsValue::GetList(array(), array('ORDER_PROPS_ID' => $arOrderProp['ID'],
'VALUE' => $arProp['VALUE'],
'PROP_PERSON_TYPE_ID' => $arOrder['PERSON_TYPE_ID']));
if ($arUP = $rsUP->Fetch()) {
$profile_id = $arUP['USER_PROPS_ID']; //здесь записываю ID профиля покупателя с которым был сделан заказ
}
}
}
}
$arProfileID=CSaleOrderUserProps::GetByID($profile_id);
if($arProfileID["PERSON_TYPE_ID"]==1){ //определяю физ.лицо / юр.лицо
$arProfile = CUser::GetByID($arProfileID["USER_ID"]);
$fio = "";
$profile_tek = CSaleOrderUserPropsValue::GetList(array(), array("USER_PROPS_ID"=>$arProfileID["ID"], "NAME"=>array("Имя", "Фамилия", "Отчество")));
while($profile_tek1 = $profile_tek->Fetch()){
$fio = $fio.$profile_tek1["VALUE"]." ";}
print_r($fio);} // если физ лицо, то вывожу ФИО
else {
print_r($arProfileID["NAME"]);} //если юр.лицо вывожу название профиля, т.е. название Юр.лица
Помогите пожалуйста! Даже с вознаграждением.