Proposals

This commit is contained in:
Hillel Coren 2018-02-11 11:14:47 +02:00
parent 08cd5a2c07
commit 09c6debbc9
6 changed files with 60 additions and 3 deletions

View File

@ -121,8 +121,8 @@ class ProposalController extends BaseController
public function bulk()
{
$action = Input::get('action');
$ids = Input::get('public_id') ? Input::get('public_id') : Input::get('ids');
$action = Input::get('bulk_action') ?: Input::get('action');
$ids = Input::get('bulk_public_id') ?: (Input::get('public_id') ?: Input::get('ids'));
$count = $this->proposalService->bulk($ids, $action);

View File

@ -68,6 +68,14 @@ class Proposal extends EntityModel
return $this->belongsTo('App\Models\Invoice')->withTrashed();
}
/**
* @return mixed
*/
public function invitations()
{
return $this->hasMany('App\Models\ProposalInvitation')->orderBy('proposal_invitations.contact_id');
}
/**
* @return mixed
*/

View File

@ -24,6 +24,16 @@ class ProposalDatatable extends EntityDatatable
return link_to("quotes/{$model->invoice_public_id}", $model->invoice_number)->toHtml();
},
],
[
'client',
function ($model) {
if (! Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) {
return $model->client;
}
return link_to("clients/{$model->client_public_id}", $model->client)->toHtml();
},
],
[
'template',
function ($model) {

View File

@ -3,11 +3,31 @@
namespace App\Ninja\Presenters;
use Utils;
use DropdownButton;
/**
* Class ProposalPresenter.
*/
class ProposalPresenter extends EntityPresenter
{
public function moreActions()
{
$proposal = $this->entity;
$invitation = $proposal->invitations->first();
$actions = [];
$actions[] = ['url' => $invitation->getLink('proposal'), 'label' => trans("texts.view_as_recipient")];
$actions[] = DropdownButton::DIVIDER;
if (! $proposal->trashed()) {
$actions[] = ['url' => 'javascript:onArchiveClick()', 'label' => trans("texts.archive_proposal")];
}
if (! $proposal->is_deleted) {
$actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans("texts.delete_proposal")];
}
return $actions;
}
}

View File

@ -41,7 +41,7 @@ class ProposalRepository extends BaseRepository
'proposals.is_deleted',
'proposals.private_notes',
'proposals.html as content',
DB::raw("COALESCE(NULLIF(clients.name,''), NULLIF(CONCAT(contacts.first_name, ' ', contacts.last_name),''), NULLIF(contacts.email,'')) client_name"),
DB::raw("COALESCE(NULLIF(clients.name,''), NULLIF(CONCAT(contacts.first_name, ' ', contacts.last_name),''), NULLIF(contacts.email,'')) client"),
'clients.user_id as client_user_id',
'clients.public_id as client_public_id',
'invoices.invoice_number as quote',

View File

@ -60,6 +60,12 @@
{!! Button::success(trans("texts.save"))
->submit()
->appendIcon(Icon::create('floppy-disk')) !!}
@if ($proposal)
{!! DropdownButton::normal(trans('texts.more_actions'))
->withContents($proposal->present()->moreActions()) !!}
@endif
</center>
{!! Former::close() !!}
@ -147,6 +153,18 @@
return html;
}
@if ($proposal)
function onArchiveClick() {
submitForm_proposal('archive', {{ $proposal->id }});
}
function onDeleteClick() {
sweetConfirm(function() {
submitForm_proposal('delete', {{ $proposal->id }});
});
}
@endif
$(function() {
var invoiceId = {{ ! empty($invoicePublicId) ? $invoicePublicId : 0 }};
var $invoiceSelect = $('select#invoice_id');
@ -183,6 +201,7 @@
</script>
@include('partials.bulk_form', ['entityType' => ENTITY_PROPOSAL])
@include('proposals.grapesjs', ['entity' => $proposal])
<script type="text/javascript">