Merge remote-tracking branch 'origin/master'

This commit is contained in:
denisdulici 2017-12-06 13:42:54 +03:00
commit eaf703a1c3
14 changed files with 109 additions and 55 deletions

View File

@ -52,7 +52,9 @@ class BillReminder extends Command
$days = explode(',', $company->schedule_bill_days);
foreach ($days as $day) {
$this->remind(trim($day), $company);
$day = (int) trim($day);
$this->remind($day, $company);
}
}
}

View File

@ -52,7 +52,9 @@ class InvoiceReminder extends Command
$days = explode(',', $company->schedule_invoice_days);
foreach ($days as $day) {
$this->remind(trim($day), $company);
$day = (int) trim($day);
$this->remind($day, $company);
}
}
}

View File

@ -102,14 +102,10 @@ class Transfers extends Controller
$request['account_id'] = $request['from_account_id'];
$request['paid_at'] = $request['transferred_at'];
// amount
$request['currency_code'] = $payment_currency_code;
$request['currency_rate'] = $currencies[$payment_currency_code];
$request['vendor_id'] = '0';
// description
$request['category_id'] = Category::enabled()->type('other')->pluck('id')->first(); // Transfer Category ID
// payment_method
// reference
$request['category_id'] = Category::transfer(); // Transfer Category ID
$request['attachment'] = '';
$payment = Payment::create($request->all());
@ -195,14 +191,10 @@ class Transfers extends Controller
$request['account_id'] = $request['from_account_id'];
$request['paid_at'] = $request['transferred_at'];
// amount
$request['currency_code'] = $payment_currency_code;
$request['currency_rate'] = $currencies[$payment_currency_code];
$request['vendor_id'] = '0';
// description
$request['category_id'] = Category::enabled()->type('other')->pluck('id')->first(); // Transfer Category ID
// payment_method
// reference
$request['category_id'] = Category::transfer(); // Transfer Category ID
$request['attachment'] = '';
$payment->update($request->all());

View File

