Exemplo n.º 1
0
 public function parserGoods($goods_sxe)
 {
     $goods = array();
     foreach ($goods_sxe as $item) {
         $itemVerificationCode = false;
         if (preg_match('/(.+)#(.+)/', $item->{'Ид'}, $matches)) {
             $goodVerificationCode = strval($matches[1]);
             $itemVerificationCode = strval($matches[2]);
         } else {
             $goodVerificationCode = strval($item->{'Ид'});
         }
         if (!isset($goods[$goodVerificationCode])) {
             $goods[$goodVerificationCode] = array();
             $goods[$goodVerificationCode] = $this->addGood($item, $goodVerificationCode);
             if ($item->{'ЗначенияСвойств'}) {
                 $this->addPropertyValues($item->{'ЗначенияСвойств'}->{'ЗначенияСвойства'}, $goods[$goodVerificationCode]['id']);
             }
         }
         if ($itemVerificationCode) {
             $goods[$goodVerificationCode]['items'][$itemVerificationCode] = $this->addItem($goods[$goodVerificationCode]['id'], $itemVerificationCode, $item);
         }
     }
     if ($goods) {
         foreach ($goods as $goodVerificationCode => $good) {
             $items = ShopItems::findAll(['shop_goods_id' => $good['id']]);
             if (isset($good['items'])) {
                 foreach ($items as $item) {
                     if (!isset($good['items'][$item->verification_code])) {
                         $item->state = 0;
                         $item->save();
                     }
                 }
             } else {
                 foreach ($items as $item) {
                     $item->state = 0;
                     $item->save();
                 }
             }
         }
     }
 }