hasInvoice($data['Details'])) { throw new ImportException('Invoice number already exists'); } $transformed = [ 'company_id' => $this->maps['company']->id, 'client_id' => $this->getClient($this->getString($data, 'Client'), null), 'number' => $this->getString($data, 'Details'), 'date' => isset($data['Date']) ? date('Y-m-d', strtotime($data['Date'])) : null, 'due_date' => isset($data['Due']) ? date('Y-m-d', strtotime($data['Due'])) : null, 'status_id' => Invoice::STATUS_SENT, 'line_items' => [ [ 'cost' => $amount = $this->getFloat($data, 'Total'), 'quantity' => 1, ], ], ]; if (strtolower($data['Status']) === 'paid') { $transformed['payments'] = [ [ 'date' => date('Y-m-d'), 'amount' => $amount, ], ]; } return $transformed; } }