Esempio n. 1
0
 /**
  * @param \Shopware\Models\Article\Detail|array|null $mainDetail
  * @return \Shopware\Models\Article\Detail
  */
 public function setMainDetail($mainDetail)
 {
     $return = $this->setOneToOne($mainDetail, '\\Shopware\\Models\\Article\\Detail', 'mainDetail', 'article');
     if ($this->mainDetail instanceof \Shopware\Models\Article\Detail) {
         $this->mainDetail->setKind(1);
     }
     return $return;
 }
Esempio n. 2
0
 /**
  * Create function for the internal usage of the rest api.
  * Used from the article resource. This function supports
  * to pass an updated article entity which isn't updated in the database.
  * Required for the article resource if the article data is already updated
  * in the entity but not in the database.
  *
  * @param array $data
  * @param ArticleModel $article
  * @return Detail
  * @throws \Shopware\Components\Api\Exception\ValidationException
  */
 public function internalCreate(array $data, ArticleModel $article)
 {
     $variant = new Detail();
     $variant->setKind(2);
     $variant->setArticle($article);
     $data = $this->prepareData($data, $article, $variant);
     $variant->fromArray($data);
     $this->getManager()->persist($variant);
     return $variant;
 }
 /**
  * {@inheritDoc}
  */
 public function setKind($kind)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setKind', array($kind));
     return parent::setKind($kind);
 }
Esempio n. 4
0
 /**
  * Helper function which converts the passed data for the main variant of the article.
  * @param array $data
  * @param ArticleModel $article
  * @return array
  */
 public function prepareMainDetail(array $data, ArticleModel $article)
 {
     $detail = $article->getMainDetail();
     if (!$detail) {
         $detail = new Detail();
         $detail->setKind(1);
         $detail->setArticle($article);
         $article->setMainDetail($detail);
     }
     $data['mainDetail'] = $this->getVariantResource()->prepareMainVariantData($data['mainDetail'], $article, $detail);
     return $data;
 }