App\Http\Controllers\InvoiceController::create PHP Method

create() public method

public create ( App\Http\Requests\InvoiceRequest $request, $clientPublicId, $isRecurring = false )
$request App\Http\Requests\InvoiceRequest
    public function create(InvoiceRequest $request, $clientPublicId = 0, $isRecurring = false)
    {
        $account = Auth::user()->account;
        $entityType = $isRecurring ? ENTITY_RECURRING_INVOICE : ENTITY_INVOICE;
        $clientId = null;
        if ($request->client_id) {
            $clientId = Client::getPrivateId($request->client_id);
        }
        $invoice = $account->createInvoice($entityType, $clientId);
        $invoice->public_id = 0;
        $clients = Client::scope()->with('contacts', 'country')->orderBy('name');
        if (!Auth::user()->hasPermission('view_all')) {
            $clients = $clients->where('clients.user_id', '=', Auth::user()->id);
        }
        $data = ['clients' => $clients->get(), 'entityType' => $invoice->getEntityType(), 'invoice' => $invoice, 'method' => 'POST', 'url' => 'invoices', 'title' => trans('texts.new_invoice')];
        $data = array_merge($data, self::getViewModel($invoice));
        return View::make('invoices.edit', $data);
    }