2013-11-26 13:45:07 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| Application Routes
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
| Here is where you can register all of the routes for an application.
|
|
|
|
| It's a breeze. Simply tell Laravel the URIs it should respond to
|
|
|
|
| and give it the Closure to execute when that URI is requested.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2013-11-28 13:15:34 +01:00
|
|
|
//dd(Omnipay::getFactory()->find());
|
|
|
|
|
|
|
|
|
2013-11-26 13:45:07 +01:00
|
|
|
Route::get('/', 'HomeController@showWelcome');
|
|
|
|
Route::post('get_started', 'AccountController@getStarted');
|
|
|
|
|
|
|
|
Route::get('view/{invoice_key}', 'InvoiceController@view');
|
|
|
|
Route::get('payment/{invoice_key}', 'InvoiceController@show_payment');
|
|
|
|
Route::get('complete', 'InvoiceController@do_payment');
|
|
|
|
|
|
|
|
|
|
|
|
Route::filter('auth', function()
|
|
|
|
{
|
2013-11-28 17:40:13 +01:00
|
|
|
if (!Auth::check())
|
2013-11-26 13:45:07 +01:00
|
|
|
{
|
|
|
|
return Redirect::to('/');
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2013-11-28 17:40:13 +01:00
|
|
|
Route::group(array('before' => array('auth', 'csrf')), function()
|
2013-11-26 13:45:07 +01:00
|
|
|
{
|
2013-12-01 21:58:25 +01:00
|
|
|
Route::get('home', function() { return View::make('header'); });
|
2013-11-26 13:45:07 +01:00
|
|
|
Route::get('account/{section?}', 'AccountController@showSection');
|
|
|
|
Route::post('account/{section?}', 'AccountController@doSection');
|
|
|
|
|
2013-12-02 20:54:24 +01:00
|
|
|
|
2013-11-26 13:45:07 +01:00
|
|
|
Route::resource('clients', 'ClientController');
|
|
|
|
Route::get('api/clients', array('as'=>'api.clients', 'uses'=>'ClientController@getDatatable'));
|
2013-12-01 21:58:25 +01:00
|
|
|
Route::get('api/activities/{client_id?}', array('as'=>'api.activities', 'uses'=>'ActivityController@getDatatable'));
|
2013-12-01 08:33:17 +01:00
|
|
|
Route::post('clients/bulk', 'ClientController@bulk');
|
2013-12-01 21:58:25 +01:00
|
|
|
Route::get('clients/{client_id}/archive', 'ClientController@archive');
|
|
|
|
Route::get('clients/{client_id}/delete', 'ClientController@delete');
|
2013-11-26 13:45:07 +01:00
|
|
|
|
|
|
|
Route::resource('invoices', 'InvoiceController');
|
2013-11-29 13:09:21 +01:00
|
|
|
Route::get('api/invoices/{client_id?}', array('as'=>'api.invoices', 'uses'=>'InvoiceController@getDatatable'));
|
2013-11-26 13:45:07 +01:00
|
|
|
Route::get('invoices/create/{client_id}', 'InvoiceController@create');
|
2013-12-01 08:33:17 +01:00
|
|
|
Route::post('invoices/bulk', 'InvoiceController@bulk');
|
2013-12-01 21:58:25 +01:00
|
|
|
Route::get('invoices/{client_id}/archive', 'InvoiceController@archive');
|
|
|
|
Route::get('invoices/{client_id}/delete', 'InvoiceController@delete');
|
2013-11-26 13:45:07 +01:00
|
|
|
|
|
|
|
Route::get('payments', 'PaymentController@index');
|
2013-11-29 13:09:21 +01:00
|
|
|
Route::get('api/payments/{client_id?}', array('as'=>'api.payments', 'uses'=>'PaymentController@getDatatable'));
|
2013-12-01 08:33:17 +01:00
|
|
|
Route::post('payments/bulk', 'PaymentController@bulk');
|
2013-11-26 13:45:07 +01:00
|
|
|
Route::get('payments/create', function() { return View::make('header'); });
|
2013-12-01 21:58:25 +01:00
|
|
|
Route::get('payments/{client_id}/archive', 'PaymentController@archive');
|
|
|
|
Route::get('payments/{client_id}/delete', 'PaymentController@delete');
|
2013-11-29 13:09:21 +01:00
|
|
|
|
2013-12-01 21:58:25 +01:00
|
|
|
Route::get('credits', 'CreditController@index');
|
|
|
|
Route::get('api/credits/{client_id?}', array('as'=>'api.credits', 'uses'=>'CreditController@getDatatable'));
|
|
|
|
Route::get('credits/create', function() { return View::make('header'); });
|
|
|
|
Route::get('credits/{client_id}/archive', 'CreditController@archive');
|
|
|
|
Route::get('credits/{client_id}/delete', 'CreditController@delete');
|
|
|
|
|
|
|
|
Route::get('reports', function() { return View::make('header'); });
|
2013-11-26 13:45:07 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
// Confide routes
|
|
|
|
//Route::get( 'user/create', 'UserController@create');
|
|
|
|
//Route::post('user', 'UserController@store');
|
|
|
|
Route::get('login', 'UserController@login');
|
|
|
|
Route::post('login', 'UserController@do_login');
|
|
|
|
//Route::get( 'user/confirm/{code}', 'UserController@confirm');
|
|
|
|
//Route::get( 'user/forgot_password', 'UserController@forgot_password');
|
|
|
|
//Route::post('user/forgot_password', 'UserController@do_forgot_password');
|
|
|
|
//Route::get( 'user/reset_password/{token}', 'UserController@reset_password');
|
|
|
|
//Route::post('user/reset_password', 'UserController@do_reset_password');
|
|
|
|
Route::get('logout', 'UserController@logout');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-29 13:09:21 +01:00
|
|
|
HTML::macro('nav_link', function($url, $text, $url2 = '', $extra = '') {
|
2013-11-26 13:45:07 +01:00
|
|
|
$class = ( Request::is($url) || Request::is($url.'/*') || Request::is($url2) ) ? ' class="active"' : '';
|
2013-11-29 13:09:21 +01:00
|
|
|
return '<li'.$class.'><a href="'.URL::to($url).'" '.$extra.'>'.$text.'</a></li>';
|
|
|
|
});
|
|
|
|
|
|
|
|
HTML::macro('tab_link', function($url, $text, $active = false) {
|
|
|
|
$class = $active ? ' class="active"' : '';
|
|
|
|
return '<li'.$class.'><a href="'.URL::to($url).'" data-toggle="tab">'.$text.'</a></li>';
|
2013-11-26 13:45:07 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
HTML::macro('menu_link', function($type) {
|
|
|
|
$types = $type.'s';
|
|
|
|
$Type = ucfirst($type);
|
|
|
|
$Types = ucfirst($types);
|
|
|
|
$class = ( Request::is($types) || Request::is($types.'/*')) ? ' active' : '';
|
|
|
|
return '<li class="dropdown '.$class.'">
|
|
|
|
<a href="'.URL::to($types).'" class="dropdown-toggle">'.$Types.'</a>
|
|
|
|
<ul class="dropdown-menu" id="menu1">
|
|
|
|
<!-- <li><a href="'.URL::to($types).'">List '.$Types.'</a></li> -->
|
|
|
|
<li><a href="'.URL::to($types.'/create').'">New '.$Type.'</a></li>
|
|
|
|
</ul>
|
|
|
|
</li>';
|
|
|
|
});
|
|
|
|
|
|
|
|
HTML::macro('image_data', function($imagePath) {
|
|
|
|
return 'data:image/jpeg;base64,' . base64_encode(file_get_contents($imagePath));
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
function pluralize($string, $count)
|
|
|
|
{
|
|
|
|
$string = str_replace('?', $count, $string);
|
|
|
|
return $count == 1 ? $string : $string . 's';
|
|
|
|
}
|
|
|
|
|
|
|
|
function toArray($data)
|
|
|
|
{
|
|
|
|
return json_decode(json_encode((array) $data), true);
|
|
|
|
}
|
|
|
|
|
2013-11-28 13:15:34 +01:00
|
|
|
function toSpaceCase($camelStr)
|
|
|
|
{
|
|
|
|
return preg_replace('/([a-z])([A-Z])/s','$1 $2', $camelStr);
|
|
|
|
}
|
|
|
|
|
2013-12-02 13:22:29 +01:00
|
|
|
/*
|
|
|
|
function toDateString($date)
|
|
|
|
{
|
|
|
|
if ($date->year < 1900) {
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
$tz = Session::get('tz');
|
|
|
|
if (!$tz) {
|
|
|
|
$tz = 'US/Eastern';
|
|
|
|
}
|
|
|
|
$date->tz = $tz;
|
|
|
|
return $date->toFormattedDateString();
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
function toDateTimeString($date)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2013-11-28 17:40:13 +01:00
|
|
|
function toSqlDate($date)
|
|
|
|
{
|
|
|
|
if (!$date)
|
|
|
|
{
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
|
|
|
return DateTime::createFromFormat('m/d/Y', $date);
|
|
|
|
}
|
|
|
|
|
|
|
|
function fromSqlDate($date)
|
|
|
|
{
|
|
|
|
if (!$date || $date == '0000-00-00')
|
|
|
|
{
|
|
|
|
return '';
|
|
|
|
}
|
2013-12-02 13:22:29 +01:00
|
|
|
|
2013-11-28 17:40:13 +01:00
|
|
|
return DateTime::createFromFormat('Y-m-d', $date)->format('m/d/Y');
|
|
|
|
}
|
|
|
|
|
|
|
|
function processedRequest($url)
|
2013-12-02 13:22:29 +01:00
|
|
|
{
|
|
|
|
//Session::put(Input::get('_token'), $url);
|
|
|
|
//Session::put('_token', md5(microtime()));
|
2013-11-28 17:40:13 +01:00
|
|
|
}
|
|
|
|
|
2013-11-29 13:09:21 +01:00
|
|
|
|
|
|
|
|
2013-12-01 13:22:08 +01:00
|
|
|
function trackViewed($name)
|
2013-11-29 13:09:21 +01:00
|
|
|
{
|
2013-12-01 13:22:08 +01:00
|
|
|
$url = Request::url();
|
2013-11-29 13:09:21 +01:00
|
|
|
$viewed = Session::get(RECENTLY_VIEWED);
|
|
|
|
|
|
|
|
if (!$viewed)
|
|
|
|
{
|
|
|
|
$viewed = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
$object = new stdClass;
|
|
|
|
$object->url = $url;
|
|
|
|
$object->name = $name;
|
|
|
|
|
|
|
|
for ($i=0; $i<count($viewed); $i++)
|
|
|
|
{
|
|
|
|
$item = $viewed[$i];
|
|
|
|
|
|
|
|
if ($object->url == $item->url)
|
|
|
|
{
|
|
|
|
array_splice($viewed, $i, 1);
|
2013-12-01 21:58:25 +01:00
|
|
|
break;
|
2013-11-29 13:09:21 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
array_unshift($viewed, $object);
|
|
|
|
|
2013-12-01 13:22:08 +01:00
|
|
|
if (count($viewed) > RECENTLY_VIEWED_LIMIT)
|
2013-11-29 13:09:21 +01:00
|
|
|
{
|
|
|
|
array_pop($viewed);
|
|
|
|
}
|
|
|
|
|
|
|
|
Session::put(RECENTLY_VIEWED, $viewed);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2013-11-27 08:38:37 +01:00
|
|
|
define("ENV_DEVELOPMENT", "local");
|
|
|
|
define("ENV_STAGING", "staging");
|
|
|
|
define("ENV_PRODUCTION", "production");
|
|
|
|
|
2013-11-29 13:09:21 +01:00
|
|
|
define("RECENTLY_VIEWED", "RECENTLY_VIEWED");
|
2013-12-01 08:33:17 +01:00
|
|
|
define("ENTITY_CLIENT", "client");
|
|
|
|
define("ENTITY_INVOICE", "invoice");
|
|
|
|
define("ENTITY_PAYMENT", "payment");
|
2013-12-01 21:58:25 +01:00
|
|
|
define("ENTITY_CREDIT", "credit");
|
|
|
|
|
|
|
|
define("PERSON_CONTACT", "contact");
|
|
|
|
define("PERSON_USER", "user");
|
2013-11-29 13:09:21 +01:00
|
|
|
|
2013-11-26 13:45:07 +01:00
|
|
|
define("ACCOUNT_DETAILS", "details");
|
|
|
|
define("ACCOUNT_SETTINGS", "settings");
|
|
|
|
define("ACCOUNT_IMPORT", "import");
|
|
|
|
define("ACCOUNT_MAP", "import_map");
|
2013-12-01 13:22:08 +01:00
|
|
|
define("ACCOUNT_EXPORT", "export");
|
|
|
|
|
|
|
|
|
2013-12-01 21:58:25 +01:00
|
|
|
define("DEFAULT_INVOICE_NUMBER", "0001");
|
|
|
|
define("RECENTLY_VIEWED_LIMIT", 8);
|
|
|
|
|
|
|
|
|
|
|
|
interface iPerson
|
|
|
|
{
|
|
|
|
public function getFullName();
|
|
|
|
public function getPersonType();
|
|
|
|
}
|
|
|
|
|
|
|
|
interface iEntity
|
|
|
|
{
|
|
|
|
public function getName();
|
|
|
|
public function getEntityType();
|
|
|
|
}
|