/** * 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]); }