From 9053be49765e3940dfbc83ce1e09a867daf0968d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 5 Dec 2013 22:25:20 +0200 Subject: [PATCH] Working on invoice creation --- app/controllers/AccountController.php | 2 +- app/controllers/ActivityController.php | 2 +- app/controllers/ClientController.php | 18 +++-- app/controllers/CreditController.php | 19 ++--- app/controllers/InvoiceController.php | 62 +++++++++------- app/controllers/PaymentController.php | 24 ++++--- app/models/Account.php | 2 +- app/routes.php | 7 +- app/views/client.blade.php | 97 ++++++++++++++++++++++++++ app/views/clients/edit.blade.php | 22 +++--- app/views/clients/show.blade.php | 8 +-- app/views/datatable.blade.php | 4 +- app/views/invoices/edit.blade.php | 81 ++++++++++++++++----- app/views/list.blade.php | 6 +- 14 files changed, 261 insertions(+), 93 deletions(-) create mode 100755 app/views/client.blade.php diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php index 5029dc936658..dba88740e7b0 100755 --- a/app/controllers/AccountController.php +++ b/app/controllers/AccountController.php @@ -309,7 +309,7 @@ class AccountController extends \BaseController { 'email' => Contact::$fieldEmail, 'mobile' => Contact::$fieldPhone, 'phone' => Client::$fieldPhone, - 'name' => Client::$fieldName, + 'name|organization' => Client::$fieldName, 'address|address1' => Client::$fieldAddress1, 'address2' => Client::$fieldAddress2, 'city' => Client::$fieldCity, diff --git a/app/controllers/ActivityController.php b/app/controllers/ActivityController.php index 31fc5fee468e..72daee516ead 100755 --- a/app/controllers/ActivityController.php +++ b/app/controllers/ActivityController.php @@ -7,7 +7,7 @@ class ActivityController extends \BaseController { $clientId = Client::getPrivateId($clientPublicId); return Datatable::collection(Activity::scope()->where('client_id','=',$clientId)->get()) - ->addColumn('date', function($model) { return timestampToDateTimeString($model->created_at); }) + ->addColumn('date', function($model) { return timestampToDateString($model->created_at); }) ->addColumn('message', function($model) { return $model->message; }) ->addColumn('balance', function($model) { return '$' . $model->balance; }) ->orderColumns('date') diff --git a/app/controllers/ClientController.php b/app/controllers/ClientController.php index 86150c4658fb..268308ccfadc 100755 --- a/app/controllers/ClientController.php +++ b/app/controllers/ClientController.php @@ -21,16 +21,21 @@ class ClientController extends \BaseController { public function getDatatable() { - $query = DB::table('clients')->join('contacts', 'clients.id', '=','contacts.client_id')->where('contacts.is_primary', '=', true); + $query = DB::table('clients') + ->join('contacts', 'contacts.client_id', '=', 'clients.id') + ->where('clients.account_id', '=', Auth::user()->account_id) + ->where('clients.deleted_at', '=', null) + ->where('contacts.is_primary', '=', true) + ->select('clients.public_id','clients.name','contacts.first_name','contacts.last_name','clients.balance','clients.last_login','clients.created_at','contacts.phone','contacts.email'); return Datatable::query($query) ->addColumn('checkbox', function($model) { return ''; }) ->addColumn('name', function($model) { return link_to('clients/' . $model->public_id, $model->name); }) ->addColumn('first_name', function($model) { return $model->first_name . ' ' . $model->last_name; }) ->addColumn('balance', function($model) { return '$' . $model->balance; }) - ->addColumn('clients.last_login', function($model) { return timestampToDateString($model->last_login); }) - ->addColumn('clients.created_at', function($model) { return timestampToDateString($model->created_at); }) - ->addColumn('email', function($model) { return HTML::mailto($model->email, $model->email); }) + ->addColumn('last_login', function($model) { return timestampToDateString($model->last_login); }) + ->addColumn('created_at', function($model) { return timestampToDateString($model->created_at); }) + ->addColumn('email', function($model) { return $model->email ? HTML::mailto($model->email, $model->email) : ''; }) ->addColumn('phone', function($model) { return $model->phone; }) ->addColumn('dropdown', function($model) { @@ -47,7 +52,7 @@ class ClientController extends \BaseController { '; }) - ->orderColumns('name','first_name','balance','clients.last_login','clients.created_at','email','phone') + ->orderColumns('name','first_name','balance','last_login','created_at','email','phone') ->make(); } @@ -200,8 +205,7 @@ class ClientController extends \BaseController { public function bulk() { $action = Input::get('action'); - $ids = Input::get('ids') ? Input::get('ids') : [Input::get('id')]; - + $ids = Input::get('id') ? Input::get('id') : Input::get('ids'); $clients = Client::scope($ids)->get(); foreach ($clients as $client) { diff --git a/app/controllers/CreditController.php b/app/controllers/CreditController.php index 3ae62a8944c0..ad1f1b645eaa 100755 --- a/app/controllers/CreditController.php +++ b/app/controllers/CreditController.php @@ -18,25 +18,28 @@ class CreditController extends \BaseController { public function getDatatable($clientPublicId = null) { - $collection = Credit::scope()->with('client'); + $query = DB::table('credits') + ->join('clients', 'clients.id', '=','credits.client_id') + ->where('clients.account_id', '=', Auth::user()->account_id) + ->where('clients.deleted_at', '=', null) + ->select('credits.public_id', 'clients.name as client_name', 'clients.public_id as client_public_id', 'credits.amount', 'credits.credit_date'); if ($clientPublicId) { - $clientId = Client::getPrivateId($clientPublicId); - $collection->where('client_id','=',$clientId); + $query->where('clients.public_id', '=', $clientPublicId); } - $table = Datatable::collection($collection->get()); + $table = Datatable::query($query); if (!$clientPublicId) { $table->addColumn('checkbox', function($model) { return ''; }) - ->addColumn('client', function($model) { return link_to('clients/' . $model->client->public_id, $model->client->name); }); + ->addColumn('client_name', function($model) { return link_to('clients/' . $model->client_public_id, $model->client_name); }); } return $table->addColumn('amount', function($model){ return '$' . money_format('%i', $model->amount); }) - ->addColumn('credit_date', function($model) { return (new Carbon($model->credit_date))->toFormattedDateString(); }) + ->addColumn('credit_date', function($model) { return timestampToDateString($model->credit_date); }) ->addColumn('dropdown', function($model) { - return '