* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class OrderItemRepository extends Repository { /** * Specify Model class name * * @return Mixed */ function model() { return 'Webkul\Sales\Contracts\OrderItem'; } /** * @param array $data * @return mixed */ public function create(array $data) { if(isset($data['product']) && $data['product']) { $data['product_id'] = $data['product']->id; $data['product_type'] = get_class($data['product']); unset($data['product']); } return $this->model->create($data); } /** * @param mixed $orderItem * @return mixed */ public function collectTotals($orderItem) { $qtyShipped = $qtyInvoiced = 0; $totalInvoiced = $baseTotalInvoiced = 0; $taxInvoiced = $baseTaxInvoiced = 0; foreach($orderItem->invoice_items as $invoiceItem) { $qtyInvoiced += $invoiceItem->qty; $totalInvoiced += $invoiceItem->total; $baseTotalInvoiced += $invoiceItem->base_total; $taxInvoiced += $invoiceItem->tax_amount; $baseTaxInvoiced += $invoiceItem->base_tax_amount; } foreach($orderItem->shipment_items as $shipmentItem) { $qtyShipped += $shipmentItem->qty; } $orderItem->qty_shipped = $qtyShipped; $orderItem->qty_invoiced = $qtyInvoiced; $orderItem->total_invoiced = $totalInvoiced; $orderItem->base_total_invoiced = $baseTotalInvoiced; $orderItem->tax_amount_invoiced = $taxInvoiced; $orderItem->base_tax_amount_invoiced = $baseTaxInvoiced; $orderItem->save(); return $orderItem; } }