/**
  * Update RMA fixture.
  *
  * @param Rma $rma
  * @param null|string $rmaId
  * @return Rma
  */
 protected function updateRmaFixture(Rma $rma, $rmaId = null)
 {
     $newData = $rma->getData();
     $newData['items'] = ['data' => $newData['items'], 'products' => $this->products];
     $newData['order_id'] = ['order' => $this->order];
     if ($rmaId !== null) {
         $newData['entity_id'] = $rmaId;
     }
     return $this->fixtureFactory->createByCode('rma', ['data' => $newData]);
 }
 /**
  * Return rma data.
  *
  * @param Rma $rma
  * @return array
  */
 protected function getRmaData(Rma $rma)
 {
     /** @var Order $order */
     $order = $rma->getDataFieldConfig('order_id')['source']->getOrder();
     $orderItems = $order->getEntityId();
     /** @var Customer $customer */
     $customer = $order->getDataFieldConfig('customer_id')['source']->getCustomer();
     $data = $rma->getData();
     $data['customer_name'] = sprintf('%s %s', $customer->getFirstname(), $customer->getLastname());
     $data['customer_email'] = $customer->getEmail();
     foreach ($data['items'] as $key => $item) {
         $product = $orderItems['products'][$key];
         $item['product'] = $product->getName();
         $item['sku'] = $this->getItemSku($product);
         $data['items'][$key] = $item;
     }
     return $data;
 }
 /**
  * Create rma entity.
  *
  * @param Rma $rma
  * @param string $rmaId
  * @return Rma
  */
 protected function createRma(Rma $rma, $rmaId)
 {
     $order = $rma->getDataFieldConfig('order_id')['source']->getOrder();
     $rmaData = $rma->getData();
     $data = array_merge($rma->getData(), ['entity_id' => $rmaId, 'order_id' => ['order' => $order], 'items' => ['data' => $rmaData['items']]]);
     return $this->fixtureFactory->createByCode('rma', ['data' => $data]);
 }