isEmpty($row, 'invoice_number')) { return []; } $row['invoice_number'] = (string) $row['invoice_number']; $row = parent::map($row); $row['document_id'] = (int) Document::invoice()->number($row['invoice_number'])->pluck('id')->first(); if (empty($row['item_id']) && ! empty($row['item_name'])) { $row['item_id'] = $this->getItemIdFromName($row); $row['name'] = $row['item_name']; } $row['description'] = !empty($row['item_description']) ? $row['item_description'] : ''; $row['tax'] = (double) $row['tax']; $row['tax_id'] = 0; $row['type'] = Document::INVOICE_TYPE; return $row; } public function prepareRules(array $rules): array { $rules['invoice_number'] = 'required|string'; unset($rules['invoice_id']); return $rules; } }