@ -35,7 +35,9 @@ class Payments extends Controller
$accounts = collect(Account::enabled()->pluck('name', 'id'))
->prepend(trans('general.all_type', ['type' => trans_choice('general.accounts', 2)]), '');
return view('expenses.payments.index', compact('payments', 'vendors', 'categories', 'accounts'));
$transfer_cat_id = Category::transfer();
return view('expenses.payments.index', compact('payments', 'vendors', 'categories', 'accounts', 'transfer_cat_id'));
}
/**
@ -197,6 +199,11 @@ class Payments extends Controller
*/
public function destroy(Payment $payment)
{
// Can't delete transfer payment
if ($payment->category->id == Category::transfer()) {
return redirect('expenses/payments');
}
$payment->delete();
$message = trans('messages.success.deleted', ['type' => trans_choice('general.payments', 1)]);

View File

@ -581,7 +581,7 @@ class Invoices extends Controller
$request['company_id'] = $invoice->company_id;
$request['invoice_id'] = $invoice->id;
$request['account_id'] = setting('general.default_account');
$request['payment_method'] = setting('general.default_payment_method');
$request['payment_method'] = setting('general.default_payment_method', 'offlinepayment.cash.1');
$request['currency_code'] = $invoice->currency_code;
$request['amount'] = $amount;
$request['paid_at'] = Date::now();

View File

@ -37,7 +37,9 @@ class Revenues extends Controller
$accounts = collect(Account::enabled()->pluck('name', 'id'))
->prepend(trans('general.all_type', ['type' => trans_choice('general.accounts', 2)]), '');
return view('incomes.revenues.index', compact('revenues', 'customers', 'categories', 'accounts'));
$transfer_cat_id = Category::transfer();
return view('incomes.revenues.index', compact('revenues', 'customers', 'categories', 'accounts', 'transfer_cat_id'));
}
/**
@ -199,6 +201,11 @@ class Revenues extends Controller
*/
public function destroy(Revenue $revenue)
{
// Can't delete transfer revenue
if ($revenue->category->id == Category::transfer()) {
return redirect('incomes/revenues');
}
$revenue->delete();
$message = trans('messages.success.deleted', ['type' => trans_choice('general.revenues', 1)]);

View File

@ -247,13 +247,16 @@ class Items extends Controller
if ($input_items) {
foreach ($input_items as $key => $item) {
$price = (double) $item['price'];
$quantity = (int) $item['quantity'];
$item_tax_total= 0;
$item_sub_total = ($item['price'] * $item['quantity']);
$item_sub_total = ($price * $quantity);
if (!empty($item['tax_id'])) {
$tax = Tax::find($item['tax_id']);
$item_tax_total = (($item['price'] * $item['quantity']) / 100) * $tax->rate;
$item_tax_total = (($price * $quantity) / 100) * $tax->rate;
}
$sub_total += $item_sub_total;

View File

@ -18,10 +18,12 @@ class Categories extends Controller
{
$categories = Category::collect();
$transfer_id = Category::transfer();
$types = collect(['expense' => 'Expense', 'income' => 'Income', 'item' => 'Item', 'other' => 'Other'])
->prepend(trans('general.all_type', ['type' => trans_choice('general.types', 2)]), '');
return view('settings.categories.index', compact('categories', 'types'));
return view('settings.categories.index', compact('categories', 'types', 'transfer_id'));
}
/**
@ -112,6 +114,11 @@ class Categories extends Controller
'payments' => 'payments',
]);
// Can't delete transfer category
if ($category->id == Category::transfer()) {
return redirect('settings/categories');
}
if (empty($relationships)) {
$category->delete();

View File

@ -48,4 +48,15 @@ class Category extends Model
{
return $query->where('type', $type);
}
/**
* Scope transfer category.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeTransfer($query)
{
return $query->where('type', 'other')->pluck('id')->first();
}
}

View File

@ -21,7 +21,7 @@ class ImportFile extends ExcelFile
$folder = session('company_id') . '/imports';
// Upload file
$path = Storage::path($request->import->store($folder));
$path = Storage::path($request->file('import')->store($folder));
return $path;
}

View File

@ -6,7 +6,6 @@ use Artisan;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller;
use Modules\OfflinePayment\Http\Requests\Setting as Request;
use Modules\OfflinePayment\Http\Requests\SettingGet as GRequest;
use Modules\OfflinePayment\Http\Requests\SettingDelete as DRequest;
@ -15,6 +14,7 @@ class Settings extends Controller
{
/**
* Show the form for editing the specified resource.
*
* @return Response
*/
public function edit()
@ -26,28 +26,32 @@ class Settings extends Controller
/**
* Update the specified resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function update(Request $request)
{
$offlinepayment = json_decode(setting('offlinepayment.methods'), true);
$methods = json_decode(setting('offlinepayment.methods'), true);
if (isset($request['method'])) {
foreach ($offlinepayment as $key => $method) {
if ($method['code'] == $request['method']) {
foreach ($methods as $key => $method) {
if ($method['code'] != $request['method']) {
continue;
}
$method = explode('.', $request['method']);
$offlinepayment[$key]['code'] = 'offlinepayment.' . $request['code'] . '.' . $method[2];
$offlinepayment[$key]['name'] = $request['name'];
$offlinepayment[$key]['customer'] = $request['customer'];
$offlinepayment[$key]['order'] = $request['order'];
$offlinepayment[$key]['description'] = $request['description'];
}
$methods[$key]['code'] = 'offlinepayment.' . $request['code'] . '.' . $method[2];
$methods[$key]['name'] = $request['name'];
$methods[$key]['customer'] = $request['customer'];
$methods[$key]['order'] = $request['order'];
$methods[$key]['description'] = $request['description'];
}
} else {
$offlinepayment[] = array(
'code' => 'offlinepayment.' . $request['code'] . '.' . (count($offlinepayment) + 1),
$methods[] = array(
'code' => 'offlinepayment.' . $request['code'] . '.' . (count($methods) + 1),
'name' => $request['name'],
'customer' => $request['customer'],
'order' => $request['order'],
@ -56,7 +60,7 @@ class Settings extends Controller
}
// Set Api Token
setting()->set('offlinepayment.methods', json_encode($offlinepayment));
setting()->set('offlinepayment.methods', json_encode($methods));
setting()->save();
@ -67,16 +71,24 @@ class Settings extends Controller
/**
* Remove the specified resource from storage.
*
* @param GRequest $request
*
* @return Response
*/
public function get(GRequest $request)
{
$data = [];
$code = $request['code'];
$offlinepayment = json_decode(setting('offlinepayment.methods'), true);
$methods = json_decode(setting('offlinepayment.methods'), true);
foreach ($methods as $key => $method) {
if ($method['code'] != $code) {
continue;
}
foreach ($offlinepayment as $key => $method) {
if ($method['code'] == $code) {
$method['title'] = trans('offlinepayment::offlinepayment.edit', ['method' => $method['name']]);
$method['method'] = $code;
@ -88,7 +100,6 @@ class Settings extends Controller
break;
}
}
return response()->json([
'errors' => false,
@ -99,22 +110,27 @@ class Settings extends Controller
/**
* Remove the specified resource from storage.
*
* @param DRequest $request
*
* @return Response
*/
public function delete(DRequest $request)
{
$code = $request['code'];
$offlinepayment = json_decode(setting('offlinepayment.methods'), true);
$methods = json_decode(setting('offlinepayment.methods'), true);
foreach ($offlinepayment as $key => $method) {
if ($method['code'] == $code) {
unset($offlinepayment[$key]);
foreach ($methods as $key => $method) {
if ($method['code'] != $code) {
continue;
}
unset($methods[$key]);
}
// Set Api Token
setting()->set('offlinepayment.methods', json_encode($offlinepayment));
setting()->set('offlinepayment.methods', json_encode($methods));
setting()->save();

View File

@ -51,22 +51,24 @@
<td class="hidden-xs">{{ $item->category->name }}</td>
<td class="hidden-xs">{{ $item->account->name }}</td>
<td class="text-center">
@if ($item->category->id != $transfer_cat_id)
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-toggle-position="left" aria-expanded="false">
<i class="fa fa-ellipsis-h"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('expenses/payments/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
<li class="divider"></li>
@permission('create-expenses-payments')
<li><a href="{{ url('expenses/payments/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
<li class="divider"></li>
<li><a href="{{ url('expenses/payments/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
@endpermission
@permission('delete-expenses-payments')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'expenses/payments') !!}</li>
@endpermission
</ul>
</div>
@endif
</td>
</tr>
@endforeach

View File

@ -51,22 +51,24 @@
<td class="hidden-xs">{{ $item->category->name }}</td>
<td class="hidden-xs">{{ $item->account->name }}</td>
<td class="text-center">
@if ($item->category->id != $transfer_cat_id)
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-toggle-position="left" aria-expanded="false">
<i class="fa fa-ellipsis-h"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('incomes/revenues/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
<li class="divider"></li>
@permission('create-incomes-revenues')
<li><a href="{{ url('incomes/revenues/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
<li class="divider"></li>
<li><a href="{{ url('incomes/revenues/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
@endpermission
@permission('delete-incomes-revenues')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'incomes/revenues') !!}</li>
@endpermission
</ul>
</div>
@endif
</td>
</tr>
@endforeach

View File

@ -59,9 +59,12 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('settings/categories/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
@if ($item->id != $transfer_id)
@permission('delete-settings-categories')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'settings/categories') !!}</li>
@endpermission
@endif
</ul>
</div>
</td>