Example #1
0
 private function parserGoods($goods_sxe)
 {
     $goods = array();
     foreach ($goods_sxe as $item) {
         $item_code = false;
         if (preg_match('/(.+)#(.+)/', $item->{'Ид'}, $matches)) {
             $good_code = strval($matches[1]);
             $item_code = strval($matches[2]);
         } else {
             $good_code = strval($item->{'Ид'});
         }
         if (!isset($goods[$good_code])) {
             $goods[$good_code] = array();
             $goods[$good_code] = $this->addGood($item, $good_code);
         }
         if ($item_code) {
             $goods[$good_code]['items'][$item_code] = $this->addItem($goods[$good_code]['id'], $item_code, $item);
         }
     }
     foreach ($goods as $good_code => $good) {
         $items = ShItems::findAll(['goods_id' => $good['id']]);
         if (isset($good['items'])) {
             foreach ($items as $item) {
                 if (!isset($good['items'][$item->code])) {
                     $item->state = 0;
                     $item->save();
                 }
             }
         } else {
             foreach ($items as $item) {
                 $item->state = 0;
                 $item->save();
             }
         }
     }
 }