Update to Laravel 6
This commit is contained in:
parent
8224fba840
commit
c941fcb148
@ -2,9 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
@ -38,11 +37,16 @@ class LoginController extends Controller
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show our themed login page
|
||||
*/
|
||||
public function showLoginForm()
|
||||
{
|
||||
return view('adminlte::auth.login');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Show our themed login page
|
||||
*/
|
||||
public function showLoginForm()
|
||||
{
|
||||
$login_note = '';
|
||||
|
||||
if (file_exists('login_note.txt'))
|
||||
$login_note = file_get_contents('login_note.txt');
|
||||
|
||||
return view('adminlte::auth.login')->with('login_note',$login_note);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class Site extends Model
|
||||
@ -72,7 +73,7 @@ class Site extends Model
|
||||
'top_menu' => [],
|
||||
];
|
||||
|
||||
return array_get($default,$key);
|
||||
return Arr::get($default,$key);
|
||||
}
|
||||
|
||||
public function getSiteLogoAttribute()
|
||||
@ -264,7 +265,7 @@ class Site extends Model
|
||||
public function aboutus()
|
||||
{
|
||||
// @todo To be implemented
|
||||
return array_get($this->_sampledata(),'aboutus');
|
||||
return Arr::get($this->_sampledata(),'aboutus');
|
||||
}
|
||||
|
||||
private function _address()
|
||||
|
@ -1,42 +1,35 @@
|
||||
{
|
||||
"name": "laravel/laravel",
|
||||
"type": "project",
|
||||
"description": "The Laravel Framework.",
|
||||
"keywords": [
|
||||
"framework",
|
||||
"laravel"
|
||||
],
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"acacha/user": "^0.2.2",
|
||||
"php": "^7.2",
|
||||
"barryvdh/laravel-debugbar": "^3.2",
|
||||
"barryvdh/laravel-snappy": "^0.4.4",
|
||||
"clarkeash/doorman": "^2.0",
|
||||
"creativeorange/gravatar": "^1.0",
|
||||
"doctrine/dbal": "^2.9",
|
||||
"barryvdh/laravel-snappy": "^0.4.6",
|
||||
"clarkeash/doorman": "^4.0",
|
||||
"fideloper/proxy": "^4.0",
|
||||
"h4cc/wkhtmltoimage-amd64": "0.12.x",
|
||||
"h4cc/wkhtmltopdf-amd64": "0.12.x",
|
||||
"intervention/image": "^2.4",
|
||||
"laravel/framework": "5.8.*",
|
||||
"laravel/passport": "^7.3",
|
||||
"laravel/socialite": "^4.1",
|
||||
"h4cc/wkhtmltoimage-amd64": "^0.12.4",
|
||||
"h4cc/wkhtmltopdf-amd64": "^0.12.4",
|
||||
"intervention/image": "^2.5",
|
||||
"laravel/framework": "^6.4",
|
||||
"laravel/passport": "^8.2",
|
||||
"laravel/socialite": "^4.2",
|
||||
"laravel/tinker": "^1.0",
|
||||
"leenooks/laravel": "^0.3.10",
|
||||
"quickbooks/v3-php-sdk": "^5.0",
|
||||
"spatie/laravel-demo-mode": "^2.2",
|
||||
"spatie/laravel-failed-job-monitor": "^3.0",
|
||||
"spatie/laravel-sitemap": "^5.2",
|
||||
"spinen/laravel-quickbooks-client": "^3.0",
|
||||
"tymon/jwt-auth": "^0.5.12"
|
||||
"leenooks/laravel": "^6.0",
|
||||
"spatie/laravel-demo-mode": "^2.5",
|
||||
"spinen/laravel-quickbooks-client": "^3.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"filp/whoops": "^2.0",
|
||||
"facade/ignition": "1.11.1",
|
||||
"fzaninotto/faker": "^1.4",
|
||||
"mockery/mockery": "^1.0",
|
||||
"nunomaduro/collision": "^3.0",
|
||||
"phpunit/phpunit": "^7.5"
|
||||
"phpunit/phpunit": "^8.0"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
@ -66,6 +59,10 @@
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://dev.leenooks.net/leenooks/laravel"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/leenooks/laravel-theme"
|
||||
}
|
||||
],
|
||||
"minimum-stability": "dev",
|
||||
|
3758
composer.lock
generated
3758
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -179,11 +179,8 @@ return [
|
||||
/*
|
||||
* Other Service Providers...
|
||||
*/
|
||||
Acacha\User\Providers\GuestUserServiceProvider::class,
|
||||
Orchestra\Asset\AssetServiceProvider::class,
|
||||
Collective\Html\HtmlServiceProvider::class,
|
||||
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,
|
||||
Barryvdh\Snappy\ServiceProvider::class,
|
||||
],
|
||||
|
||||
/*
|
||||
|
@ -37,7 +37,7 @@ return [
|
||||
'app_id' => env('PUSHER_APP_ID'),
|
||||
'options' => [
|
||||
'cluster' => env('PUSHER_APP_CLUSTER'),
|
||||
'encrypted' => true,
|
||||
'useTLS' => true,
|
||||
],
|
||||
],
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
@ -11,7 +13,8 @@ return [
|
||||
| using this caching library. This connection is used when another is
|
||||
| not explicitly specified when executing a given caching function.
|
||||
|
|
||||
| Supported: "apc", "array", "database", "file", "memcached", "redis"
|
||||
| Supported: "apc", "array", "database", "file",
|
||||
| "memcached", "redis", "dynamodb"
|
||||
|
|
||||
*/
|
||||
|
||||
@ -57,7 +60,7 @@ return [
|
||||
env('MEMCACHED_PASSWORD'),
|
||||
],
|
||||
'options' => [
|
||||
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
|
||||
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
|
||||
],
|
||||
'servers' => [
|
||||
[
|
||||
@ -70,7 +73,16 @@ return [
|
||||
|
||||
'redis' => [
|
||||
'driver' => 'redis',
|
||||
'connection' => 'default',
|
||||
'connection' => 'cache',
|
||||
],
|
||||
|
||||
'dynamodb' => [
|
||||
'driver' => 'dynamodb',
|
||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
||||
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
|
||||
'endpoint' => env('DYNAMODB_ENDPOINT'),
|
||||
],
|
||||
|
||||
],
|
||||
@ -86,9 +98,6 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'prefix' => env(
|
||||
'CACHE_PREFIX',
|
||||
str_slug(env('APP_NAME', 'laravel'), '_').'_cache'
|
||||
),
|
||||
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
|
||||
|
||||
];
|
||||
|
@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
@ -35,27 +37,35 @@ return [
|
||||
|
||||
'sqlite' => [
|
||||
'driver' => 'sqlite',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||
'prefix' => '',
|
||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||||
],
|
||||
|
||||
'mysql' => [
|
||||
'driver' => 'mysql',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '3306'),
|
||||
'database' => env('DB_DATABASE', 'billing'),
|
||||
'username' => env('DB_USERNAME', 'billing'),
|
||||
'password' => env('DB_PASSWORD', 'billing'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
'username' => env('DB_USERNAME', 'forge'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_SOCKET', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
||||
]) : [],
|
||||
],
|
||||
|
||||
'pgsql' => [
|
||||
'driver' => 'pgsql',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '5432'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
@ -63,12 +73,14 @@ return [
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'charset' => 'utf8',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
'schema' => 'public',
|
||||
'sslmode' => 'prefer',
|
||||
],
|
||||
|
||||
'sqlsrv' => [
|
||||
'driver' => 'sqlsrv',
|
||||
'url' => env('DATABASE_URL'),
|
||||
'host' => env('DB_HOST', 'localhost'),
|
||||
'port' => env('DB_PORT', '1433'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
@ -76,20 +88,9 @@ return [
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'charset' => 'utf8',
|
||||
'prefix' => '',
|
||||
'prefix_indexes' => true,
|
||||
],
|
||||
|
||||
'cockroach' => [
|
||||
'driver' => 'cockroach',
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '26257'),
|
||||
'database' => env('DB_DATABASE', 'forge'),
|
||||
'username' => env('DB_USERNAME', 'forge'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'charset' => 'utf8',
|
||||
'prefix' => '',
|
||||
'schema' => env('DB_DATABASE', 'forge'),
|
||||
'sslmode' => 'prefer',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
@ -111,20 +112,34 @@ return [
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Redis is an open source, fast, and advanced key-value store that also
|
||||
| provides a richer set of commands than a typical key-value systems
|
||||
| provides a richer body of commands than a typical key-value system
|
||||
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
||||
|
|
||||
*/
|
||||
|
||||
'redis' => [
|
||||
|
||||
'client' => 'predis',
|
||||
'client' => env('REDIS_CLIENT', 'phpredis'),
|
||||
|
||||
'options' => [
|
||||
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
||||
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
|
||||
],
|
||||
|
||||
'default' => [
|
||||
'url' => env('REDIS_URL'),
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', null),
|
||||
'port' => env('REDIS_PORT', 6379),
|
||||
'database' => 0,
|
||||
'database' => env('REDIS_DB', 0),
|
||||
],
|
||||
|
||||
'cache' => [
|
||||
'url' => env('REDIS_URL'),
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', null),
|
||||
'port' => env('REDIS_PORT', 6379),
|
||||
'database' => env('REDIS_CACHE_DB', 1),
|
||||
],
|
||||
|
||||
],
|
||||
|
@ -37,7 +37,7 @@ return [
|
||||
| may even configure multiple disks of the same driver. Defaults have
|
||||
| been setup for each driver as an example of the required options.
|
||||
|
|
||||
| Supported Drivers: "local", "ftp", "sftp", "s3", "rackspace"
|
||||
| Supported Drivers: "local", "ftp", "sftp", "s3"
|
||||
|
|
||||
*/
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Monolog\Handler\NullHandler;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Handler\SyslogUdpHandler;
|
||||
|
||||
@ -89,6 +90,11 @@ return [
|
||||
'driver' => 'errorlog',
|
||||
'level' => 'debug',
|
||||
],
|
||||
|
||||
'null' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => NullHandler::class,
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
|
@ -11,8 +11,8 @@ return [
|
||||
| sending of e-mail. You may specify which one you're using throughout
|
||||
| your application here. By default, Laravel is setup for SMTP mail.
|
||||
|
|
||||
| Supported: "smtp", "sendmail", "mailgun", "mandrill", "ses",
|
||||
| "sparkpost", "postmark", "log", "array"
|
||||
| Supported: "smtp", "sendmail", "mailgun", "ses",
|
||||
| "postmark", "log", "array"
|
||||
|
|
||||
*/
|
||||
|
||||
|
@ -80,6 +80,7 @@ return [
|
||||
*/
|
||||
|
||||
'failed' => [
|
||||
'driver' => env('QUEUE_FAILED_DRIVER', 'database'),
|
||||
'database' => env('DB_CONNECTION', 'mysql'),
|
||||
'table' => 'failed_jobs',
|
||||
],
|
||||
|
@ -8,9 +8,9 @@ return [
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This file is for storing the credentials for third party services such
|
||||
| as Stripe, Mailgun, SparkPost and others. This file provides a sane
|
||||
| default location for this type of information, allowing packages
|
||||
| to have a conventional place to find your various credentials.
|
||||
| as Mailgun, Postmark, AWS and more. This file provides the de facto
|
||||
| location for this type of information, allowing packages to have
|
||||
| a conventional file to locate the various service credentials.
|
||||
|
|
||||
*/
|
||||
|
||||
@ -30,20 +30,6 @@ return [
|
||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
||||
],
|
||||
|
||||
'sparkpost' => [
|
||||
'secret' => env('SPARKPOST_SECRET'),
|
||||
],
|
||||
|
||||
'stripe' => [
|
||||
'model' => App\User::class,
|
||||
'key' => env('STRIPE_KEY'),
|
||||
'secret' => env('STRIPE_SECRET'),
|
||||
'webhook' => [
|
||||
'secret' => env('STRIPE_WEBHOOK_SECRET'),
|
||||
'tolerance' => env('STRIPE_WEBHOOK_TOLERANCE', 300),
|
||||
],
|
||||
],
|
||||
|
||||
'ezypay' => [
|
||||
'plugin' => 'DD_EZYPAY',
|
||||
'base_uri' => 'https://api.ezypay.com/api/v1/',
|
||||
|
17
public/css/adminlte.min.css
vendored
17
public/css/adminlte.min.css
vendored
File diff suppressed because one or more lines are too long
38
public/css/fixes.css
vendored
38
public/css/fixes.css
vendored
@ -1,64 +1,64 @@
|
||||
/* Fixes for data tables */
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||||
padding: 0em 0em;
|
||||
margin-left: 0px;
|
||||
border: 0px solid;
|
||||
padding: 0em 0em;
|
||||
margin-left: 0px;
|
||||
border: 0px solid;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
|
||||
border: 0px solid;
|
||||
background: #fff;
|
||||
border: 0px solid;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
||||
box-shadow: 0 0 0px #fff;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 0px #fff;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting_asc {
|
||||
background-image: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting_desc {
|
||||
background-image: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting {
|
||||
background-image: none !important;
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
/* Remove blue border from chrome on buttons */
|
||||
/* Remove outline for non-keyboard :focus */
|
||||
*:focus:not(.focus-visible) {
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
/* Optional: Customize .focus-visible */
|
||||
.focus-visible {
|
||||
outline-color: lightgreen;
|
||||
outline-color: lightgreen;
|
||||
}
|
||||
|
||||
*:disabled {
|
||||
cursor: not-allowed;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
/* Login Box, icons when inputs disabled */
|
||||
div.login-box .input-group-append .fa {
|
||||
width: 2.5em;
|
||||
width: 2.5em;
|
||||
}
|
||||
div.login-box .input-group .input-group-append span.fa {
|
||||
line-height: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
#favourite.selected {
|
||||
color: orange;
|
||||
color: orange;
|
||||
}
|
||||
|
||||
#favourite:hover {
|
||||
cursor: pointer;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 0.85em;
|
||||
font-size: 0.85em;
|
||||
}
|
2
public/css/print.css
vendored
2
public/css/print.css
vendored
@ -16,4 +16,4 @@
|
||||
.table-responsive {
|
||||
overflow: visible !important;
|
||||
}
|
||||
}
|
||||
}
|
8
public/js/adminlte.min.js
vendored
8
public/js/adminlte.min.js
vendored
File diff suppressed because one or more lines are too long
@ -32,6 +32,7 @@
|
||||
<address>
|
||||
<strong>{{ $so->site_name }}</strong><br>
|
||||
{!! $so->address('html') !!}<br>
|
||||
<br>
|
||||
<strong>Email:</strong> {{ $so->site_email }}<br>
|
||||
<strong>Phone:</strong> {{ $so->site_phone }}
|
||||
</address>
|
||||
@ -42,11 +43,11 @@
|
||||
<address>
|
||||
<strong>{{ $o->account->company }}</strong><br>
|
||||
{!! $o->account->address('html') !!}<br>
|
||||
<br>
|
||||
<strong>Email:</strong> {{ $o->account->email }}<br>
|
||||
@if ($o->account->phone)
|
||||
<strong>Phone:</strong> {{ $o->account->phone }}<br>
|
||||
@endif
|
||||
<strong>Account:</strong> {{ $o->account->account_id }}
|
||||
</address>
|
||||
</div>
|
||||
{{-- col-sm-offset-2 not working here --}}
|
||||
@ -54,15 +55,17 @@
|
||||
|
||||
<div class="col-md-3 invoice-col">
|
||||
<table class="table table-borderless text-right" style="font-size: 1.1rem;">
|
||||
<tr >
|
||||
<td class="p-0">Account:</td><td class="p-0"><strong>{{ $o->account->account_id }}</strong></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td class="p-0">Invoice:</td><td class="p-0"><strong>{{ $o->invoice_id }}</strong></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="p-0">Payment Due:</td><td class="p-0"><strong>{{ $o->due_date->format('Y-m-d') }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-0">Total:</td><td class="p-0"><strong>${{ number_format($o->total,$o->currency()->rounding) }}</strong></td>
|
||||
<td class="p-0">Total Due:</td><td class="p-0"><strong>${{ number_format($o->total,$o->currency()->rounding) }}</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
@ -72,7 +75,7 @@
|
||||
<!-- Table row -->
|
||||
<div class="row">
|
||||
<div class="col-12 table-responsive">
|
||||
<table id="restripe" class="table table-borderless table-striped" width="100%">
|
||||
<table id="restripe" class="table" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Qty</th>
|
||||
@ -134,7 +137,7 @@
|
||||
|
||||
<!-- /.col -->
|
||||
<div class="offset-2 col-4 table-responsive">
|
||||
<table class="table table-borderless">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th colspan="2" style="width:50%">Subtotal:</th>
|
||||
<td class="text-right">${{ number_format($o->sub_total,$o->currency()->rounding) }}</td>
|
||||
@ -160,9 +163,15 @@
|
||||
<td class="text-right">${{ number_format($o->paid,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2">Account Due:</th>
|
||||
<th colspan="2">Invoice Total Due:</th>
|
||||
<td class="text-right">${{ number_format($o->due,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
{{--
|
||||
<tr>
|
||||
<th colspan="2">Account Due:</th>
|
||||
<td class="text-right">${{ number_format($o->account->due,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
--}}
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
@ -173,7 +182,7 @@
|
||||
<!-- this row will not appear when printing -->
|
||||
<div class="row d-print-none">
|
||||
<div class="col-12">
|
||||
<a href="javascript:window.print();" target="_blank" class="btn btn-default"><i class="fa fa-print"></i> Print</a>
|
||||
<a href="javascript:window.print();" class="btn btn-default"><i class="fa fa-print"></i> Print</a>
|
||||
@if($o->id)
|
||||
<button type="button" class="btn btn-success pull-right"><i class="fa fa-credit-card"></i> Submit Payment</button>
|
||||
<a href="{{ url(sprintf('u/invoice/%s/pdf',$o->id)) }}" class="btn btn-primary pull-right" style="margin-right: 5px;">
|
||||
|
Loading…
Reference in New Issue
Block a user