Приходит два POST c id группой магазина и её подгруппой, в ИС создается группа и подгруппа, с таким же именем, как и в магазине, если такие группы не существует в ИС.
Загвоздка: вставляется последняя только запись, которая пришла в $_POST['model'] - подкаталог магазина.
Что должно происходить в коде на мой взгляд.
1. Проверяем $_POST['mark'] на наличие в ис
2. Если нет $_POST['mark'] в ИС, то создём группу
3. Проверяем $_POST['model'] на наличие в ис
4. Если нет $_POST['model'] в ИС, то создём группу, с родительским ID элемента ИС от $_POST['mark']
Проблема: создается группа только от $_POST['model'] с родительским ID таким же как ID этой же записи.
Предполагаю, что когда я создал элемент от $_POST['mark'], то он тупо переписывается в базе.
ЗЫ: прошу поправить, где не верно использовал объекты, и как можно лучше это реализовать?
if(Core_Array::getPost('mark')) {
$parent = 0;
$oShop = Core_Entity::factory('Shop', 2);
$group = $oShop->Shop_Groups->getById(Core_Array::getPost('mark'));
$oIS = Core_Entity::factory('Informationsystem', 15);
$aGIS = $oIS->Informationsystem_Groups->findAll();
$oInformationsystem_groups = Core_Entity::factory('Informationsystem_Group', 15);
$flag = false;
//проверяю наличие группы в ИС
foreach($aGIS as $oGIS){
if(strtolower( trim($group->name) ) == strtolower( trim($oGIS->name) ) ) {
$flag = true;
$parent = $oGIS->id;
break;
}
}
//если нет в ИС группы, создаем
if(!$flag) {
$oInformationsystem_groups->name = $group->name;
$oIS->add($oInformationsystem_groups);
$parent = $oInformationsystem_groups->id;
}
if(Core_Array::getPost('model')) {
//тут убиваю все объекты
unset($oInformationsystem_groups);
unset($oIS);
unset($oShop);
$oShop = Core_Entity::factory('Shop', 2);
$group = $oShop->Shop_Groups->getById(Core_Array::getPost('model'));
$oIS = Core_Entity::factory('Informationsystem', 15);
$aGIS = $oIS->Informationsystem_Groups->findAll();
$flag = false;
foreach($aGIS as $oGIS){
if(strtolower( trim($group->name) ) == strtolower( trim($oGIS->name) )) {
$parent = $oGIS->id;
$flag = true;
break;
}
}
if(!$flag) {
//А вот тут начинается какая-то ерунда
$oInformationsystem_groups = Core_Entity::factory('Informationsystem_Group', 15);
$oInformationsystem_groups->name = $group->name;
$oInformationsystem_groups->parent_id = $parent;
//вот тут $parent= $oInformationsystem_groups->id о_О, вот как то так.
$oIS->add($oInformationsystem_groups);
$parent = $oInformationsystem_groups->id;
}
}
//передаю родительскую группу в создаваемый элемент
$oInformationsystem_Item->informationsystem_group_id = $parent;
}