invoiceninja/app/Ninja/Repositories/ProposalSnippetRepository.php

78 lines
2.4 KiB
PHP
Raw Normal View History

2018-01-31 11:10:15 +02:00
<?php
namespace App\Ninja\Repositories;
use App\Models\ProposalSnippet;
2018-02-04 17:16:55 +02:00
use App\Models\ProposalCategory;
2018-01-31 11:10:15 +02:00
use Auth;
use DB;
use Utils;
class ProposalSnippetRepository extends BaseRepository
{
public function getClassName()
{
return 'App\Models\ProposalSnippet';
}
public function all()
{
return ProposalSnippet::scope()->get();
}
public function find($filter = null, $userId = false)
{
$query = DB::table('proposal_snippets')
2018-02-04 17:16:55 +02:00
->leftjoin('proposal_categories', 'proposal_categories.id', '=', 'proposal_snippets.proposal_category_id')
2018-01-31 11:10:15 +02:00
->where('proposal_snippets.account_id', '=', Auth::user()->account_id)
->select(
2018-02-04 18:47:55 +02:00
'proposal_snippets.name',
2018-01-31 11:10:15 +02:00
'proposal_snippets.public_id',
'proposal_snippets.user_id',
'proposal_snippets.deleted_at',
'proposal_snippets.is_deleted',
'proposal_snippets.private_notes',
2018-02-04 17:31:45 +02:00
'proposal_categories.name as category',
'proposal_categories.public_id as category_public_id',
'proposal_categories.user_id as category_user_id'
2018-01-31 11:10:15 +02:00
);
$this->applyFilters($query, ENTITY_PROPOSAL_SNIPPET);
if ($filter) {
$query->where(function ($query) use ($filter) {
$query->where('clients.name', 'like', '%'.$filter.'%')
->orWhere('contacts.first_name', 'like', '%'.$filter.'%')
->orWhere('contacts.last_name', 'like', '%'.$filter.'%')
->orWhere('contacts.email', 'like', '%'.$filter.'%')
->orWhere('proposal_snippets.name', 'like', '%'.$filter.'%');
});
}
if ($userId) {
$query->where('proposal_snippets.user_id', '=', $userId);
}
return $query;
}
public function save($input, $proposal = false)
{
$publicId = isset($data['public_id']) ? $data['public_id'] : false;
if (! $proposal) {
$proposal = ProposalSnippet::createNew();
}
$proposal->fill($input);
2018-02-04 17:16:55 +02:00
if (isset($input['proposal_category_id'])) {
$proposal->proposal_category_id = $input['proposal_category_id'] ? ProposalCategory::getPrivateId($input['proposal_category_id']) : null;
}
2018-01-31 11:10:15 +02:00
$proposal->save();
return $proposal;
}
}