/** * * Product Collection and user for logs * @param ProductCollection $products * @param User $user * @return mixed */ public function save(ProductCollection $products, User $user) { $this->setUser($user); $existProducts = ProductQuery::create()->whereAdd(Product::ITEM_CODE, $products->getPrimaryKeys())->find(); while ($products->valid()) { $product = $products->read(); if ($existProducts->containsIndex($product->getIndex())) { $SAPProducts["Product"][] = $product->toSAPArray() + array("Movement" => 2); $this->newLogForUpdate($product); } else { $SAPProducts["Product"][] = $product->toSAPArray() + array("Movement" => 1); $this->newLogForCreate($product); } } $SAPConnectionClient = new SAPConnectorClient(); $response = $SAPConnectionClient->saveProducts($SAPProducts); return json_decode($response->productResult->message); }